Utilizzare IMU avanzate e a lunga durata con disponibilità estesa per garantire la longevità dei dispositivi industriali

Di Stephen Evanczuk

Contributo di Editori nordamericani di DigiKey

Gli sviluppatori sono impegnati a realizzare sistemi robotici, utensili elettrici intelligenti, dispositivi di tracciamento degli asset e altri prodotti industriali basati sul movimento. In tutte queste soluzioni, le unità di misurazione inerziale (IMU) svolgono un ruolo fondamentale fornendo i dati necessari per gestire le prestazioni, la sicurezza e altro ancora. I costruttori di questi prodotti industriali a lunga durata contano non solo sulle capacità prestazionali dei dispositivi IMU, ma anche sulla loro disponibilità a lungo termine. Una nuova classe di IMU industriali con disponibilità a lungo termine offre agli sviluppatori una soluzione in grado di soddisfare i requisiti in materia sia di prestazioni che di longevità.

Questo articolo illustra le IMU di Bosch Sensortec e STMicroelectronics, studiate per assicurare misurazioni accurate in ambienti industriali difficili che si inseriscono positivamente nel programma di longevità di 10 anni dei produttori. Si occupa poi delle schede di sviluppo software di produttori di IMU industriali e di Adafruit Industries, destinate a favorire il rapido sviluppo di progetti basati su IMU.

Cosa sono le IMU?

Le IMU sono dispositivi di rilevamento che combinano un accelerometro e un giroscopio per fornire i dati necessari a rilevare il movimento lineare e rotazionale su sei gradi di libertà. Realizzati con la tecnologia dei sistemi microelettromeccanici (MEMS), l'accelerometro e i giroscopi presenti in IMU avanzate come BMI088 di Bosch Sensortec, sono integrati con catene di segnali dedicate, convertitori analogico/digitale (ADC) e la logica necessaria per fornire un sistema completo di rilevamento del movimento in un unico contenitore (Figura 1).

Schema della IMU BMI088 di Bosch SensortecFigura 1: IMU avanzate come BMI088 di Bosch Sensortec comprendono sensori, catene di segnali e logica per fornire un sistema completo di rilevamento del movimento che si integra facilmente con i processori host tramite interfacce seriali standard. (Immagine per gentile concessione di Bosch Sensortec)

Grazie alla loro estesa funzionalità integrata, le IMU possono essere facilmente inserite nelle progettazioni di sistemi e, per fornire risultati digitali a un processore host, hanno bisogno di una connessione I2C o SPI e di poco altro.

Prestazioni e stabilità delle IMU industriali

Le IMU industriali come BMI088 di Bosch sono progettate espressamente per fornire la stabilità in temperatura e la robustezza necessarie per resistere in ambienti difficili, dove le costanti sollecitazioni termiche e le vibrazioni o gli urti meccanici possono pregiudicare le prestazioni dei dispositivi meno resistenti. BMI088 integra un accelerometro e un giroscopio triassiali a 16 bit che offrono, rispettivamente, una risoluzione di 0,09 mg (milligravità) e 0,004°/s (gradi al secondo). Il dispositivo supporta misurazioni giroscopiche a velocità angolari multiple a fondo scala da 125°/s fino a 2000°/s. Come la maggior parte dei dispositivi di questa classe, BMI088 supporta il funzionamento su tutto l'intervallo di temperatura industriale da -40 a +85 °C. L'accelerometro di BMI088 supera molti dispositivi di questa classe. Supporta una misurazione a fondo scala fino a 24 grammi, fornendo una protezione aggiuntiva dalla saturazione del segnale ai livelli elevati di vibrazione che sono frequenti nelle applicazioni industriali.

Allo stesso tempo, il dispositivo soddisfa i requisiti per temperature elevate o con repentine variazioni, comuni negli ambienti industriali. L'accelerometro di BMI088 presenta per la sensibilità una deriva termica di solo 0,002% per grado Kelvin e una deriva termica per l'offset zero g inferiore a 0,2 mg per grado Kelvin. Il suo giroscopio ha un coefficiente termico di offset (TCO) di soli 0,015°/s per grado K e un coefficiente termico di sensibilità (TCS) di 0,03%/K.

Nonostante le loro alte prestazioni, le IMU basate su MEMS in genere hanno un consumo di corrente molto basso. Ad esempio, l'accelerometro di BMI088 consuma 150 mA in modalità normale, mentre il giroscopio assorbe 5 mA. Come per la maggior parte dei dispositivi che dispongono della modalità a basso consumo, anche BMI088 può essere commutato su questa modalità durante i periodi di inattività. In modalità di sospensione a basso consumo, la corrente dell'accelerometro e del giroscopio scende rispettivamente a 3 mA e 25 mA. Di fatto, il giroscopio di BMI088 offre una modalità di sospensione profonda che consuma meno di 5 mA.

