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, on veut programmer 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.

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

1
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

1
if condition:
2
    # Fait ce code si la condition vaut Vrai
3
else:
4
    # Fait cet autre code sinon

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