TigerJython4Kids | Robotique
Robotik
|
OBJECTIFS DE CETTE SECTION |
Cette section montre comment utiliser l’accéléromètre intégré au micro:bit pour déterminer son inclinaison ainsi que les mouvements qu’il subit. |
VALEURS DU SENSEUR |
L’accéléromètre du micro:bit mesure constamment aussi bien l’accélération de la pesanteur à la surface de la terre (environ 9.81 m/s2), dirigée verticalement vers le bas, que des accélérations dues aux changements de vitesse dans les deux autres directions.
À partir de ces valeurs lues en permanence par le senseur, il est possible de déterminer l’inclinaison avant (pitch) et l’inclinaison latérale (roll). Au sein d’un programme, on utilise l’objet accelerometer et on invoque la méthode accelerometer.get_x(), accelerometer.get_y() et accelerometer.get_z() pour utiliser les valeurs lues par le senseur. Chaque axe va fournir des valeurs situées entre -2000 et 2000 qui correspondent à des accélérations de -20 m/x2 à 20 m/s2.On peut même récupérer les trois valeurs en même temps à l’aide de (ax, ay, az) = acceloremeter.get_values(). |
EXEMPLES |
Interroger les valeurs lues par l’accéléromètre
Télécharger le programme ci-dessus sur le micro:bit et le lancer tout en remuant le micro:bit un peu dans tous les sens. Observer les valeurs lues par l’accéléromètre dans le terminal de TigerJython.
Program: from microbit import * while True: acc = accelerometer.get_x() print (acc) if acc > 0: display.show(Image.ARROW_E) else: display.show(Image.ARROW_W) sleep(100)
L’écran montre un pixel qui sera bien centré si le micro:bit est bien à l’horizontale ou qui sera décalé en direction de l’inclinaison dans le cas contraire. Le but est donc de mettre le micro:bit parfaitement à plat, de sorte qu’uniquement la LED centrale soit allumée. Program: from microbit import * x = 1 y = 1 while True: accX = accelerometer.get_x() accY = accelerometer.get_y() if accX > 100 and x < 4: x += 1 elif accX < -100 and x > 0: x -= 1 elif accY > 100 and y < 4: y += 1 elif accY < -100 and y > 0: y -= 1 display.clear() display.set_pixel(x, y, 9) sleep(100) |
À TOI DE JOUER |
|