Come programmare e controllare un Arduino con Python

Come programmare e controllare un Arduino con Python

Python ha preso d'assalto il mondo della programmazione. Accanto all'ascesa di questo nuovo linguaggio, è fiorita anche la scena dell'elettronica fai-da-te. Schede di sviluppo e computer a scheda singola di aziende come Arduino e Raspberry Pi hanno cambiato il modo in cui le persone creano elettronica prodotta in casa. Non sarebbe fantastico se potessi programmare un Arduino con Python?





come cambiare i dpi in photoshop

Non c'è sensazione migliore che combinare due cose interessanti. Purtroppo, è impossibile programmare direttamente un Arduino con Python, poiché le schede non hanno opzioni per l'interpretazione integrata del linguaggio. Ciò che è possibile, tuttavia, è il controllo diretto su USB utilizzando un programma Python.





Questo articolo ti mostrerà come configurare un Arduino UNO (anche se qualsiasi scheda compatibile con Arduino può funzionare qui) per essere programmato e controllato dalla riga di comando utilizzando programmi Python. Questo tutorial è scritto per Windows 10, ma funziona anche per Mac e Linux. Puoi persino utilizzare questo flusso di lavoro per controllare un Arduino direttamente da un Raspberry Pi per l'ultima esperienza fai-da-te double-down.





Configurare Arduino per Python

Per il progetto di oggi utilizzeremo un Arduino Uno, insieme all'interfaccia pyFirmata per Python. È possibile utilizzare quasi tutte le schede compatibili con Arduino per questo, anche se al momento della scrittura solo Arduino Uno, Mega, Due e Nano sono supportati dall'interfaccia pyFfirmata. Se sei già un guru di Python, puoi aggiungere il tuo supporto per la scheda a pyFirmata -- assicurati di aggiornare il loro GitHub se lo fai!

Se non l'hai già fatto, installa l'IDE Arduino. Se sei completamente nuovo nel mondo dei microcontrollori, il nostro guida per principianti ad Arduino ti aiuterà a mettere tutto a posto.



Collega la tua scheda Arduino e apri l'IDE. Assicurati di aver selezionato la scheda e la porta corrette nel Utensili menù. Carica il StandardFirmata schizzo di esempio e caricalo sulla lavagna. Ciò ti consentirà di controllare direttamente Arduino purché sia ​​collegato al computer tramite USB. A condizione che lo schizzo venga caricato sulla tua scheda senza errori, sei pronto per andare avanti.

Python e controllo della riga di comando

Useremo Python 3.4 per controllare il nostro Arduino, poiché il modulo che installerai lo specifica come l'ultima versione compatibile. Qualsiasi versione precedente dovrebbe funzionare correttamente e le versioni successive sono state segnalate per funzionare. Puoi scaricare Python 3.4 per Windows 10 dal Python Software Foundation posto. Se desideri eseguire più versioni di Python, la nostra guida agli ambienti virtuali Python sarà in grado di aiutarti.





Una volta installato Python, vogliamo aggiungerlo alla variabile PATH del tuo sistema. Questo ci consentirà di eseguire il codice Python direttamente dalla riga di comando senza dover essere nella directory in cui è stato installato. Puoi farlo aprendo il Pannello di controllo , alla ricerca di Ambiente e clicca su Modifica le variabili di ambiente del sistema . Nella parte inferiore della finestra selezionare variabili ambientali . Questo farà apparire questa finestra:

Se già vedi IL PERCORSO nell'elenco, fai clic su modifica e aggiungi il tuo Pitone e Python/Script directory. Se non hai una variabile PATH, fai clic su nuovo e aggiungila. Nota che Python è stato installato direttamente nel C: qui. Se lo hai installato altrove, dovrai modificarlo per riflettere questo. Fai clic su OK nella catena di finestre e sei quasi pronto per controllare il tuo Arduino con Python!





Il grasso magico

Avrai bisogno di un ultimo pezzo del puzzle per far parlare Python bene con il nostro Arduino. Questo si presenta sotto forma di un'interfaccia Python chiamata pyFirmata . Questa interfaccia, creata da Tino de Bruijn è disponibile per il download da github, anche se puoi installarlo direttamente dalla riga di comando digitando:

pip install pyfirmata

Se tutto va bene, dovrebbe installarsi e assomigliare a questo:

Se fallisce, vai oltre aggiungendo Python al Variabile d'ambiente sezione e assicurati di aver fornito il percorso corretto alla tua directory Python.

Fare in modo che succeda

Ora tutto è pronto e puoi creare un programma Python per il tuo Arduino per testarlo. Apri un IDE a tua scelta. Useremo Eclisse oggi, ma potresti facilmente utilizzare qualsiasi editor di testo o anche un IDE nel cloud.

