podometre.py
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)