OBJECTIFS DE CETTE SECTION |
Utilisez les deux boutons pour développer des programmes interactifs. |
RÉAGIR À LA PRESSION SUR UN BOUTON |
|
Program: from microbit import * def blink(): display.set_pixel(2, 2, 9) sleep(400) display.set_pixel(2, 2, 0) sleep(400) while True: if button_a.is_pressed(): blink() sleep(10) L’instruction sleep(10) à la fin de la boucle infinie est nécessaire pour éviter que toutes les ressources du CPU soient utilisées uniquement pour contrôler si le bouton a été enfoncé. En effet, il suffit de faire cette vérification toutes les 10 millisecondes. |
RÉAGIR AU CLIC SUR UN BOUTON |
Program: from microbit import * while True: if button_a.was_pressed(): display.show(Image.SQUARE) if button_b.was_pressed(): display.clear() sleep(10) Le problème vient du fait que le programme passe la majorité de ce son temps à faire clignoter la LED au sein de la fonction blink(x, y) et qu’il n’est dès lors pas en mesure d’exécuter suffisamment souvent le code permettant de détecter le clic. Pour résoudre ce problème, il faut plutôt utiliser la méthode button_a.was_pressed(). Le clic va alors être représenté par un événement qui est enregistré par le système même si le programme est en train de faire autre chose pendant que le bouton est cliqué. Program: from microbit import * def blink(x, y): display.set_pixel(x, y, 9) sleep(1000) display.set_pixel(x, y, 0) sleep(1000) while True: if button_a.was_pressed(): display.show(Image.SQUARE) sleep(1000) display.clear() blink(2, 2) sleep(10) |
NOTA BENE |
Il est donc possible de réaliser des programmes interactifs qui réagissent à une pression ou à un clic sur les boutons de micro:bit. La méthode .is_pressed() retourne True si le bouton est pressé au moment de l’appel alors que la méthode .was_pressed() retourne True si le bouton a été pressé depuis le début de l’exécution du programme ou depuis le dernier appel de cette même méthode. |
À TOI DE JOUER |
|