Il basso consumo può ovviamente essere un fattore cruciale per le applicazioni alimentate a batteria, come gli utensili elettrici portatili o i dispositivi di tracciamento degli asset, ma nelle applicazioni industriali la capacità di riprendere rapidamente le normali misurazioni è altrettanto importante. BMI088 presenta un tempo di riattivazione dalla modalità di sospensione (e di sospensione profonda) molto più rapido di quello disponibile con le IMU utilizzate in genere nelle applicazioni consumer come i dispositivi indossabili e altri prodotti elettronici personali.

Supporto per prodotti a lunga durata

La differenza tra i requisiti delle IMU nei dispositivi consumer e in quelli industriali è forse più fondamentale. Come per qualsiasi categoria di prodotti, il ciclo di vita di quelli consumer e industriali segue l'abituale schema di crescita, maturità e declino dopo l'introduzione (Figura 2).

Grafico della disponibilità estesa di linee mature di prodotti affidabiliFigura 2: Sebbene la richiesta di funzionalità di ultima generazione avanzata dai consumatori riduca in genere le fasi finali del ciclo di vita dei prodotti consumer, molti utenti industriali si affidano a una disponibilità estesa di linee mature di prodotti affidabili. (Immagine per gentile concessione di Wikipedia)

Per i consumatori, la domanda di prodotti mobili sempre più ricchi di funzionalità ha ridotto drasticamente la durata delle fasi di maturità e declino del loro ciclo di vita. In netto contrasto con la riduzione dei cicli di vita dei prodotti elettronici consumer, da diversi tipi di apparecchiature industriali ci si aspetta invece che rimangano in servizio per molti anni. Una linea matura di utensili elettrici di grado industriale in genere guadagna la fiducia degli utenti più per la sua affidabilità nello svolgimento della sua funzione primaria che per i suoi "fronzoli". In altre applicazioni industriali, come la tracciabilità degli asset o il monitoraggio IIoT, la disponibilità a lungo termine di una famiglia di dispositivi può avere la meglio sulla necessità o sulla praticità di sostituirli per supportare sempre più miglioramenti delle funzionalità.

Per soddisfare i requisiti di prodotti a lunga durata, gli sviluppatori spesso possono trovare dei prodotti chiave nei programmi di longevità dei produttori di semiconduttori, che garantiscono la disponibilità per un periodo di tempo che di solito inizia dalla data di introduzione del prodotto. Ad esempio, Bosch offre la sua IMU BMI090L nel quadro del suo programma di longevità di 10 anni. BMI090L, una versione di BMI088 compatibile a livello di pin, presenta le stesse specifiche di funzionalità e prestazioni di BMI088.

IMU industriale per l'apprendimento automatico

Nel quadro del suo programma di longevità di 10 anni, STMicroelectronics offre l'IMU industriale ad alte prestazioni ISM330DHCX. ISM330DHCX fa parte di una serie specializzata di moduli SiP (System-in-Package) iNEMO che comprende anche LSM6DSOX e LSM6DSRX di STMicroelectronics. Questi dispositivi combinano un accelerometro e un giroscopio triassiali con un core di apprendimento automatico embedded. (Per maggiori informazioni sul core di apprendimento automatico iNEMO e sul suo uso, vedere Utilizzare il core integrato di apprendimento automatico di un sensore intelligente per ottimizzare il tracciamento del movimento "sempre in funzione".)

Progettato per prodotti consumer alimentati a batteria, LSM6DSOX offre il consumo energetico più basso in questa serie di dispositivi specializzati. LSM6DSRX è progettato invece per applicazioni di realtà virtuale (VR), realtà aumentata (AR) e droni. Offre una maggiore stabilità rispetto a LSM6DSOX e ha un core di apprendimento automatico allargato.

Progettato per applicazioni industriali ad alte prestazioni, ISM330DHCX poggia sulle capacità di LSM6DSRX di grado consumer, ma offre un intervallo di temperatura di funzionamento molto più ampio, da -40 a +105 °C, mentre quello di LSM6DSRX va da -40 a +85 °C. Pur offrendo un intervallo di accelerazione lineare fino a 16 g, ISM330DHCX ha un intervallo di misurazione della velocità angolare massimo di 4000°/s, uno dei più alti disponibili in un dispositivo di questa classe. Come richiesto per le applicazioni industriali, ISM330DHCX presenta una scarsa dipendenza dalla temperatura. Il suo accelerometro ha una sensibilità di ben 0,005%/°C e una deriva di 0,1 mg/°C a zero g, mentre il suo giroscopio ha una sensibilità di 0,007%/°C e una deriva di 0,005°/s per °C punto di zero.

