analogique.py

LattePanda 3 Delta (id : lattepanda-3) · Fichier : analogique.py · Langage : Python · Usage : Acquitter un capteur analogique sur le MCU

L'ADC 10 bits de l'ATmega remonte dans un CSV horodaté sur le disque du PC : la carte d'acquisition à 20 € avec stockage illimité, correction d'étalonnage en pandas plutôt qu'en C.

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 capteur analogique 0-5 V (le 32U4 est en 5 V, contrairement aux SBC 3,3 V).

Branchement

Signal sur A0 du connecteur, GND commun. Entrée 5 V max — les capteurs 0-10 V demandent un diviseur.

Fonctionnement

read_analog déclenche une conversion sur le MCU et renvoie le brut par le pont série ; le CSV s'écrit en flush continu. 10 Hz est la zone confortable du pont. 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

Traceur temps réel avec matplotlib (le PC le permet), ou seuils d'alerte par notification desktop.

analogique.py

#!/usr/bin/env python3
# Capteur analogique sur A0 du MCU -> CSV cote hote, 10 Hz.
from pinpong.board import Board, Pin
import time, csv, datetime

Board().begin()
capteur = Pin(Pin.A0, Pin.IN)

with open("mesures.csv", "a", newline="") as f:
    w = csv.writer(f)
    if f.tell() == 0:
        w.writerow(["horodatage", "brut", "volts"])
    print("Acquisition 10 Hz (Ctrl-C pour finir)")
    try:
        while True:
            brut = capteur.read_analog()          # 0..1023 (10 bits MCU)
            volts = brut * 5.0 / 1023.0           # reference 5 V du 32U4
            w.writerow([datetime.datetime.now().isoformat(timespec="seconds"),
                        brut, round(volts, 3)])
            f.flush()                              # survit a un crash
            time.sleep(0.1)
    except KeyboardInterrupt:
        print("\nJournal clos.")

← Retour à la fiche