🛠 Boussole numérique avec le magnétomètre

micro:bit V2 (BBC micro:bit v2) · intermediaire · Schéma : IMG-microbit-v2-intermediaire-1-microbit-v2-boussole-magnetometre.svg — micro:bit V2 à plat avec rose des vents au-dessus, aiguille pointant vers le N et chiffre de cap affiché sur la matrice LED

Objetivos

Transformar la micro:bit V2 en una brújula utilizando el magnetómetro del sensor combinado (LSM303 o FXOS8700CQ, en el bus I²C interno). Aprenderás a leer compass.heading, a calibrar el sensor y a mostrar una dirección en grados.

Material

Código completo

from microbit import *

# Calibration : incliner la carte dans les 6 directions
# jusqu'à ce que la croix se referme (si pas déjà calibrée)
if not compass.calibration_level:
    display.show("C")
    while compass.calibration_level < 10:
        sleep(100)

display.show(Image.YES)

while True:
    cap = compass.heading          # 0..359 degrés
    if cap < 22.5 or cap >= 337.5:
        bss = "N"
    elif cap < 67.5:
        bss = "NE"
    elif cap < 112.5:
        bss = "E"
    elif cap < 157.5:
        bss = "SE"
    elif cap < 202.5:
        bss = "S"
    elif cap < 247.5:
        bss = "SO"
    elif cap < 292.5:
        bss = "O"
    else:
        bss = "NO"
    display.scroll(str(cap), delay=40)
    display.show(bss)
    sleep(500)

compass.heading devuelve el ángulo entre el eje y de la placa y el norte magnético. El magnetómetro comparte el I²C interno (P19/P20) con el sensor de movimiento: está muy desaconsejado reutilizar estos pines.

Verificación esperada

Tras la calibración (movimientos en «ocho» o en los 6 ejes), la dirección mostrada sigue tu rotación: aproximadamente 0° hacia el norte magnético, 90° hacia el este. Los puntos cardinales N/NE/E… se muestran correctamente.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales