Tutoriel#

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épandue.

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

Composants du micro:bit

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 manipulez-le 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:

  1. 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.

  2. Connectez l'éditeur au micro:bit
    Cliquez sur l'icône Tools et sélectionnez Connect. Dans la boite de dialogue qui s'est ouverte, sélectionnez l'élément proposé et appuyez sur Connexion.

  3. 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#

  1. Exécutez le programme suivant et répondez aux questions:

    • Que fait ce programme?

    • Que fait display.scroll("Salut!")?

    • Que fait sleep(2000)?

  2. Modifiez le programme pour qu'il affiche 4 fois "Hello" et attende trois secondes entre les affichages. Utilisez une boucle for.

from microbit import *

display.scroll("Salut!")
sleep(2000)
display.scroll("Comment vas-tu?")

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 correspond à un dessin en noir et blanc.

Image matricielle

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#

  1. Sans l'exécuter, que fait le programme suivant?

    from microbit import *
    
    img = Image("00000:"
                "09990:"
                "09090:"
                "09990:"
                "00000")
    
    display.show(img)
    
  2. Exécutez le programme sur le micro:bit pour vérifier votre réponse.

  3. Modifiez le programme ci-dessus pour afficher une croix sur le microbit.

Exercice 4#

  1. Écrivez un programme qui affiche l'image de pacman, attend 2 secondes et ensuite affiche l'image d'un fantôme.

    Astuce

    La fonction sleep(ms) met en pause l'exécution du programme pendant un nombre défini de millisecondes.
    1000 millisecondes (ms) correspondent à 1 seconde.

  2. Modifiez le programme de la partie a) pour qu'il change d'images toutes 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 écrivant while 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

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.

Exercice5#

  1. Sans l'exécuter, expliquez ce que fait le programme ci-dessous.

  2. Vérifiez votre réponse.

  3. Modifiez le programme pour qu'il affiche "B" quand le bouton B est appuyé.
    Utilisez la structure if/elif/else.

from microbit import *

while True:
  if button_a.was_pressed():
    display.show("A")
  else:
    display.show("X")
  sleep(500)

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.

leds du microbit

La fonction display.set_pixel(x, y, intensite) permet d'appliquer la valeur de l'intensité à 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 6#

É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édiaire.

from microbit import *

# Écrivez le programme ici