Python y Arduino
Python y Arduino
PYSERIAL
La comunicación por puerto serie puede realizarse tanto por cable, como de
forma inalámbrica por bluetooth, como vimos en la entrada Conectar Arduino por
Bluetooth con los módulos HC-05 ó HC-06
Una vez que tengamos Python instalado para poder comunicarnos con
Arduino necesitamos la librería PySerial, que nos permite emplear de forma
sencilla el puerto serie. La librería PySerial está disponible en este
enlace https://github.com/pyserial/pyserial
1
Descargamos y ejecutamos el instalador, para añadir la librería PySerial a
nuestra instalación de Python.
EJEMPLOS DE CÓDIGO
En este primer ejemplo vamos a leer información enviada por Arduino, y
capturada y mostrada en pantalla por Python.
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hola mundo");
delay(1000);
}
2
Lo que hacemos es importar la librería Serial (PySerial) e instanciar un objeto
PySerial, que hemos llamado "arduino". En el constructor del objeto Serial pasamos
los parámetros del puerto serie que estemos empleado
Recuerda sustituir el puerto serie del código, en el ejemplo "COM4", por el puerto
serie en el que tengas conectado Arduino.
El motivo es que desde que creamos el objeto Serial hasta realmente está
disponible para ser usado, se necesita un cierto tiempo para abrir el puerto serie.
Por tanto, tenemos que introducir una espera mediante la función “Sleep”, que
pertenece a la librería “time”.
void setup()
{
Serial.begin(9600);
pinMode(pinLED, OUTPUT);
}
void loop()
{
if (Serial.available()>0)
{
char option = Serial.read();
if (option >= '1' && option <= '9')
3
{
option -= '0';
for (int i = 0;i<option;i++)
{
digitalWrite(pinLED, HIGH);
delay(100);
digitalWrite(pinLED, LOW);
delay(200);
}
}
}
}
Nuevamente hemos tenido que importar la librería time, para poder usar la
función Sleep, y dar un tiempo entre el inicio de la conexión del puerto serie y el
envío de datos.