🛠 Lire un capteur analogique du MCU depuis Python (Firmata)

LattePanda Alpha · intermediaire · Schéma : IMG-lattepanda-alpha-intermediaire-2-capteur-analogique.svg — capteur analogique sur A0 et capteur PIR numerique sur D9 du coprocesseur, valeurs lues par pyFirmata sur le SoC

Objetivos

Utilizar el método oficial de DFRobot (tutorial « python_read_sensor ») para leer sensores desde el sistema operativo x86: primero se carga el firmware StandardFirmata en el ATmega32U4, y luego un script de Python con pyFirmata controla los pines a distancia, sin escribir una sola línea de C. El método es idéntico en Windows y Linux; solo cambia el nombre del puerto.

Material

Código completo

Paso 1 — en el IDE de Arduino (placa « Arduino Leonardo »): Archivo → Ejemplos → Firmata → StandardFirmata, y luego cargar.

Paso 2 — script del host:

# read_sensors.py — Python 3, Windows ou Linux
# Lit un capteur analogique sur A0 et un PIR numérique sur D9
# du coprocesseur Arduino intégré (StandardFirmata doit être téléversé).
import time
from pyfirmata import Arduino, util

PORT = 'COM5'            # Windows : vérifier l'IDE Arduino ; Linux : '/dev/ttyACM0'
board = Arduino(PORT)
it = util.Iterator(board)   # vide les entrées série pour que read ne bloque jamais
it.start

board.analog[0].enable_reporting
board.digital[9].enable_reporting

while True:
    angle = board.analog[0].read    # None au premier passage, puis 0.0..1.0
    motion = board.digital[9].read  # True/False venant du capteur PIR
    print(f'A0={angle} D9(motion)={motion}')
    time.sleep(0.5)

Verificación esperada

Tras cargar StandardFirmata, el LED de transmisión parpadea brevemente. El script muestra primero A0=None y luego valores flotantes entre 0.0 y 1.0 que varían al girar el potenciómetro; D9 pasa a True cuando el PIR detecta un movimiento.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales