boutons.py
El script explota los dos botones A/B: was_pressed para pulsación corta, is_pressed con running_time para pulsación larga y la combinación de ambos. Las imágenes integradas (HAPPY, SAD, HEART) se muestran sin dibujar.
Material necesario
Una BBC micro:bit V2 (nRF52833, matriz LED 5×5, botones A/B, acelerómetro + brújula, micrófono y altavoz) alimentada por USB o pila. Sin componentes: los botones A/B están integrados bajo la placa.
Cableado
Sin cableado. Con carcasa, localiza el lado de los botones: A arriba a la izquierda, B arriba a la derecha.
Funcionamiento
was_pressed() devuelve verdadero una sola vez por pulsación (flag interno); is_pressed() prueba el estado instantáneo; running_time() mide milisegundos desde el arranque para detectar la pulsación larga.
Ejecución
Abre python.microbit.org, pega el programa MicroPython y envíalo a la placa (la micro:bit aparece como unidad MICROBIT). Pulsa reset para relanzar.
Variantes
Usa accelerometer.is_gesture(SHAKE) como tercer botón sin piezas, o cuenta pulsaciones con button_a.get_presses().
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)