journal.py

micro:bit V2 (BBC micro:bit v2) · Archivo : journal.py · Lenguaje : MicroPython · Uso : Journaliser température et lumière en série vers un PC

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.

← Volver a la ficha