
La programació d'Arduino amb Python obre un món de possibilitats per als apassionats de l'electrònica i el desenvolupament de programari. article, aprendràs com connectar tots dos mons i aprofundiràs en els passos essencials per començar a desenvolupar les teves pròpies aplicacions utilitzant aquestes tecnologies.
Arduino, Una plataforma de hardware libre, és coneguda per la seva facilitat d'ús i adaptabilitat, mentre que Pitó, un llenguatge de programació d'alt nivell, destaca per la seva simplicitat i eficàcia. Encara que Arduino sol programar-se en el seu propi llenguatge basat en C++, és possible comunicar-s'hi utilitzant Python gràcies a biblioteques com PySerial, que habiliten la comunicació mitjançant el port sèrie. Aquí explorarem a fons com realitzar aquesta integració des dels principis bàsics fins a exemples pràctics més avançats.
Requisits per començar
Abans de començar a programar Arduino amb Python, és indispensable assegurar-se comptar amb les eines i configuracions necessàries:
- Una placa Arduino: Models com el Arduino UNO, Nano o Mega són perfectes per a aquest tipus de projectes.
- Cable USB: Necessari per connectar la placa Arduino a l'ordinador.
- Python instal·lat: Pots descarregar la darrera versió de Python des de la seva pàgina oficial.
- Instal·lar la llibreria PySerial: Aquesta biblioteca és crucial per establir comunicació entre Arduino i Python. S'instal·la executant l'ordre
pip install pyserial.
Configuració bàsica a Arduino
El primer pas per connectar Arduino amb Python és configurar el dibuix d'Arduino. Aquest codi, escrit a l'IDE d'Arduino, permetrà que la placa rebi i processi les dades que Python us enviï. Per exemple, el programa següent permet encendre i apagar un LED al pin 13 segons la dada rebuda:
void setup() { Serial.begin(9600); pinMode(13, OUTPUT); } void loop() { if (Serial.available() > 0) { char data = Serial.read(); if (data == '1') { digitalWrite(13, HIGH); } else if (data == '0') { digitalWrite(13, LOW); } } }
Aquest codi estableix una comunicació pel port sèrie a 9600 bauds i espera rebre els caràcters "1" o "0" per encendre o apagar el LED integrat.
Connexió amb Python
Quan l'Arduino estigui configurat, és moment d'escriure un programa a Python que estableixi la connexió amb la placa i envieu ordres. A continuació, un exemple senzill utilitzant la biblioteca PySerial:
import serial import time # Configuració del port serial arduí = serial.Serial('COM3', 9600) time.sleep(2) # Espera per estabilitzar la connexió # Enviar ordres arduino.write(b'1') print("LED encès ") time.sleep(2) arduino.write(b'0') print("LED apagat") arduino.close()
Aquest script obre el port sèrie, envia l'ordre "1" per encendre el LED, espera dos segons i després envia "0" per apagar-lo. Recordeu ajustar el port COM segons el sistema operatiu i la connexió de la vostra placa.
Identificació del port sèrie
Perquè Arduino i Python es comuniquin correctament, és crucial identificar el port sèrie on està connectat l'Arduino. A Windows, podeu verificar-ho des de l'Administrador de dispositius. En sistemes Linux o macOS, Usa la comanda ls /dev/ a la terminal per trobar alguna cosa similar a /dev/ttyUSB0.
Exemple avançat: Lectura de sensors
Un altre ús pràctic de la comunicació entre Arduino i Python és la lectura de dades des de sensors connectats a Arduino i la seva visualització en temps real a Python. Per exemple, per a un sensor de temperatura:
Codi a Arduino:
int sensorPin = A0; void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(sensorPin); Serial.println(sensorValue); delay(1000); }
Codi a Python:
import serial import time arduino = serial.Serial('COM3', 9600) time.sleep(2) while True: sensor_data = arduino.readline().decode('utf-8').strip() print(f"Valor del sensor: {sensor_data}")
Aquest exemple rep valors del sensor a Arduino i els imprimeix a la consola de Python, permetent monitoritzar les dades en temps real.
Ampliant possibilitats amb visió artificial
Si vols portar el teu projecte al següent nivell, pots integrar Python i Arduino per a tasques de visió artificial utilitzant OpenCV. Per exemple, un sistema que detecti si algú porta màscara i encengui llums LED de colors segons el resultat:
- Un LED blau indica que la persona porta màscara.
- Un LED vermell s'encén si no detecta màscara.
Utilitzant Mediapipe i OpenCV, podries entrenar un model per a detecció facial i enviar els resultats a Arduino per accionar els LED segons correspongui.
La unió d'Arduino i Python desbloqueja infinitat de possibilitats per a projectes creatius i educatius. Des de tasques simples, com ara controlar LEDs, fins a aplicacions avançades amb sensors i visió artificial, aquestes eines ofereixen una combinació perfecta per maximitzar el teu aprenentatge en electrònica i programació.