Controllo vocale con Arduino
Indice
Controllo vocale con Arduino
Negli ultimi tempi si sta sempre più diffondendo l’uso degli assistenti vocali nella vita di tutti i giorni. Con Arduino è possibile creare qualcosa di simile. Vedremo oggi come, grazie al controllo vocale con Arduino, come sia possibile pilotare un led. Questo progetto, almeno alle fasi iniziali, risulterà basilare e “semplice”, l’obiettivo tuttavia è quello di svilupparlo e migliorarlo man mano, fase per fase, in modo tale da concedere al lettore le conoscenze necessarie per personalizzarlo.
Controllo vocale con Arduino: componenti necessari
- Un modulo bluetooth (consigliato)
- Una scheda Arduino (consigliato)
- Jumper wires m-m
- Una mini breadboard
- Uno, o più, led
Acquistando dai link affiliati date una mano alla redazione!
Il codice: libreria
La prima parte di codice è destinata alle librerie. L’unica libreria che ci servirà per la realizzazione di questo progetto è la SoftwareSerial (download). Dopo averla scaricata sarà sufficiente recarsi sull’IDE di Arduino e nella sezione “sketch” andare su “#include libreria” e poi “aggiungi libreria da file .ZIP”.
Il codice: variabili
La seconda parte è dedicata alle variabili. ATTENZIONE, i nomi utilizzati per le variabili da me create sono, per convenzione, in inglese, tuttavia possono essere modificati a piacimento. La prima chiamata “msg” (abbreviazione per “message”), è una stringa vuota. Una stringa è una variabile che può contenere delle frasi. La seconda, chiamata “ch” (abbreviazione per “character”) è una variabile di tipo char. Questa è una variabile che può contenere singoli caratteri alfabetici. Infine un #define per creare una costante led con valore 13. Infatti il nostro led sarà collegato al pin 13.
Il codice: mySerial
La terza parte è dedicata alla creazione di una seriale sui pin 6 e 7. L’oggetto mySerial, serve ad inizializzare una comunicazione seriale sui pin da me scelti, 6 e 7. Questi rappresentano i ben noti RX e TX, utili alla comunicazione seriale. I due di base di Arduino li ho lasciati liberi in modo da poter controllare l’output sul monitor seriale.
Il codice: setup
Quarta parte, questa è la porzione di codice eseguita al primo avvio. Viene avviata la porta seriale a 115200 baudrate. Sul monitor seriale, che va aperto e impostato su 115200, riceveremo un “Ok” se la connessione seriale funziona. Infine, viene indicato il led come output e viene spento. Viene inoltre avviata la comunicazione seriale a 9600 baudrate sulla seriale del bluetooth.
Il codice: loop
La quinta ed ultima parte è quella del loop. Questa porzione di codice viene eseguita ciclicamente. Viene svuotata la stringa msg. Se sulla seriale da me creata, ci sono informazioni, queste verranno assegnate alla variabile ch. Se ch è uguale al carattere #, carattere di fine stringa, allora esce dal ciclo while, altrimenti aggiunge i caratteri ricevuti alla stringa msg. La funzione .toLowerCase() trasforma la stringa ricevuta tutta in caratteri minuscoli. Se il messaggio è più lungo di 0, allora controlla che il messaggio ricevuto sia uguale ad “acceso” o “spento”. Se così fosse, accende o spegne il led, altrimenti non fa nulla.
Collegamenti
I collegamenti sono piuttosto semplici. Per cominciare basterà collegare il nostro led al pin 13, tramite l’uso di una resistenza da 220ohm. Per quanto riguarda il modulo bluetooth, dovremo collegare il gnd al gnd di Arduino e il vcc al 5v di Arduino, poi il TX al pin 6 di Arduino e RX al pin 7 di Arduino.
Funzionamento
Grazie all’app Arduino Voice Control (download) sarà possibile connettere il nostro modulo bluetooth al telefono. Una volta fatto ciò basterà cliccare il tasto centrale per l’ascolto vocale e dire “acceso” o “spento”. In tal modo il nostro led si accenderà o si spegnerà!
Commenti recenti