boutons.py
Le script exploite les deux boutons A/B de la micro:bit : was_pressed pour l'appui court, is_pressed avec running_time pour l'appui long, et la combinaison des deux. Les images intégrées (HAPPY, SAD, HEART) s'affichent sans dessin manuel.
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 : boutons A/B intégrés sous la carte.
Câblage
Aucun câblage. Sur boîtier, repérez le côté des boutons : A en haut à gauche, B en haut à droite.
Fonctionnement
was_pressed() renvoie vrai une seule fois par appui (drapeau interne) ; is_pressed() teste l'état instantané ; running_time() mesure les millisecondes depuis le démarrage pour détecter l'appui long.
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
Utilisez accelerometer.is_gesture(SHAKE) comme troisième bouton sans pièce, ou accelérez avec button_a.get_presses() pour compter les appuis.
boutons.py
# Boutons A et B : appui court, appui long, combinaison des deux.
from microbit import *
display.show(Image.HAPPY)
while True:
if button_a.was_pressed():
display.show(Image.HAPPY)
print('A presse')
if button_b.was_pressed():
display.show(Image.SAD)
print('B presse')
# Appui long (maintenu plus de 500 ms) sur A : coeur.
if button_a.is_pressed():
t0 = running_time()
while button_a.is_pressed():
if running_time() - t0 > 500:
display.show(Image.HEART)
sleep(300)
break
# Les deux boutons : affichage du compteur de boussole.
if button_a.is_pressed() and button_b.is_pressed():
display.scroll(str(accelerometer.get_steps()))
button_a.wait_until_released()
sleep(10)