UTILISATION DES CAPTEURS DE La micro:bit

La carte Micro:Bit comporte divers capteurs permettant d'effectuer des mesures de grandeurs :

  • Un accéléromètre

  • Un capteur de luminosité

  • Un capteur de température

  • Un capteur de champ magnétique (ou boussole)

  1. Le capteur de lumière

En inversant la fonctionnalité des LEDs d'un écran pour devenir un point d'entrée, l'écran LED devient un capteur de lumière basique, permettant de détecter la luminosité ambiante.

La commande display.read_light_level() retourne un entier compris entre 0 et 255 représentant le niveau de lumière.

Travail à faire :

Compléter le programme ci-dessous pour qu'il affiche une image de lune si on baisse la luminosité (en recouvrant la carte avec sa main par exemple) et un soleil sinon.

Amélioration possible : On peut créer un programme qui affiche le niveau de luminosité et le tester avec la LED d'un téléphone portable ou une lampe-torche par exemple. Plus la luminosité sera élevée, plus il y aura de LEDs affichées sur la matrice de LED.

# Ecrire votre programme ici

from microbit import *

soleil = Image("90909:"

"09990:"

"99999:"

"09990:"

"90909:")

lune = Image("00999:"

"09990:"

"09900:"

"09990:"

"00999:")

while True:

if display.read_light_level()>"Compléter ici":

display.show(soleil)

else:

display.show("Compléter ici")

sleep(10)

2. Le Capteur de température

Le micro:bit n’a pas un capteur de température dédié. Au lieu de cela, la température fournie est en fait la température de la puce de silicium du processeur principal. Comme le processeur chauffe peu en fonctionnement (c'est un processeur ARM à grande efficacité), sa température est une bonne approximation de la température ambiante. L'instruction temperature() renvoie la température de la carte micro:bit en degrés Celsius.

Travail à faire :

Ecrire un programme qui affiche la température sur la matrice de LED (aide: on pourra utiliser l'instruction display.scroll()

3. Accéléromètre

Un accéléromètre mesure l'accélération de la carte micro:bit, ce composant détecte quand la micro:bit est en mouvement. Il peut aussi détecter d'autres actions (gestes), par exemple quand elle est secouée, inclinée ou qu'elle tombe.

Les smartphones utilisent un accéléromètre pour savoir dans quel sens afficher les images sur son écran. Les manettes de jeux contiennent aussi des accéléromètres pour aider à tourner et à se déplacer dans les jeux.

La carte micro:bit est munie d’un accéléromètre. Il mesure le mouvement selon trois axes :

X - l’inclinaison de gauche à droite.

Y - l’inclinaison d’avant en arrière.

Z - le mouvement haut et bas.

Dans l'exemple suivant à essayer, l'instruction accelerometer.get_x() permet de détecter un mouvement de gauche à droite en renvoyant un nombre compris entre -1023 et 1023; 0 étant la position "d'équilibre"

Travail à faire :

  • Télécharger le fichier accelerometre.py (disponible ici) sur l'ordinateur et l'ouvrir avec l'éditeur Python grâce au bouton Load/Save.

  • Flasher la carte micro:bit pour y télécharger ce nouveau programme.

  • Modifier ce programme pour que s'affichent les flèches vers le haut et vers le bas quand on oriente la carte micro:bit vers l'avant ou vers l'arrière.

4. Boussole

La boussole détecte le champ magnétique de la Terre, nous permettant de savoir quelle direction la micro:bit indique. La boussole doit être étalonnée avant de pouvoir être utilisée. Pour cela, on utilise compass.calibrate() qui exécute un petit jeu.
Au départ, micro:bit fait défiler "Tilt to fill screen". Ensuite, il faut incliner micro:bit pour déplacer le point au centre de l’écran autour jusqu'à ce que vous ayez rempli la totalité de l’écran.

La fonction compass.heading() donne le cap de la boussole sous la forme d'un entier compris entre 0 et 360, représentant l'angle en degrés, dans le sens des aiguilles d'une montre, avec le nord égal à 0.

from microbit import *

#Calibrage du compas

compass.calibrate()

#boucle

while True:

angle = compass.heading()

if 315 <= angle or angle <= 45:

display.show("N")

elif 45 < angle and angle <= 135:

display.show("E")

#attente d’une seconde

sleep(1000)

Travail à faire :

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

  • Copier le programme ci-dessus et flasher la carte micro:bit avec.

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