Monopattino elettrico? No, con lo S.mo.k.ing!

21 Aprile 2020

Scroll

smoking-module

Monopattino elettrico? No, con lo S.mo.k.ing!

This page is also available in English English

Licenza Creative Commons
SMOKING-Party Module of Riccardo Schifaudo is distributed under licence Creative Commons Attribution-NonCommercial 4.0 International.
Based on a work at https://www.the-shinobi-arts-of-eccentricity.com/blog/modulo-monopattino/.
For furthermore permissions contacts the Author https://www.the-shinobi-arts-of-eccentricity.com/blog/contattami/.

Che cos’è lo S.mo.k.ing module?

Lo S.MO.K.ING ovvero “Smart Module for Kick Scootering”, è un estensore di monopattino, e si tratta di una centralina intelligente da integrare sotto le due ruote per migliorare la mobilità o come modulo da party.

Si tratta essenzialmente di un prodotto artigianale da me realizzato che integra un micro-controllore Arduino con una serie di componenti e sensori.


Cosa potrai fare con questo modulo?

Grazie allo SMOKING, potrai disporre di un modulo smart per:

  • Disporre d’illuminazione notturna, nel mio caso, l’ho montato sotto al monopattino;
  • Utilizzarlo come luce d’emergenza;
  • Creare effetti luminosi per organizzare le feste in modalità party;
  • Disporre di una Radio FM per intrattenerti con musica e informazione;
  • Disporre all’occorrenza di una Power Bank portatile, qualora necessitassi di una ricarica di emergenza per il cellulare mentre sei in giro sulle due ruote o per continuare la festa se trasmetti musica dallo smartphone;
  • Da sfruttare come sorgente di energia per alimentare altri moduli elettronici utilizzando l’USB o eventualmente tramite presa a 12volt supplementare collegandolo al il convertitore.

Materiale occorrente per il progetto “SMOKING Module”:

  • Arduino Nano;
  • Modulo Mosfet;
  • Striscia LED da 12v;
  • 3 Celle portabatteria da 3 pile;
  • 9 batterie Energizer ricaricabili;
  • Un convertitore di tensione di corrente continua da max 40 volt a 5 volt stabilizzato con attacco USB;
  • Mini breadboard per circuito di collegamento;
  • Mini led per alimentazione;
  • Cavi jumper wire per prototipi elettronici;
  • Modulo bluetooth HC-05;
  • Modulo radio FM TEA5727;

Cosa mettere nel carrello della spesa?

Arduino Nano – Micro controllore per integrare funzionalità alle perifiche arduino
HC-05 Modulo Bluetooth – Per comunicare a distanza tramite app dedicata, e utilizzare i diversi effetti luminosi di questo modulo LED
STRISCIA LED – Striscia LED di luce fredda da 12 volt, la più economica.
TRANSISTOR MOS FET – Il Transistor è un componente elettronico che funge da rubinetto di corrente e serve a garantire una schermatura elettrica e termica tra la dissipazione di energia delle strisce led alimentate a 12 volt, e il controllo da pin digitale di Arduino che arriva al massimo a 5 volt, e quindi non può sopportare un voltaggio così elevato.
In alternativa ecco un modulo MOS già pronto
Questa è una versione già montata da alimentare
CAVI JUMPER – Cavi di collegamento per i vari componenti elettronici, da utilizzare anche senza breadboard per la prototipazione rapida.
BATTERIE RICARICABILI ENERGIZER – Insisto per queste batterie, poiché fornisco un amperaggio di 5 Ampere(misurate con multimetro) ognuna rispetto alle classiche Duracell ricaricabili con meno di 2 Ampere.
In questo modo il modulo disporrà di almeno 60 watt di potenza per alimentare i led. Inoltre ho constatato una durata fino a 10 ore di uso consecutivo.
CELLE PORTA-PILE – Per mettere con la configurazione in serie le batterie del circuito, considerato che hanno un voltaggio di 1,2-1,5 volt a seconda della carica, ne servono 8, meglio 9 pile per un’adeguata alimentazione.
CONVERITORE E STABILIZZATORE DI TENSIONE – Questo è componente elettronico che consente di ricevere una tensione in corrente continua fino a 40 volt da una alimentazione esterna, in questo caso i 3 stock delle pile in serie fornendo in uscita i 5 volt, con il quale alimenteremo l’Arduino e tutti i sensori ad esso connessi e per disporre di una presa USB da usare come Power Bank per lo smartphone e vedere lo stato di carica del modulo.
MODULO TEA5767 FM Stereo Radio – Questo componente è facoltativo, in questo progetto l’ho implementato, cosi che tu possa ascoltarti anche la radio FM, per trasformarlo in modalità MODULO da Party (Party Module MODE)

