🛠 Faire clignoter une LED via le MCU Arduino embarqué
Objetivos
Descubrir la particularidad de la LattePanda 3 Delta: es un PC x86 (Intel Celeron N5105) y una placa Arduino en el mismo circuito. El coprocesador integrado es un Microchip ATmega32U4-MU, compatible con Arduino Leonardo, con su propio botón de reset. En este tutorial, controlamos un LED desde el procesador x86 en Python gracias a la biblioteca oficial de DFRobot pinpong, que habla el protocolo Firmata al microcontrolador a través de su puerto serie virtual. Es el tutorial Blink oficial, adaptado paso a paso.
Material
- LattePanda 3 Delta alimentada por una fuente conforme: 11–15 V y al menos 24 W (USB-C PD 15 V/3 A o 12 V/3 A recomendados, o conector JST PH2.0 12 V ≥ 2 A). Un adaptador USB-C no-PD o inferior a 24 W es un modo de fallo documentado.
- 1 LED (módulo Gravity o LED clásico + resistencia de 220 Ω)
- 3 cables Dupont (hembra-hembra para el conector de pines hembra de la placa)
- Sistema operativo: Windows 10/11 o Ubuntu 22.04 (guía oficial)
Código completo
Instalación de la biblioteca (Windows o Linux):
pip install pinpong
Programa Python (blink.py) — cableado: señal LED → D13, V+ → 5V, GND → GND:
import time
from pinpong.board import Board, Pin
# Initialisation du ATmega32U4 embarqué (classe Leonardo).
# Windows : COMx affiché dans le Gestionnaire de périphériques ;
# Linux : /dev/ttyACM0
Board("leonardo", "COM5").begin
led = Pin(Pin.D13, Pin.OUT) # D13 en sortie numérique
while True:
led.write_digital(1) # LED allumée
print("1")
time.sleep(1)
led.write_digital(0) # LED éteinte
print("0")
time.sleep(1)
En Linux, reemplace "COM5" por "/dev/ttyACM0" y ejecute con python3 blink.py.
Verificación esperada
El LED parpadea un segundo encendido / un segundo apagado, y la terminal muestra alternativamente 1 y 0. En Windows, el puerto COM del Leonardo (dispositivo «Arduino Leonardo») debe aparecer en el Administrador de dispositivos; en Linux, ls /dev/ttyACM* debe listar ttyACM0.
Errores frecuentes
- Puerto COM incorrecto: es el puerto del microcontrolador Leonardo, no un puerto USB externo. Verifíquelo en el Administrador de dispositivos o con
dmesg | grep ttyen Linux. - Número de pin incorrecto: el conector Arduino de la 3 Delta expone 24 E/S digitales (D0–D23); solo se usa D13 aquí. No confundir con los dos bloques de 50 pines que también contienen RS232, USB 2.0, etc.
- Alimentación insuficiente: un cargador de teléfono USB-C no-PD hace que la placa falle antes incluso de la prueba.
- Nivel lógico: los tutoriales oficiales controlan el LED desde 5 V; el nivel lógico exacto por pin (3,3 V/5 V) no se especifica en las páginas de especificaciones consultadas. >
pipinstala para Python 2: usarpip3/python3en Linux.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton.pyPythonservo.pyPythonanalogique.pyPythonrespiration.pyPythonneopixel.pyPython