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

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

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

  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 "J'aime l'informatique!".

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 correpond à 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.

  2. Modifiez le programme de la partie 1 pour qu'il change d'images toute les secondes en continu.

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.

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

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)

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'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