L'accéléromètre
On rappelle que l'on utilise le logiciel Mu en mode BBC pour écrire le code puis le flasher sur la carte.
Sachez qu'il existe un éditeur en ligne .
L'orientation
La carte micro:bit est livrée avec un accéléromètre. Elle est capable de détecter son orientation dans l'espace selon les trois coordonnées x, y et z
Pour récupérer l'information d'orientation de la carte selon l'axe x, il faut utiliser l'instruction dx = accelerometer.get_x()
La variable dx
contiendra un entier positif ou négatif selon la direction, les valeurs sont comprises entre -1024 et 1024.
Exercice 1
- Recopier le code qui suit dans l'éditeur du logiciel Mu, puis appuyez sur le bouton pour le flasher sur votre carte.
from microbit import *
while True:
dx = accelerometer.get_x()
display.scroll(dx)
sleep(500)
3. Modifier le code pour utiliser l'orientation selon l'axe des y puis tester. Essayer ensuite l'orientation selon l'axe des z.
Exercice 2
- Prévoir ce que fait ce programme puis le tester sur votre carte.
from microbit import *
x = 0
y = 0
while True:
display.set_pixel(x,y,0)
if button_a.was_pressed():
x = x - 1
if button_b.was_pressed():
x = x + 1
x = max(0, min(x, 4))
display.set_pixel(x,y,9)
sleep(20)
x = max(0, min(x, 4))
3. Adapter le programme ci-dessus afin que le point lumineux puisse se déplacer verticalement. Pour cela, utiliser l'information d'orientation selon l'axe des y :
- Pour récupérer l'information d'orientation de la carte, utiliser l'instruction
dy = accelerometer.get_y()
- Si la variable
dy
est plus grande que 600, le point sera sur la 5eme ligne - Si la variable
dy
est plus grande que 300, le point sera sur la 4eme ligne - Si la variable
dy
est plus petit que -600, le point sera sur la 1ère ligne - Si la variable
dy
est plus grande que -300, le point sera sur la 2ème ligne - sinon, la carte est à peu près horizontale et le point sera sur la ligne centrale.
Info
La structure en python pour des instructions conditionnelles est la suivante :
if condition1:
instructions à faire
elif conditions2:
instructions à faire
elif conditions3:
instructions à faire
...
else:
instructions à faire
si condition1 est vraie:
instructions à faire
sinon si condition2 est vraie:
instructions à faire
sinon si condition3 est vraie:
instructions à faire
...
sinon:
instructions à faire
Les gestes
La carte micro:bit est capable aussi de détecter différents mouvements ou gestes.
Les gestes reconnus sont les suivants : haut, bas, gauche, droite, face visible, face cachée, chute libre, accélération correspondant à 3, 6 ou 8 fois celle de la chute libre, shake.
Les gestes sont toujours représentés par des chaînes par exemple "up"
pour haut.
Vous trouverez ci-dessous les mots clés des différents gestes à écrire entre guillemets que vous pourrez utiliser dans un programme.
Commandes
- up
- down
- left
- right
- face up
- face down
- free fall
- shake
Exercice 3
Pour obtenir le geste en cours, utiliser l'instruction geste = accelerometer.current_gesture()
. La variable geste
prendra pour valeur l'un des gestes nommés énumérés ci-dessus.
1. Prévoir ce que fait le code ci-dessous puis le tester sur votre carte.
from microbit import *
while True:
geste = accelerometer.current_gesture()
if geste == "face up":
display.show(Image.HAPPY)
else:
display.show(Image.ANGRY)