podometre.py

micro:bit V2 (BBC micro:bit v2) · Fichier : podometre.py · Langage : MicroPython · Usage : Compteur de pas et détection de secousse avec l'accéléromètre

L'accéléromètre intégré compte les pas (get_steps) et détecte la secousse (was_gesture shake) qui remet le compteur à zéro. Le nombre de pas s'affiche en binaire sur la matrice, et chaque pas est tracé sur la console série.

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 : accéléromètre LSM303 intégré à la V2.

Câblage

Aucun câblage. Portez la carte à la ceinture pour de meilleurs résultats de comptage.

Fonctionnement

get_steps() renvoie un compteur matériel de pas ; was_gesture lit les gestes calculés par le pilote (shake, tilt) ; reset_steps() remet à zéro après la secousse.

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

Affichez l'inclinaison avec accelerometer.get_tilt(), ou combinez avec le radio pour envoyer le compteur à une autre carte.

podometre.py

# Podometre : pas + secousses + inclinaison avec l'accelerometre.
from microbit import *

dernier = 0
display.show(Image.CHECK)
sleep(800)
display.clear()

while True:
    pas = accelerometer.get_steps()
    if pas != dernier:
        dernier = pas
        # Afficher le nombre de pas en binaire decimal (2 chiffres).
        display.clear()
        display.set_pixel(4, 0, 9)          # separateur
        n = pas
        for y in range(1, 5):
            if n % 2:
                display.set_pixel(2, 4 - y + 1, 9)
            n //= 2
        print('pas =', pas)

    if accelerometer.was_gesture('shake'):
        display.show(Image.SILLY)
        accelerometer.reset_tilt_direction()
        sleep(1000)
        accelerometer.reset_steps()   # remettre le compteur a zero
        dernier = 0
    sleep(50)

← Retour à la fiche