Empiece con el diseño de sensores de movimiento y orientación basados en MEMS usando las placas de conexión de Arduino

Por Clive "Max" Maxfield

Colaboración de Editores de DigiKey de América del Norte

Los diseñadores necesitan cada vez más proveer a sus sistemas con capacidad de orientación y movimiento. Afortunadamente, los sensores basados en tecnologías de estado sólido (semiconductores) y sistemas microelectromecánicos (MEMS) están disponibles para ayudarlos a lograrlo. Su pequeño tamaño y su bajo costo permiten que la detección de movimiento y orientación sea desplegada en una amplia gama de sistemas, incluyendo aviones no tripulados, robots y, por supuesto, productos de mano como teléfonos inteligentes y tabletas. Estos sensores también se utilizan en los sistemas de mantenimiento predictivo para la Internet Industrial de las Cosas (IIoT), que proporcionan datos para el análisis utilizando la inteligencia artificial (IA) y el aprendizaje automático (ML) en el límite.

Los principales tipos de sensores MEMS utilizados para detectar el movimiento y la orientación son los acelerómetros, giróscopos, magnetómetros y varias combinaciones. Aunque muchos diseñadores están interesados en incorporar sensores de movimiento y orientación en sus diseños, a menudo no están seguros de por dónde empezar.

Una opción es utilizar los kits de evaluación y desarrollo proporcionados por los vendedores de sensores MEMS para apoyar sus soluciones. Suponiendo que haya un buen grado de soporte, este es un enfoque perfectamente bueno. Sin embargo, requiere que el diseñador se limite a usar solo los sensores de un solo proveedor, o que aprenda las herramientas de software de múltiples proveedores de sensores.

Alternativamente, los diseñadores que no están acostumbrados a trabajar con sensores de movimiento y orientación pueden beneficiarse de la experimentación y la creación de prototipos utilizando placas de desarrollo de microcontroladores de código abierto de bajo costo de Arduino, junto con su único entorno de desarrollo integrado (IDE), junto con placas de ruptura de sensores de código abierto (BOB) de bajo costo que cuentan con sensores de múltiples proveedores.

Para ayudar a los diseñadores a empezar, este artículo proporciona un glosario de terminología de sensores y una breve discusión del papel de los sensores de movimiento y orientación. Luego introduce una selección de tales BOB de sensores de Adafruit y sus usos.

Glosario de terminología de sensores

Dos términos que se utilizan comúnmente cuando se refieren a los sensores de movimiento y orientación son "número de ejes" y "grados de libertad" (DOF). Lamentablemente, estos términos se utilizan a menudo como sinónimos, lo que puede dar lugar a confusión.

En términos generales, el término eje (ejes plurales) puede utilizarse para describir la dimensionalidad de los datos que emplea un sistema. En el contexto del movimiento y la orientación, hay tres ejes de interés, X, Y y Z.

La forma en que se visualizan estos ejes depende del sistema en cuestión. En el caso de un teléfono inteligente en orientación vertical, por ejemplo, el eje X es horizontal con respecto a la pantalla y apunta a la derecha, el eje Y es vertical con respecto a la pantalla y apunta hacia arriba, y el eje Z, que es perpendicular a los otros dos ejes, se considera que apunta hacia fuera de la pantalla (Figura 1).

El diagrama del sistema físico sólo puede tener un máximo de seis DOFFigura 1: Un sistema físico solo puede tener un máximo de seis DOF porque solo hay seis formas en las que puede moverse en el espacio 3D: tres lineales y tres angulares. (Fuente de la imagen: Max Maxfield)

Con respecto a un dispositivo como un teléfono inteligente, hay dos tipos de movimiento de interés: lineal y angular. En el caso del movimiento lineal, el sistema puede moverse de lado a lado en el eje X, arriba y abajo en el eje Y, y adelante y atrás en el eje Z. En el caso del movimiento angular, el sistema puede girar alrededor de uno o más de los tres ejes.

En el contexto del movimiento, el DOF se refiere a cualquiera de las direcciones en las que puede ocurrir el movimiento independiente. Sobre esta base, un sistema físico solo puede tener un máximo de seis DOF (6DOF) porque sólo hay seis maneras en las que puede moverse en el espacio tridimensional (tres lineales y tres angulares).

El término "orientación" se refiere a la posición física o la dirección de algo en relación con otra cosa. En el caso de un teléfono inteligente, la orientación determina si el teléfono está acostado de espaldas, parado en un borde (ya sea en modo vertical u horizontal), o en algún punto intermedio.

Una forma de verlo es que la orientación de un dispositivo puede ser especificada por los valores de todos los DOF posibles en algún momento tX. En comparación, el movimiento de un dispositivo está determinado por las diferencias entre los valores de todas las posibles DOF entre los tiempos t0 y t1.

