analogique.py

LattePanda 3 Delta (id: lattepanda-3) · Archivo : analogique.py · Lenguaje : Python · Uso : Acquitter un capteur analogique sur le MCU

El ADC de 10 bits del ATmega sube a un CSV con marca de tiempo en el disco del PC: la tarjeta de adquisición de 20 € con almacenamiento ilimitado, correcciones de calibración en pandas en vez de C.

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 sensor analógico 0-5 V (el 32U4 es de 5 V, al revés que los SBC de 3,3 V).

Cableado

Señal en A0 del conector, GND común. Entrada 5 V máx: los sensores 0-10 V piden divisor.

Funcionamiento

read_analog dispara una conversión en el MCU y devuelve el bruto por el puente serie; el CSV se escribe con flush continuo. 10 Hz es la zona cómoda del puente. 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

Trazador en tiempo real con matplotlib (el PC lo permite), o alertas por umbral con notificación de escritorio.

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.")

← Volver a la ficha