Come nel caso delle IMU più avanzate, ISM330DHCX si integra facilmente con un processore host tramite una connessione I2C o SPI. Gli sviluppatori possono collegare il dispositivo in quattro diverse configurazioni:

  1. Utilizzato con il solo collegamento a un host (Modalità 1)
  2. Utilizzato con la funzione hub di sensori (Modalità 2)
  3. Utilizzato collegato sia a un host primario che a uno secondario in grado di leggere i dati del solo giroscopio (Modalità 3)
  4. Utilizzato collegato sia a un host primario che a uno secondario in grado di leggere i dati sia del giroscopio che dell'accelerometro (Modalità 4)

Nella Modalità 2, ISM330DHCX può funzionare come hub di sensori, fungendo in modalità slave sia da host che da master per sensori esterni collegati alla sua interfaccia I2C (Figura 3).

Schema di ISM330DHCX di STMicroelectronicsFigura 3: ISM330DHCX di STMicroelectronics può essere configurato per funzionare in diverse modalità operative, inclusa la Modalità 2 mostrata qui che gli permette di fungere da hub di sensori esterni, fornendo i dati combinati all'host. (Immagine per gentile concessione di STMicroelectronics)

Sviluppo rapido di IMU

Dato che le IMU digitali hanno requisiti hardware minimi, nelle prime fasi gli sviluppatori possono trascurare questo aspetto della progettazione e passare immediatamente allo sviluppo software con una serie di schede di sviluppo di produttori di dispositivi IMU industriali. Ad esempio, Application Board di Bosch è studiata per accettare un'ampia gamma di schede figlie, compresa la scheda shuttle-board BMI090L di Bosch. Basata sul processore Arm® Cortex®-M4, Application Board di Bosch offre più punti di test e connettori, oltre a una connessione USB per l'alimentazione e lo sviluppo su un PC host.

Per accelerare la valutazione e la prototipazione di applicazioni industriali basate su ISM330DHCX di STMicroelectronics, gli sviluppatori possono usare la scheda di valutazione ISM330DHCX 4502 di Adafruit Industries collegata a una scheda di sviluppo 4382 STM32F405 Feather della stessa azienda come piattaforma hardware.

Per lo sviluppo software, il repository software github CircuitPython LSM6DS di Adafruit supporta diverse IMU di STMicroelectronics, comprese ISM330DHCX, LSM6DSOX e LSM6DS33. Questo permette agli sviluppatori di realizzare rapidamente applicazioni prototipo utilizzando solo poche righe di codice Python per leggere i dati dai sensori ISM330DHCX (Listato 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)

Listato 1: Gli sviluppatori possono usare un modulo CircuitPython di Adafruit per prototipare rapidamente applicazioni in grado di leggere i dati dei sensori ISM330DHCX accedendo semplicemente agli attributi di un oggetto ISM330DHCX. (Codice per gentile concessione di Adafruit Industries)

STMicroelectronics offre anche la sua scheda add-on STEVAL-MKI210V1K basata su ISM330DHCX che, tramite un adattatore DIL 24, si collega alla scheda di sviluppo STEVAL-MKI109V3 dell'azienda basata sul suo microcontroller STM32F401VE. Per valutare ISM330DHCX con questa configurazione della scheda, STMicroelectronics mette a disposizione un pacchetto software per Linux (STSW-MKI109L), Mac OSX (STSW-MKI109M) e Windows (STSW-MKI109W).

Anche se questa piattaforma hardware STEVAL è dedicata esclusivamente a ISM330DHCX, gli sviluppatori possono ricorrere alla scheda di espansione X-NUCLEO-IKS02A1 di STMicroelectronics per valutare ISM330DHCX assieme ad altri sensori. Oltre a una IMU ISM330DHCX, la scheda di espansione X-NUCLEO-IKS02A1 include un magnetometro IIS2MDC di STMicroelectronics, un accelerometro a basso consumo IIS2DLPC e un microfono omnidirezionale digitale MEMS IMP34DT05. La scheda di espansione NUCLEO-IKS02A1 è progettata per inserirsi in una scheda NUCLEO di STMicroelectronics come NUCLEO-L476RG per offrire una piattaforma hardware completa.

