¿Te apasiona la programación y la electrónica? Entonces seguramente ya has oído hablar de Arduino, una plataforma de hardware libre muy popular en la comunidad maker. Pero, ¿sabías que también se puede programar Arduino con Python? En este artículo te contamos todo lo que necesitas saber para empezar a hacer tus propios proyectos combinando estas dos tecnologías. ¡No te lo pierdas!
Python es un lenguaje versátil que se puede utilizar para una variedad de propósitos. Se puede usar para crear secuencias de comandos, desarrollar aplicaciones web o incluso crear aplicaciones de escritorio. Pero, ¿sabías que también puedes usar Python para programar Arduino? En este artículo, exploraremos la posibilidad de programar Arduino con Python y brindaremos algunos consejos útiles en el camino.
¿Qué es la plataforma Arduino?
La plataforma Arduino es una plataforma de creación de prototipos electrónicos de código abierto basada en hardware y software fáciles de usar. Está destinado a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos.
La plataforma Arduino incluye productos de hardware y software. El hardware consta de una placa de hardware de código abierto diseñada en torno a un microcontrolador ATmega328, con una amplia gama de pines de entrada y salida. El software consta de un entorno de desarrollo que se ejecuta en su computadora, que se utiliza para escribir y cargar código en la placa del microcontrolador.
Arduino detecta el entorno al recibir entradas de muchos sensores, y afecta a su entorno mediante el control de luces, motores y otros actuadores. Puede decirle a su Arduino qué hacer enviando un conjunto de instrucciones al microcontrolador en el tablero. Aquí es cuando entra la programación.
Un> Los microcontroladores se utilizan en objetos cotidianos como automóviles, tostadoras y controles remotos. También se utilizan en aplicaciones industriales y experimentos científicos. [1]
¿Qué software utiliza Arduino?
Hay varias formas de programar un Arduino usando Python. Puede usar un intérprete de Python independiente o puede usar un IDE de Python. El lenguaje de programación utilizado por Arduino se llama Procesando, que se basa en Java. Está diseñado para que sea fácil de aprender para artistas y diseñadores, con una sintaxis mínima y una interfaz intuitiva. El procesamiento es similar a C++ en muchos aspectos, pero es más simple y más fácil de aprender.
Sin embargo, puede usar otros lenguajes con Arduino usando lo que se llama «envolturas». Un contenedor es básicamente una capa que traduce un idioma a otro.
Hay varios contenedores disponibles para programar Arduino con Python. Los más populares parecen ser pyFirmata y pymata-aio. Instalar un contenedor suele ser tan simple como instalar el módulo de Python correspondiente usando pepita. [2]
Programando Arduino con Python
Ahora que sabemos un poco más sobre la plataforma Arduino y qué software utiliza, veamos cómo puede programar Arduino con Python. Afortunadamente, no necesitas ser un programador experimentado para hacer esto. Solo conocer los conceptos básicos de Python es suficiente.
Instala Python en tu computadora
Si aún no tienes Python instalado en tu computadora, ahora es el momento de hacerlo.
Para instalarlo, diríjase al sitio web de Python, haga clic en el botón de descarga para su sistema operativo y siga las instrucciones. ¡Eso es todo! Ahora ha instalado Python en su computadora.
Si no está seguro de si tiene Python instalado o no, abra su terminal (Mac/Linux) o símbolo del sistema (Windows) y escriba «python». Si devuelve algo como esto «Python IDLE», significa que lo tienes instalado.
Ensamblar circuito Arduino
A continuación, deberá ensamblar un circuito Arduino. El circuito dependerá del proyecto en el que estés trabajando.
Por>
Instalar el IDE de Arduino
Lo siguiente que debe hacer es instalar el IDE de Arduino. El IDE de Arduino es una aplicación multiplataforma (para Windows, macOS y Linux) que le permite escribir código y cargarlo en la placa. También incluye una biblioteca de funciones para trabajar con las distintas entradas y salidas de la placa.
Conecte Arduino a su PC
Una vez que su circuito esté ensamblado, necesitará conectar su Arduino a su computadora. Para hacer esto, use un cable USB. El cable USB proporcionará energía y transferencia de datos entre el Arduino y su computadora. La mayoría de las placas Arduino son compatibles con cables USB tipo A. En algunos casos, puede utilizar un cable mini o micro USB.
Configurar el tablero
Ahora que su Arduino está conectado a su computadora, es hora de configurar la placa.
Primero, deberá determinar el puerto COM que está utilizando su Arduino. Para hacer esto, abra el Administrador de dispositivos. En Windows, puede acceder a él desde Panel de control > Sistema y seguridad > Sistema > Administrador de dispositivos.
En el Administrador de dispositivos, expanda el Sección Puertos (COM y LPT). Debería ver un puerto COM llamado “Puerto serie USB (COMxx)”, donde xx es un número. Este es el puerto COM que usa tu Arduino. Tome nota de ello para su uso posterior. Tenga en cuenta que ese número puede cambiar si conecta su Arduino a un puerto USB diferente.
A continuación, abra Arduino IDE y vaya al menú Herramientas. En el Submenú del tablero, seleccione la placa que está utilizando. Para la mayoría de las placas Arduino, esto será “Arduino Uno”.
En el submenú Puerto, seleccione el puerto COM que anotó anteriormente.
Sube el boceto de ejemplo de Blink
Ahora que ha configurado su tablero, es hora de cargar un boceto. Un bosquejo es un programa que se ejecuta en Arduino. Hay muchos bocetos de ejemplo disponibles en el IDE de Arduino. Para nuestros propósitos, utilizaremos el Ejemplo de parpadeo.
Para acceder a él, vaya a Archivo > Ejemplos > Conceptos básicos > Parpadeo.
Esto abrirá el ejemplo de Blink en una nueva ventana.
Para>Subir botón en la barra de herramientas (parece una flecha que apunta hacia la derecha).
Si todo va bien, deberías ver el LED de tu placa Arduino parpadear una vez por segundo.
Este ejemplo muestra los conceptos básicos de programación: cómo encender y apagar un LED. Pero, por supuesto, puedes hacer mucho más con Arduino y Python.
En la siguiente sección, le mostraremos cómo usar el Serial Monitor de Arduino IDE para controlar un LED usando Python. [3], [4], [5]
Instalar PySerial
Puede instalar PySerial siguiendo las instrucciones en su sitio web, mantenga la configuración predeterminada.
Para ver si la instalación fue exitosa, abra su intérprete de Python y escriba «importar serie». Si no devuelve un error, significa que PySerial se instaló correctamente.
Escriba un script de Python para encender y apagar el LED
Ahora que ha instalado PySerial, es hora de escribir su primer script de Python. Necesitará usar REPL para eso. REPL significa «bucle de impresión de evaluación de lectura». Le permite escribir comandos y ver los resultados inmediatamente.
Para abrir REPL, ingrese >python en el Indicación de anaconda.
Ahora, es el momento de escribir el guión. Primero, necesitamos importar la biblioteca PySerial. También tendremos que importar una biblioteca de tiempo para que podamos agregar retrasos en nuestro código.
importar serie
tiempo de importación
Ahora, tenemos que crear un objeto en serie. Este objeto se utilizará para comunicarse con Arduino. Necesitamos especificar el puerto COM y la tasa de baudios. El puerto COM es el puerto donde está conectado tu Arduino.
>>> ser = serial.Serial(‘COM4’, 9600) # abrir puerto serie
>>> time.sleep(2) # espera 2 segundos
>>> ser.nombre()
‘COM4’ # vuelve a cambiarlo para que coincida con tu caso
>>> ser.escribir(b’H’)
# LED se enciende
>>> ser.escribir(b’L’)
# LED se apaga
>>> ser.escribir(b’H’)
# LED se enciende
>>> ser.escribir(b’L’)
# LED se apaga
>>> ser.cerrar()
>>> salir()
Una vez que haya terminado, asegúrese de ingresar comando ser.close().
Ahora podemos correr el siguiente código de Python para hacer que el LED parpadee 10 veces.
ser = serial.Serial(‘COM4’, 9800, tiempo de espera=1)
tiempo.dormir(2)
para i en el rango (10):
ser.writelines(b’H’) # enviar un byte
time.sleep(0.5) # espera 0.5 segundos
ser.writelines(b’L’) # enviar un byte
tiempo.dormir(0.5)
ser.cerrar()
Establecemos la tasa de baudios en 9800 bits por segundo por el bien de la explicación, pero puede cambiarlo a un valor diferente si lo desea.
En la cuarta línea, añadimos un retraso de dos segundos. Esto es para darle tiempo a Arduino para que se reinicie antes de que comencemos a enviarle comandos.
En la quinta línea, usamos el método de escritura para enviar un byte al Arduino. El byte que estamos enviando es ‘H’.
Esto encenderá el LED conectado a pin 13 en la placa Arduino.
En la sexta línea, usamos de nuevo el método de escritura pero esta vez estamos enviando un byte ‘L’. Esto apagará el LED conectado a pin 13 en la placa Arduino. Debería ver que el LED deja de parpadear ahora.
Finalmente, en la séptima línea, cerramos el puerto Serial usando el cerrar () método. [3]
Usa un boceto de Firmata
Otra opción es usar el protocolo Firmata con pyFirmata. Este enfoque requiere que cargue un boceto (programa) a su Arduino que lo configura para comunicarse con Firmata. Luego puede escribir código Python en su computadora que se comunique con el boceto que se ejecuta en su Arduino.
Esta>
Para usar Firmata con tu Arduino, necesita cargar el boceto StandardFirmata a su Arduino. Puede encontrar este boceto en el IDE de Arduino en Archivo > Ejemplos > Firmata > StandardFirmata.
Una vez que haya cargado el boceto de StandardFirmata en su Arduino, necesitas instalar el módulo pyFirmata Python. Puedes hacer esto usando pip:
pip instalar pyfirmata
Con pyFirmata instalado, ahora puede escribir un programa de Python que hable con su Arduino a través de una conexión serie USB. El siguiente código hará que un LED conectado al pin 13 de tu Arduino parpadee.
desde el tiempo de importación del sueño
board = Arduino(‘COM4’) # Inserte su propio puerto aquí
imprimir («Comenzar a parpadear D13»)
mientras que es cierto:
tablero.digital[13].escribir(1)
dormir(1)
tablero.digital[13].escribir(0)
dormir(1)
Preguntas más frecuentes
¿Python puede interactuar con Arduino?
Sí, Python puede interactuar con Arduino mediante un cable USB estándar. La conexión entre los dos normalmente se realiza a través de un puerto serie, aunque hay otras opciones disponibles.
Python se puede usar para escribir programas simples que controlan el movimiento de los servomotores o encienden/apagan los LED. También se puede utilizar para crear aplicaciones más complejas que leen sensores y realizan registros de datos o incluso crean interfaces gráficas de usuario (GUI).
¿Qué lenguaje de programación utiliza Arduino?
Arduino usa una variación de C++ llamada Processing. Sin embargo, puede programar Arduino usando otros lenguajes de programación de alto nivel como Python.
Hay muchos beneficios de programar Arduino con Python. Por ejemplo, Python es un lenguaje muy versátil que se puede usar para todo, desde desarrollo web hasta computación científica. Además, Python tiene una comunidad grande y activa que puede ofrecer apoyo y orientación.
¿Cómo transfiero datos de Arduino a Python?
El primer paso es abrir el Serial Monitor en el IDE de Arduino. Luego, configure su tasa de baudios para que coincida con la tasa de baudios que especificó en su código de Python. Una vez que Serial Monitor está abierto, puede escribir los datos que desee y presionar «Enviar». ¡Los datos se enviarán a su programa Python!
Si desea enviar datos de Python a Arduino, simplemente use la función serial.write(). ¡Esto tomará cualquier cadena o número y lo enviará a través de la conexión en serie! Solo asegúrese de que su Arduino esté esperando estos datos; si no es así, pueden suceder cosas extrañas.
Video Útil: Controlar Arduino con Python usando Firmata / PyFirmata
Conclusión
Como puede ver, Arduino y Python pueden funcionar muy bien juntos. Esta es una gran noticia para aquellos de nosotros que queremos usar la plataforma Arduino pero no queremos empantanarnos con el lenguaje de programación C. Entonces, si está considerando usar Python con Arduino, ¡adelante! Es una excelente manera de comenzar con el desarrollo de hardware y software. Puede usar Pyfirmata para comunicarse con su Arduino o optar por un enfoque más directo y usar la biblioteca PySerial. ¡Gracias por leer! Esperamos que este artículo haya ayudado a responder a su pregunta y le haya brindado información útil. ¿Entonces, Qué esperas? ¡Pruébalo y cuéntanos cómo te va!
Referencias:
- https://chipwired.com/programa-arduino-con-python/
- https://support.arduino.cc/hc/en-us/articles/360017098799-What-programming-language-does-Processing-use-
- https://problemsolutionwithpython.com/11-Python-and-External-Hardware/11.03-Controlling-an-LED/
- https://realpython.com/arduino-python
- https://www.makeuseof.com/tag/programa-control-arduino-python/
- https://wiki.seeedstudio.com/ODYSSEY-X86J4105-Firmata/