Utiliser des unités de mesure inertielle avancées à longue durée de vie et disponibilité étendue pour garantir la longévité des dispositifs industriels
Avec la contribution de Rédacteurs nord-américains de DigiKey
2020-04-28
Tandis que les développeurs cherchent à concevoir des systèmes robotiques, des outils électriques intelligents, des dispositifs de suivi des ressources et d'autres produits industriels basés sur le mouvement, les unités de mesure inertielle (IMU) jouent un rôle majeur en fournissant les données requises pour la gestion des performances, de la sécurité, et bien plus encore. Les fabricants de ces produits industriels à longue durée de vie dépendent non seulement des capacités de performances des dispositifs IMU, mais aussi de leur disponibilité à long terme. Une nouvelle catégorie d'unités de mesure inertielle industrielles avec disponibilité à long terme offre aux développeurs une solution capable de répondre aux exigences de performances et de disponibilité.
Cet article présente des unités de mesure inertielle de Bosch Sensortec et de STMicroelectronics conçues pour garantir des mesures précises en environnements industriels difficiles dans le cadre des programmes de longévité de 10 ans des fabricants. Il s'intéresse également aux cartes de développement logiciel proposées par ces fabricants de dispositifs IMU et par Adafruit Industries, qui permettent de simplifier le développement rapide de conceptions basées sur des unités de mesure inertielle.
Présentation des unités de mesure inertielle
Les unités de mesure inertielle sont des dispositifs qui combinent un accéléromètre et un gyroscope afin de fournir les données nécessaires à la détection de mouvements linéaires et rotatifs avec six degrés de liberté. Conçus avec la technologie MEMS (microsystèmes électromécaniques), les capteurs de l'accéléromètre et du gyroscope dans les unités de mesure inertielle avancées (comme le dispositif BMI088 de Bosch Sensortec) sont associés à une logique, des chaînes de signaux et des convertisseurs analogique-numérique (CAN) dédiés afin de fournir un système de détection de mouvement complet dans un seul boîtier (Figure 1).
 Figure 1 : Les unités de mesure inertielle avancées comme le dispositif BMI088 de Bosch Sensortec intègrent des capteurs, des chaînes de signaux et une logique afin de fournir un système de détection de mouvement complet, immédiatement compatible avec des processeurs hôtes grâce à des interfaces série standard. (Source de l'image : Bosch Sensortec)
Figure 1 : Les unités de mesure inertielle avancées comme le dispositif BMI088 de Bosch Sensortec intègrent des capteurs, des chaînes de signaux et une logique afin de fournir un système de détection de mouvement complet, immédiatement compatible avec des processeurs hôtes grâce à des interfaces série standard. (Source de l'image : Bosch Sensortec)
Grâce à leurs fonctionnalités intégrées étendues, les unités de mesure inertielle s'intègrent facilement dans des conceptions système et ne nécessitent typiquement qu'une simple connexion I2C ou SPI pour transmettre les résultats numériques à un processeur hôte.
Performances et stabilité des unités de mesure inertielle industrielles
Les unités de mesure inertielle industrielles, comme le dispositif BMI088 de Bosch, sont spécialement conçues pour fournir une stabilité de température et une robustesse aux vibrations, deux caractéristiques requises pour supporter le fonctionnement dans les environnements difficiles où les contraintes thermiques et les vibrations ou les chocs mécaniques constants peuvent nuire aux performances des dispositifs moins résistants. Le BMI088 intègre un accéléromètre triaxial 16 bits et un gyroscope triaxial 16 bits qui offrent une résolution de 0,09 milligravité (mg) et de 0,004 degré par seconde (°/s), respectivement. Le dispositif prend en charge les mesures du gyroscope à différentes vitesses angulaires pleine échelle de 125°/s à 2000°/s. Comme la plupart des dispositifs de cette catégorie, le BMI088 prend en charge le fonctionnement sur la plage de températures industrielles complète de -40°C à +85°C. Surpassant de nombreux dispositifs de la catégorie, l'accéléromètre du BMI088 prend en charge la mesure pleine échelle jusqu'à 24 grammes (g), offrant une protection supplémentaire contre l'écrêtage des signaux à des niveaux de vibration élevés, fréquents dans les applications industrielles.
Dans le même temps, le dispositif répond aux exigences liées aux températures élevées ou qui changent rapidement dans les environnements industriels. L'accéléromètre du BMI088 affiche une dérive de température de sensibilité de seulement 0,002 % par kelvin (%/K) et une dérive de température de décalage zéro g inférieure à 0,2 mg par kelvin (K). De même, son gyroscope présente un coefficient de température de décalage (TCO) de seulement 0,015°/s par K et un coefficient de température de sensibilité (TCS) de 0,03 %/K.
Malgré leurs caractéristiques hautes performances, les unités de mesure inertielle MEMS consomment typiquement très peu de courant. Par exemple, l'accéléromètre du BMI088 consomme 150 microampères (μA) en mode normal, tandis que son gyroscope nécessite 5 milliampères (mA). Comme avec la plupart des dispositifs basse consommation, les développeurs peuvent faire passer le BMI088 en mode basse consommation durant les périodes d'inactivité. En mode veille basse consommation, le courant requis par l'accéléromètre et le gyroscope tombe respectivement à 3 mA et 25 mA. Le gyroscope du BMI088 offre même un mode de veille profonde qui consomme moins de 5 mA.
Le fonctionnement basse consommation est évidemment primordial pour les applications alimentées par batterie, comme les outils électriques portables ou les dispositifs de suivi des ressources, mais la capacité à reprendre rapidement des mesures normales est tout aussi critique dans les applications industrielles. En fait, le BMI088 affiche un temps d'activation à partir du mode veille (et veille profonde) beaucoup plus rapide que celui des unités de mesure inertielle typiquement utilisées dans les applications grand public, comme les dispositifs corporels et d'autres produits électroniques personnels.
Prise en charge de produits à longue durée de vie
Il existe peut-être une différence plus fondamentale quant aux exigences pour les unités de mesure inertielle dans les dispositifs grand public et industriels. Comme pour n'importe quelle catégorie de produits, le cycle de vie des produits grand public et industriels suit un schéma courant après leur lancement : croissance, maturité et déclin (Figure 2).
 Figure 2 : Bien que la demande des consommateurs en matière de nouvelles fonctionnalités réduise généralement les dernières étapes du cycle de vie des produits grand public, de nombreux utilisateurs industriels comptent sur une disponibilité étendue des lignes matures de produits fiables. (Source de l'image : Wikipédia)
Figure 2 : Bien que la demande des consommateurs en matière de nouvelles fonctionnalités réduise généralement les dernières étapes du cycle de vie des produits grand public, de nombreux utilisateurs industriels comptent sur une disponibilité étendue des lignes matures de produits fiables. (Source de l'image : Wikipédia)
Du côté des consommateurs, la demande liée aux nouveaux produits mobiles riches en fonctionnalités a considérablement réduit la durée des phases de maturité et de déclin du cycle de vie des produits. À l'extrême opposé des cycles de vie de plus en plus courts des produits électroniques grand public, différents types d'équipements industriels doivent souvent être capables de rester en service pendant plusieurs années. Une ligne mature d'outils électriques de grade industriel a plus de chances d'attirer des clients fidèles pour sa fiabilité dans l'exécution de ses fonctions premières que pour ses éventuels gadgets. Dans d'autres applications industrielles comme le suivi des ressources ou la surveillance IIoT, la disponibilité à long terme peut l'emporter sur la nécessité ou la possibilité de remplacer les dispositifs pour prendre en charge des améliorations croissantes des fonctionnalités.
Pour répondre aux exigences pour les produits à longue durée de vie, les développeurs peuvent souvent trouver des produits clés dans les programmes de longévité des fabricants de semi-conducteurs, qui garantissent une disponibilité pendant une période commençant généralement à la date de lancement du produit. Par exemple, Bosch propose son unité de mesure inertielle BMI090L dans le cadre de son propre programme de longévité de 10 ans. Le dispositif BMI090L, une version à brochage compatible du BMI088, offre les mêmes fonctionnalités et performances que le BMI088.
Unité de mesure inertielle industrielle à apprentissage automatique
Dans le cadre de son propre programme de longévité de 10 ans, STMicroelectronics propose son unité de mesure inertielle industrielle ISM330DHCX hautes performances. L'ISM330DHCX fait partie d'une série spécialisée de modules SiP (système en boîtier) iNEMO qui inclut également le LSM6DSOX et le LSM6DSRX de STMicroelectronics. Ces dispositifs combinent un accéléromètre triaxial et un gyroscope triaxial à un cœur d'apprentissage automatique embarqué. (Pour en savoir plus sur le cœur d'apprentissage automatique iNEMO et sur son utilisation, consultez l'article « Utiliser le cœur d'apprentissage automatique intégré d'un capteur intelligent pour optimiser le suivi de mouvement "permanent" ».)
Conçu pour les produits grand public alimentés par batterie, le LSM6DSOX offre la plus basse consommation de cette série de dispositifs spécialisés. Solution alternative, le LSM6DSRX est conçu pour la réalité virtuelle (VR), la réalité augmentée (AR) et les applications de drone. Il offre une meilleure stabilité que le LSM6DSOX et un cœur d'apprentissage automatique étendu.
Conçu pour les applications industrielles hautes performances, l'ISM330DHCX tire parti des capacités du module grand public LSM6DSRX, mais offre une plage de températures de fonctionnement beaucoup plus étendue de -40°C à +105°C, contre -40°C à +85°C pour le LSM6DSRX. Avec une plage d'accélération linéaire jusqu'à 16 g, l'ISM330DHCX offre une plage de mesure de vitesse angulaire maximum de 4000°/s, soit l'une des plus élevées qui existent pour un dispositif de cette catégorie. L'ISM330DHCX affiche par ailleurs une faible dépendance à la température, ce qui est nécessaire pour les applications industrielles. Son accéléromètre présente une sensibilité de seulement 0,005 %/°C et une dérive zéro g de 0,1 mg/°C, tandis que son gyroscope affiche une sensibilité de 0,00 7%/°C et une dérive à vitesse nulle de 0,005°/s par °C.
Comme la plupart des unités de mesure inertielle, l'ISM330DHCX s'intègre facilement à un processeur hôte à l'aide d'une connexion I2C ou SPI. Les développeurs peuvent connecter le dispositif dans quatre configurations différentes :
- Utilisé en étant connecté uniquement à un hôte (mode 1)
- Utilisé avec la fonctionnalité de concentrateur de capteurs (mode 2)
- Utilisé en étant connecté à un hôte primaire ainsi qu'à un hôte secondaire capable de lire uniquement les données du gyroscope (mode 3)
- Utilisé en étant connecté à un hôte primaire ainsi qu'à un hôte secondaire capable de lire les données du gyroscope et de l'accéléromètre (mode 4)
En mode 2, l'ISM330DHCX peut fonctionner comme un concentrateur de capteurs, en mode esclave avec l'hôte et en mode maître avec des capteurs externes connectés à son interface I2C (Figure 3).
 Figure 3 : L'ISM330DHCX de STMicroelectronics peut être configuré pour différents modes de fonctionnement, notamment le mode 2 (illustré ici), qui lui permet d'agir en tant que concentrateur de capteurs pour des capteurs externes, transmettant ainsi les données combinées à l'hôte. (Source de l'image : STMicroelectronics)
Figure 3 : L'ISM330DHCX de STMicroelectronics peut être configuré pour différents modes de fonctionnement, notamment le mode 2 (illustré ici), qui lui permet d'agir en tant que concentrateur de capteurs pour des capteurs externes, transmettant ainsi les données combinées à l'hôte. (Source de l'image : STMicroelectronics)
Développement rapide d'unités de mesure inertielle
Étant donné que les unités de mesure inertielle numériques présentent des exigences matérielles minimales, les développeurs peuvent facilement faire l'impasse sur la conception matérielle au tout début du développement et passer immédiatement au développement logiciel en s'appuyant sur différentes cartes de développement proposées par les fabricants de dispositifs IMU. Par exemple, la carte d'application de Bosch est conçue pour accepter une vaste gamme de cartes filles, notamment la carte shuttle BMI090L de Bosch. Basée sur un processeur Arm® Cortex®-M4, la carte d'application de Bosch fournit plusieurs points de test et connecteurs, ainsi qu'une connexion USB pour l'alimentation et le développement depuis un PC hôte.
Pour accélérer l'évaluation et le prototypage d'applications industrielles basées sur l'ISM330DHCX de STMicroelectronics, les développeurs peuvent utiliser la carte d'évaluation 4502 ISM330DHCX d'Adafruit Industries, connectée à une carte de développement 4382 STM32F405 Feather d'Adafruit Industries en tant que plateforme matérielle.
Pour le développement logiciel, le référentiel logiciel github CircuitPython LSM6DS d'Adafruit prend en charge un certain nombre d'unités de mesure inertielle de STMicroelectronics, notamment l'ISM330DHCX, ainsi que le LSM6DSOX et le LSM6DS33. Par conséquent, les développeurs peuvent rapidement concevoir des prototypes à l'aide de seulement quelques lignes de code Python, pour lire les données des capteurs ISM330DHCX (Liste 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)
Liste 1 : Les développeurs peuvent utiliser un module CircuitPython d'Adafruit pour prototyper rapidement des applications capables de lire les données des capteurs ISM330DHCX en accédant simplement aux attributs d'un objet ISM330DHCX. (Source du code : Adafruit Industries)
STMicroelectronics propose également sa propre carte d'extension STEVAL-MKI210V1K basée sur l'ISM330DHCX, qui se connecte via un adaptateur DIL 24 à la carte de développement STEVAL-MKI109V3 basée sur le microcontrôleur STM32F401VE. Pour évaluer l'ISM330DHCX avec cette configuration de carte, STMicroelectronics propose un pack logiciel pour Linux (STSW-MKI109L), Mac OSX (STSW-MKI109M) et Windows (STSW-MKI109W).
Même si cette plateforme matérielle STEVAL cible uniquement l'ISM330DHCX, les développeurs peuvent se tourner vers la carte d'extension X-NUCLEO-IKS02A1 de STMicroelectronics pour évaluer l'ISM330DHCX en combinaison avec d'autres capteurs. Outre une unité de mesure inertielle ISM330DHCX, la carte d'extension X-NUCLEO-IKS02A1 inclut un magnétomètre IIS2MDC, un accéléromètre basse consommation IIS2DLPC et un microphone omnidirectionnel numérique MEMS IMP34DT05 de STMicroelectronics. La carte d'extension NUCLEO-IKS02A1 est conçue pour être connectée à une carte NUCLEO de STMicroelectronics, telle que la carte NUCLEO-L476RG, pour fournir une plateforme matérielle aux fonctionnalités complètes.
Pour le développement du code de production, le pack logiciel STM32Cube de STMicroelectronics et l'extension logicielle X-CUBE-MEMS1 associée fournissent une plateforme logicielle complète. Outre la carte et les pilotes des dispositifs, le pack X-CUBE-MEMS1 fournit un certain nombre d'applications d'exemple à exécuter sur l'ensemble de capteurs et de cartes de base, ou à utiliser comme point de départ pour un développement personnalisé. Par exemple, une application de surveillance des vibrations illustre une boucle simple qui lit en continu les données de l'accéléromètre ISM330DHCX sur la carte d'extension X-NUCLEO-IKS02A1 (Liste 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;
    }
Liste 2 : Cet extrait d'une application d'exemple de surveillance des vibrations dans le pack X-CUBE-MEMS1 de STMicroelectronics illustre une boucle simple destinée à lire les données de l'accéléromètre de l'unité de mesure inertielle ISM330DHCX. (Source du code : STMicroelectronics)
Dans cette boucle, la fonction IKS02A1_MOTION_SENSOR_FIFO_Get_Tag() fait appel à une routine spécifique à l'ISM330DHCX, ism330dhcx_fifo_sensor_tag_get(), qui renvoie une étiquette permettant d'identifier le capteur source spécifique sur l'ISM330DHCX ou le capteur externe en cas de configuration en mode 1. Cette capacité d'étiquetage intégrée à l'ISM330DHCX fournit un mécanisme permettant d'identifier facilement plusieurs types et sources de données stockées dans la mémoire FIFO de 3 kilo-octets (Ko) du dispositif. Dans cet exemple, l'application s'attend à recevoir une étiquette d'accéléromètre, ISM330DHCX_XL_NC_TAG.
Un appel ultérieur à IKS02A1_MOTION_SENSOR_FIFO_Get_Axes() fait appel à la routine spécifique à l'ISM330DHCX, ISM330DHCX_FIFO_ACC_Get_Axes() pour les données de l'accéléromètre ou ISM330DHCX_FIFO_GYRO_Get_Axes() pour les données du gyroscope. Dans cet exemple, l'appel utilise ISM330DHCX_FIFO_ACC_Get_Axes(), qui fait à son tour appel à une routine de bas niveau, ISM330DHCX_FIFO_Get_Data(), qui effectue les opérations au niveau du registre nécessaires à la lecture des données dans la mémoire FIFO et au renvoi de données d'accélération adaptées du point de vue de la sensibilité pour chacun des trois axes (Liste 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;
}
Liste 3 : Conçu pour prendre en charge de multiples capteurs et cartes de développement, le pack X-CUBE-MEMS1 de STMicroelectronics offre des fonctions spécifiques aux dispositifs comme celle illustrée ici, qui fait ensuite appel à une routine de bas niveau, ISM330DHCX_FIFO_Get_Data(), afin d'effectuer les opérations requises au niveau du registre. (Source du code : STMicroelectronics)
D'autres portions de code d'exemple dans le pack logiciel X-CUBE-MEMS1 illustrent une boussole électronique, la détection d'inclinaison, l'étalonnage de capteurs ainsi que la fusion des données à l'aide de la bibliothèque de fusion des capteurs MotionFX incluse dans le pack. Combinés aux différentes cartes NUCLEO, les packs logiciels STM32Cube et X-CUBE-MEMS1 de STMicroelectronics fournissent une plateforme de développement complète pour concevoir des applications industrielles basées sur le mouvement à utiliser directement en production.
Conclusion
En plus de résister à des conditions de fonctionnement difficiles, les conceptions destinées aux produits industriels doivent souvent prendre en charge une durée de vie étendue des lignes de produits. Pour les applications industrielles basées sur le mouvement, les unités de mesure inertielle industrielles offrent la combinaison de caractéristiques robustes et de stabilité requise pour fournir des mesures précises malgré les contraintes thermiques et mécaniques. La disponibilité d'unités de mesure inertielle industrielles à longue durée de vie permet aux développeurs de créer des solutions efficaces pour les lignes de produits industrielles qui dépendent de la fiabilité des données de mouvement et de la disponibilité à long terme des dispositifs.
 
            
        Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.
 
                 
                 
                 
 
 
 
 Paramètres
        Paramètres
     Livraison rapide
                                    Livraison rapide
                                 Livraison gratuite
                                    Livraison gratuite
                                 Incoterms
                                    Incoterms
                                 Types de paiement
                                    Types de paiement
                                





 Produit marketplace
                                    Produit marketplace
                                 
            






 
                 
                     
                                 
                                 
                                 
                         
                                 
                                 
                                 
                                 
                                 
                                 
                                 France
France