bouton.py
El botón físico se vuelve un evento del PC: sondeo a 50 Hz por Python, pull-up gestionada por el MCU. El disparador ideal para el procesamiento pesado que solo el x86 sabe hacer.
Hardware necesario
Una LattePanda 3 Delta (x86 Intel N5105, Windows 10/11 o Ubuntu) con su coprocesador Arduino compatible (ATmega32U4) conectado a los dos conectores de 50 pines. 1 botón pulsador (D2 a GND).
Cableado
Botón entre el pin D2 del conector de 50 pines y un pin GND. Pull-up interna activada por el script.
Funcionamiento
read_digital cruza el puente serie PinPong (~1 ms); el bucle de 20 ms hace antirrebote. La pulsación puede lanzar subprocess, una captura de cámara, un correo… Lado anfitrión: pip install pinpong y python3. Lado MCU: el ATmega32U4 aparece como puerto COM — prográmelo con el Arduino IDE (placa « Arduino Leonardo »).
Para ir más lejos
Menú completo con tres botones, o enclavamiento de seguridad antes de activar un motor.
bouton.py
#!/usr/bin/env python3
# Bouton sur D2 (vers GND, pull-up MCU) -> reaction Python immediate.
from pinpong.board import Board, Pin
import time
Board().begin()
bouton = Pin(Pin.D2, Pin.IN, Pin.PULL_UP)
print("Appuyez sur D2 (Ctrl-C pour sortir)")
dernier = 1
while True:
etat = bouton.read_digital()
if etat != dernier:
dernier = etat
if etat == 0:
print("APPUI ! — horodatage", time.time())
# Ici : lancer un script, piloter un actionneur, logger...
time.sleep(0.02)