- Materials necessaris:
- Instal·lació de Python a l'ordinador:
- Obtenir PySerial a Python:
- El nostre primer programa Arduino Python:
- Control de LED amb Python i Arduino:
Arduino sempre ha estat una plataforma d'aprenentatge / desenvolupament potent i fàcil d'utilitzar quan es tracta de desenvolupament de maquinari de codi obert. En el món modern actual, cada maquinari funciona amb un llenguatge de programació d’ús general d’alt nivell per fer-lo més eficaç i fàcil d’utilitzar. Un d’aquests idiomes és Python. Python és un llenguatge de programació interpretat, orientat a objectes i d’alt nivell, amb semàntica dinàmica amb estructures de dades integrades d’alt nivell, combinat amb mecanografia dinàmica i vinculació dinàmica, el fan molt atractiu per al desenvolupament d’aplicacions ràpides.
La combinació de la potència d’Arduino i Python obrirà portes a moltes possibilitats, ja que Python té una productivitat augmentada amb la seva capacitat d’interactuar amb altres plataformes com openCV, Matlab, etc. Per tant, en aquest tutorial aprendrem com podem instal·lar Python al nostre ordinador. i com utilitzar-lo amb Arduino per canviar el LED incorporat d'Arduino.
Comencem, doncs,….
Materials necessaris:
- Arduino Uno (o qualsevol tauler Arduino)
- Ordinador amb connexió a Internet
Instal·lació de Python a l'ordinador:
Viouslybviament, el primer pas d’aquest tutorial seria instal·lar Python al nostre ordinador. Els passos que s'esmenten a continuació només s'apliquen als usuaris de Windows que tinguin un sistema operatiu de 32 o 64 bits. El procediment d’instal·lació per a MAC i Linux és diferent.
- Feu clic a Python-2.7.9 de 32 bits i això instal·larà el Python IDLE de 32 bits al vostre ordinador. No descarregueu la versió de 64 bits ni les versions actualitzades, ja que no proporcionen suport per a les nostres biblioteques Arduino. Fins i tot si l’ordinador funciona amb 64 bits, podeu utilitzar el propi Python de 32 bits.
- Obriu el fitxer exe descarregat i seguiu les instruccions. No canvieu el directori on s’instal·la el python. Serà C: \ Python27 per defecte i el deixareu com a tal.
- Mentre es realitzi la instal·lació, és possible que rebeu un avís del vostre antivirus (si n’hi ha) en aquest cas, feu clic a permetre.
Això és tot! Python s'ha instal·lat correctament al nostre ordinador. Podeu verificar-lo cercant "Python IDLE" al quadre de cerca de Windows i obrint-lo.

Quan s'obri, hauríeu d'obtenir la següent pantalla. Aquesta finestra s’anomena Python Shell i a partir d’ara ens referirem a ella com a “ shell Python ”.

Aquesta pantalla s’anomena Python Shell. Podeu codificar directament aquí i obtenir la sortida a la mateixa pantalla o crear un fitxer nou i escriure-hi el programa i verificar-lo aquí. Més endavant entrarem en els detalls de la creació d’un programa Python, ara com ara comprovem si Python funciona.
Per fer-ho, només cal que escriviu “ imprimir (1 + 1) ” i premeu Retorn. Hauríeu de veure com s’imprimeix el resultat tal com es mostra a continuació.

Obtenir PySerial a Python:
El següent pas és instal·lar pyserial. PySerial és un mòdul API Python que s’utilitza per llegir i escriure dades de sèrie a Arduino o qualsevol altre microcontrolador.
Feu clic a Pyserial Windows per descarregar PySerial. La descàrrega resultant serà un fitxer exe que es pot instal·lar directament. No canvieu cap paràmetre durant la instal·lació. Deixeu-lo al directori i a la configuració predeterminats.
Ara, comprovem si PySerial està instal·lat correctament. Per fer-ho, torneu a obrir Python Shell i escriviu
importació de sèries . Si la biblioteca s'ha instal·lat correctament, no hauríeu d'obtenir cap missatge d'error tal com es mostra a la imatge següent. Si teniu algun error, publiqueu-los a la secció de comentaris i provarem de resoldre-ho.