Schema elettrico e di assemblaggio dello S.mo.k.ing

smoking arduino per monopattino elettrico schema elettrico

Spiegazione cablaggio del circuito S.mo.k.ing

Come puoi notare il modulo è alimentato a 12 volt, disponendo in serie 9 batterie stilo (tipo AA, anche se nel disegno sono 8).

Questo perché?

Perché la striscia led dello Smoking necessità di una alimentazione compresa tra i 9 e 12volt(sarebbe l’ideale).

Tuttavia per alimentare l’Arduino serve una tensione di 5 volt, per questa ragione ho utilizzato un convertitore di corrente continua DC, per stabilizzare la tensione da 12 a 5 volt costanti.

Per tale proposito ho usato il convertitore DC-DC con USB e voltmetro display HW-318 V.4, cosi da disporre sia di una presa da usare come powerbank ma anche per visualizzare dal display il livello di carica dalle batterie.

  • Tra i 9 – 12 Volt l’alimentazione è sufficiente per alimentare led ed elettronica di controllo;
  • Tra i 5-8 volt la tensione permette ancora il funzionamento dell’Arduino e del Bluetooth per il controllo del modulo e dalla radio FM;
  • Sotto i 5 volt è necessario ricaricare le batterie.

Come procedere ai collegamenti?

Collegamenti modulo HW-318 V.4 convertitore DC-DC con USB Power Bank

  • Connetti il polo + del vano batteria a +IN e il polo – al -IN che sono i pin d’ingresso del converitore;
  • Collega a GND(-) al negativo della breadboard, a cui verranno collegati tutti i poli – dei sensori;
Monopattino elettrico? No, con lo S.mo.k.ing!

Collegamenti modulo TEA5767 Radio FM

  • il Vcc del Modulo Radio FM va collegato al +3Volt di Arduino;
  • Collegare il pin SCL, del segnale di clock del modulo TEA5767 FM al pin A5 di Arduino;
  • Collegare il pin SDA, di trasmissione dati del modulo TEA5767 FM al pin A4 di Arduino;
  • Collegare GND alla massa di Arduino;
TEA5767 Radio FM per Smoking Module Arduino

Collegamenti modulo HC-05 Bluetooth

  • Il Modulo Bluetooth avrà il Vcc collegato ai +5Volt di Arduino;
  • Collegare il pin di trasmissione TX al pin 11 di Arduino;
  • Collega il pin di ricezione RX del modulo bluetooth al pin 10 di Arduino;
  • Collega il GND alla massa di Arduino.
HC-05 Bluetooth Arduino collegamenti per Smoking Monopattino Elettrico

Collegamenti modulo MOS FET

  • Collega il cavo rosso della striscia led al morsetto positivo V+ del modulo MOS FET e quello nero al morsersetto negativo V-(attacchi blu);
  • Collega il positivo e il cavo negativo del vano batteria direttamente ai morsetti blu della VIN e GND, che servirà per fornire l’alimentazione a 12 volt ai led tramite il modulo MOS FET;
  • Collega il pin SIG, SIGNAL, al pin 3 di Arduino, dove viene modulato un segnale PWM che permette di regolare l’ampiezza di segnale con valori analogici permettendo gli effetti luminosi alla striscia LED.
IRF520 MOS FET Modulo cablaggio alimentazione striscie led per Arduino

Codice sorgente Sketch per programmare lo S.Mo.K.ing

Compila questo sketch nell’Arduino tramite il suo IDE dedicato.

//include library to control bluetooth communication
#include <SoftwareSerial.h>
//include library to enabled radio fm
#include <TEA5767.h>
#include <Wire.h>

//setting tx and rx bluetooth module
SoftwareSerial BTSerial(11,10); // RX | TX
//create radio FM object instance
TEA5767 Radio; //Pinout SLC and SDA - Arduino uno pins A5 and A4

char cmd = ' ';
const int led_pin = 3;
int timer = 1000;
//variables control radio fm 
//Variables:
double old_frequency;
double frequency;
int search_mode = 0;
int search_direction;
unsigned long last_pressed;
unsigned char buf[5];
int stereo;
int signal_level;
double current_freq;
unsigned long current_millis = millis();
char inByte = ' ';
int flag=0;
char BTSignal = ' ';

//VARIABLES OF STATES 
bool first_initialize_radio = true;
bool first_start = true;
bool shift_channel = false;

