Découvre ce qu’est un micro:bit et le micropython, puis crée ton premier programme ! 💻👩💻
Introduction
Prête à plonger dans l’univers passionnant de la programmation ?
Tout au long de cet atelier, tu vas pouvoir imaginer, coder et donner vie à tes
idées grâce à un objet génial : la carte micro:bit !
Tu pourras aussi découvrir Lily, une jeune fille curieuse d’en apprendre plus, et Timy, son animal de compagnie, qui t’aideront à travers ton aventure et des découvertes !
Info
Si tu as des questions en cours de route, les organisateurs et organistatrices
sont là pour t’aider et t’accompagner à chaque étape. N’hésite pas à leur poser
toutes tes questions.
Qu’est-ce qu’un micro:bit ?
C’est l’équivalent d’un mini ordinateur de la taille d’une carte à jouer, et
comme un ordinateur, on va pouvoir écrire des programmes dessus !
Tu vas pouvoir afficher des choses à l’écran et contrôler ton micro:bit à
l’aide des boutons.
Il existe plein d’autres manières d’utiliser la carte programmable, que tu vas
découvrir tout au long du stage !
Analysons un programme
Un programme c’est simplement une série de d’instructions, de choses à faire.
Si les micro:bit parlaient français, voici à quoi ressemblerait un programme :
1
2
3
4
Affiche un point au centre
Affiche "Bonjour !"
Si j'appuie sur le bouton A :
Affiche un coeur
Malheureusement, les cartes micro:bit ne comprennent que le Python. Le but
de ce stage est donc de voir comment écrire nos commandes en utilisant le
langage Python.
Comme premier exemple, analysons ce programme :
1
2
3
# Indique qu'on va écrire des commandes pour le microbitfrom microbit import*
Permet à ton programme d’utiliser le micro:bit. Elle doit toujours être écrite en haut de ton programme 1 fois.
Allume une des LED de l’écran.
Attends quelque temps avant de lire la suite.
Répète les deux dernières opérations avec d’autres LED.
Appuie sur Run pour lancer le code :
Petit indice
Tu peux utiliser les flèches à gauche et à droite de la boîte ci-dessus pour
parcourir le code !
Essaye d’envoyer ce programme sur ton micro:bit ! Pour cela, rends-toi sur le site
https://python.microbit.org
,
supprime le texte déjà écrit et copie-colle celui de l’exemple.
Petit indice
Tu peux utiliser le bouton Copier pour copier tout le code !
Tu peux ensuite appuyer sur le bouton violet en bas à gauche “Send to micro:bit”, et suivre les
commandes.
Une fois envoyé, tu devrais voir une barre de chargement s’afficher sur ton
micro:bit.
Et les lignes qui commencent par # ?
Les lignes qui commencent par un # sont des commentaires.
Ces lignes vont être ignorées par le micro:bit. Ils sont écrits par les
développeurs et développeuses afin de mieux comprendre ce que fait un
programme.
Afficher des informations
Dans l’exemple de la partie précédente, on utilisait des commandes
différentes pour chaque action.
Info
Ces commandes sont aussi appelées fonctions.
Dans cette partie, on va voir les fonctions qui commencent par display..
Elles correspondent aux fonctions qui servent à afficher quelque chose à
l’écran.
Allumer des LED
Comme tu as pu le remarquer, au centre du micro:bit se trouvent 25 petit
carrés lumineux. Ils sont appelés LED (ou pixels).
La première méthode pour afficher quelque chose consiste à choisir une LED sur
l’écran et l’allumer.
LED qui s’allument
Pour cela, on utilise la
fonction display.set_pixel(colonne, ligne, intensite), où :
colonne représente le numéro de la colonne de la LED à allumer (un nombre de 0 à 4)
ligne représente le numéro de la ligne de la LED à allumer (un nombre de 0 à 4)
intensite représente la luminosité de la LED qu’on va allumer (un nombre de 0 à 9).
Info
Tu peux éteindre une LED en lui donnant une luminosité de 0.
En programmation, on compte toujours à partir de 0.
Sur le micro:bit, c’est pareil : la première colonne correspond à la colonne 0 ;
de même pour les lignes.
Voici un schéma pour le visualiser :
Coordonnées des LED
Si on voulait écrire un programme qui allume la même LED que sur le schéma
ci-dessus, voici ce qu’il faudrait écrire :
1
2
3
4
5
6
# Indique qu'on va écrire des commandes pour le microbitfrom microbit import*# Allume la LED de la 4ème colonne et 2ème ligne à une intensité de 9# car on commence à compter à partir de 0display.set_pixel(4, 2, 9)
À toi de jouer !
Pour savoir si tu as bien compris cette partie, dessine nous un cœur !
Ça devrait ressembler à quelque chose comme ça :
Tout éteindre
Comme tu peux le voir, une fois les LED allumées, elles ne s’éteignent jamais.
Tant que le micro:bit reste branché, les LED resteront allumées.
Pour éteindre 1 LED, tu peux mettre l’intensité dans la fonction set_pixel à 0.
Pour éteindre toutes les LED d’un coup, tu peux utiliser la fonction clear :
1
2
3
4
5
6
7
8
# Indique qu'on va écrire des commandes pour le microbitfrom microbit import*# Éteint le pixel au milieu du micro:bitdisplay.set_pixel(2, 2, 0)
# Éteint toutes les LEDdisplay.clear()
Les images
Pour afficher des images et des symboles déjà existants, on utilisera cette
fonction : display.show(Image.NOM_IMAGE), où NOM_IMAGE est le nom anglais
d’une image pré-enregistrée. Tu peux trouver la liste des images
pré-enregistrées
ici
.
Voici à quoi ressemblent les images HEART et HAPPY :
Image.HEART et Image.HAPPY
1
2
3
4
5
# Indique qu'on va écrire des commandes pour le micro:bitfrom microbit import*# Affiche l'image HEARTdisplay.show(Image.HEART)
À toi de jouer !
Cette fois-ci, affiche une image de PACMAN !
Ça va trop vite…
Si l’on souhaite afficher une première image, puis une autre,
sur le micro:bit, il suffit de mettre les 2 lignes à la suite :
1
2
3
4
5
6
7
# Indique qu'on va écrire des commandes pour le microbitfrom microbit import*# Affiche l'image HEARTdisplay.show(Image.HEART)
# Affiche l'image HAPPYdisplay.show(Image.HAPPY)
Sauf que l’exécution de ces 2 lignes est beaucoup trop rapide !
Le micro:bit affiche la 1ere image en 1 milliseconde, puis la deuxième.
Ce qui est pas suffisant pour qu’on puisse nous-même apercevoir l’image.
Tu peux dire au micro:bit d’attendre un certain temps avec la commande
sleep(TEMPS), avec TEMPS un nombre de millisecondes.
1
2
3
4
5
# Indique qu'on va écrire des commandes pour le microbitfrom microbit import*# Attends 2 secondessleep(2000)
À toi de jouer !
Copie le code qui affiche les images et ajoute une ligne de code entre les 2 affichages,
pour attendre 1 seconde (soit 1000 millisecondes).
Et le texte ?
Pour afficher du texte à l’écran, on utilise la fonction
display.scroll(message), où message est le texte que tu veux
afficher.
1
2
3
4
# Indique qu'on va écrire des commandes pour le microbitfrom microbit import*display.scroll("Les stages Girls Can Code! c'est trop bien !")
Le code ci-dessus devrait afficher “Les stages Girls Can Code! c’est trop bien !”
sur ton micro:bit. N’hésite pas à lui envoyer pour voir ce que ça donne !
Texte ou commande ?
Pour que le micro:bit fasse la différence entre les commandes et le
texte à afficher, il faut le mettre entre guillemets :
1
2
display.scroll() # Ceci est une commande"display.scroll()"# Ceci est du texte
Ce texte peut aussi être appelé chaîne de caractères.
À toi de jouer !
Affiche ton prénom sur l’écran du micro:bit.
Le défi de Lily
Lily veut écrire un programme pour son propre micro:bit.
Elle a besoin d’afficher une barre de chargement sur la ligne du milieu
(en allumant les LED de la 3ème ligne une par une), puis d’écrire le message
"Bonjour Prologin !" suivi d’un smiley qui sourit.
Mais elle ne sait pas comment l’écrire, et aimerait que quelqu’un l’aide.
À toi de jouer !
Écris le programme de Lily.
Une mémoire de poisson rouge
Un ordinateur, ça ne retient rien. Du moins, pas tant qu’on ne lui demande pas
de le faire.
Pour ça, on utilise ce qui s’appelle une variable.
Une variable, c’est comme une boîte. Son nom, c’est l’étiquette qui permet de la
reconnaître, et on met ce qu’on veut dedans.
Créer une variable
Voici comment on crée une variable :
1
ma_variable =10
Info
Tu peux nommer tes variables comme tu le souhaites, du moment que ce n’est pas le
nom d’une fonction et que le nom ne contient pas d’espace.
Lorsqu’on écrit ma_variable = 10, voici ce qui se passe dans l’ordinateur :
Il crée une nouvelle boîte
Il ajoute l’étiquette ma_variable dessus
Il met 10 dans la boîte
Utiliser une variable
Pour utiliser une variable, il suffit d’écrire son nom comme ceci : ma_variable.
Vu que ce n’est pas du texte (il n’y a pas de guillemets), le micro:bit va
regarder s’il a une boîte avec la bonne étiquette. Si c’est le cas, il va
utiliser ce qu’on a stocké dedans.
Voici un petit exemple pour illustrer :
1
ma_variable =10
2
display.scroll(ma_variable)
On crée notre variable ma_variable et on enregistre 10 dedans
On demande d’afficher ma_variable. La boîte existe, donc on affiche son contenu : 10
Appuie sur Run pour lancer le code :
Modifier le contenu de la boîte
Pour mettre à jour une variable, il suffit d’en créer une autre du même nom.
L’ancienne boîte est automatiquement supprimée.
1
nombre =10
2
nombre =1+1
On crée une boîte nombre avec 10 à l’intérieur
On crée une nouvelle boîte nombre dans laquelle on met 2, et on supprime celle avec 10
Appuie sur Run pour lancer le code :
Info
Tu peux utiliser l’ancienne boîte pour calculer la valeur de la nouvelle comme au-dessus.
Quoi stocker ?
Dans une variable, on peut stocker n’importe quelle information que l’on veut.
En programmation, nous avons souvent 3 types de variables : les nombres, les chaînes de
caractères et les booléens.
Les nombres
Les nombres en Python peuvent être entiers ou décimaux. Comme tout nombre qui
existe, on peut faire des opérations dessus :
1
2
3
4
5
6
1+1# addition1-1# soustraction1*1# multiplication1/1# division1//1# division entière1%1# reste de la division entière
Info
Le reste de la division est aussi appelé modulo.
Un petit rappel sur les divisions entières ?
Une division entière, c’est une division posée sur papier. On s’arrête dès qu’on
ne peut plus soustraire :
Ici, on a donc 17 // 5 = 3, et 17 % 5 = 2
N’hésite pas à appeler un.e orga pour t’expliquer si tu n’as pas compris !
À noter
Toutes les variables contenant un nombre peuvent être considérées comme des
nombres :
1
a =1
2
b =2
3
print(a + b)
Stocke le nombre '1' dans la variable a
Stocke le nombre '2' dans la variable b
Affiche '3' (la somme de a et b)
Appuie sur Run pour lancer le code :
De même, toute variable contenant du texte peut être considérée comme du texte.
Mission : acheter des croissants
Les orgas sont en train de calculer le coût des croissants pour le petit
déjeuner de demain matin.
Ils ont écrit ce code là :
1
2
nombre_total_croissants =42prix_croissant =1.2# le prix d'un croissant
Complète le programme pour afficher le prix total des croissants sur ton
micro:bit.
Petit indice
display.scroll peut afficher du texte mais également des nombres.
Du texte, toujours plus de texte
Comme on l’a vu plus tôt, les chaînes de caractères sont reconnaissables car
elles sont entre guillemets.
Mais on peut aussi les mettre à la suite :
1
"Bon"+"jour"# donne "Bonjour"
Toute variable qui stocke du texte (c’est à dire une chaîne de caractères) peut
être utilisée comme du texte.
1
a ="GC"
2
b ="C!"
3
print(a + b)
Stocke le “GC” dans la variable a
Stocke le “C!” dans la variable b
Affiche “GCC!” (la somme de a et b)
Appuie sur Run pour lancer le code :
Info
On appelle ça la concaténation.
Transformation !
Attention !
Le problème, avec le texte et les nombres, c’est qu’on ne peut pas les utiliser ensemble directement :
1
10+"2"# erreur
Ici, 10 est un nombre et "2" est une chaîne de caractères (entre guillemets).
On peut transformer l’un en nombre, avec int :
1
10+ int("2")
ou l’autre en chaîne de caractères, avec str :
1
str(10) +"2"
Bien sûr, la même chose s’applique lorsque les valeurs sont stockées dans des variables.
Info
int est un raccourci de integer, qui signifie nombre entier en anglais, et str est un raccourci de string, qui signifie chaîne de caractères.
Info
Si l’on veut transformer le nombre dans une variable en texte (y ajouter
des guillemets en quelque sorte), on utilise str :
1
2
3
4
variable =42# contient le nombre 42type(variable) # Affiche `<class 'int'>` car c'est un entiervariable2 = str(variable) # contient le texte "42"type(variable2) # Affiche `<class 'str'>` car c'est un entier
Petit indice
Tu peux cliquer sur Run pour voir ce que le code au-dessus va afficher !
Pour transformer le texte en nombre, on utilise int à la place de str.
1
2
variable ="42"# contient le texte "42"variable2 = int(variable) # contient le nombre 42
Mission : Des croissants un peu chers…
Les orgas sont assez étonnés du prix qu’ils obtiennent. Ils envoient un message
à la Trésorerie pour s’assurer qu’ils ont de quoi payer.
Après quelques minutes, celle-ci répond : “<prix> euros ?! Mais c’est trop cher !”.
Malheureusement, l’orga en charge de passer la commande n’a pas vu le message,
et n’a accès qu’à son micro:bit.
Écris le message de la Trésorerie sur ton micro:bit, en remplaçant <prix>
par la valeur calculée précédemment.
Tu peux utiliser la concaténation ainsi que la transmutation pour créer la chaîne
de caractères.
J’affirme !
Un booléen, c’est soit True (vrai), soit False (faux). Ça permet de donner
l’état d’une affirmation. Par exemple :
1
c_est_vrai =1<2
2
c_est_faux =1>2
1 est bien inférieur à 2, donc on stocke True
1 n’est pas supérieur à 2, donc on stocke False
Appuie sur Run pour lancer le code :
Voici tous les symboles permettant de faire des opérations de comparaison :
Nom
Symbole
Exemple
Résultat
Égalité
==
2 == 3
False
Différence
!=
2 != 3
True
Inférieur strict
<
2 < 3
True
Inférieur ou égal
<=
2 <= 3
True
Supérieur strict
>
2 > 3
False
Supérieur ou égal
>=
2 >= 3
False
Ça et ça ou ça et pas ça
Il existe 3 opérateurs qui nous permettent de faire des affirmations plus
précises :
Nom
Opérateur
Exemple
Traduction
Résultat
ne … pas
not
not 1 < 2
1 n’ est pas inférieur à 2
False
et
and
1 < 2 and 2 < 3
1 est inférieur à 2 et 2 est inférieur à 3
True
ou
or
1 > 2 or 2 < 3
1 est supérieur à 2 ou 2 est inférieur à 3
True
Info
Ils peuvent être combinés autant qu’on veut :
1
"a"<"b"and30/4>6or9%4==1
Mission : Erreur de calcul
Les boulangers se sont trompés sur le calcul du prix.
Lily commande à la boulangerie :
4 pains au chocolat à 1€ 25 unité
10 croissants à 1€ 20 unité
On lui demande 18€.
Affiche sur le micro:bit si ce qu’affirment les boulangers est vrai ou faux.
Comment utiliser les boutons du micro:bit ?
Comme tu peux le voir, il y a deux boutons physiques sur le micro:bit : le
bouton A (1) et le bouton B
(2). Il existe également un bouton tactile
(3) au niveau du logo au-dessus de l’écran.
Boutons du micro:bit
Nombre d’appuis
Pour utiliser les boutons A et B, tu peux respectivement utiliser la fonction
button_a.get_presses() et button_b.get_presses().
Ces fonctions renvoient le nombre d’appuis sur le bouton depuis la dernière fois
qu’elles ont été appelées.
Par exemple, ce code va afficher le nombre de fois que le bouton A a été appuyé
au cours des 5 premières secondes du programme :
# Importe les fonctions pour le micro:bitfrom microbit import*# Compte à reboursdisplay.set_pixel(0, 2, 9)
sleep(1000)
display.set_pixel(1, 2, 9)
sleep(1000)
display.set_pixel(2, 2, 9)
sleep(1000)
display.set_pixel(3, 2, 9)
sleep(1000)
display.set_pixel(4, 2, 9)
sleep(1000)
# Récupère le nombre d'appuis sur le bouton Aa = button_a.get_presses()
# Affiche le nombre d'appuis sur le bouton Adisplay.scroll("Total : "+ str(a))
À toi de jouer !
Crée un programme qui affiche la somme du nombre d’appuis sur les boutons A et B
au cours des 3 dernières secondes. Pour faire ce programme, tu peux t’aider de
variables !
Un exemple un peu plus complexe
À toi de jouer ! Que fais le programme d’après toi ? Essaye de le lancer sur ton
micro:bit !
# Importe les fonctions pour le micro:bitfrom microbit import*# Compte à reboursdisplay.set_pixel(0, 2, 9)
sleep(1000)
display.set_pixel(1, 2, 9)
sleep(1000)
display.set_pixel(2, 2, 9)
sleep(1000)
display.set_pixel(3, 2, 9)
sleep(1000)
display.set_pixel(4, 2, 9)
sleep(1000)
# Récupère le nombre d'appuis sur le bouton Aa = button_a.get_presses()
# Affiche le nombre d'appuis sur le bouton Adisplay.scroll("Total : "+ str(a))
# Que se passe-t-il ici ?display.scroll("Ici ?"+ str(a))
# Que se passe-t-il ici ?a = button_a.get_presses()
display.scroll("Et ici ?"+ str(a))
Si tu ne comprends pas ce qu’il se passe n’hésites surtout pas à demander aux organisateurs !
À toi de jouer !
Lily voudrait connaître le résultat de la multiplication de deux nombres.
Pour récupérer la valeur des deux nombres tu peux donner quelques secondes à
l’utilisateur pour appuyer le bon nombre de fois sur chaque bouton.
Par exemple, si pendant ce temps, tu appuies 3 fois sur le bouton de gauche
et 7 fois sur celui de droite, le programme affichera 3 * 7 = 21 sur l’écran.
Et si…
En programmation, tu voudras parfois qu’un certain bout de code s’effectue
seulement si une condition est vraie, ou effectuer un autre bout de code si
cette dernière n’est pas vraie.
Commençons d’abord par regarder des exemples que tu pourrais rencontrer dans la
vie courante de l’utilisation des condititons.
Utilisation d’une condition
Utilisation d’une condition avec une action si elle n’est pas vérifiée
Utilisation de plusieurs conditions chaînées
Avant de continuer…
Avant d’attaquer la suite, il est primordial de comprendre ce qu’est
l’indentation. Elle permet de définir des blocs dans notre code.
Info
Chaque ligne avec la même indentation fait donc partie du même bloc.
L’indentation correspond au nombre d’espaces au début d’une ligne et avant une
instruction. Dans l’exemple de code ci-dessous, la première ligne a un niveau d’indentation de 0 tandis que la deuxième ligne à un niveau d’indentation de 1 qu’on représente par 4 espaces.
1
2
3
display.scroll("Coucou") # Ligne qui n'est pas indentéeifTrue:
display.show(Image.HAPPY) # Ligne qui est indentée 1 fois
Garder l’indentation permet de faire plusieurs instructions dans le même bloc.
Pour créer ces blocs, nous allons utiliser la touche tabulation du clavier.
Elle permet de rajouter 4 espaces en 1 touche. Elle devrait ressembler à ça :
Revenons à nos conditions
Pour rendre nos programmes intelligents, nous allons leur dire de faire certaines
instructions, uniquement dans certains cas, du même genre que : “S’il pleut, je
prends un parapluie” ; je prends le parapluie s’il pleut uniquement, pas besoin de
l’avoir s’il fait beau.
En Python, on va poser ce type de questions grâce aux instructions if, elif
et else.
L’instruction if (si 🇫🇷), que l’on fait suivre
d’une condition que l’on veut tester.
Elle permet d’exécuter un morceau de code que lorsqu’une condition est vraie.
Pour écrire une condition, la syntaxe est : if condition: suivi d’un bloc de
code indenté. Le bloc de code en question sera alors exécuté uniquement si
condition est vraie (True).
Essaye d’exécuter ce code en cliquant sur le bouton Run !
Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :
Qu’est-ce que c’est randint() ?
La fonction randint() permet de générer aléatoirement un nombre entre deux
nombres. Par exemple, si tu appelles la fonction avec randint(1, 4), les
nombres possibles seront 1, 2, 3 et 4.
Un if peut être accompagné d’un else (sinon 🇫🇷) qui exécute un
bloc de code uniquement si la condition du if est fausse.
Enfin, il y a aussi le elif qui est la contraction du else et du if. Il n’est
exécuté que si sa condition est vraie et que les conditions précédentes sont
fausses.
Voici un petit exemple pour illustrer :
1
2
3
4
5
6
7
8
9
10
11
12
13
# Importe les fonctions pour le micro:bitfrom microbit import*x =0if x <30:
display.scroll("Pomme")
elif x <50:
display.scroll("Poire")
elif x <80:
display.scroll("Banane")
else:
display.scroll("Orange")
À toi de jouer !
Essaye de trouver ce que va afficher le programme en remplaçant
la ligne 4 par x = 0, x = 42 et x = 238.
À noter
Un if n’est pas nécessairement accompagné d’un else (ou d’un elif).
Dans ce cas, si sa condition est fausse, rien n’est exécuté.
De plus, on peut ajouter autant de elif que l’on veut après un if.
Si jamais tu as une question ou s’il y a quelque chose que tu n’as pas compris,
n’hésite pas à demander aux organisateurs et organisatrices.
Ça fait beaucoup de lignes
Tu sais maintenant comment créer des programmes assez complexes. Pour répéter
une action et t’éviter de copier-coller des bouts de code, il existe en Python
ce que l’on appelle des boucles.
Il existe deux types de boucles : les boucles for et les
boucles while.
Tant que
La boucle while (tant que 🇫🇷) est une boucle dont le bloc de code est répété
tant qu’une condition est vérifiée (d’où son nom). On l’écrit while condition:.
On peut trouver des examples dans la vie courante :
Algorithme avec l’utilisation d’une boucle tant que
Illustrons cette boucle à travers un exemple de code :
1
2
from microbit import*
3
while button_a.get_presses() ==0:
4
5
6
# Ce qui suit va être répété tant que le button A n'a pas été appuyé display.show(Image.ANGRY)
7
display.scroll("Tu es sortie !")
Importe les fonctions pour utiliser le micro:bit
Déclaration de la boucle avec le mot-clé while avec comme condition button_a.get_presses() == 0
Affiche l’image ANGRY tant qu’on reste dans la boucle
Affiche “Tu es sortie !” une seule fois
Appuie sur Run pour lancer le code :
À toi de jouer !
Écris un programme qui compte le nombre d’appuis sur les boutons A et B et qui
affiche ce nombre lorsque le bouton tactile est touché.
Pendant que le programme attends (avant que tu appuies le bouton tactile), tu
peux afficher l’image Image.CLOCK1.
Petit indice
Tu peux utiliser pin_logo.is_touched() pour vérifier si le bouton
tactile a été appuyé qui renvoie un booléen (True ou False).
Les boucles infinies
Pour que le programme ne s’arrête jamais, comme dans un jeu par exemple, nous
pouvons utiliser une boucle infinie.
La boucle while s’arrête si la condition est fausse, donc utiliser True comme
condition, permet de créer une boucle infinie :
1
2
3
4
5
6
7
8
9
10
11
# Importe les fonctions pour le micro:bitfrom microbit import*whileTrue:
# Vérifie si le bouton A a été appuyéif button_a.get_presses() >0:
display.show(Image.HAPPY)
# Vérifie si le bouton B a été appuyéif button_b.get_presses() >0:
display.show(Image.ANGRY)
Ce programme affiche donc l’image HAPPY si le bouton A est le dernier à être
appuyé, l’image ANGRY si c’est le bouton B.
Pour un certain nombre de fois
La boucle for est un peu différente de la boucle while, car elle permet de
répéter un bloc de code un nombre fini de fois. Ce nombre de répétitions doit
être connu pour pouvoir utiliser ce type de boucle.
Les boucles simples
Le nombre dans les parenthèses de range indique le nombre de répétitions, ici
la boucle répète 3 fois le bloc de code en-dessous.
1
2
3
for i in range(3):
# Affiche "Test." print("Test.")
La variable de la boucle for
La variable i indique le numéro de la répétition, en partant de 0, la boucle
fera 5 répétitions.
Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :
i étant une variable, tu peux changer son nom si tu as envie :
Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :
Voici un petit schéma pour bien différencier les différents blocs de code :
À toi de jouer !
Cette fois-ci, Lily veut impressionner ses amis en écrivant son programme en 4
lignes maximum ! Elle veut que sa carte affiche une diagonale (comme sur l’image
ci-dessous) pixel par pixel en partant du coin haut-gauche avec une pause de
500ms entre chaque pixel qui s’allume.
LED en diagonales
Une variable score
Comme dans un jeu vidéo, on peut combiner les variables avec les boucles, pour calculer
des scores, ou tout autre donnée dont on a besoin toute la partie.
Pour faire ça, on crée une variable avant la boucle, et on met à jour sa valeur, dans la
boucle. Par exemple :
Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :
À toi de jouer !
Lily te demande d’afficher le nombre total de pixels situés à gauche de la
diagonale à la fin du programme.
LED en diagonales
Tu peux reprendre ton programme précédent en utilisant une variable total
qui va compter au fil de la boucle le nombre de pixels situés à gauche du pixel
que tu as allumé.
Projet
Il est maintenant temps de mettre en pratique tout ce que tu as appris au
cours de ce TP avec un petit projet. Rien de compliqué, je te rassure, et puis
si tu as des questions, les organisateurs et organisatrices sont là pour ça !
But
Lily est dans la panade… Elle aurait besoin de deux dés à 6 faces pour jouer
au Monopoly avec ses amis, mais elle les a oubliés, et tout ce qu’elle a à sa
disposition est un micro:bit…
Lily te demande alors de lui faire un programme qui simule un lancé de deux
dés et affiche la valeur des deux dés lorsque l’un des boutons (A ou B) est
appuyé.
Cependant, comme Lily ne veut pas que ses amis pensent qu’elle a simplement
oublié les vrais dés, elle voudrait donc y ajouter quelques fonctionnalités :
Elle voudrait que si le lancé est un double (les 2 dés sont les mêmes), un
smiley content s’affiche juste après les chiffres :
Lancé avec un double
Par contre, elle voudrait que si deux doubles sont faits d’affilée, un smiley
pas content s’affiche à la place du smiley content :
2 doubles obtenus
Elle voudrait enfin que le smiley disparaisse 2 secondes après être apparu
On te conseille vivement de faire ce projet étape par étape. Tu peux commencer
par coder le lancer des deux dés, et lorsque cela fonctionne, ajouter les
différentes demandes de Lily les unes après les autres.
De plus, n’hésite pas à poser des questions si tu es bloquée, les orgas seront
très contents de t’aider !
Besoin d’aide ? Clique ici !
Tu peux utiliser la fonction display.clear() pour effacer l’écran.
Pour générer un nombre aléatoire, tu peux utiliser et essayer ce bout de
code :
Appuie sur le bouton Run pour exécuter le code python ci-dessous
Le résultat :
On va avoir besoin de la notion de boucle infinie de la page précédente pour
vérifier si on a appuyé sur un bouton !
Si tu veux vérifier que le bouton A (ou le bouton B respectivement) a
été pressé, tu peux utiliser la fonction button_a.was_pressed()
(ou button_b.was_pressed()).
Conclusion
Voili voilou, je crois que mon rôle touche à sa fin. Si quelque chose ne te
semble pas clair, pose la question aux orgas ! Tu peux
nous faire part de tes remarques pour améliorer ce TP et le rendre encore plus
clair.
Mais ce n’est pas parce que ce TP est terminé que tu es lachée dans la nature
pour autant. Il te reste encore plein de trucs à découvrir, que ce soit en
Python ou bien en rapport au micro:bit. Tu as de nombreux autres TPs qui sont
disponibles. Ils se présentent plutôt sous la forme de petits projets centrés
sur l’utilisation d’un composant en particulier du micro:bit. Tu peux ainsi
apprendre à utiliser pleinement le micro:bit pour ensuite créer tes propres
projets !
Nous t’invitons donc à choisir les projets qui t’intéressent et avancer à ton
rythme !