Com programar Arduino amb Python: Guia pràctica completa

  • La integració d'Arduino i Python permet projectes versàtils i efectius.
  • PySerial és clau per establir comunicació entre tots dos mitjançant el port sèrie.
  • Es poden assolir tant tasques bàsiques com avançades, incloent sensors i visió artificial.
  • Identificar el port sèrie i configurar els dos entorns són passos essencials.

python arduino

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ó.