Sensores, como acelerómetros, giróscopos y magnetómetros, están disponibles con uno, dos o tres ejes. Un acelerómetro de un eje, por ejemplo, solo detectará cambios a lo largo de cualquiera de los tres ejes a los que esté alineado; un sensor de dos ejes detectará cambios en dos de los tres ejes; y un sensor de tres ejes detectará cambios en los tres ejes.

Si se describe una plataforma de sensores como si rastreara más de seis ejes, esto indica que proporciona un mayor grado de precisión al rastrear múltiples puntos de datos a lo largo (o alrededor) de los ejes X, Y y Z. Un ejemplo es un conjunto de acelerómetros de 12 ejes que utiliza mediciones de aceleración lineal de cuatro acelerómetros de 3 ejes.

Desafortunadamente, es común confundir el DOF con el número de ejes. Por ejemplo, la combinación de un acelerómetro de 3 ejes, un giroscopio de 3 ejes y un magnetómetro de 3 ejes puede ser descrita por algunos vendedores como un sensor de 9DOF, aunque más correctamente debería ser descrito como un sensor de 9 ejes de 6DOF.

Fusión de sensores

Además de medir la aceleración, un acelerómetro también mide la gravedad. Por ejemplo, en el caso de un teléfono inteligente, un acelerómetro de 3 ejes puede determinar la dirección de bajada, incluso si el usuario está quieto y el dispositivo está inmóvil.

También se puede utilizar un acelerómetro de 3 ejes para determinar la orientación vertical y horizontal del dispositivo, que puede utilizar esta información para presentar su pantalla en modo retrato o paisaje. Sin embargo, por sí solo, el acelerómetro no puede utilizarse para determinar la orientación del teléfono inteligente con respecto al campo magnético de la Tierra. Esta capacidad es necesaria para tareas como las aplicaciones de planetario que permiten al usuario identificar y localizar estrellas, planetas y constelaciones en el cielo nocturno simplemente apuntando el dispositivo hacia el área de interés. En este caso, se requiere un magnetómetro. Si el smartphone se colocara siempre sobre una mesa, bastaría con un magnetómetro de un eje. Sin embargo, como un teléfono inteligente puede usarse en cualquier orientación, es necesario emplear un magnetómetro de 3 ejes.

Los acelerómetros no se ven afectados por el campo magnético circundante, pero sí por el movimiento y la vibración. En comparación, los magnetómetros no se ven afectados por el movimiento y la vibración per se, pero pueden ser influenciados por los materiales magnéticos y los campos electromagnéticos de las cercanías.

Aunque también se puede utilizar un acelerómetro de 3 ejes para obtener datos de rotación, un giroscopio de 3 ejes proporciona datos más precisos sobre el momento angular. Los giróscopos funcionan bien cuando se trata de medir la velocidad de rotación, y no se ven afectados por la aceleración en una dirección lineal o por los campos magnéticos. Sin embargo, los giróscopos tienen la tendencia a generar una pequeña velocidad de rotación "residual", incluso cuando se quedan parados. Esto se conoce como "compensación de deriva cero". El problema surge si el usuario intenta determinar un ángulo absoluto con el giroscopio, en cuyo caso es necesario integrar la velocidad de rotación para obtener la posición angular. El problema de la integración en este escenario es que los errores pueden acumularse. Un pequeño error de solo 0.01 grados en la primera medición puede crecer hasta un grado completo después de 100 mediciones, por ejemplo. Esto se conoce como "giroderiva".

El término "fusión de sensores" se refiere a la combinación de datos sensoriales derivados de fuentes dispares, de manera que la información resultante tiene menos incertidumbre de la que sería posible si los datos de esas fuentes se utilizaran individualmente.

En el caso de un conjunto de sensores compuesto por un acelerómetro de 3 ejes, un giroscopio de 3 ejes y un magnetómetro de 3 ejes, por ejemplo, los datos del acelerómetro y del magnetómetro pueden utilizarse para anular la deriva del giroscopio. Mientras tanto, los datos del giroscopio pueden utilizarse para compensar cualquier ruido inducido por la vibración del acelerómetro y el material magnético/ruido inducido por el campo del magnetómetro.

El resultado de usar la fusión de sensores es que la precisión de la salida excede la precisión de los sensores individuales.

Introducción a algunos sensores representativos

Dependiendo de la aplicación, el diseñador puede decidir emplear solo un tipo de sensor de movimiento/orientación en forma de acelerómetro, giroscopio o magnetómetro.

Un buen acelerómetro de introducción es el 2019 BOB de Adafruit, que cuenta con un acelerómetro de 3 ejes con un convertidor analógico a digital (ADC) de 14 bits (Figura 2).

Imagen de 2019 BOB de AdafruitFigura 2: El 2019 BOB de Adafruit tiene un acelerómetro de 3 ejes que puede ser usado para detectar el movimiento, la inclinación y la orientación básica. (Fuente de la imagen: Adafruit)

El sensor de 3 ejes de alta precisión tiene un amplio rango de ±2 g a ±8 g y puede ser usado para detectar movimiento, inclinación y orientación básica. El sensor requiere un suministro de 3.3 voltios, pero el BOB incluye un regulador de baja caída de 3.3 voltios y circuitos de cambio de nivel, por lo que es seguro para su uso con 3 ó 5 voltios de potencia y lógica. La comunicación entre la BOB y el Arduino (u otro microcontrolador) se realiza mediante I2C.

Para las aplicaciones que solo requieren un sensor giroscópico para detectar los movimientos de giro, una buena placa de introducción es el 1032 BOB de Adafruit con el giroscopio de 3 ejes L3GD20H de STMicroelectronics. Soportando ambas interfaces I2C y SPI para el Arduino (u otro microcontrolador), el L3GD20H puede ser ajustado a una escala de ±250, ±500, o ±2000 grados por segundo para un amplio rango de sensibilidad. Una vez más, el sensor requiere un suministro de 3.3 voltios, pero el BOB incluye un regulador de 3.3 voltios y un circuito de cambio de nivel que le permite ser utilizado con 3 o 5 voltios de potencia y lógica.

Del mismo modo, para aplicaciones que solo requieren un sensor magnético, una buena opción de evaluación es el 4479 BOB de Adafruit, que cuenta con el magnetómetro de 3 ejes LIS3MDL de STMicroelectronics. El LIS3MDL puede detectar rangos desde ±4 gauss (±400 microtesla (µT)) hasta ±16 gauss (±1600 µT o 1,6 militesla (mT)). La comunicación entre la BOB y el Arduino (u otro microcontrolador) se realiza mediante I2C. De nuevo, el BOB incluye un regulador de 3.3 voltios y un circuito de cambio de nivel que lo hace seguro para su uso con 3 o 5 voltios de potencia y lógica.

Es muy común que los múltiples sensores se usen en conjunto con los demás. Por ejemplo, un acelerómetro puede utilizarse junto con un giroscopio para realizar tareas como la captura de movimiento en 3D y la medición inercial; es decir, para permitir al usuario determinar cómo se mueve un objeto en un espacio tridimensional. Un ejemplo de este tipo de combinación es el 4480 BOB de Adafruit (Figura 3), que tiene el chip sensor LSM6DS33 de STMicroelectronics.

Imagen de 4480 BOB de AdafruitFigura 3: El 4480 BOB de Adafruit cuenta con el acelerómetro LSM6DS33TR de 3 ejes y un giroscopio de 3 ejes que puede ser utilizado para realizar tareas como la captura de movimiento en 3D y la medición inercial. (Fuente de la imagen: Adafruit)

El acelerómetro de 3 ejes puede proporcionar datos sobre la dirección hacia la Tierra midiendo la gravedad, y la rapidez con la que la tabla se acelera en el espacio tridimensional. Mientras tanto, el giroscopio de 3 ejes puede medir el giro y la torsión. Al igual que los otros BOB de sensores presentados anteriormente, el 4480 BOB incluye un regulador de 3.3 voltios y un circuito de cambio de nivel, lo que lo hace seguro para su uso con 3 o 5 voltios de potencia y lógica. Además, se puede acceder a los datos del sensor utilizando tanto interfaces I2C o SPI, lo que permite utilizarlo con un Arduino (u otro microcontrolador) sin ninguna configuración complicada de hardware.

Otro ejemplo de un BOB de doble sensor es el 1120 de Adafruit, que presenta la combinación de un acelerómetro de 3 ejes y un magnetómetro de 3 ejes en forma de un chip sensor LSM303 de STMicroelectronics. Las comunicaciones entre el microcontrolador y el 1120 son a través de una interfaz I2C, y el BOB incluye un regulador de 3.3 voltios y circuitos de cambio de nivel, lo que lo hace seguro para su uso con 3 ó 5 voltios de potencia y lógica.

Algunas aplicaciones requieren el uso de acelerómetros, giroscopios y magnetómetros. En este caso, un útil BOB introductorio es el 3463 de Adafruit, que cuenta con dos chips sensores: un giroscopio de 3 ejes y un acelerómetro de 3 ejes con un magnetómetro de 3 ejes. Las comunicaciones entre el BOB y el microcontrolador se implementan a través de una interfaz SPI. También se incluye un regulador de 3.3 voltios y un circuito de cambio de nivel, lo que lo hace seguro para su uso con 3 o 5 voltios de potencia y lógica.

Una ventaja del 3463 BOB es que el diseñador tiene acceso en bruto a los datos de los tres sensores. Una desventaja correspondiente es que el uso de este sensor (manipulando y procesando sus datos) requerirá unos 15 kilobytes (Kbytes) de la memoria flash del microcontrolador y consumirá muchos ciclos de reloj.

Como alternativa, el 2472 BOB de Adafruit tiene un chip sensor BNO055 de Bosch. El BNO055 incluye un acelerómetro de 3 ejes, un giroscopio de 3 ejes y un magnetómetro de 3 ejes, todos presentados en un solo paquete (Figura 4).

Imagen del sensor BNO055 en el 2472 BOB de AdafruitFigura 4: Además de un acelerómetro de 3 ejes, un giroscopio de 3 ejes y un magnetómetro de 3 ejes, el sensor BNO055 del 2472 BOB de Adafruit también incluye un procesador de Corteza Arm Cortex-M0 que realiza la fusión del sensor. (Fuente de la imagen: Adafruit)

Además, el BNO055 también incluye un procesador Arm Cortex-M0 de 32 bits, que toma los datos en bruto de los tres sensores, realiza una sofisticada fusión de sensores, y proporciona a los diseñadores información procesada en formas que pueden utilizar: cuaternarios, ángulos de Euler y vectores. Más específicamente, a través de la interfaz I2C 2472 de BOB, los diseñadores pueden acceder rápida y fácilmente a lo siguiente:

  • Orientación absoluta (Euler Vector, 100 Hertz (Hz)): Datos de orientación de tres ejes basados en una esfera de 360°.
  • Orientación absoluta(Quatenrion, 100 Hz): Salida de cuatrillones de cuatro puntos para una manipulación más precisa de los datos.
  • Vector de velocidad angular(100 Hz): Tres ejes de "velocidad de rotación" en rad/s.
  • Vector de aceleración (100 Hz): Tres ejes de aceleración (gravedad + movimiento lineal) en metros por segundo cuadrado (m/s2).
  • Vector de intensidad de campo magnético (20 Hz): Tres ejes de detección de campo magnético (en µT).
  • Vector de aceleración lineal (100 Hz): Datos de aceleración lineal en tres ejes (aceleración menos gravedad) en m/s2.
  • Vector de gravedad (100 Hz): Tres ejes de aceleración gravitatoria (menos cualquier movimiento) en m/s2.
  • Temperatura(1 Hz): Temperatura ambiente en grados centígrados.

La fusión de los sensores en un chip libera la memoria del microcontrolador principal y los ciclos de cálculo, lo que es ideal para los diseñadores que crean sistemas de bajo coste y en tiempo real. Además, los algoritmos de fusión de los sensores pueden ser difíciles de dominar y llevar mucho tiempo. La fusión de los sensores en un chip permite a los desarrolladores de sistemas estar en funcionamiento en minutos, en lugar de días o semanas si están implementando algoritmos desde cero.

Conclusión:

Muchos diseñadores están interesados en incorporar sensores de movimiento y orientación en sus diseños, pero no están seguros de por dónde empezar. En el caso de los diseñadores que no están acostumbrados a trabajar con estos dispositivos, familiarizarse con los sensores de varios fabricantes puede ser un desafío. Una forma de empezar a experimentar y a crear prototipos es utilizar placas de desarrollo de microcontroladores de código abierto y bajo coste como la Arduino, junto con BOB de sensores de código abierto de bajo coste con sensores de múltiples proveedores.

Otras lecturas:

  1. Usar los BOB de Arduino para evaluar rápidamente los sensores y periféricos
  2. La IO, la IOT y la IOA, y por qué son el futuro de la automatización industrial
  3. Llevar fácilmente la inteligencia artificial a cualquier sistema industrial
DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Información sobre el autor

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield received his BSc in Control Engineering in 1980 from Sheffield Hallam University, England and began his career as a designer of central processing units (CPUs) for mainframe computers. Over the years, Max has designed everything from silicon chips to circuit boards and from brainwave amplifiers to steampunk Prognostication Engines (don't ask). He has also been at the forefront of Electronic Design Automation (EDA) for more than 30 years.

Max is the author and/or co-author of a number of books, including Designus Maximus Unleashed (banned in Alabama), Bebop to the Boolean Boogie (An Unconventional Guide to Electronics), EDA: Where Electronics Begins, FPGAs: Instant Access, and How Computers Do Math. Check out his “Max’s Cool Beans” blog.

Información sobre la editorial

Editores de DigiKey de América del Norte