Adafruit Circuit Playground Express tiene un acelerómetro incorporado. Un acelerómetro es un sensor que mide aceleraciones o cambios de velocidad en los diferentes ejes. Cuando la placa está en reposo nos puede parecer que no se produce ninguna aceleración, pero hay una que siempre está ahí casi hagamos lo que hagamos: la gravedad.

El acelerómetro nos da un valor de 0 para reposo absoluto y 1023 para aceleraciones de 1G.

Al poner la placa sobre la mesa con los componentes hacia arriba, podemos ver unas flechas que nos indican en qué direcciones van los ejes X e Y. En el sentido de la flecha tenemos aceleraciones positivas, y en el sentido contrario negativas (-1023 para -1G).

El eje Z es perpendicular a la placa, en dirección hacia arriba. Esto quiere decir que la gravedad, que va hacia abajo, tendrá un valor de -1023 en el eje Z.

Al cambiar la placa de posición, el eje que se encuentra en la dirección de la gravedad cambia, y será éste el que tenga el valor de 1023 o -1023 dependiendo de su posición.

Es imposible que las medidas den exactas, por ello hemos puesto un umbral de “mayor que” o “menor que” 950 para detectar la gravedad.

Si quieres detectar posiciones intermedias la aceleración de la gravedad se medirá de forma proporcional en 2 ejes, por lo que tendrás que jugar con los diferentes valores para detectar la posición concreta. Es una tarea que se puede complicar bastante si no eres un programador avanzado.

Pista para los más atrevidos: la lectura del acelerómetro es el -cos(A)*1023, siendo A el ángulo que forma cada eje del acelerómetro con la vertical hacia arriba.

Atajo para no complicarte: Partiendo de la placa en horizontal, al inclinarla la lectura del acelerómetro en el eje Z disminuirá de -1023 (según la fórmula expuesta anteriormente). Puedes utilizar valores superiores a -1023 (por ejemplo >-800) para detectar si la placa está inclinada sin tener en cuenta el resto de ejes.

Deja un comentario