Activité 2 : Découverte des cartes⚓︎
Dans l'activité précédente, nous avons utilisé « l'écran » composé de 25 DELS.
Mais ce n'est pas le seul intérêt de ces cartes. Dans les exercices suivant, nous allons apprendre à utiliser les différents composants.
Elles possèdent entre autres :
- Deux boutons (A et B)
- Un accéléromètre
- Un compas
- Un thermomètre
- Une antenne radio
- Une antenne bluetooth
- Un haut-parleur (seulement en v2)
- Un micro (seulement en v2)
- Un bouton tactile (seulement en v2)
- Un capteur de lumière
1. Les boutons⚓︎
La carte micro:bit a deux boutons A et B situés à gauche et à droite de l'écran. On peut détecter s'ils sont pressés en utilisant les deux fonctions suivantes :
button
button_a.is_pressed() qui renvoit True (vrai) si le bouton A est pressé au moment où cette fonction est exécutée, et False (faux) sinon
button_a.was_pressed() qui renvoit True (vrai) si le bouton A a été pressé depuis que la carte a été allumée, ou depuis le dernier appel de cette fonction, et False (faux) sinon
button_b.is_pressed() et button_b.was_pressed() a la même signification, mais pour l'autre bouton.
Les deux fonctions semblent à première vue très proche. Une différence apparaîtra en exécutant une action dans une boucle si le bouton est appuyé. Si le bouton est appuyé longtemps (plus d'un centième de secondes) :
- avec is_pressed(), l'action risquera d'être exécutée plusieurs fois ;
- avec was_pressed(), l'action ne sera exécutée qu'une seule fois.
En pratique, vous aurez peu à vous soucier de cette différence.
Programme 5 : Horloge
- copier-coller ce code ci-dessous dans l'éditeur
- Vérifiez qu'en appuyant sur le bouton de droite, l'aiguille s'arrête de tourner, et qu'en appuyant sur le bouton de gauche, elle se remet à tourner.
- Lisez et comprenez comment le programme fonctionne.
- Modifiez le programme pour inverser le rôle des deux boutons.
👍 Appelez l'enseignant pour validation ❗
code à copier
| 🐍 Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
Programme 6 : Compteur
- copier-coller ce code ci-dessous dans l'éditeur
- Vérifiez qu'il fonctionne comme attendu : il doit afficher le nombre 0, et augmenter de 1 à chaque fois que vous appuyez sur le bouton B.
- Modifiez ce programme pour diminuer le compteur de 1 lorsque vous appuyez sur le bouton A.
-
Modifiez ce programme pour remettre le compteur à 0 lorsque vous appuyez sur les deux boutons en même temps. Pour faire ceci, vous devrez :
- utiliser le mot-clef
andpour tester deux conditions en même temps ; - utiliser, pour ce test,
is_pressed()plutôt quewas_pressed().
- utiliser le mot-clef
👍 Appelez l'enseignant pour validation ❗
code à copier
| 🐍 Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
2. Accéléromètre⚓︎
Les cartes micro:bit embarquent en leur sein un accéléromètre.
Cet accéléromètre, comme celui intégré dans votre téléphone, permet de détecter les mouvement et leur direction.
Ainsi la carte est capable de reconnaître différent mouvement/gestes. Parmi lesquels sont : face visible, face cachée, haut, bas, gauche, droit, chute libre, 3g, 6g, 8g et secouer.
Pour plus d'information, on peut se référer à la documentation de la carte.
Programme 7 : Smiley Joyeux
Maintenant que nous savons ce qu'est un accéléromètre, on veut programmer notre carte, afin qu'elle affiche un smiley joyeux quand on est face visible et un smiley pas content sinon.
👍 Appelez l'enseignant pour validation ❗
Indice 1
Tout d'abord, nous avons besoin de récupérer l'état de notre accéléromètre. Pour ce faire, on utilise le code suivant qui obtient l'état de l'accéléromètre et le stocke dans une variable.
geste = accelerometer.current_gesture()
Indice 2
Maintenant que l'on à le geste, il nous faut le comparer au geste qui correspond à être face visible (face up).
Pour ce faire, on a le code suivant qui vaut Vrai (True) si le geste est face visible et Faux (False) sinon.
geste == "face up"
On prendra bien garde à noter le double égal ==.
Le double égal est l'opérateur d'égalité, comme le symbole égal en mathématique, alors que le simple égal est l'opérateur d'affectation, i.e. la variable de gauche prend la valeur de l'expression de droite.
Indice 3
Maintenant que nous savons récupérer l'état de l'accéléromètre et regarder sa valeur, il est temps de faire une action en fonction de si on est face visible ou non.
Pour ce faire on utilise l'instruction if else
if condition:
# Fait ce code si la condition vaut Vrai
else:
# Fait cet autre code sinon
Si la condition est Vrai, alors on exécute le bloc immédiatement après. (On prendra bien soin de bien décalé ce code de 4 espaces supplémentaires)
Sinon, si la condition est Fausse, alors on exécute le bloc après else (sinon en anglais). (On prendra bien soin de bien décalé aussi ce code de 4 espaces supplémentaires)
Une fois l'un ou l'autre des codes exécuté, on reviendra à l'exécution du code aligné avec le if.