Tutorial Arduino 7.-Acelerómetros y giroscopios

Publicado por Loli Diéguez en

Los acelerómetros, giroscopios e IMU ayudan a determinar la aceleración lineal y angular de objetos. En este ultimo articulo de la seria basicos de Arduino, vamos a ver el caso específico en el que el sensor proporciona una salida analógica y te comento para qué es útil cada tipo de sensor.

 

Hardware necesario para seguir el articulo:

  • Ordenador / portátil
  • Microcontrolador Arduino
  • Adaptador USB a serie (si tu microcontrolador no tiene un puerto USB)
  • Cable USB apropiado (las placas Arduino obtienen energía del puerto USB, todavía sin baterías)
  • Acelerómetro analógico, giroscopio y / o IMU
  • Conectores (entre la IMU y Arduino)

Los acelerómetros, giroscopios e IMU son pequeños sensores increíblemente útiles que se están integrando cada vez más en los dispositivos electrónicos que nos rodean. Estos sensores se utilizan en teléfonos móviles, consolas de juegos como el control remoto inalámbrico de Wii, juguetes, robots de autoequilibrio,... 

Los acelerómetros se utilizan principalmente para medir la aceleración y la inclinación.

Los giroscopios se utilizan para medir la velocidad angular y la orientación.

Y las IMU (que combinan acelerómetros y giroscopios) se utilizan para proporcionar una comprensión completa de la aceleración, velocidad, posición, y orientación.

Arduino con sensores

Al elegir un acelerómetro, giroscopio o IMU, también es importante considerar el tipo de salida, dependiendo del tipo de sensor, las lecturas se pueden generar como:

  • Datos en serie (pin Tx)
  • I2C (SDA, SCL)
  • Cosa análoga
  • TTL
  • otros ...

En este tutorial solo cubriremos la salida analógica. 

El código que se muestra a continuación incluye la salida para un sensor de eje único y factores en el valor de descanso:

Pantallazo del código con Arduino

 

Acelerómetro 

Los acelerómetros miden la aceleración en uno a tres ejes lineales (x, y, z). Un acelerómetro de un solo eje puede medir la aceleración en cualquier dirección hacia la que apunte. Esto puede ser bueno para un cohete, un impacto, un tren u otro escenario en el que el dispositivo realmente se mueva en una dirección básica. 

Conociendo la aceleración y el tiempo, puedes usar las matemáticas para encontrar la distancia recorrida por el objeto. Cada vez hay menos acelerómetros de eje simple y doble en el mercado porque un acelerómetro de eje triple puede hacer mucho más. Gracias a los bajos costes de fabricación, los acelerómetros de tres ejes no son mucho más caros que los simples o dobles.

La aceleración debida a la gravedad es una constante y, de hecho, se puede medir con un acelerómetro. Cuando se coloca en paralelo al suelo, la aceleración debida a la gravedad solo se "siente" por un eje. Sin embargo, cuando se inclina, esta aceleración aparecería como componentes de dos (o tres) ejes. 

Conecta el acelerómetro al Arduino: cada pin de salida va a uno de los pines analógicos en el Arduino, el pin Vin va al pin 5V en el Arduino (lee la guía del usuario para asegurarte de que el pin Vin es 5V en lugar de 3.3V), y conecta el pin GND a el pin GND en el Arduino. ¡Ten en cuenta que no se necesitan componentes electrónicos adicionales! 

A continuación, abre el archivo de boceto o sketch ejemplo: Ejemplos -> Sensores -> ADXL3xx. Sube el codigo al Arduino y observa cómo cambian los valores.

Para elegir el acelerómetro correcto, considera la aceleración lineal máxima a la que estará sujeto el sensor. Si planeas agregar un acelerómetro a un pequeño robot móvil, es probable que use un acelerómetro de 2 g (incluso eso es probable que sea excesivo), mientras que si lo conectas a un cohete, es probable que un acelerómetro de 16 g sea una mejor opción. 

Cuando se conecta a un ADC de 10 bits, el acelerómetro de 2g tendrá una precisión de 2/1024 = 0,002 gy el acelerómetro de 16 g tendrá una precisión de 16/1024 = 0,0156. Por lo tanto, si solo necesitas un rango de 2 g, pero compras un acelerómetro de 16 g, solo tendrás alrededor de 128 lecturas posibles, en lugar de las 1024 completas.

Giroscopio

Los giroscopios miden la velocidad angular en α, β, γ (vea la imagen a continuación). 

Los giroscopios se pueden utilizar para ayudar con la estabilización y también para los cambios de dirección y orientación. A diferencia de los acelerómetros, los giroscopios no tienen una referencia fija y solo miden los cambios. 

Para elegir el giroscopio adecuado para tus necesidades, considera la tasa de cambio angular máxima (grados por segundo) a la que estará sujeto tu producto.

Es probable que un control remoto gire a menos de 1 rotación por segundo (360 grados por segundo), mientras que un cohete que cae del cielo puede girar a 1500 grados por segundo. Cuando está conectado al mismo microcontrolador(10 bits, por ejemplo), el giroscopio de 360 ​​grados / s tendrá una precisión de 360/1024 = 0,35 grados / s, mientras que el giroscopio de 1500 grados / s tendrá una precisión de 1500/1024 = 1,46 grados / s. 

Por lo tanto, si eliges un giroscopio de 1500 grados / s cuando solo necesitabas un giroscopio de 360 ​​grados / s, solo obtendrás alrededor de 245 lecturas en lugar de 1024.

Gráfico de la velocidad angular

Cortesía: Wikipedia

IMU

Una IMU (Unidad de medición inercial) generalmente consta de un acelerómetro y un giroscopio y se utiliza para medir la orientación, la velocidad, etc. de un objeto.

A menudo, se incluyen sensores adicionales (magnéticos, de temperatura) para mejorar la precisión. El número de "grados de libertad" indica el número de diferentes ejes medidos por el chip. Por ejemplo, la combinación de un acelerómetro de tres ejes con un giroscopio de dos ejes se consideraría una IMU de 3 + 2 = 5 DoF.

Consideraciones adicionales

Al utilizar acelerómetros, giroscopios o unidades de medida inercial (IMU) para obtener posiciones en el espacio, es importante tener en cuenta que existen varios factores adicionales que afectarán las lecturas, siendo el principal obstáculo la frecuencia de muestreo. 

Los microcontroladores requieren una cierta cantidad de tiempo para leer los valores que les proporciona el sensor , y debido a esto, los valores entre estas lecturas se pierden. Hay varios métodos matemáticos ( una opción es un filtro de Kalman) que intentan compensar esto. 

Una segunda fuente de error es que las lecturas a menudo se ven afectadas por fluctuaciones de temperatura. La mayoría de las hojas de datos asociadas con los sistemas microelectromecánicos (MEMS) intentan describir cómo la temperatura afecta la salida.


Compartir esta publicación



← Publicación más antigua Publicación más reciente →