- Materiale richiesto
- Modulo Bluetooth HC-06
- Schema elettrico
- Configurazione dell'app Roboremo per il controllo dei servo:
- Codice e spiegazione
- Funzionamento del controllo del servomotore tramite Bluetooth:
L'uso di un servomotore è comune nella robotica per un controllo preciso. Qui, in questo tutorial ti mostreremo come utilizzare un servomotore in modalità wireless con un Arduino UNO e un dispositivo Android tramite connessione Bluetooth. Abbiamo già controllato il servo con Arduino, questa volta stiamo controllando il servomotore usando Arduino e Bluetooth.
Materiale richiesto
- Arduino UNO
- Modulo Bluetooth HC-05 o HC-06
- Servomotore
- App Roboremo da Playstore
- Breadboard
- Cavo di collegamento
Modulo Bluetooth HC-06
Il Bluetooth può funzionare nelle due modalità seguenti:
- Modalità di comando
- Modalità operativa
In modalità comandi saremo in grado di configurare le proprietà Bluetooth come il nome del segnale Bluetooth, la password, la velocità di trasmissione di funzionamento ecc La modalità di funzionamento è quello in cui saremo in grado di inviare e ricevere dati tra il microcontrollore PIC e il modulo Bluetooth. Quindi in questo tutorial giocheremo solo con la modalità operativa. La modalità di comando verrà lasciata alle impostazioni predefinite. Il nome del dispositivo sarà HC-05 (sto usando HC-06) e la password sarà 0000 o 1234 e, cosa più importante, la velocità di trasmissione predefinita per tutti i moduli Bluetooth sarà 9600.
Il modulo funziona con alimentazione a 5 V e i pin del segnale funzionano a 3,3 V, quindi nel modulo stesso è presente un regolatore da 3,3 V. Quindi non dobbiamo preoccuparcene. Dei sei pin, solo quattro verranno utilizzati in modalità operativa. La tabella di collegamento dei pin è mostrata di seguito
S.No | Pin su HC-05 / HC-06 | Nome pin su MCU | Numero pin in PIC |
1 | Vcc | Vdd | 31 st pin |
2 | Vcc | Gnd | 32 ° pin |
3 | Tx | RC6 / Tx / CK | 25 ° perno |
4 | Rx | RC7 / Rx / DT | 26 ° perno |
5 | Stato | NC | NC |
6 | EN (Abilita) | NC | NC |
Controlla i nostri altri progetti per saperne di più sul modulo Bluetooth HC-05 con altri microcontrollori:
- Macchinina controllata tramite Bluetooth con Arduino
- Sistema di automazione domestica controllato tramite Bluetooth utilizzando 8051
- Luci a controllo vocale utilizzando Raspberry Pi
- Radio FM controllata da smartphone utilizzando Arduino ed elaborazione
- Interfacciamento del modulo Bluetooth HC-06 con microcontrollore PIC
Controlla anche tutti i progetti relativi al bluetooth qui.
Schema elettrico
Di seguito è riportato lo schema del circuito per questo progetto di controllo del servomotore Bluetooth Arduino:
Configurazione dell'app Roboremo per il controllo dei servo:
Passaggio 1: - Scarica l'app Roboremo dal Play Store di Android e installala sul tuo smartphone. Dopo averlo installato vedrai la finestra dell'app come mostrato in figura1 e cliccando sul pulsante 'Menu' vedrai la finestra mostrata in figura2 sotto:
Passaggio 2: - Quindi fare clic sul pulsante di connessione e verrà visualizzata la finestra mostrata nella figura 3 di seguito, quindi selezionare " Bluetooth RFCOMM" e quindi sarà possibile connettere il modulo Bluetooth HC-06 con l'app Android "Roboremo".
Fase 3: - Dopo il collegamento alla HC-06 Bluetooth modulo tornare a Figura 2 finestra e poi cliccare su ' Modifica ui ' per creare l'interfaccia utente in base alle proprie necessità.
Quando si fa clic su "modifica interfaccia utente" , verrà nuovamente visualizzata la finestra mostrata in figura 1, quindi fare clic in un punto qualsiasi dello schermo, verrà visualizzata la finestra dell'app come in figura4 e selezionare " Pulsante " per ottenere la struttura dei pulsanti.
Passaggio 4: - Dopo aver selezionato il pulsante, sullo schermo verrà visualizzata una struttura dei pulsanti da modificare. Puoi ridimensionare e spostare la struttura ovunque sullo schermo. Ora, per impostare il valore da inviare al click tramite Bluetooth devi 'impostare l'azione di pressione' (come mostrato in figura 6) e digitare il valore che vuoi inviare da quel particolare pulsante. Ad esempio, stiamo inviando "1" per ruotare il servo premendo il pulsante "Start" nell'applicazione Android Roboremo.
È possibile controllare tutti i valori, inviati facendo clic su diversi pulsanti, nella tabella riportata più avanti.
Passaggio 5: - Finalmente abbiamo l' interfaccia utente per controllare il servomotore tramite Smartphone.
Codice e spiegazione
Alla fine viene fornito il codice completo per il servomotore di controllo Arduino tramite Bluetooth.
Arduino ha una libreria per i servomotori e gestisce tutte le cose relative al PWM per ruotare il servo, devi solo inserire l'angolo a cui vuoi ruotare e c'è la funzione servo1.write (angle); che ruoterà il servo all'angolo desiderato.
Quindi qui iniziamo definendo la libreria per Servo motore e la libreria Software Serial viene utilizzata per definire i pin Rx e Tx.
#includere
Nel codice seguente, stiamo inizializzando i pin Arduino per Rx e Tx, definendo le variabili per servo e altre cose .
Servo myServo; int TxD = 11; int RxD = 10; int servoposizione; int servopos; int new1; Software Bluetooth seriale (TxD, RxD);
Ora imposta tutte le variabili e i componenti nella fase iniziale. Qui abbiamo collegato il servo al 9 ° pin di Arduino e abbiamo portato la posizione iniziale del servo a 0 gradi. Anche la velocità di trasmissione per la comunicazione seriale e Bluetooth è stata impostata su 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // avvia la comunicazione seriale a 9600bps bluetooth.begin (9600); }
Nella funzione void loop , Arduino controllerà sempre i valori in arrivo e ruoterà il servo in base al valore ricevuto dallo smartphone. Tutti i valori verranno ricevuti utilizzando la comunicazione seriale.
Se il valore è 0 il servo ruoterà a 0 gradi. Allo stesso modo, se inviamo 45, 90, 135 e 180 dall'applicazione Bluetooth, il servo ruoterà rispettivamente a 45, 90, 135 e 180 gradi.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servoposizione = value.toInt (); if (value.toInt () == 0) { Serial.println (servoposizione); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servoposizione); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servoposizione); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposizione); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposizione); myServo.write (180); }
Se inviamo il valore '1' premendo il pulsante Start , il servo ruoterà continuamente finché non viene premuto il pulsante Stop . Qui stiamo inviando "2" premendo il pulsante di arresto , che verrà letto da Arduino e interromperà il ciclo while e il servo verrà interrotto.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (valore); if (value.toInt () == 2) {Serial.println ("YYY"); rompere; }} servopos ++; ritardo (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Funzionamento del controllo del servomotore tramite Bluetooth:
In questo progetto, stiamo controllando il servomotore utilizzando un'applicazione Android "Roboremo". Nell'interfaccia di questa applicazione, abbiamo creato 5 pulsanti per controllare il servomotore come spiegato in precedenza. Il funzionamento di ogni pulsante è riportato nella tabella sottostante:
S.No. |
Nome pulsante |
Invio di valore |
Descrizione |
1. |
Inizio |
1 |
Questo pulsante viene utilizzato per avviare la rotazione del servo da 0⁰ a 180⁰. |
2. |
Fermare |
2 |
Questo pulsante viene utilizzato per fermare il servo in qualsiasi punto. |
3. |
0⁰ |
0 |
Questo pulsante viene utilizzato per ruotare il servo a 0⁰. |
4. |
90⁰ |
90 |
Questo pulsante viene utilizzato per ruotare il servo di 90 °. |
5. |
180⁰ |
180 |
Questo pulsante viene utilizzato per ruotare il servo di 180 °. |
Quindi, premendo questi pulsanti sulla tua app Android Roboremo , i dati verranno inviati tramite il Bluetooth dello smartphone al modulo Bluetooth HC-06. Da quel modulo HC-06 i dati vengono ricevuti da Arduino e Arduino ruota il Servo con l'angolo definito nel codice per il pulsante specifico. Abbiamo anche codificato per l'angolo 45 e 135, ma a causa della limitazione dell'app Roboremo, puoi creare solo 5 pulsanti, quindi abbiamo saltato due pulsanti.
Quindi è così che puoi inviare i dati dallo smartphone ad Arduino usando il Bluetooth per controllare il servo in modalità wireless. Questo può essere utilizzato in molte applicazioni come macchinine, robot ecc.