journal.py
La micro:bit escribe una línea CSV cada 2 s por su enlace serie (luz ambiente, pasos, rumbo de brújula, marca de tiempo). El monitor serie copia el flujo a un archivo, abrible en una hoja de cálculo para trazar curvas.
Material necesario
Una BBC micro:bit V2 (nRF52833, matriz LED 5×5, botones A/B, acelerómetro + brújula, micrófono y altavoz) alimentada por USB o pila. Un PC con monitor serie (python.microbit.org, Thonny o PuTTY).
Cableado
Sin cableado: el enlace serie va por el cable USB (perfil CDC).
Funcionamiento
uart.init fija el baudios; print() envía una línea CSV; ticks_diff marca la hora sin desbordamiento. read_light_level y get_steps aportan las columnas sin sensor externo.
Ejecución
Abre python.microbit.org, pega el programa MicroPython y envíalo a la placa (la micro:bit aparece como unidad MICROBIT). Pulsa reset para relanzar.
Variantes
Sustituye la serie por radio para un nodo inalámbrico, o añade un sensor I2C externo (BME688) en 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.