Accéléromètre
L'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.
Question
Maintenant que nous savons ce qu'est un accéléromètre, écrivez un programme notre carte, afin qu'elle affiche un smiley joyeux quand on est face visible et un smiley pas content sinon.
Appelez le·a professeur·e avant de passer à la suite.
Indice
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
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
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 Vraielse: # Fait cet autre code sinonL'instruction if, prend une condition en paramètre. Une condition est une expression qui vaut soit Vrai, soit Faux, comme le code de l'indice précédent. (On prendra garde à bien ajouter le « : »
à la fin de la condition)
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èselse(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.
Question
On veut maintenant ajouter la même fonctionnalité à la carte que celle de nos téléphone. La bonne orientation de la carte.
Écrivez un programme qui affiche une flèche sur la carte indiquant le haut. Quand la carte est face vers le haut, un smiley joyeux, et si elle est face vers le bas, un smiley triste.
Appelez le·a professeur·e avant de passer à la suite.
Indice
Ce code demande beaucoup de if else imbriqué. On peut alors utiliser l'instruction elif, qui correspond à un else if pour le simplifier.
if condition1:
# Execute ce code si la condition1 vaut Vraielif condition2:
# Execute ce code si la condition2 vaut Vrai et que la condition1 vaut Fauxelse: # Execute cet autre code sinon