boussole.py

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

Le magnétomètre de la V2 donne le cap au nord (0-359°) ; le script affiche une flèche par palier de 45° et le cap sur la console. La calibration en huit se déclenche automatiquement au premier lancement.

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. Aucun composant : boussole LSM303 intégrée.

Câblage

Aucun câblage. Éloignez aimants, enceintes et bureau métallique qui faussent la mesure.

Fonctionnement

compass.heading() renvoie l'angle entre la broche USB et le nord magnétique ; set_heading(0) recale le zéro ; la table FLECHES convertit l'angle en image cardinale.

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

Transformez en détecteur de métal (écart type du cap qui explose), ou combinez avec le radio pour télémesurer un cap distant.

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.

← Retour à la fiche