boussole.py

micro:bit V2 (BBC micro:bit v2) · Archivo : boussole.py · Lenguaje : MicroPython · Uso : Afficher le cap au nord avec la boussole intégrée

El magnetómetro de la V2 da el rumbo al norte (0-359°); el script muestra una flecha por tramo de 45° y el rumbo en consola. La calibración en ocho se lanza sola en el primer arranque.

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. Sin componentes: brújula LSM303 integrada.

Cableado

Sin cableado. Aleja imanes, altavoces y escritorios metálicos: falsean la medida.

Funcionamiento

compass.heading() devuelve el ángulo entre el conector USB y el norte magnético; set_heading(0) recalibra el cero; la tabla FLECHES convierte el ángulo en imagen cardinal.

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

Conviértelo en detector de metal (la desviación del rumbo se dispara), o combínalo con radio para telemedir un rumbo.

boussole.py

# Boussole : cap en degres + fleche, avec calibration au 1er lancer.
from microbit import *

FLECHES = [Image.ARROW_N, Image.ARROW_NE, Image.ARROW_E,
           Image.ARROW_SE, Image.ARROW_S, Image.ARROW_SW,
           Image.ARROW_W, Image.ARROW_NW]

# Calibration : incliner la carte en huit jusqu'au coche.
if not compass.is_calibrated():
    display.show(Image.TARGET)
    compass.calibrate()

compass.set_heading(0)   # reference actuelle = nord
dernier = -1

while True:
    cap = int(compass.heading())      # 0..359 degres
    if abs(cap - dernier) >= 15:      # rafraichir si mouvement
        dernier = cap
        index = ((cap + 22) % 360) // 45
        display.show(FLECHES[index])
        print('cap = %d deg' % cap)
    if button_a.was_pressed():
        compass.clear_cache()
        display.show(Image.ALL_CLOCKS)
    sleep(100)

# Le magnetometre est sensible aux aimants et au metal du bureau.

← Volver a la ficha