Per lo sviluppo del codice di produzione, il pacchetto software STM32Cube di STMicroelectronics e l'add-on software X-CUBE-MEMS1 ad esso associato offrono una piattaforma software completa. Oltre ai driver della scheda e dei dispositivi, il pacchetto X-CUBE-MEMS1 fornisce una serie di applicazioni campione che possono essere eseguite sul set di sensori e sulla scheda base oppure utilizzate come base per uno sviluppo personalizzato. Ad esempio, un'applicazione di monitoraggio delle vibrazioni illustra un semplice loop che legge continuamente i dati dall'accelerometro ISM330DHCX sulla scheda di espansione X-NUCLEO-IKS02A1 (Listato 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;
    }

Listato 2: Questo frammento di un'applicazione campione per il monitoraggio delle vibrazioni nel pacchetto X-CUBE-MEMS1 di STMicroelectronics dimostra un semplice loop per la lettura dei dati dell'accelerometro dell'IMU ISM330DHCX. (Codice per gentile concessione di STMicroelectronics)

All'interno di questo loop, la funzione IKS02A1_MOTION_SENSOR_FIFO_Get_Tag() chiama una routine specifica per ISM330DHCX, ism330dhcx_fifo_sensor_tag_get(), che restituisce un tag che identifica lo specifico sensore della sorgente su ISM330DHCX o il sensore esterno quando opera con una configurazione di modalità 1. Questa capacità di tagging integrata in ISM330DHCX fornisce un meccanismo per identificare facilmente più tipi e sorgenti di dati memorizzati nel buffer first-in first-out (FIFO) di 3 kB del dispositivo. In questo esempio, l'applicazione si aspetta un tag dell'accelerometro, ISM330DHCX_XL_NC_TAG.

Una chiamata successiva a IKS02A1_MOTION_SENSOR_FIFO_Get_Axes() richiama la routine specifica per ISM330DHCX, ISM330DHCX_FIFO_ACC_Get_Axes() per i dati dell'accelerometro, o ISM330DHCX_FIFO_GYRO_Get_Axes() per i dati del giroscopio. In questo esempio, la chiamata usa ISM330DHCX_FIFO_ACC_Get_Axes(), che a sua volta richiama una routine di basso livello, ISM330DHCX_FIFO_Get_Data(), che esegue le operazioni a livello di registro necessarie per leggere i dati del buffer FIFO e poi restituire i dati di accelerazione in ordine di sensibilità per ciascuno dei tre assi (Listato 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;
}

Listato 3: Progettato per supportare più sensori e schede di sviluppo, il pacchetto X-CUBE-MEMS1 di STMicroelectronics offre funzioni specifiche per il dispositivo come quella mostrata qui, che a sua volta richiama una routine di basso livello, ISM330DHCX_FIFO_Get_Data(), per eseguire le operazioni a livello di registro richieste. (Codice per gentile concessione di STMicroelectronics)

Altri set di codici campione nel pacchetto software X-CUBE-MEMS1 dimostrano una bussola elettronica, il rilevamento dell'inclinazione, la calibrazione dei sensori e la fusione dei dati utilizzando la libreria Sensor Fusion MotionFX inclusa nel pacchetto. Oltre al set di schede NUCLEO, i pacchetti software STM32Cube e X-CUBE-MEMS1 di STMicroelectronics forniscono una piattaforma di sviluppo completa per realizzare applicazioni industriali basate sul movimento, pronte per la produzione.

Conclusione

Oltre a dover far fronte a condizioni operative difficili, i progetti per i prodotti industriali spesso devono supportare una vita utile estesa della linea di prodotti. Per le applicazioni industriali basate sul movimento, le IMU industriali forniscono le caratteristiche sia di robustezza che di stabilità necessarie per produrre misurazioni accurate nonostante le sollecitazioni termiche e meccaniche. La disponibilità di IMU industriali a lunga durata permette agli sviluppatori di offrire soluzioni di progettazione efficaci per linee di prodotti industriali che dipendono da dati di movimento affidabili e dalla disponibilità a lungo termine dei dispositivi.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk ha più di 20 anni di esperienza come autore sull'industria elettronica e ha scritto su una vasta gamma di argomenti tra cui hardware, software, sistemi e applicazioni, incluso l'IoT. Ha ricevuto un Ph.D. in neuroscienze sulle reti neuronali e ha lavorato nel settore aerospaziale su sistemi di sicurezza ampiamente distribuiti e sui metodi di accelerazione algoritmica. Attualmente, quando non scrive articoli su tecnologia e ingegneria, lavora su applicazioni di deep learning per i sistemi di riconoscimento e di raccomandazione.

Informazioni su questo editore

Editori nordamericani di DigiKey