void setup() {
  // put your setup code here, to run once:
  pinMode(led_pin,OUTPUT);
  digitalWrite(led_pin,LOW);
  Serial.begin(9600);
  BTSerial.begin(9600);
}

void loop() {
  if(first_start){
    BTSerial.println("----------------------------------------------------");
    BTSerial.println("----------------------------------------------------");
    BTSerial.println("WELCOME IN S.MO.KICK.ING ");
    BTSerial.println("----------------------------------------------------");
    BTSerial.println("----------------------------------------------------");
    BTSerial.println("Choose one of the following options:");
    BTSerial.println("0 - LED strips - SWITCH OFF ");
    BTSerial.println("1 - LED strips - NORMAL MODE");
    BTSerial.println("2 - LED strips - SINUSOIDAL ");
    BTSerial.println("3 - LED strips - STROBO LIGHT (15Hz)");
    BTSerial.println("4 - LED strips - STROBO HEAVY(20Hz)");
    BTSerial.println("5 - LED strips - PULSAR EFFECT ");
    BTSerial.println("7 - Radio FM   - ENABLE");
    BTSerial.println("8 - Radio FM   - SHIFT CH. AHEAD");
    BTSerial.println("9 - Radio FM   - SHIFT CH. BACK");
    BTSerial.println("----------------------------------------------------");
    
    first_start = false;
  }
  // put your main code here, to run repeatedly:
   if(BTSerial.available()){
        cmd = BTSerial.read();
         if(cmd == '0'){
           BTSerial.println("LED OFF!");
         }
         if(cmd == '1'){
           BTSerial.println("Normal LED");
         }
         if(cmd == '2'){
           BTSerial.println("Sinusoidal LED");
         }
         if(cmd == '3'){
           BTSerial.println("Strobo LED Light");
         }
         if(cmd == '4'){
            BTSerial.println("Strobo LED Strong");
         }
         if(cmd == '5'){
            BTSerial.println("Pulsar LED");
         }
  
         if(cmd == '7'){
             BTSerial.println("Enable Radio FM");
         }

         if(cmd == '8'){
           BTSerial.println("Shift ahead one radio station");
           search_mode = 1;
           shift_channel = true;
           flag = 0;
           inByte = '8';
           radio_fm();
         }
         if(cmd == '9'){
           BTSerial.println("Shift behind one radio station");
           search_mode = 1;
           shift_channel = true;
           flag = 0;
           inByte = '8';
           radio_fm();
         }
       
   }

   if(cmd == ' ') 
     led_normal();

   if(cmd == '0')
     led_off();
     
   if(cmd == '1')
     led_normal();

   if(cmd == '2'){
     led_sinusoidal();
   }
   
   if(cmd == '3')
       led_strobo_light();

   if(cmd == '4') 
       led_strobo_strong();    
   
   if(cmd == '5') 
       led_pulsar();      
       
   if(cmd == '7')
     radio_fm();


   


}

void led_strobo_light(){
  Serial.print("Enabled led strobo light");
  digitalWrite(led_pin,HIGH);
  delay(67);
  digitalWrite(led_pin,LOW);
  delay(67);
}
void led_strobo_strong(){
  Serial.print("Enabled led strobo strong");
  digitalWrite(led_pin,HIGH);
  delay(50);
  digitalWrite(led_pin,LOW);
  delay(50);
}
void led_normal(){
  digitalWrite(led_pin,HIGH);
}
void led_off(){
  digitalWrite(led_pin,LOW);
}
void led_pulsar(){
 
    for(int j = 0;j<255;j++){
       analogWrite(led_pin,j);
       delay(10);
       //Serial.println(j);
    }  

    for(int j = 255;j>0;j--){
       analogWrite(led_pin,j);
       delay(10);
       //Serial.println(j);
    }  
    delay(100);
}
void led_sinusoidal(){
  float something = millis()/1000.0;
  int value = 128.0 + 128 * sin( something * 2.0 * 255 );
  analogWrite(led_pin,value);
  delay(100);
}