Aquest tutorial suposa que coneixeu Arduino i que teniu experiència en la càrrega de projectes a Arduino. Així que anem directament al nostre programa Python. Si sou principiant amb Arduino, consulteu els nostres Projectes Arduino i comenceu amb el LED Parpellejant amb Arduino.
El nostre primer programa Arduino Python:
Com s’ha dit anteriorment, controlarem el LED de la placa Arduino incorporat mitjançant l’escriptura Python. Comencem pel codi Arduino.
Programa per a Arduino:
El programa complet d’aquest tutorial d’Arduino python es dóna al final d’aquesta pàgina. Seguiu llegint per saber com funciona.
Dins de la funció de configuració inicialitzem la comunicació serial a una velocitat de 9600 baud i declarem que utilitzarem el led incorporat com a sortida i el baixarem durant l’inici del programa. També hem enviat un missatge de benvinguda a python mitjançant impressió en sèrie, tal com es mostra a continuació:
configuració nul·la () {Serial.begin (9600); // inicialitzar COM sèrie a 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // feu el pin LED (13) com a sortida digitalWrite (LED_BUILTIN, LOW); Serial.println ("Hola !, sóc Arduino"); }
Dins de la funció de bucle , llegim quines siguin les dades que entren en sèrie i assignem el valor a la variable "dades". Ara, basant-nos en el valor d'aquesta variable ("dades"), commutem el led incorporat tal com es mostra a continuació.
bucle buit () {while (Serial.available ()) {data = Serial.read (); } if (data == '1') digitalWrite (LED_BUILTIN, HIGH); else if (dades == '0') digitalWrite (LED_BUILTIN, BAIX); }
Programa per a Python:
El programa complet de Python d’aquest tutorial es dóna al final d’aquesta pàgina. Llegiu més per saber escriure i utilitzar el mateix.
- Obriu el vostre Python Shell (Python IDLE) i feu clic a Fitxer-> Nou
- Això obrirà un fitxer de text nou on podreu escriure al vostre programa.
- Abans d’escriure qualsevol cosa, podem desar el fitxer mitjançant Ctrl + S. Escriviu qualsevol nom i feu clic a Desa. Això us guardarà automàticament el fitxer a l'extensió ".py".
- Ara, escriviu el programa o enganxeu el codi python que es dóna al final d'aquesta pàgina. A continuació s’explica el mateix i finalment executeu el programa.
Al nostre programa, el primer pas seria importar la biblioteca de temps i sèrie. La biblioteca en sèrie, com s’ha dit anteriorment, s’utilitzarà per llegir i escriure dades en sèrie i la biblioteca de temps s’utilitzarà per crear retards al nostre programa. Aquestes dues biblioteques es poden importar al nostre programa mitjançant les dues línies següents:
importació de sèrie #Serial importat per a temps d'importació de comunicació sèrie # Necessari per utilitzar funcions de retard
El següent pas seria inicialitzar un objecte de sèrie mitjançant la nostra biblioteca de sèries. En aquest programa hem anomenat el nostre objecte sèrie com a "ArduinoSerial" . En aquesta línia hem d'esmentar el nom del port COM al qual està connectat el nostre Arduino i a quina velocitat de transmissió està funcionant, tal com es mostra a continuació.
ArduinoSerial = serial.Serial ('com18', 9600)
Nota: és molt important esmentar el nom del port COM correcte. Es pot trobar mitjançant l'administrador de dispositius de l'ordinador.
Tan aviat com s'inicialitzi l'objecte de sèrie, hauríem de mantenir el programa durant dos segons perquè s'estableixi la comunicació en sèrie. Això es pot fer mitjançant la línia següent:
time.sleep (2)
Ara podem llegir o escriure qualsevol cosa des de / a la nostra placa Arduino.
La línia següent llegirà tot el que prové d'Arduino i l'imprimirà a la finestra de l'intèrpret d'ordres
imprimir ArduinoSerial.readline ()
També podeu assignar el valor a una variable i utilitzar-lo per a càlculs.
La línia següent escriurà el valor del paràmetre a la placa Arduino.
ArduinoSerial.write ('1')
Aquesta línia escriurà '1' a l'Arduino. Podeu enviar qualsevol cosa des de decimals a cadenes mitjançant la mateixa línia.
Ara, tornant al nostre programa, dins del bucle while infinit, tenim les línies següents
var = raw_input () #obtindre l'entrada de l'usuari imprimir "heu introduït", var #imprimir l'entrada per confirmar si (var == '1'): #si el valor és 1 print ("LED activat") time.sleep (1) if (var == '0'): #si el valor és 0 ArduinoSerial.write ('0') #send 0 print ("LED apagat") time.sleep (1)
La línia var = raw_input obtindrà qualsevol valor que s’escrigui a l’escriptura Shell i assignarà aquest valor a la variable var .
Més endavant, si el valor és 1, s'imprimirà '1' en sèrie a Arduino i si 0 imprimirà '0' en sèrie a Arduino. El codi del nostre programa Arduino (comentat anteriorment) canviarem el LED en funció del valor rebut.
Un cop fet el programa complet, el vostre guió hauria de tenir un aspecte semblant a continuació

Ara feu clic a Executa -> Executa el mòdul o premeu F5, potser us demanarà que deseu el programa i el llanci.
Control de LED amb Python i Arduino:
El funcionament d’aquest projecte és força senzill. Pengeu el programa al vostre Arduino i verifiqueu que estigui connectat al mateix port COM que s’esmenta al programa python. A continuació, inicieu el programa Python tal com s'ha esmentat anteriorment.
Això llançarà un script de shell de Python com es mostra a continuació. La finestra de l'esquerra és la finestra de l'intèrpret d'ordres que mostra la sortida i la finestra de la dreta és l'script que mostra el programa.

Com podeu veure, la cadena "Hola !, sóc Arduino" introduïda al programa Arduino és rebuda per Python i es mostra a la finestra de l'intèrpret d'ordres.
Quan la finestra de l'intèrpret d'ordres demana introduir valors, podem introduir 0 o 1. Si enviem 1, el LED de la placa Arduino s'encendrà i si enviem 0, el LED de la nostra placa Arduino s'apagarà. Es mostra una connexió amb èxit entre el nostre programa Arduino i Python.
A continuació hi ha dos programes, un per penjar-lo i executar-lo des d’Arduino i el segon per executar-lo des de Python Shell al Windows.
Espero que hagueu entès el projecte i el pogueu fer funcionar. Si no, publiqueu el vostre problema al comentari següent i estaré encantat d’ajudar-vos. En el nostre proper projecte aprendrem què més es pot fer amb Python i Arduino explorant altres mòduls de Python com Vpython, gamepython, etc.
