Tutoriel#
from microbit import *
display.clear()
Introduction#
Le BBC micro:bit est un microcontrôleur développé par la BBC pour encourager la programmation dans les écoles en Angleterre. Il s'agit d'un mini ordinateur programmable notamment en Python. En raison de son prix attractif (~15 CHF), son utilisation est très répendue.
Composants du micro:bit#
Le micro:bit contient tous les composants essentiels d'un ordinateur, à savoir
CPU (Central Processing Unit), ou processeur qui est le "cerveau" pouvant être programmé en Python ou dans un autre langage de programmation. C'est lui qui exécute les programmes et pilote tous les autres composants.
RAM (Random Access Memory) ou mémoire vive qui permet de stocker les programmes exécutés ainsi que les données traitées par le programme.
La carte-mère qui interconnecte tous les composants entre eux (c'est le système nerveux en quelque sorte).

Important
Faites attention aux points suivants lorsque vous utilisez le micro:bit:
Le connecteur micro-USB utilisé pour programmer le micro:bit est fragile. Ne forcez jamais le câble et allez y en douceur pour connecter déconnecter le câble.
Évitez de toucher les connecteurs (Edge Connectors) et les connecteurs à l'arrière. Il arrive parfois qu'on soit chargé en électricité statique (très fort voltage), ce qui peut totalement détruire le micro:bit.
Manipulez de préférence le micro:bit en le tenant par la tranche.
Exécuter un programme#
Voici la procédure pour exécuter un programme sur le micro:bit:
Connectez le micro:bit au port USB de l'ordinateur
Faites attention à ne pas abîmer le connecter micro USB du micro:bit, car il est très fragile. Ne portez pas le microbit par le câble.Connectez l'éditeur au micro:bit
Cliquez sur l'icone Tools et sélectionnez Connect. Dans la boite de dialogue qui s'est ouverte, sélectionnez l'élément proposé et appuyez sur Connexion.Exécutez le programme sur le micro:bit
Appuyez sur le bouton Run.
Exercice 1#
Le programme suivant affiche un sourire sur la matrice LED 5x5 du micro:bit.
Exécutez-le sur le micro:bit.
from microbit import *
smile = Image("00000:09090:00900:90009:09990")
display.show(smile)
Affichage de texte#
Exercice 2#
Exécutez le programme suivant et répondez aux questions:
Que fait ce programme?
Que fait
display.scroll("Salut!")
?Que fait
sleep(2000)
?
Modifiez le programme pour qu'il affiche 4 fois "J'aime l'informatique!".
from microbit import *
display.scroll("Salut!")
sleep(2000)
display.scroll("Comment vas-tu?")
Solution
from microbit import *
for _ in range(4):
display.scroll("Vive l'informatique!")
sleep(2000)
Affichage d'image#
Image matricielle#
Une image matricielle ou bitmap est une image composée de pixels de couleur. Dans le cas du micro:bit, chaque pixel est représenté par une LED qui peut être allumée ou éteinte, ce qui correpond à un dessin en noir et blanc.

Il est donc possible de créer ses propres images ainsi:
img = Image("09090:"
"99999:"
"99999:"
"09990:"
"00900")
Le module microbit contient de nombreuses images intégrées, telles que
Image.HEART
, Image.HEART_SMALL
, Image.HAPPY
, Image.SAD
,
Image.PACMAN
, Image.GHOST
, Image.SKULL
, etc.
Exercice 3#
Sans l'exécuter, que fait le programme suivant?
from microbit import * img = Image("00000:" "09990:" "09090:" "09990:" "00000") display.show(img)
Exécutez le programme sur le micro:bit pour vérifier votre réponse.
Modifiez le programme ci-dessus pour afficher une croix sur le microbit.
Solution
from microbit import *
img = Image("90009:"
"09090:"
"00900:"
"09090:"
"90009")
display.show(img)
Exercice 4#
Écrivez un programme qui affiche l'image de pacman, attend 2 secondes et ensuite affiche l'image d'un fantôme.
Modifiez le programme de la partie 1 pour qu'il change d'images toute les secondes en continu.
Astuce
Pour faire défiler les images de manière continue, on utilise une boucle
while
. Cette boucle s'exécute tant que la condition reste vraie. En écrivantwhile True
, on crée une boucle infinie, c’est-à-dire qu'elle s'exécutera sans fin, sauf si on l’interrompt manuellement.# Ce code va afficher le texte sans s'arrêter while True: print("Bonjour !")
from microbit import *
# écrivez le programme ici
Solution
from microbit import * display.show(Image.PACMAN) # affiche l'image de pacman sleep(2000) # attend 2 secondes display.show(Image.GHOST) # affiche l'image du fantôme
from microbit import * while True: display.show(Image.PACMAN) # affiche l'image de pacman sleep(1000) # attend une seconde display.show(Image.GHOST) # affiche l'image du fantôme sleep(1000) # attend une seconde
Utilisation des boutons A et B#
Le micro:bit contient deux boutons A et B sur sa face avant. Lorsqu'un bouton est appuyé, une action se produira dans votre programme.
La fonction was_pressed()
retourne la value True
si le bouton a été
enfoncé depuis le début du programme ou depuis le dernier appel de cette
fonction.
Exemple 1#
from microbit import *
while True:
if button_a.was_pressed():
print("Le bouton A a été appuyé.")
elif button_b.was_pressed():
print("Le bouton B a été appuyé.")
else:
print("Aucun bouton n'a été appuyé.")
sleep(1000)
Exercice 5#
Écrivez un programme qui affiche une image lorsque le bouton A est appuyé et affiche une autre image lorsque c'est le bouton B.
from microbit import *
# écrivez le programme ici
Solution
from microbit import *
while True:
if button_a.was_pressed():
display.show(Image.HAPPY)
elif button_b.was_pressed():
display.show(Image.SAD)
sleep(1000)
Exercice 6#
Testez les deux programmes suivants.
Quelles différences y a-t-il entre les deux programmes?
Que fait la fonction
is_pressed()
?
from microbit import *
while True:
if button_a.was_pressed():
display.show(Image.HAPPY)
else:
display.show(Image.SAD)
sleep(200)
from microbit import *
while True:
if button_a.is_pressed():
display.show(Image.HAPPY)
else:
display.show(Image.SAD)
sleep(200)
Solution
La fonction was_pressed()
détecte lorsque le bouton a été appuyé une
fois et effectue le bloc d'instructions. Si on laisse le bouton appuyé,
le bloc d'instructions ne sera effectué qu'une seule fois.
La fonction is_pressed()
détecte lorsque le bouton est enfoncé et
effectue le bloc d'instructions tant que celui-ci est enfoncé.
Changement d'état d'un pixel#
Un pixel est un point dans une image. Sur le micro:bit un pixel est représenté par une LED qui a une coordonnée x et y. La coordonnée (0, 0) se trouve en haut à gauche de l'image.

La fonction display.set_pixel(x, y, intensite)
permet d'appliquer la valeur de
l'intensite à la LED de coordonnée (x, y). L'intensité est un nombre entre
0 et 9 où 0 signifie que la LED est éteinte et 9 la luminosité maximale.
Exercice 7#
Écrivez un programme qui allume la LED du milieu de l'image avec la valeur maximale et les LED des quatre coins avec une valeur intermédaire.
from microbit import *
# écrivez le programme ici
Solution
from microbit import *
display.set_pixel(2, 2, 9)
display.set_pixel(0, 0, 5)
display.set_pixel(4, 0, 5)
display.set_pixel(0, 4, 5)
display.set_pixel(4, 4, 5)