Control de Dispositivos con pyfirmata en Python

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:

Python
import pyfirmata

A continuación, crearemos un objeto Firmata que represente la conexión con el Arduino:

Python
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:

Python
board.digitalWrite(13, 1)

Para apagar el LED, enviaremos un comando digitalWrite() al pin 13 del Arduino con el valor 0:

Python
board.digitalWrite(13, 0)

Control del servomotor

Para mover el servomotor, enviaremos un comando servoWrite() al pin 9 del Arduino:

Python
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:

Python
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.