Cómo comunicar Arduino con Python

En este tutorial, vamos a desarrollar un sistema de comunicación serial entre una placa Arduino y un ordenador con Windows 7 con Python, aunque dada la portabilidad de Python, este programa podría llevarse a cualquier otro sistema y usarlo, por ejemplo, en tu Raspberry Pi, como hice en el proyecto Mico, el robot emocional.

Led controlado por una web

Led controlado por Python

Como resultado de este programa, tendremos un programa en Python que pedirá al usuario que introduzca un texto, se lo enviará a Arduino mediante el puerto serial y éste encenderá o apagará un led.

En primer lugar, con el entorno Arduino ya instalado (si no lo tenéis, se explica en la entrada Primeros pasos con Arduino), cargamos en la placa un programa sencillo, que reciba las órdenes de encender y apagar el led. Podemos usar el que hicimos para la entrada Cómo controlar un led a través de una interfaz web PHP.

Después, necesitamos Python (yo he usado la versión 2.7.10) instalado (si usáis Windows, podéis consultar Primeros pasos con Python).

A continuación, instalamos la paquete pySerial para Python (en Windows, necesitamos instalar el gestor de paquetes pip, para lo cual podemos consultar la entrada Cómo instalar el gestor de paquetes pip en Windows 7), con la orden:

pip install pyserial

Ahora vamos a descargar el código Python, de mi cuenta de GitHub:

https://github.com/diegorys/Arduino_Python

Aquí podemos encontrar, dentro del directorio «arduino», las clases:

  • Board: Representa una placa Arduino. Se inicializa con el puerto, la descripción y un número de serie. Envía por el puerto serial órdenes a la placa y recibe mensajes.
  • BoardManager: Gestiona las placas. Es capaz de encontrar las placas Arduino conectadas por USB a la máquina, gracias al paquete pySerial, y añadir a un listado las que no estén siendo usadas por otros programas.

El ejemplo que encontramos en el fichero example.py, busca las placas conectadas, las lista y pide al usuario que envíe un mensaje a estas placas. Atiende a los mensajes: on (enciende el led 13 de la placa), off (apaga el led 13 de la placa) y bye (detiene la ejecución).

Para ejecutarlo, desde la consola de comandos, en el directorio del ejemplo, se escribe:

python example.py

Con este mismo programa en Python, podríamos manejar de una manera similar otros actuadores conectados a Arduino, como un relé, o leer un sensor, como el de temperatura. ¿Os animáis?

diegorys

Ingeniero en Informática, apasionado de la robótica, con alma de investigador en nuevas tecnologías, analista programador y profesional del desarrollo ágil en entornos web y smartphones, con amplios conocimientos y experiencia desde antes de 2008 en entornos WAMP/LAMP, experimentando con Arduino desde 2012 y con Raspberry Pi desde 2014.

Share

2 comentarios en “Cómo comunicar Arduino con Python

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.