Exercice : Boussole

La carte micro:bit dispose d'un capteur de champ électromagnétique accessible par l'objet compass.

Avant toute utilisation du compass, il faut le calibrer avec compass.calibrate() : un message défilant sur l'écran nous invite à incliner la carte jusqu'à ce que les 25 diodes soient allumées.

compass.heading() retourne l'angle entre le vecteur du champ magnétique mesuré et le Nord magnétique (pris comme référence 0). La mesure en degrés, est un entier compris entre 0 et 360. Par défaut, le champ magnétique terrestre est mesuré.

Pour simuler une boussole indiquant les quatre points cardinaux avec la carte micro: bit, on découpe l'intervalle [0 ; 360] en 4 intervalles d'amplitude 90 degrés.

On donne le programme suivant :

1
from microbit import *
2
3
#Calibrage du compas
4
compass.calibrate()
5
6
#boucle
7
while True:
8
    angle = compass.heading()
9
    if 315 <= angle or angle <= 45:
10
        display.show("N")
11
    elif 45 < angle and angle <= 135:
12
        display.show("E")
13
14
#attente d'une seconde
15
sleep(1000)

Question

Préciser le rôle de chaque instruction. Identifier capteur et actionneur.

Question

Compléter le programme pour qu'il affiche aussi les directions Sud et Ouest et qu'un appui sur le bouton A provoque une sortie de la boucle suivie d'un effacement de l'écran.