journal.py
La micro:bit écrit une ligne CSV toutes les 2 s sur sa liaison série (lumière ambiante, pas, cap de boussole, horodatage). Le moniteur série copie le flux dans un fichier, ouvrable dans un tableur pour tracer les courbes.
Matériel requis
Une BBC micro:bit V2 (nRF52833, matrice 5×5 LED, boutons A/B, accéléromètre + boussole, microphone et haut-parleur) alimentée par USB ou pile. Un PC avec un moniteur série (python.microbit.org, Thonny ou PuTTY).
Câblage
Aucun câblage : la liaison série passe par le câble USB (profil CDC).
Fonctionnement
uart.init fixe le débit ; print() envoie une ligne CSV ; ticks_diff horodate sans débordement. read_light_level et get_steps fournissent les colonnes sans capteur externe.
Exécution
Ouvrez python.microbit.org, collez le programme MicroPython et envoyez-le vers la carte (la micro:bit apparaît comme lecteur MICROBIT). Appuyez sur reset pour relancer.
Variantes
Remplacez la série par le radio pour un nœud sans fil, ou ajoutez capteur externe I2C (BME688) sur pin19/pin20.
journal.py
# Journal CSV sur la liaison serie (BLE/USB) : temperature + lumiere.
# Ouvrir le moniteur serie de python.microbit.org ou Thonny (115200).
from microbit import *
import time
uart.init(baudrate=115200)
PERIODE_MS = 2000
t_entree = time.ticks_ms()
print('horodatage_ms;lumiere;pas;cap_boussole')
while True:
lux = display.read_light_level() # 0..255
pas = accelerometer.get_steps()
cap = int(compass.heading()) # 0..359 degres
horodatage = time.ticks_diff(time.ticks_ms(), t_entree)
print('%d;%d;%d;%d' % (horodatage, lux, pas, cap))
display.show(Image.HAPPY if lux > 50 else Image.SAD)
sleep(PERIODE_MS)
# Copier la console serie dans un fichier .csv puis ouvrir dans un
# tableur pour tracer les courbes.
# Astuce : sous Windows, puTTY(mode serie) ou l'app 'Serial' de
# python.microbit.org enregistre automatiquement le flux complet.
# Le separateur point-virgule evite les souci avec les tableurs
# francais qui utilisent deja la virgule comme separateur decimal.