Cómo usar un giroscopio en nuestros proyectos de Arduino


arduino-giroscopio

En la entrada anterior hemos visto los fundamentos de los acelerómetros, un componente muy útil que nos permite determinar la aceleración y orientación de un dispositivo.

En esta entrada vamos a ampliar al uso de un giroscopio, otro sensor que por sus características complementa muy bien con el uso de un acelerómetro, algo que veremos en la última entrada de la serie sobre IMU’s.

¿Qué es un giroscopio?

Un giroscopio (también llamados giróscopo) es un dispositivo que permite medir el ángulo de rotación girado por un determinado mecanismo.

A diferencia de los acelerómetros, los giroscopios son dispositivos puramente diferenciales, es decir, no existe una referencia absoluta si no que siempre medimos ángulos relativos a una referencia arbitraria.

Existen diversos tipos de giroscopios (mecánicos, de anillo láser, de fibra óptica). Los que se emplean en MEMS son denominados giroscopios vibratorios de efecto Coriolis (CVG), que en cierta forma pueden considerarse una evolución del péndulo de Foucault

Recordamos que la fuerza de Coriolis es una fuerza ficticia que aparece sobre un cuerpo en movimiento cuando se encuentra en un sistema en rotación.

El valor de esta fuerza es,

{\displaystyle {\vec {F}}_{c}=-2m\left({\vec {\omega }}\times {\vec {v}}\right)}


No confundir con la fuerza centrípeta que es una fuerza real que hay que ejercer sobre un sistema para que rote, o con la fuerza centrífuga, que es una fuerza ficticia que se en sistemas no inerciales.

El principio de funcionamiento es un CVG es que un objeto vibratorio tiene a vibrar en el mismo plano incluso si este rota. El efecto Coriolis provoca que el objeto vibratorio ejerza una fuerza sobre el soporta, y midiendo esta fuerza podemos determinar la rotación a la que está sometido el giroscopio.

arduino-giroscopio-funcionamiento

Para registrar el efecto de la fuerza Coriolis un MEMS dispone de estructuras similares a las del acelerómetro. Ciertas partes del cuerpo se someten a vibración por resonancia y el efecto de la fuerza de Coriolis deforma la estructura, lo cuál puede ser medido por la variación de la capacitancia del sistema.

arduino-acelerometro-giroscopio

Al igual que en el caso de los acelerómetros, lo normal es que los giroscopios que empleemos sean de 3 ejes, es decir, que registran de forma independiente la rotación en X, Y, y Z, lo cual permite determinar la magnitud y dirección de la rotación.

arduino-yaw-pitch-roll

Una de las consecuencias de emplear la fuerza Coriolis es que los giroscopios vibratorios, a diferencia de otros tipos de giroscopios, no registran el ángulo girado si no la velocidad angular, que es la relación de variación del ángulo respecto del tiempo.

\omega = \frac{\partial \theta }{\partial t}



Las unidades en el sistema internacional son rad/s (equivalentemente s-1), aunque con frecuencia se emplean otras unidades como º/s, rev/s (rps) o rev/min (rpm).

Para obtener el ángulo de posición del sensor es necesario realizar la integración respecto del tiempo, algo que habitualmente hace la electrónica interna del sensor.

\theta_{gyro} = \omega_{gyro} \cdot \Delta t


No nos cansamos de repetir que las mediciones integrales nunca son una buena idea porque supone la acumulación de errores de medición y ruido, lo que provoca deriva en la medición (drift).

Efectivamente, el mayor problema que encontramos con los giroscopios de vibración es que a medio y largo plazo tienen deriva, es decir, que la medida se va desviando progresivamente del valor real (incluso con el sensor estático).

Por el contrario, los giroscopios son sensores de respuesta rápida y elevada precisión en tiempos cortos. Además, responden bien a cambios bruscos, y son relativamente inmunes al ruido, siempre en rangos temporales cortos.

Si habéis leído la entrada sobre el acelerómetro, veréis que sus características de la medición son opuestas a las de los giroscopios, por lo que (atención SPOILER) se complementan muy bien entre sí.

Esto lo veremos en profundidad en la próxima entrada, como medir la inclinación con IMU, Arduino y filtro complementario, donde finalmente juntaremos ambos dispositivos para hacer un sensor más robusto que ambos de forma independiente.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino
Previous Cómo usar un acelerómetro en nuestros proyectos de Arduino
Next Medir la inclinación con IMU, Arduino y filtro complementario

¡Deja un comentario!...

avatar
1000
wpDiscuz