Skip to content

Activité

Niveau à bulle

Intermédiaire | MakeCode, Python | Accéléromètre, Son, Écran LED | Capteurs, Logique booléenne, Opérateurs de comparaison, Sélection

Étape 1 : Fais-le

Qu'est-ce que c'est ?

Faites un outil pour vous assurer que les tableaux, les étagères ou les surfaces de travail sont de niveau. Le haut-parleur intégré de la nouvelle micro:bit vous permet d'améliorer facilement votre niveau à bulle grâce à un retour audio.

Introduction

Guide de codage

Ce que vous apprendrez

  • Comment utiliser le l'accéléromètre pour mesurer les angles
  • Ce que sont le roulis et le tangage
  • Comment combiner la lecture d'un capteur à deux dimensions pour trouver le niveau horizontal d'une surface

Comment ça marche

diagramme montrant le tangage et le roulis sur le micro:bit
  • L'accéléromètre du micro:bit peut mesurer les angles d'inclinaison dans deux directions : haut/bas (tangage) et d'un côté à l'autre (roulis). Ce projet utilise ceci pour montrer quand le micro:bit est à niveau sur l'écran LED et en faisant un son, ce qui peut être utile si on accroche un tableau ou si on construit un plan de travail.
  • Une boucle permet au programme de mesurer en permanence l'angle du micro:bit.
  • Si l'accéléromètre mesure un angle d'inclinaison entre +5 et -5 degrés de tangageet de roulis, la micro:bit doit être raisonnablement de niveau. Il affiche donc une coche sur l’écran LED et joue une tonalité musicale.
  • Pour entendre le son, branchez des écouteurs ou un haut-parleur à la broche 0 et au GND, ou si vous avez une nouvelle micro:bit, vous l'entendrez sur le hautparleur intégré.
  • Si soit le tangagesoit le roulis est en dehors de l'intervalle +5 à -5 degrés, il affiche une croix sur l'écran LED et arrête le son.

Ce dont vous aurez besoin

  • Un micro:bit
  • MakeCode ou éditeur Python
  • un boîtier de piles (optionnel)

Étape 2 : Programme-le

1from microbit import *
2import music
3
4# Uses accelerometer readings in the x and y axis 
5# and also allows the micro:bit to be slightly off-level
6# to make it work better in practice
7while True:
8    if accelerometer.get_x() > -10 and accelerometer.get_x() < 10 and accelerometer.get_y() > -10 and accelerometer.get_y() < 10:
9        display.show(Image.YES)
10        music.play('C5:1')
11        sleep(200)
12    else:
13        display.show(Image.NO)
14

Étape 3 : Améliore-le

  • Peux-tu changer le tangage du son en fonction de l'angle ?
  • Peux-tu programmer une « bulle » LED qui se déplace sur l'écran comme sur un vrai niveau ?