La combinación y posibilidad de programar Arduino con Python nos brinda un mundo de posibilidades para los amantes de la electrónica. El día de hoy en este artículo te queremos hacer una breve introducción al proceso de programar Arduino con Python y cómo puedes empezar a crear proyectos geniales con esta herramienta.
¿Cómo programar Arduino con Python?
Si bien arduino de forma general se programa con su propio lenguaje basado en C++, existe la posibilidad de programar Arduino con Python si usamos bibliotecas y herramientas que facilitan la comunicación entre ambos.
Existen diferentes formas de programar Arduino con Python, una de las más simples es haciendo uso de la librería PySerial, la cual permite comunicar tu ordenador con la placa Arduino a través del puerto serie.
Antes de comenzar a programar Arduino con Python, asegúrate de tener las siguientes herramientas listas:
- Una placa Arduino: como Arduino UNO o Nano.
- Cable USB: para conectar Arduino a tu ordenador.
- Python instalado en tu ordenador: Puedes descargar la última versión desde la web oficial de Python.
- Instalar la librería PySerial. Esta librería permite la comunicación serie entre tu ordenador y la placa Arduino. Puedes instalarla fácilmente con el siguiente comando en tu terminal:
pip install pyserial
Pasos para conectar Arduino con Python
Vamos a explicarte cómo conectar y programar Arduino con Python utilizando la librería PySerial. Sigue los pasos a continuación
- Programar Arduino para recibir datos: lo primero que necesitarás para programar Arduino con Python es cargar un pequeño programa o sketch en tu Arduino, de modo que pueda recibir datos que Python le enviará. Por ejemplo, puedes hacer que Arduino encienda y apague el LED integrado (ubicado en el pin 13) cuando reciba un número desde Python:
void setup() {
Serial.begin(9600); // Inicializa la comunicación serie
pinMode(13, OUTPUT); // Configura el pin 13 como salida
}
void loop() {
if (Serial.available() > 0) {
char data = Serial.read(); // Lee el dato enviado desde Python
if (data == '1') {
digitalWrite(13, HIGH); // Enciende el LED
} else if (data == '0') {
digitalWrite(13, LOW); // Apaga el LED
}
}
}
Este código básico espera recibir un carácter a través del puerto serie. Si recibe un ‘1’, enciende el LED; si recibe un ‘0’, lo apaga.
- Programar en Python para comunicarse con Arduino: Una vez que hayas cargado el código anterior en tu Arduino, es momento de escribir un programa en Python que envíe los comandos a la placa:
import serial
import time
# Conecta con Arduino en el puerto COM correspondiente (ajusta el número de puerto)
arduino = serial.Serial('COM3', 9600)
time.sleep(2) # Espera a que la conexión se establezca
# Envía el comando para encender el LED
arduino.write(b'1')
print("LED encendido")
time.sleep(2)
# Envía el comando para apagar el LED
arduino.write(b'0')
print("LED apagado")
# Cierra la conexión
arduino.close()
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaCon este código Python envía los comandos ‘1’ y ‘0’ a través del puerto serie para encender y apagar el LED en la placa Arduino.
- Configuración del puerto: Uno de los pasos necesarios para programar Arduino con Python y que estos se comuniquen correctamente, es identificar el puerto de serie en donde está conectado tu Arduino. Usualmente, en sistemas Windows, suele ser algo similar a COM3 o COM4, mientras que en Linux o MacOS es algo similar a /dev/ttyUSB0. Estos pueden ser identificados desde el administrador de dispositivos en Windows o haciendo uso del comando ls /dev/ en terminal en Linux/Mac.
Ejemplo: interactuar con sensores
Ahora que ya sabes lo básico, puedes expandir tus conocimientos y usar Python para interactuar con sensores conectados a Arduino. En este ejemplo tienes un sensor de temperatura conectado a tu Arduino y quieres visualizar los datos en tu ordenador usando Python.
El código en Arduino sería el siguiente:
int sensorPin = A0; // El pin donde está conectado el sensor
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
delay(1000);
}
Este código envía el valor del sensor al puerto serie cada segundo.
Por su parte, el código en Python sería este:
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}")
time.sleep(1)
Este código en Python recibe el valor del sensor desde Arduino y lo imprime en pantalla.
Si te ha gustado esta introducción a la programación de Arduino con Python y quieres aprender más, en KeepCoding te ofrecemos el Bootcamp de Programación Desde Cero, donde te enseñaremos sobre este y otros lenguajes para que te prepares para una carrera en el sector tecnológico. ¿A qué esperas? ¡Inscríbete y transforma tu vida!