Está en la página 1de 15

Tec Krow

Tutoriales y artículos sobre programación y nuevas tecnologías.

Cómo programar Arduino con


Python

Privacy & Cookies Policy


Últimamente me hacéis mucho esta pregunta ¿Se puede programar
Arduino con Python? La respuesta es si, pero no.

A ver Sonia, o se puede o no se puede. Espera, déjame que te lo explico.

El uso clásico que todos conocemos de Arduino consiste en implementar


un Sketch desde el IDE de Arduino y a través del puerto serie cargarlo en el
microcontrolador para que Arduino lo ejecute. Este proceso hace que
Arduino sea totalmente autónomo. Solo será necesario conectarlo a una
fuente de alimentación y el propio Arduino podrá ejecutar el programa que
hemos implementado.

¿Qué pasa entonces con Python? ¿Se puede implementar un script en


Python y cargarlo en un Arduino para que este lo ejecute? La respuesta es
Privacy & Cookies Policy
un no rotundo.

¿Y por qué no me dices esto desde el principio y no me haces perder el


tiempo? ¡No te impacientes! Que aun hay más, y seguro que lo que te voy a
contar te interesa.

Anuncios:

Arduino Mega
Arduino Uno

Comprar
Comprar

Arduino Nano

Comprar

Python es un lenguaje interpretado, por tanto, necesitamos un equipo que


tenga instalado el intérprete de Python para correr scripts escritos en este
lenguaje, cosa que no ocurre con Arduino. Como ya sabrás, Arduino no es
Privacy & Cookies Policy
un ordenador, es un microcontrolador que solo “entiende” el lenguaje
especi co de Arduino.

¿A dónde quiero llegar con todo esto? Muy fácil, si Arduino, por si solo, no
es capaz de ejecutar scripts escritos en Python, vamos a ayudarle. Será
nuestro ordenador el que ejecute el script en vez del Arduino. En otras
palabras, vamos a convertir el Arduino en un terminal tonto.

La principal desventaja de esta solución, es que Arduino dejará de ser


autónomo. Tendrá que estar siempre conectado al equipo an trión puesto
que será este ultimo el que ejecute el código. Igualmente, puede ser una
solución muy útil en ciertas situaciones.

Mejor vamos a ver un ejemplo para ver cómo funciona todo.

Instalar Firmata en Arduino


Para establecer la comunicación entre el script Python y Arduino usaremos
el protocolo Firmata.

Existe una librería en Arduino que nos permite utilizar este protocolo para
comunicar los sketch con nuestros programas, en este caso con nuestro
script de Python. La usaremos.

Abrimos el IDE de Arduino y pinchamos en Archivo > Ejemplos > Firmata >
StandarFirmata.

Privacy & Cookies Policy


El sketch que se abre implementa el protocolo Firmata. No hace falta hacer
nada sobre el código. Lo cargaremos directamente en Arduino.

Privacy & Cookies Policy


Con la placa Arduino conectada a nuestro equipo, pinchamos en el botón
subir para cargar el sketch:

Anuncios:

Privacy & Cookies Policy


Kit de resistencias (17 valores) Kit de resistencias (27 valores)

Comprar Comprar

Kit de resistencias (38 valores)


Privacy & Cookies Policy
Comprar

Instalar rmata para Python


Antes de implementar el script Python con el que queremos controlar
nuestro Arduino necesitamos instalar la librería pyFirmata en el equipo
an trión para utilizar el protocolo rmata desde Python.

Lo primero es tener Python instalado en el equipo an trión. Si no sabes


cómo instalar Python aquí te lo explico:

Cómo instalar Python 3 en Windows 10

Cómo instalar Python 3 en Ubuntu

Cómo instalar Python 3 en Mac OS X

Ahora vamos a ver cómo instalar pyFirmata. La descargaremos e


instalaremos con el siguiente comando:

1 pip install pyfirmata

Fácil ¿Verdad? Si todo va bien podemos empezar a implementar el script


en Python con el que vamos a controlar el Arduino.

Implementar el script con Python


El ejemplo que voy a implementar para ver cómo utilizar pyFirmata es el
clásico led parpadeando. Es un ejemplo muy sencillo, pero para
comprender el funcionamiento de pyFirmata es más que su ciente.

Necesitamos un led y una resistencia de 270 ohm. Las conexiones con


Arduino son así:

Privacy & Cookies Policy


He conectado el ánodo del led al pin digital 9, aunque puedes usar el pin
digital que quieras. El cátodo lo he conectado a tierra con la resistencia de
270 ohm.

Ahora que ya tenemos claro lo que queremos hacer, vamos a empezar a


implementar el script con Python (Puedes descargar el código completo al
nal del artículo).

Puedes usar tu IDE favorito para programar con Python. Yo usaré Sublime
Text y lo ejecutaré desde el terminal.

Voy a llamar al script parpadeo.py.

Primero importamos py rmata y time:

1 from pyfirmata import Arduino


2 import time

También vamos a declarar una variable para almacenar el número del pin
digital en el que hemos conectado el led:

1 LED = 9

Ahora tenemos que instanciar un objeto que nos servirá para controlar
nuestro Arduino. Tenemos que pasarle como parámetro el puerto serie al
que hemos conectado nuestra placa:
Privacy & Cookies Policy
1 arduino = Arduino("/dev/ttyACM0")

Anuncios:

Python Programming

Privacy & Cookies Policy


Aprende Python 3 en un n de semana

Privacy & Cookies Policy


Aplicaciones grá cas con Python 3

¿Cómo podemos saber el puerto serie al que está conectado Arduino? Lo


podemos consultar desde el IDE de Arduino con la placa conectada.
Pulsamos en Herramientas > Puerto y en la lista de puertos serie
disponibles nos aparecerá un check al lado del puerto ocupado por nuestro
Arduino. En mi caso es /dev/ttyACM0 porque estoy en Linux:

Privacy & Cookies Policy


Para hacer parpadear el led vamos a utilizar un bucle for que se repetirá 10
veces. Se producirán 10 parpadeos (puedes cambiar el 10 por el valor que
quieras):

1 for x in range (10):


2 arduino.digital[LED].write(1)
3 time.sleep(.500)
4 arduino.digital[LED].write(0)
5 time.sleep(.500)

La instrucción arduino.digital[LED].write(1) nos envía HIGH (5V) al pin


digital 9 (LED), por tanto, el led se encenderá. Es el equivalente a
digitalWrite(LED,HIGH) en un scketch de Arduino.

Si en vez de un 1 enviamos un 0 (arduino.digital[LED].write(0)) entonces el


led se apaga porque estamos enviando LOW (0V). Es el equivalente a
digitalWrite(LED,LOW).

Y ya solo falta ejecutar el script. Yo lo haré desde el terminal:

1 python3 parpadeo.py

Automáticamente comenzará la ejecución y veremos parpadear el led.

Y así es cómo se programa Arduino con Python.

Puedes descargar el script completo aquí.

¿Quieres aprender
Python 3?

Haz mi curso on-line y aprende


desde 0, incluso si no sabes
programar.

Sígueme:
Privacy & Cookies Policy
Publicado por Sonix

 Ver todas las entradas de Sonix

20 mayo 2020

Arduino, Python

Programar Arduino con Python, PyFirmata, Python 3

INFORMACIÓN

» Contacto
» Política de cookies
» Política de privacidad
» Ranking Quiz!

SUSCRÍBETE A NUESTRA NEWSLETTER

Privacy & Cookies Policy


SUBIR ↑

Privacy & Cookies Policy

También podría gustarte