Comunicazione Arduino – Python 4.8/5 (10)

Ti piace questo articolo? Condividilo dove vuoi!

Il controllo vocale con Arduino, già visto precedentemente (link) può essere ampliato e personalizzato. In questo articolo vedremo come pilotare un Arduino tramite Python. Quest’ultimo è un linguaggio molto noto e versatile. La sua funzionalità, questo codice, sarà limitata. Anche la comunicazione Arduino – Python può essere ampliata e personalizzata, vedremo presto come.

Comunicazione Arduino – Python: come?

Python, grazie ad una libreria, scriverà i nostri comandi sulla seriale in cui è collegato il nostro Arduino. Quest’ultimo, come per la comunicazione via bluetooth, attenderà comandi dalla seriale. Se questi saranno riconosciuti, allora saranno eseguiti, altrimenti non accadrà nulla. Per iniziare daremo un input scritto. Successivamente implementeremo il riconoscimento vocale.

Python: installazione

Se non avete mai programmato in Python, nessun problema, questo codice sarà molto semplice da capire e riprodurre. Altrimenti, vi consiglio di passare direttamente al prossimo passaggio. Come prima cosa abbiamo bisogno di installare quest’ultimo sul nostro computer. A questo link troverete l’ultima versione disponibile (al momento 3.9.5). Dopo aver seguito la procedura d’installazione saremo pronti ad iniziare.

Python: prompt comandi

Come detto prima, per far sì che il nostro Arduino riceva ed esegua i comandi inviatigli, avremo bisogno di una libreria che scriva sulla seriale. Questa è chiamata serial. Se avete già programmato o avete già la libreria installata, vi consiglio di passare al prossimo punto. Altrimenti, installare la libreria sarà molto semplice. Ci basterà accede al prompt dei comandi. Per utenti Windows: basterà cliccare Windows + r e digitare “cmd” nel campo esegui. Altrimenti basterà cercare “cmd” nella barra di ricerca di sistema. Per utenti Mac: basterà cliccare command + spazio e nella barra di ricerca digitare “terminale”. Per utenti Linux: basterà cliccare Ctrl + Alt + t.

Python: installazione libreria

Finalmente siamo nel nostro prompt comandi, se l’installazione di Python è andata a buon fine dovremmo avere installato correttamente il pip. Per controllare sarà sufficiente digitare “pip -V” e ci verrà mostrata la versione installata. A questo punto dobbiamo digitare “pip install pyserial” e dopo qualche secondo la libreria sarà correttamente installata. Preparativi finiti, passiamo alla programmazione.

Python: il codice

Come prima cosa ci dedichiamo alla stesura del codice Python. Come editor userò l’IDLE, ma la scelta sta a voi. Una volta aperto un nuovo documento dovremo scrivere pochissime linee di codice.

Python: librerie e creazione oggetti

Innanzitutto, avremo bisogno di importare la libreria precedentemente installata, quindi “import serial”. Avremo anche bisogno della libreria time, presente di default. Quindi “import time”. Questa ci permetterà di attendere un secondo. Successivamente creiamo un oggetto serial. Questo avrà il nome “arduino”. Quindi “arduino =” assegno all’oggetto “arduino” un valore, “serial.Serial” specifico che si tratta di un oggetto serial, “(COM3, 115200)”. In questi due campi ho indicato la porta “COM3” e il baudrate. La porta a cui è connesso il nostro Arduino è facilmente individuabile dall’ide. Sarà necessario collegare la nostra scheda e sotto la voce “Strumenti” cercare “porta” e tra queste individueremo quella corretta facilmente. Sarà infatti scritto il nome della nostra scheda, di fianco al nome della porta. Se così non dovesse essere, provate a scollegare e collegare la vostra scheda in modo da individuare la porta giusta. Il baudrate invece va scelto in base alla scheda. Di default, per Arduino uno, sarebbe 9600.

Python: ciclo while

Per far sì che il nostro programma sia sempre eseguito, dobbiamo creare un ciclo continuo. Ecco quindi il “while(True)” che corrisponde ad un “finché è vero” e lo sarà sempre, allora esegui queste azioni. Come prima cosa creiamo una variabile “comando”, in Python non è necessario specificare il tipo di variabile. A questa assegniamo un “input(“Cosa posso fare per te? ”)”. Questa funzione ci permette di scrivere la frase tra doppi apici in fase di esecuzione del programma e di aspettare per l’appunto un “input” dall’utente. In questo caso l’input sarà scritto. Avremo inoltre bisogno di una funzione “.encode()” che converte la stringa. Per i più curiosi, qui un link per approfondire. Infine diciamo al nostro programma di scrivere sull’oggetto “arduino, quindi “arduino.write” il nostro comando “(comando)”.

Arduino: il codice

Abbiamo finito con Python, adesso dobbiamo programmare il nostro Arduino. Il codice lo riprendiamo dal controllo vocale con Arduino. Riporto qui i passaggi. Come prima cosa indichiamo le 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. La seconda, chiamata “ch” (abbreviazione per “character”) è una variabile di tipo char. Infine un #define per creare una costante led con valore 13.

Arduino: setup e loop

Nel setup andiamo a inizializzare la comunicazione seriale a 115200 baudrate. Questa va assolutamente concordata con quella precedentemente scritta nel codice Python.  Successivamente dichiariamo il led come output. Nel loop viene svuotata la stringa msg. Se sulla seriale sono disponibili informazioni, queste vengono assegnate alla variabile ch. I caratteri ricevuti vengono aggiunti alla stringa msg. La funzione .toLowerCase() trasforma la stringa ricevuta 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.

Collegamento

L’unico collegamento da fare è quello del led.  Quindi basterà collegare il nostro led al pin 13 (o al pin scelto), tramite l’uso di una resistenza da 220ohm.

Funzionamento

Come prima cosa sarà necessario caricare il codice sul nostro Arduino. Una volta fatto ciò dovremo tornare sul nostro compilatore Python ed eseguire il codice. Per chi usa IDLE sarà necessario premere F5. A questo punto verrà scritta la frase precedentemente inserita nell’input e il programma attenderà il nostro input. Scrivendo “acceso” o “spento”, se avremo eseguito tutti i passaggi correttamente, vedremo il nostro led accendersi o spegnersi.

Valuta questo articolo, è anonimo e non richiede registrazioni!

Cristina Genduso

Ho 18 anni e attualmente frequento il liceo classico. Sono molto appassionata del mondo IOT, in particolare di quello accessibile a tutti. Sono abbastanza nuova nel mondo di arduino e della programmazione, ma non vedo l'ora di conoscerlo a pieno.


Scansiona il QRCode per leggerlo sul cellulare!

Scansiona il QRCode con la nostra applicazione ufficiale per leggere l'articolo sul tuo smartphone Android! Scarica l'ultima versione


SPONSORIZZATO

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *