🛠 Pont série SoC ↔ MCU : le tunnel x86 vers ATmega32U4

LattePanda Alpha · intermediaire · Schéma : IMG-lattepanda-alpha-intermediaire-1-pont-serie-soc-mcu.svg — tunnel série USB interne reliant le script Python du SoC x86 au sketch Arduino de l ATmega32U4

Objectifs

Mettre en place le motif central de la LattePanda Alpha : le pont série entre le PC x86 (Core m3-7Y30) et son propre coprocesseur ATmega32U4, reliés par un USB interne invisible de l'extérieur. Le MCU émet des trames de mesure sur Serial, un script Python côté hôte les lit ligne par ligne. C'est exactement le schéma du tutoriel officiel « python_arduino_bridge » de DFRobot, sans Firmata.

Matériel

Code complet

Côté firmware (IDE Arduino, carte « Arduino Leonardo ») :

// stream_analog.ino — envoie A0 au PC hôte à 10 Hz
void setup { Serial.begin(9600); }
void loop {
  Serial.println(analogRead(A0));   // valeur ADC 10 bits : 0..1023
  delay(100);
}

Côté hôte (sur l'Alpha elle-même, Windows ou n'importe quelle distribution Linux) :

# host_reader.py — pas besoin de Firmata, tramage série simple
import serial  # pip install pyserial

# Windows : 'COM5'  |  Linux : '/dev/ttyACM0' (utilisateur dans le groupe 'dialout')
with serial.Serial('COM5', 9600, timeout=1) as ser:
    for line in ser:
        try:
            raw = int(line.strip)
            print(f'ADC={raw}  ({raw * 5.0 / 1023:.2f} V en supposant une référence 5 V)')
        except ValueError:
            pass  # ignorer les lignes partielles au démarrage

Vérification attendue

Le terminal de l'hôte affiche environ 10 lignes par seconde : ADC=0 (0.00 V) au repos, et des valeurs qui montent vers 1023 si un potentiomètre est câblé sur A0. Ctrl+C arrête le script sans toucher au firmware, qui continue d'émettre en autonomie.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels