Usar IMU avanzadas de larga duración con disponibilidad extendida para asegurar la longevidad de los dispositivos industriales
Colaboración de Editores de DigiKey de América del Norte
2020-04-28
A medida que los desarrolladores buscan construir sistemas robóticos, herramientas eléctricas inteligentes, dispositivos de seguimiento de activos y otros productos industriales basados en el movimiento, las unidades de medición inercial (IMU) desempeñan un papel clave en el suministro de los datos necesarios para gestionar el rendimiento, la seguridad y más. Los fabricantes de estos productos industriales de larga duración dependen no solo de las capacidades de rendimiento de los dispositivos de la IMU, sino también de su disponibilidad a largo plazo. Una clase emergente de IMU industriales con disponibilidad a largo plazo ofrece a los desarrolladores una solución capaz de satisfacer tanto los requisitos de rendimiento como de disponibilidad.
Este artículo trata de las IMU de Bosch Sensortec y STMicroelectronics que están diseñadas para asegurar mediciones precisas en ambientes industriales severos como parte de los programas de longevidad de 10 años de los fabricantes. Este artículo también examina las tarjetas de desarrollo de software de los fabricantes de dispositivos industriales de IMU, así como Industrias de la fruta , que facilitan el rápido desarrollo de diseños basados en IMU.
¿Qué son las IMU?
Las IMU son dispositivos de detección que combinan un acelerómetro y un giroscopio para proporcionar los datos necesarios para detectar el movimiento lineal y rotacional en seis grados de libertad. Construidos con tecnología de sistemas microelectromecánicos (MEMS), los sensores de acelerómetro y giroscopio de las IMU avanzadas, como el BMI088 de Bosch Sensortec, se integran con cadenas de señales dedicadas y convertidores analógico-digitales (ADC) y lógica para proporcionar un sistema completo de detección de movimiento en un solo paquete (Figura 1).
Figura 1: Las IMU avanzadas como el BMI088 de Bosch Sensortec integran sensores, cadenas de señales y lógica para proporcionar un completo sistema de detección de movimiento que se integra fácilmente con los procesadores anfitriones a través de interfaces seriales estándar. (Fuente de la imagen: Bosch Sensortec)
Gracias a su amplia funcionalidad integrada, las IMU se integran fácilmente en los diseños de los sistemas, y normalmente requieren poco más que una conexión I2C o SPI para entregar los resultados digitales a un procesador host.
Rendimiento y estabilidad de la IMU industrial
Las IMU industriales, como la BMI088 de Bosch, están diseñadas específicamente para proporcionar la estabilidad de temperatura y la resistencia de vibración necesarias para soportar el funcionamiento en entornos difíciles donde el estrés térmico constante y la vibración mecánica o los golpes pueden degradar el rendimiento de los dispositivos menos resistentes. El IMC088 integra un acelerómetro triaxial de 16 bits y un giroscopio triaxial de 16 bits que proporcionan una resolución de 0.09 miligrafías (mg) y 0.004 grados por segundo (°/s), respectivamente. El dispositivo soporta mediciones con giroscopio a múltiples tasas angulares a escala completa desde 125°/s hasta 2.000°/s. Como la mayoría de los dispositivos de esta clase, el BMI088 soporta el funcionamiento en todo el rango de temperaturas industriales de -40 a +85 °C. Más allá de muchos dispositivos de esta clase, el acelerómetro BMI088 soporta una medición a escala completa de hasta 24 gramos (g), proporcionando una protección adicional contra el recorte de la señal a altos niveles de vibración que a menudo se encuentran en las aplicaciones industriales.
Al mismo tiempo, el dispositivo cumple con los requisitos para las altas temperaturas o las temperaturas rápidamente cambiantes, comunes en los entornos industriales. El acelerómetro BMI088 muestra una deriva de temperatura de sensibilidad de solo 0.002 por ciento por Kelvin (%/K) y una deriva de temperatura de compensación de cero gramos de menos de 0.2 mg por Kelvin (K). De manera similar, su giroscopio tiene un coeficiente de temperatura de compensación (TCO) de solo 0.015°/s por K y un coeficiente de temperatura de sensibilidad (TCS) de 0.03%/K.
A pesar de sus características de alto rendimiento, las IMU basadas en MEMS suelen consumir una corriente mínima. Por ejemplo, el acelerómetro del BMI088 consume 150 microamperios (mA) en modo normal, mientras que su giroscopio requiere 5 miliamperios (mA). Como con la mayoría de los dispositivos de bajo consumo, los desarrolladores pueden cambiar el BMI088 a un modo de bajo consumo durante los períodos de inactividad. En el modo de suspensión de baja potencia, la corriente del acelerómetro y del giroscopio desciende a 3 mA y 25 mA, respectivamente. De hecho, el giroscopio BMI088 ofrece un modo de suspensión profundo que consume menos de 5 mA.
El funcionamiento a baja potencia puede ser, por supuesto, crítico para las aplicaciones que funcionan con baterías, como las herramientas eléctricas portátiles o los dispositivos de seguimiento de activos, pero la capacidad de reanudar rápidamente las mediciones normales es igualmente crítica en las aplicaciones industriales. De hecho, el IMC088 muestra un tiempo de activación del modo de suspensión (y de suspensión profunda) que es significativamente más rápido que el disponible con las IMU típicamente utilizadas en aplicaciones de consumo como dispositivos vestibles y otros productos electrónicos personales.
Soporte para los productos de larga duración
Tal vez haya una diferencia más fundamental que separa los requisitos de las IMU en los dispositivos de consumo y los industriales. Como en cualquier categoría de productos, el ciclo de vida de los productos de consumo e industriales sigue una pauta familiar de crecimiento, madurez y declive tras su introducción (Figura 2).
Figura 2: Aunque la demanda de los consumidores de las características más recientes suele disminuir en las últimas etapas del ciclo de vida de los productos de consumo, muchos usuarios industriales confían en una mayor disponibilidad de líneas maduras de productos fiables. (Fuente de la imagen: Wikipedia)
Para los consumidores, la demanda de los últimos productos móviles ricos en características ha reducido drásticamente la duración de las fases de madurez y disminución del ciclo de vida del producto. En marcado contraste con los ciclos de vida cada vez más cortos de la electrónica de consumo, se suele esperar que diferentes tipos de equipo industrial permanezcan en servicio durante varios años. Una línea madura de herramientas eléctricas de grado industrial típicamente ganará más seguidores leales por su fiabilidad en el desempeño de su función primaria que por sus "campanas y silbatos". En otras aplicaciones industriales, como el rastreo de bienes o la vigilancia de los IIoT, la disponibilidad a largo plazo de una familia de dispositivos puede superar la necesidad o la practicidad de sustituir los dispositivos para apoyar el aumento de las características.
Para cumplir con los requisitos de los productos de larga duración, los desarrolladores a menudo pueden encontrar productos clave en los programas de longevidad de los fabricantes de semiconductores, que garantizan la disponibilidad durante un período de tiempo que normalmente comienza con la fecha de introducción del producto. Por ejemplo, Bosch ofrece su IMU BMI090L como parte de su propio programa de longevidad de 10 años. El BMI090L es una versión compatible con el pin del BMI088 y tiene las mismas especificaciones de funcionalidad y rendimiento que el BMI088.
IMU industrial con aprendizaje automático
Como parte de su propio programa de longevidad de 10 años, STMicroelectronics ofrece su IMU industrial ISM330DHCX de alto rendimiento. El ISM330DHCX es un miembro de una serie especializada de módulos de sistema en paquete (SiP) de iNEMO que también incluye LSM6DSOX y LSM6DSRX STMicroelectronics Estos dispositivos combinan un acelerómetro triaxial y un giroscopio triaxial con un núcleo de aprendizaje de máquina incorporado. (Para más información sobre el núcleo de aprendizaje de la máquina iNEMO y su uso, ver "Utilizar el núcleo de aprendizaje de la máquina incorporado en un sensor inteligente para optimizar el seguimiento del movimiento "siempre activo"".)
Diseñado para productos de consumo alimentados con batería, el LSM6DSOX ofrece el menor consumo de energía de esta serie de dispositivos especializados. Alternativamente, el LSM6DSRX está diseñado para aplicaciones de realidad virtual (VR), realidad aumentada (AR) y drones. Ofrece mayor estabilidad que el LSM6DSOX y un núcleo ampliado de aprendizaje automático.
Diseñado para aplicaciones industriales de alto rendimiento, el ISM330DHCX se basa en las capacidades del LSM6DSRX de grado de consumidor, pero ofrece un rango de temperatura operativa significativamente más amplio, de -40 a +105 °C, en comparación con los -40 a +85 °C del LSM6DSRX. Aunque ofrece un rango de aceleración lineal de hasta 16 g, el ISM330DHCX presenta un rango de medición de la tasa angular máxima de 4,000°/s, uno de los rangos de medición de la tasa angular más altos disponibles en un dispositivo de esta clase. Tal como se requiere para aplicaciones industriales, el ISM330DHCX exhibe poca dependencia de la temperatura. Su acelerómetro tiene una sensibilidad de solo 0.005%/°C y una deriva de 0.1 mg/°C de cero g, mientras que su giroscopio exhibe una sensibilidad de 0.007%/°C y una deriva de 0.005°/s por °C de cero g.
Al igual que la mayoría de las IMU más avanzadas, el ISM330DHCX se integra fácilmente con un procesador host mediante una conexión I2C o SPI. Los desarrolladores pueden conectar el dispositivo en cuatro configuraciones diferentes:
- Se utiliza únicamente conectado a un host (Modo 1)
- Usado con la característica del hub del sensor (Modo 2)
- Se utiliza conectado a un host primario así como a un host secundario capaz de leer datos del giroscopio solamente (Modo 3)
- Se utiliza conectado a un host primario así como a un host secundario capaz de leer tanto los datos del giroscopio como los del acelerómetro (Modo 4).
En el modo 2, el ISM330DHCX puede funcionar como un hub de sensores, sirviendo en modo esclavo a un host, así como un maestro a los sensores externos conectados a su interfaz I2C (Figura 3).
Figura 3: El ISM330DHCX de STMicroelectronics puede ser configurado para funcionar en múltiples modos de operación, incluyendo el Modo 2, que se muestra aquí, el cual permite que el ISM330DHCX sirva como un hub de sensores para sensores externos, proporcionando los datos combinados al host. (Fuente de la imagen: STMicroelectronics)
Rápido desarrollo de la IMU
Dado que las IMU digitales presentan requisitos mínimos de hardware, los desarrolladores pueden renunciar en gran medida al diseño de hardware en las primeras etapas de desarrollo, pasando inmediatamente al desarrollo de software mediante el uso de una serie de tarjetas de desarrollo de los fabricantes de dispositivos de IMU industriales. Por ejemplo, laplaca de aplicaciones de Bosch está diseñado para aceptar una amplia gama de placas secundarias, incluyendo la placa shuttle BMI090L. Basado en un procesador Arm® Cortex®-M4, la placa de aplicación de Bosch proporciona múltiples puntos de prueba y conectores, así como una conexión USB para la alimentación y el desarrollo en una computadora personal host.
Para acelerar la evaluación y la creación de prototipos de aplicaciones industriales basadas en la ISM330DHCX de STMicroelectronics, los desarrolladores pueden utilizar la placa de evaluación 4502 ISM330DHCX de Adafruit Industries conectada a una placa de desarrollo Feather 4382 STM32F405 de Adafruit Industries como plataforma de hardware.
Para el desarrollo de software, el repositorio de software de github CircuitPython LSM6DS de Adafruit soporta un número de IMU de STMicroelectronics, incluyendo el ISM330DHCX así como el LSM6DSOX y LSM6DS33. Como resultado, los desarrolladores pueden construir rápidamente aplicaciones prototipo usando solo unas pocas líneas de código Python para leer los datos de los sensores ISM330DHCX (Listado 1).
Copy
import time
import board
import busio
from adafruit_lsm6ds import ISM330DHCT
i2c = busio.I2C(board.SCL, board.SDA)
sensor = ISM330DHCT(i2c)
while True:
print("Acceleration: X:%.2f, Y: %.2f, Z: %.2f m/s^2" % (sensor.acceleration))
print("Gyro X:%.2f, Y: %.2f, Z: %.2f degrees/s" % (sensor.gyro))
print("")
time.sleep(0.5)
Lista 1: Los desarrolladores pueden utilizar un módulo Adafruit CircuitPython para crear rápidamente prototipos de aplicaciones capaces de leer los datos de los sensores ISM330DHCX simplemente accediendo a los atributos de un objeto ISM330DHCX. (Fuente del código: Adafruit Industries)
STMicroelectronics también proporciona su propio microcontrolador STEVAL-MKI210V1K basado en ISM330DHCX, que se conecta a través de un adaptador DIL 24 a la placa de desarrollo STEVAL-MKI109V3 de la empresa basado en su microcontrolador STM32F401VE. Para evaluar el ISM330DHCX con esta configuración de la placa, STMicroelectronics proporciona un paquete de software para Linux (STSW-MKI109L), Mac OSX (STSW-MKI109M) y Windows (STSW-MKI109W).
Aunque esta plataforma de hardware de STEVAL se centra estrictamente en el ISM330DHCX, los desarrolladores pueden recurrir a la tarjeta de expansión X-NUCLEO-IKS02A1 de STMicroelectronics para evaluar el ISM330DHCX en combinación con otros sensores. Junto con una IMU ISM330DHCX, la placa de expansión X-NUCLEO-IKS02A1 incluye un acelerómetro IIS2MDC de STMicroelectronics, un acelerómetro de baja potenciaIIS2DLPC y un micrófono omnidireccional digital MEMS IMP34DT05. La placa de expansión NUCLEO-IKS02A1 está diseñada para conectarse a una placa NUCLEO de STMicroelectronics, como la NUCLEO-L476RG, para proporcionar una plataforma de hardware con todas las funciones.
Para el desarrollo del código de producción, el paquete de software STM32Cube de STMicroelectronics y el complemento de software asociado X-CUBE-MEMS1 proporcionan una plataforma de software completa. Junto con los controladores de la placa y el dispositivo, el paquete X-CUBE-MEMS1 proporciona una serie de aplicaciones de muestra que pueden ejecutarse en el conjunto de sensores y la placa base o utilizarse como base para el desarrollo personalizado. Por ejemplo, una aplicación de monitorización de vibraciones ilustra un simple bucle que lee continuamente los datos del acelerómetro ISM330DHCX en la placa de expansión X-NUCLEO-IKS02A1 (Lista 2).
Copy
while (fftIsEnabled == 0)
{
if (((HAL_GetTick() - start) > 6000))
{
Restart_FIFO();
return 0;
}
IKS02A1_MOTION_SENSOR_FIFO_Get_Tag(IKS02A1_ISM330DHCX_0, &tag);
if (tag == (uint8_t)ISM330DHCX_XL_NC_TAG)
{
IKS02A1_MOTION_SENSOR_FIFO_Get_Axes(IKS02A1_ISM330DHCX_0, MOTION_ACCELERO, &acceleration);
}
/* Store data */
single_data.AXIS_X = (float)acceleration.x;
single_data.AXIS_Y = (float)acceleration.y;
single_data.AXIS_Z = (float)acceleration.z;
/* Remove DC offset */
MotionSP_accDelOffset(&single_data_no_dc, &single_data, DC_SMOOTH, RestartFlag);
/* Fill the accelero circular buffer */
MotionSP_CreateAccCircBuffer(&AccCircBuffer, single_data_no_dc);
if (AccCircBuffer.Ovf == 1)
{
fftIsEnabled = 1;
AccCircBuffer.Ovf = 0;
}
MotionSP_TimeDomainProcess(&sTimeDomain, (Td_Type_t)MotionSP_Parameters.td_type, RestartFlag);
RestartFlag = 0;
}
Lista 2: Este recorte de una aplicación de muestra de monitorización de vibraciones en el paquete X-CUBE-MEMS1 de STMicroelectronics demuestra un bucle simple para leer datos de acelerómetro de la IMU ISM330DHCX. (Fuente del código: STMicroelectronics)
Dentro de este bucle, la función IKS02A1_MOTION_SENSOR_FIFO_Get_Tag() llama a una rutina específica de ISM330DHCX, ism330dhcx_fifo_sensor_tag_get(), que devuelve una etiqueta que identifica el sensor fuente específico en el ISM330DHCX o el sensor externo cuando se opera en la configuración del modo 1. Esta capacidad de etiquetado incorporada en el ISM330DHCX proporciona un mecanismo para identificar fácilmente múltiples tipos y fuentes de datos almacenados en el búfer de 3 kilobytes de primera entrada primera salida (FIFO) del dispositivo. En este ejemplo, la aplicación espera una etiqueta de acelerómetro, ISM330DHCX_XL_NC_TAG.
Una llamada posterior a IKS02A1_MOTION_SENSOR_FIFO_Get_Axes() llama a la rutina específica de ISM330DHCX, ISM330DHCX_FIFO_ACC_Get_Axes() para datos de acelerómetro, o ISM330DHCX_FIFO_GYRO_Get_Axes() para datos de giroscopio. En este ejemplo, la llamada utiliza ISM330DHCX_FIFO_ACC_Get_Axes(), que a su vez llama a una rutina de bajo nivel, ISM330DHCX_FIFO_Get_Data(), que realiza las operaciones de nivel de registro necesarias para leer los datos del búfer FIFO y luego devolver los datos de aceleración a escala de sensibilidad para cada uno de los tres ejes (Lista 3).
Copy
int32_t ISM330DHCX_FIFO_ACC_Get_Axes(ISM330DHCX_Object_t *pObj, ISM330DHCX_Axes_t *Acceleration)
{
uint8_t data[6];
int16_t data_raw[3];
float sensitivity = 0.0f;
float acceleration_float[3];
if (ISM330DHCX_FIFO_Get_Data(pObj, data) != ISM330DHCX_OK)
{
return ISM330DHCX_ERROR;
}
data_raw[0] = ((int16_t)data[1] << 8) | data[0];
data_raw[1] = ((int16_t)data[3] << 8) | data[2];
data_raw[2] = ((int16_t)data[5] << 8) | data[4];
if (ISM330DHCX_ACC_GetSensitivity(pObj, &sensitivity) != ISM330DHCX_OK)
{
return ISM330DHCX_ERROR;
}
acceleration_float[0] = (float)data_raw[0] * sensitivity;
acceleration_float[1] = (float)data_raw[1] * sensitivity;
acceleration_float[2] = (float)data_raw[2] * sensitivity;
Acceleration->x = (int32_t)acceleration_float[0];
Acceleration->y = (int32_t)acceleration_float[1];
Acceleration->z = (int32_t)acceleration_float[2];
return ISM330DHCX_OK;
}
Lista 3: Diseñado para soportar múltiples sensores y tarjetas de desarrollo, el paquete X-CUBE-MEMS1 de STMicroelectronics proporciona funciones específicas para el dispositivo como la que se muestra aquí, que a su vez llama a una rutina de bajo nivel, ISM330DHCX_FIFO_Get_Data(), para realizar las operaciones de nivel de registro requeridas. (Fuente del código: STMicroelectronics)
Otros conjuntos de códigos de muestra del paquete de software X-CUBE-MEMS1 demuestran una brújula electrónica, detección de inclinación, calibración de sensores y fusión de datos utilizando la biblioteca de fusión de sensores MotionFX incluida en el paquete. Combinados con el conjunto de placas NUCLEO, los paquetes de software STM32Cube y X-CUBE-MEMS1 de STMicroelectronics proporcionan una plataforma de desarrollo integral para construir aplicaciones industriales basadas en el movimiento y listas para la producción.
Conclusión
Además de hacer frente a las duras condiciones de funcionamiento, los diseños de los productos industriales a menudo tienen que apoyar la prolongación de la vida útil de la línea de productos. Para las aplicaciones industriales basadas en el movimiento, las IMU industriales proporcionan la combinación de características resistentes y la estabilidad necesaria para ofrecer mediciones precisas a pesar de la tensión térmica y mecánica. La disponibilidad de las IMU industriales de larga duración proporciona a los desarrolladores la capacidad de ofrecer soluciones de diseño eficaces para las líneas de productos industriales que dependen de datos de movimiento sólidos y de la disponibilidad de dispositivos a largo plazo.
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.