void radio_fm(){
  
  if(first_initialize_radio){
     BTSerial.println("----------------------------------------------------");
     BTSerial.println("Radio Enabled!");
     Radio.init();
     Radio.set_frequency(96.2); //On power on go to station 95.2
     first_initialize_radio = false;
  }

  
  if (Radio.read_status(buf) == 1 || shift_channel == true) {
     current_freq =  floor (Radio.frequency_available (buf) / 100000 + .5) / 10;
     stereo = Radio.stereo(buf);
     signal_level = Radio.signal_level(buf);
     //By using flag variable the message will be printed only one time. 
       
      if(flag == 0){
      
          Serial.print("Current freq: ");
          BTSerial.println("Current freq: ");
          
          Serial.print(current_freq);
          Serial.print("MHz Signal: ");
          
          BTSerial.print(current_freq);
          BTSerial.print("MHz Signal: ");
          
          //Strereo or mono ?
          if (stereo){
            Serial.print("STEREO "); 
            BTSerial.println("STEREO ");
          } 
          else{
            Serial.print("MONO ");
            BTSerial.println("MONO ");
          } 
      
          Serial.print(signal_level);
          Serial.println("/15");
          BTSerial.print(signal_level);
          BTSerial.println("/15");
          flag=1;
     }
  }
     
  //When button pressed, search for new station
  if (search_mode == 1) {
      if (Radio.process_search (buf, search_direction) == 1) {
          search_mode = 0;
          shift_channel = false;
      }
  }
  //If forward button is pressed, go up to next station
  if (inByte == '8') {
    last_pressed = current_millis;
    search_mode = 1;
    search_direction = TEA5767_SEARCH_DIR_UP;
    Radio.search_up(buf);
  }
  //If backward button is pressed, go down to next station
  if (inByte == '9') {
    last_pressed = current_millis;
    search_mode = 1;
    search_direction = TEA5767_SEARCH_DIR_DOWN;
    Radio.search_down(buf);
  } 
  delay(500);

}

Esegui il dowload di tutta la cartella di progetto, dentro troverai:

  1. Circuiti di montaggio dei vari componenti;
  2. Sketch del progetto da caricare sull’Arduino;
  3. Libreria TEA5767 da integrare nelle librerie dell’Arduino IDE;

DOWNLOAD SKETCH E RISORSE


Download Arduino Bluetooth App

Scarica l’App Arduino Bluetooth di Pege3, e aprila in “modalità terminale”, dove potrai inserire un numero delle opzioni previste dallo sketch per controllare il modulo SMOKING.

Arduino Bluetooth Controller App PEGI3

DOWLOAD APP


Quali funzioni sono incluse nello SMOKING?

Queste sono le funzionalità che ho attualmente previsto, ma sei libero di espanderle aggiungendo nuovi sensori e funzionalità.

Ecco cosa puoi fare inserendo un numero di comando e lanciando invio:

  • COMANDI PER I LED
    • Premi 0: Spegni i LED;
    • Premi 1: Accendi i LED;
    • Premi 2: Effetto Sinusoide LED;
    • Premi 3: Strobo LED leggero;
    • Premi 4: Strobo LED forte;
    • Premi 5: Effetto luce pulsante;
  • COMANDI PER LA RADIO
    • Premi 7: Accendi la Radio FM;
    • Premi 8: Vai avanti di una stazione FM;
    • Premi 9: Torna indietro di una stazione FM

Montaggio finale su basetta o involucro

Nel mio caso ho creato una struttura di polistirolo e cartone dove ho disposto tutta l’elettronica per creare lo SMOKING del mio monopattino, per portelo usare la notte durante i miei giri estivi per la campagna.

Qui riporto lo schema semplificativo di montaggio:

Schama di Montaggio Finale Smoking Module- Party Module

Ho cercato di renderlo più compatto possibile, affinché fosse portatile da mettere anche in un bagaglio a mano o nello zainetto.

Con questo modulo sono andato pure in Lettonia, dove ho partecipato a un progetto di scambio europeo e qui puoi anche trovare informazioni su come parteciparvi.

Sapessi le risate quando all’aeroporto mi hanno fermato ho dovuto spiegare cosa fosse, infatti la guardia mi ha guardato in modo perplesso e mi ha detto che noi italiani siamo inventori, ma con quel coso mi avrebbero fatto questioni in tutti gli aeroporti.

Comunque è stata una bella esperienza, grazie a questo modulo abbiamo organizzato una bella festa in mezzo ai boschi sperduti della Lituania.

Quando non puoi andare in discoteca, portala in viaggio 😉

Se ti può interessare ho creato anche la versione discoteca da polso con sensore di movimento.

Questo è come si presenta il risultato finale:

Smoking Arduino modulo intelligente estensore di monopattino

Ho pensato in seguito di aggiungere un jack di alimentazione a 12 volt, mettendo i contatti positivo e negativo in parallelo ai morsetti d’ingresso del vano batterie, cosi da alimentare un led supplementare come faro frontale.

Monopattino elettrico con smoking e faro anteriore a striscia led frontale

Do you like the Article?


Prev Post
Next Post
Copied!