bouton.py
Le bouton physique devient un événement du PC : scrutation à 50 Hz côté Python, pull-up gérée par le MCU. Le déclencheur idéal pour lancer un traitement lourd que seul l'x86 sait faire.
Matériel requis
Une LattePanda 3 Delta (x86 Intel N5105, Windows 10/11 ou Ubuntu) avec son coprocesseur Arduino compatible (ATmega32U4) relié aux deux connecteurs 50 broches. 1 bouton poussoir (D2 vers GND).
Branchement
Bouton entre la broche D2 du connecteur 50 broches et une broche GND. Pull-up interne activée par le script.
Fonctionnement
read_digital traverse le pont série PinPong (~1 ms) ; la boucle 20 ms fait l'anti-rebond. L'appui peut déclencher subprocess, une capture caméra, un email… Côté hôte : pip install pinpong puis python3. Côté MCU : l'ATmega32U4 apparaît comme un port COM — programmez-le avec l'Arduino IDE (carte « Arduino Leonardo »).
Pour aller plus loin
Menu complet avec trois boutons, ou interlock de sécurité avant activation d'un moteur.
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)