🛠 Détecter l'inclinaison et les gestes avec l'accéléromètre
Objetivos
Aprovechar el sensor combinado de acelerómetro + magnetómetro integrado (ST LSM303, o NXP FXOS8700CQ según las series de fabricación) para leer la inclinación (x, y, z en milli-g) y reconocer los gestos oficiales: shake, tilt up/down/left/right, face up/down, freefall.
Material
- 1 placa micro:bit V2
- 1 cable micro-USB para la programación, y funcionamiento autónomo con pila
Código completo
from microbit import *
while True:
# Inclinaison continue : flèches directionnelles
if accelerometer.get_y < -300: # penché vers le haut
display.show(Image.ARROW_N)
elif accelerometer.get_y > 300: # penché vers le bas
display.show(Image.ARROW_S)
elif accelerometer.get_x < -300: # penché à gauche
display.show(Image.ARROW_W)
elif accelerometer.get_x > 300: # penché à droite
display.show(Image.ARROW_E)
# Gestes ponctuels
elif accelerometer.was_gesture('shake'):
display.show(Image.YES)
sleep(400)
elif accelerometer.is_ready:
display.show(Image.HAPPY)
sleep(50)
get_x/get_y/get_z devuelven la aceleración en milli-g (en reposo, el eje hacia abajo indica aproximadamente 1000). Los umbrales ±300 evitan disparos parásitos.
Verificación esperada
Incline la placa: una flecha apunta en la dirección del movimiento. Sacúdala: aparece la marca de verificación «sí». Colocada plana: smiley. Todo funciona desconectada.
Errores frecuentes
- Comparar con umbrales demasiado pequeños (< 100): la pantalla parpadea constantemente debido al ruido del sensor.
- Confundir
was_gesture(puntual, borra el historial) ycurrent_gesture(estado continuo). - Invertir los ejes x/y según la forma en que se sostiene la placa: pruebe antes de escribir los umbrales.
- Esperar el magnetómetro aquí: la brújula se trata en el nivel intermedio.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
coeur.pyMicroPythonboutons.pyMicroPythonpodometre.pyMicroPythonlumiere.pyMicroPythonmusique.pyMicroPythonradio_ping.pyMicroPython