Crea un nuovo script e salvalo come lampeggio.py . Rompendo la tradizione con il programma LED lampeggiante standard, creerai un programma che richiede all'utente il numero di volte in cui desidera che il LED lampeggi prima di eseguirlo. È un programma breve, che puoi scarica qui se vuoi arrivarci direttamente, ma scomponiamolo.

In primo luogo, ti consigliamo di importare ciò di cui hai bisogno dal pyFirmata modulo, insieme allo standard Python Tempo modulo.

come modificare le foto in gimp
from pyfirmata import Arduino, util
import time

Ora ti consigliamo di configurare la scheda Arduino. Questo articolo presuppone che tu stia utilizzando un Arduino uno board, sebbene siano supportate diverse altre schede Arduino. Fare riferimento al github pyFirmata per i dettagli sul supporto della scheda.

Controlla quale porta COM stai utilizzando nell'IDE Arduino e inseriscila nel tuo codice come variabile tavola .

board = Arduino('COM3')

Ora imposterai il prompt dell'utente. Chi ha familiarità con Python riconoscerà tutto qui. Stampa una domanda sullo schermo usando il tasto ingresso funzione e memorizzare la risposta come variabile. Una volta che l'utente ha fornito un numero, il programma riporta quante volte il LED lampeggerà.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

Per far lampeggiare il LED il numero appropriato di volte, si usa a per ciclo . Se sei nuovo in Python , fai attenzione al rientro, poiché a differenza di altri linguaggi gli spazi fanno parte della sintassi. Nota che il pin 13 è il LED integrato per Arduino Uno, dovrai modificarlo se la tua scheda è diversa.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

lancerai il loopTimes variabile su un numero intero qui, poiché l'input dell'utente verrà automaticamente memorizzato come stringa. In questa semplice demo, supponiamo che l'utente inserisca un valore numerico. Qualsiasi altra voce come 'otto' genererà un errore.

Salva il tuo script e apri il Prompt dei comandi .

Luci lampeggianti e altre rivelazioni

Tutto è pronto, tutto ciò che devi fare è navigare dove si trova lo script ed eseguirlo. Fallo digitando cd [percorso della directory dello script] e poi digitando python lampeggio.py .

Se tutto va bene, il tuo programma inizierà con un leggero ritardo mentre Arduino si inizializza, ti chiederà un numero e poi lampeggerà tante volte usando il LED integrato.

L'output del programma dovrebbe essere simile a questo:

Non appena premi invio dopo il numero di lampeggi prescelto, Arduino dovrebbe eseguire i tuoi ordini.

Piccoli inizi

Questo progetto è stato un inizio essenziale per la comunicazione tra Python e una scheda Arduino. Questo approccio è molto diverso dal solito flusso di lavoro di caricamento degli script sull'Arduino stesso, ma apre un modo completamente nuovo di lavorare con la piattaforma, specialmente se ti piace il linguaggio di programmazione Python.

Se usi a Server Linux a casa, questo metodo di comunicazione con le schede Arduino potrebbe estendere quel server in un vero e proprio sistema di automazione domestica fai-da-te. Combinando gli script Python che controllano il microcontrollore con un circuito di automazione fai-da-te, la tua scatola di archiviazione NAS potrebbe assumere una serie completamente nuova di funzioni utili.

cosa fare se il telefono è bloccato sullo schermo della mela

Per renderlo l'ultima esperienza fai-da-te, perché no? costruisci la tua scatola NAS e usarlo per controllare anche i tuoi elettrodomestici? Immagina quanto sarebbe bello premere play sul tuo server Plex e far spegnere automaticamente le luci!

Stai già controllando Arduino usando Python? Ci sono soluzioni sorprendenti che non conosciamo ancora? Fatecelo sapere nella sezione commenti qui sotto!

Condividere Condividere Tweet E-mail 5 suggerimenti per potenziare le tue macchine Linux VirtualBox

Stanchi delle scarse prestazioni offerte dalle macchine virtuali? Ecco cosa dovresti fare per aumentare le prestazioni di VirtualBox.

Leggi Avanti
Argomenti correlati
  • Fai da te
  • Programmazione
  • Arduino
  • Domotica
  • Pitone
Circa l'autore Ian Buckley(216 articoli pubblicati)

Ian Buckley è un giornalista freelance, musicista, performer e produttore di video che vive a Berlino, in Germania. Quando non sta scrivendo o sul palco, armeggia con l'elettronica o il codice fai-da-te nella speranza di diventare uno scienziato pazzo.

Altro da Ian Buckley

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti