Control de Dispositivos con pyfirmata en Python
Introducción
pyfirmata es una biblioteca de Python que permite controlar dispositivos Arduino desde un ordenador. Esta biblioteca proporciona una interfaz sencilla para enviar comandos a los pines del Arduino, lo que facilita la creación de proyectos de automatización y control.
En este tutorial, aprenderemos a usar pyfirmata para controlar un LED y un servomotor.
Requisitos
Para seguir este tutorial, necesitarás lo siguiente:
- Un ordenador con Python 3 instalado.
- Un Arduino UNO.
- Un LED.
- Un servomotor.
- Cables para conectar el Arduino al ordenador.
Instalación
Para instalar pyfirmata, abre una terminal y ejecuta el siguiente comando:
pip install pyfirmata
Conexión del Arduino
Conecta el Arduino al ordenador utilizando un cable USB. El Arduino UNO tiene 14 pines digitales, etiquetados de 0 a 13.
Para controlar el LED, conectaremos el pin 13 del Arduino a la resistencia de 220 ohmios y, a continuación, conectaremos la resistencia al LED.
Para controlar el servomotor, conectaremos el pin 9 del Arduino al servomotor.
Configuración de pyfirmata
Importaremos la biblioteca pyfirmata en nuestro código:
import pyfirmata
A continuación, crearemos un objeto Firmata
que represente la conexión con el Arduino:
board = pyfirmata.Board('COM3')
El parámetro 'COM3'
especifica el puerto COM al que está conectado el Arduino.
Control del LED
Para encender el LED, enviaremos un comando digitalWrite()
al pin 13 del Arduino:
board.digitalWrite(13, 1)
Para apagar el LED, enviaremos un comando digitalWrite()
al pin 13 del Arduino con el valor 0
:
board.digitalWrite(13, 0)
Control del servomotor
Para mover el servomotor, enviaremos un comando servoWrite()
al pin 9 del Arduino:
board.servoWrite(9, 90)
El valor del parámetro 90
especifica el ángulo de rotación del servomotor.
Ejemplo completo
El siguiente código muestra cómo controlar un LED y un servomotor con pyfirmata:
import pyfirmata
board = pyfirmata.Board('COM3')
# Enciende el LED
board.digitalWrite(13, 1)
# Espera 1 segundo
time.sleep(1)
# Apaga el LED
board.digitalWrite(13, 0)
# Mueve el servomotor a 90 grados
board.servoWrite(9, 90)
# Espera 1 segundo
time.sleep(1)
# Mueve el servomotor a 0 grados
board.servoWrite(9, 0)
# Cierra la conexión con el Arduino
board.exit()
Conclusión
En este tutorial, aprendimos a usar pyfirmata para controlar un LED y un servomotor. Con pyfirmata, podemos crear proyectos de automatización y control sencillos y eficaces.
Ejercicios
- Intenta modificar el código anterior para que el LED parpadee.
- Intenta controlar un motor paso a paso con pyfirmata.
- Investiga otras funciones de pyfirmata para controlar dispositivos Arduino.