Premiers pas pour la conception de capteurs de mouvement et d'orientation basés MEMS avec les cartes Breakout Arduino

Par Clive "Max" Maxfield

Avec la contribution de Rédacteurs nord-américains de DigiKey

Les concepteurs doivent de plus en plus doter leurs systèmes de capacités d'orientation et de mouvement. Heureusement, des capteurs basés sur les technologies de semi-conducteurs et de microsystèmes électromécaniques (MEMS) sont désormais disponibles pour les aider dans cette tâche. Leur petite taille et leur faible coût permettent de déployer la détection de mouvement et d'orientation dans un large éventail de systèmes, y compris les drones, les robots et, bien sûr, les produits portables comme les smartphones et les tablettes. Ces capteurs sont également utilisés dans les systèmes de maintenance prédictive pour l'Internet industriel des objets (IIoT), fournissant des données pour l'analyse en utilisant l'intelligence artificielle (IA) et l'apprentissage automatique (ML) en périphérie.

Les principaux types de capteurs MEMS utilisés pour détecter le mouvement et l'orientation sont les accéléromètres, les gyroscopes, les magnétomètres et diverses combinaisons. Si de nombreux concepteurs souhaitent intégrer des capteurs de mouvement et d'orientation dans leurs conceptions, ils ne savent souvent pas par où commencer.

Une option consiste à utiliser les kits d'évaluation et de développement proposés par les fournisseurs de capteurs MEMS pour soutenir leurs solutions. Si ces kits offrent une bonne prise en charge de leur solution, cette approche est tout à fait adaptée. Cependant, le concepteur doit soit se limiter à utiliser les capteurs d'un seul fournisseur, soit connaître les outils logiciels de plusieurs fournisseurs de capteurs.

Alternativement, les concepteurs qui n'ont pas l'habitude de travailler avec des capteurs de mouvement et d'orientation peuvent bénéficier de l'expérimentation et du prototypage en utilisant les cartes de développement de microcontrôleurs open-source économiques d'Arduino, ainsi que son environnement de développement intégré (IDE) unique, en conjonction avec des cartes Breakout (BOB) de capteurs open-source économiques présentant des capteurs de plusieurs fournisseurs.

Pour aider les concepteurs à démarrer, cet article propose un glossaire sur la terminologie des capteurs et une brève discussion sur le rôle des capteurs de mouvement et d'orientation. Il présente ensuite une sélection de cartes BOB de capteurs d'Adafruit et leur utilisation.

Glossaire sur la terminologie des capteurs

Deux termes fréquemment utilisés en rapport avec les capteurs de mouvement et d'orientation sont « nombre d'axes » et « degrés de liberté » (DOF). Malheureusement, ces termes sont souvent utilisés comme synonymes, ce qui peut entraîner une certaine confusion.

D'une manière générale, le terme d'axe peut être utilisé pour décrire la dimensionnalité des données utilisées par un système. Dans le contexte du mouvement et de l'orientation, il y a trois axes d'intérêt, X, Y et Z.

La manière dont ces axes sont visualisés dépend du système en question. Dans le cas d'un smartphone en orientation portrait, par exemple, l'axe X est horizontal par rapport à l'écran et pointe vers la droite, l'axe Y est vertical par rapport à l'écran et pointe vers le haut, et l'axe Z, qui est perpendiculaire aux deux autres axes, est considéré comme pointant vers l'extérieur de l'écran (Figure 1).

Schéma du système physique ne pouvant avoir qu'un maximum de six DOFFigure 1 : Un système physique ne peut avoir qu'un maximum de six DOF car il n'y a que six façons de se déplacer dans l'espace 3D : trois linéaires et trois angulaires. (Source de l'image : Max Maxfield)

En ce qui concerne un dispositif tel qu'un smartphone, il existe deux types de mouvements d'intérêt : linéaire et angulaire. Dans le cas d'un mouvement linéaire, le système peut se déplacer d'un côté à l'autre sur l'axe X, de haut en bas sur l'axe Y, et d'avant en arrière sur l'axe Z. Dans le cas d'un mouvement angulaire, le système peut tourner autour d'un ou de plusieurs des trois axes.

Dans le contexte du mouvement, le degré de liberté fait référence à chacune des directions dans lesquelles un mouvement indépendant peut se produire. Sur cette base, un système physique ne peut avoir qu'un maximum de six DOF (6 DOF) car il n'y a que six façons de se déplacer dans l'espace 3D (trois linéaires et trois angulaires).

Le terme « orientation » désigne la direction ou la position physique d'un objet par rapport à un autre. Dans le cas d'un smartphone, l'orientation détermine si le téléphone repose à plat sur le dos, s'il repose droit sur un bord (en mode portrait ou paysage), ou à une orientation entre les deux.

Une façon de voir les choses est que l'orientation d'un dispositif peut être spécifiée par les valeurs de tous les DOF possibles à un moment tX. Par comparaison, le mouvement d'un dispositif est déterminé par les différences entre les valeurs de tous les DOF possibles entre les temps t0 et t1.

Les capteurs comme les accéléromètres, les gyroscopes et les magnétomètres sont disponibles avec un, deux ou trois axes. Un accéléromètre à 1 axe, par exemple, ne détectera les changements que sur l'un des trois axes sur lequel il est aligné ; un capteur à 2 axes détectera les changements sur deux des trois axes ; et un capteur à 3 axes détectera les changements sur les trois axes.

Si une plateforme de capteurs est décrite comme suivant plus de six axes, cela indique qu'elle offre un degré de précision plus élevé en suivant plusieurs points de données le long (ou autour) des axes X, Y et Z. Un exemple est une suite d'accéléromètres à 12 axes utilisant les mesures d'accélération linéaire de quatre accéléromètres à 3 axes.

Malheureusement, il est courant de confondre degré de liberté et nombre d'axes. Par exemple, la combinaison d'un accéléromètre à 3 axes, d'un gyroscope à 3 axes et d'un magnétomètre à 3 axes peut être présentée par certains vendeurs comme un capteur 9 DOF, même si elle devrait plutôt être décrite comme un capteur à 9 axes 6 DOF.

Fusion de capteurs

En plus de mesurer l'accélération, un accéléromètre mesure également la gravité. Par exemple, dans le cas d'un smartphone, un accéléromètre à 3 axes peut déterminer la direction vers le bas, même si l'utilisateur est immobile et que le dispositif est immobile.

Un accéléromètre à 3 axes peut également être utilisé pour déterminer l'orientation verticale et horizontale du dispositif, qui peut utiliser ces informations pour présenter son affichage en mode portrait ou paysage. Cependant, l'accéléromètre ne peut pas à lui seul déterminer l'orientation du smartphone par rapport au champ magnétique terrestre. Cette capacité est nécessaire pour des tâches comme les applications de planétarium qui permettent à l'utilisateur d'identifier et de localiser des étoiles, des planètes et des constellations dans le ciel nocturne en pointant simplement le dispositif vers la zone d'intérêt. Dans ce cas, un magnétomètre est requis. Si le smartphone restait toujours posé à plat sur une table, un magnétomètre à un axe suffirait. Cependant, comme un smartphone peut être utilisé dans n'importe quelle orientation, il est nécessaire d'utiliser un magnétomètre à 3 axes.

Les accéléromètres ne sont pas affectés par le champ magnétique environnant, mais ils sont affectés par le mouvement et les vibrations. En comparaison, les magnétomètres ne sont pas affectés par le mouvement et les vibrations en soi, mais ils peuvent être influencés par les matériaux magnétiques et les champs électromagnétiques à proximité.

Bien qu'un accéléromètre à 3 axes puisse également être utilisé pour obtenir des données rotationnelles, un gyroscope à 3 axes fournit des données plus précises sur le moment cinétique. Les gyroscopes fonctionnent bien lorsqu'il s'agit de mesurer la vitesse de rotation, et ils ne sont pas affectés par l'accélération dans une direction linéaire ni par les champs magnétiques. Cependant, les gyroscopes ont tendance à générer une petite vitesse de rotation « résiduelle », même lorsqu'ils deviennent stationnaires. C'est ce qu'on appelle le « décalage de dérive du zéro ». Le problème se pose si l'utilisateur tente de déterminer un angle absolu à l'aide du gyroscope, auquel cas il est nécessaire d'intégrer la vitesse de rotation pour obtenir la position angulaire. Le problème de l'intégration dans ce scénario est que les erreurs peuvent s'accumuler. Une petite erreur de seulement 0,01 degré dans la première mesure peut passer à un degré complet après 100 mesures, par exemple. C'est ce qu'on appelle la « dérive gyroscopique ».

Le terme « fusion de capteurs » fait référence à la combinaison de données sensorielles dérivées de sources disparates, de sorte que les informations résultantes présentent une incertitude moindre que ce qui serait possible si les données de ces sources étaient utilisées individuellement.

Dans le cas d'un réseau de capteurs comprenant un accéléromètre à 3 axes, un gyroscope à 3 axes et un magnétomètre à 3 axes, par exemple, les données de l'accéléromètre et du magnétomètre peuvent être utilisées pour annuler la dérive gyroscopique. En attendant, les données du gyroscope peuvent être utilisées pour compenser tout bruit induit par des vibrations de l'accéléromètre et tout bruit induit par le matériau/champ magnétique du magnétomètre.

Le résultat de l'utilisation de la fusion de capteurs est que la précision de la sortie dépasse la précision des capteurs individuels.

Présentation de quelques capteurs représentatifs

Selon l'application, le concepteur peut décider de n'utiliser qu'un seul type de capteur de mouvement/orientation, sous la forme d'un accéléromètre, d'un gyroscope ou d'un magnétomètre.

Un bon accéléromètre d'entrée de gamme est la carte BOB 2019 d'Adafruit, qui comporte un accéléromètre à 3 axes avec un convertisseur analogique-numérique (CAN) 14 bits (Figure 2).

Image de la carte BOB 2019 d'AdafruitFigure 2 : La carte BOB 2019 d'Adafruit comporte un accéléromètre à 3 axes qui peut être utilisé pour détecter le mouvement, l'inclinaison et l'orientation de base. (Source de l'image : Adafruit)

Le capteur à 3 axes haute précision présente une large plage de ±2 g à ±8 g et peut être utilisé pour détecter le mouvement, l'inclinaison et l'orientation de base. Le capteur requiert une alimentation de 3,3 volts (V), mais la carte BOB inclut un régulateur à faible chute de tension de 3,3 V et un circuit de décalage de niveau, garantissant la sécurité pour une utilisation avec une logique et une alimentation de 3 V ou 5 V. La communication entre la carte BOB et l'Arduino (ou un autre microcontrôleur) se fait via I2C.

Pour les applications n'exigeant qu'un capteur gyroscopique pour détecter les mouvements de rotation et de torsion, la carte BOB 1032 d'Adafruit avec le gyroscope à 3 axes L3GD20H de STMicroelectronics constitue une bonne entrée de gamme. Prenant en charge les interfaces I2C et SPI vers l'Arduino (ou un autre microcontrôleur), le L3GD20H peut être défini sur une échelle de ±250, ±500 ou ±2000 degrés par seconde pour une large plage de sensibilité. Là encore, le capteur requiert une alimentation de 3,3 V, mais la carte BOB inclut un régulateur de 3,3 V et un circuit de décalage de niveau permettant son utilisation avec une logique et une alimentation de 3 V ou 5 V.

De même, pour les applications n'exigeant qu'un capteur magnétique, une bonne option d'évaluation est la carte BOB 4479 d'Adafruit, qui comporte le magnétomètre à 3 axes LIS3MDL de STMicroelectronics. Le LIS3MDL peut détecter des plages de ±4 gauss (±400 microtesla (µT)) à ±16 gauss (±1600 µT ou 1,6 millitesla (mT)). La communication entre la carte BOB et l'Arduino (ou un autre microcontrôleur) se fait via I2C. Là encore, la carte BOB inclut un régulateur de 3,3 V et un circuit de décalage de niveau, permettant son utilisation avec une logique et une alimentation de 3 V ou 5 V.

Il est très fréquent que plusieurs capteurs soient utilisés conjointement. Par exemple, un accéléromètre peut être utilisé en conjonction avec un gyroscope pour effectuer des tâches telles que la capture de mouvement 3D et la mesure inertielle, c'est-à-dire pour permettre à l'utilisateur de déterminer comment un objet se déplace dans un espace 3D. Un exemple d'une telle combinaison est la carte BOB 4480 d'Adafruit (Figure 3), qui contient la puce de capteur LSM6DS33 de STMicroelectronics.

Image de la carte BOB 4480 d'AdafruitFigure 3 : La carte BOB 4480 d'Adafruit inclut l'accéléromètre à 3 axes LSM6DS33TR et un gyroscope à 3 axes pouvant être utilisés pour effectuer des tâches telles que la capture de mouvement 3D et la mesure inertielle. (Source de l'image : Adafruit)

L'accéléromètre à 3 axes peut fournir des données sur la direction vers la terre en mesurant la gravité, et sur la vitesse d'accélération de la carte dans l'espace 3D. Pendant ce temps, le gyroscope à 3 axes peut mesurer la rotation et la torsion. Comme les autres cartes BOB de capteurs présentées précédemment, la carte BOB 4480 inclut un régulateur de 3,3 V et un circuit de décalage de niveau, permettant son utilisation avec une logique et une alimentation de 3 V ou 5 V. De plus, les données de capteurs sont accessibles via les interfaces I2C ou SPI, ce qui permet de les utiliser avec un Arduino (ou un autre microcontrôleur) sans configuration matérielle compliquée.

Un autre exemple de carte BOB à double capteur est le 1120 d'Adafruit, qui combine un accéléromètre à 3 axes et un magnétomètre à 3 axes sous la forme d'une puce de capteur LSM303 de STMicroelectronics. Les communications entre le microcontrôleur et le 1120 se font via une interface I2C, et la carte BOB inclut un régulateur de 3,3 V et un circuit de décalage de niveau, permettant son utilisation en toute sécurité avec une logique et une alimentation de 3 V ou 5 V.

Certaines applications requièrent l'utilisation d'accéléromètres, de gyroscopes et de magnétomètres. Dans ce cas, une carte BOB utile est le 3463 d'Adafruit, qui comporte deux puces de capteur : un gyroscope à 3 axes, et un accéléromètre à 3 axes avec un magnétomètre à 3 axes. Les communications entre la carte BOB et le microcontrôleur sont mises en œuvre via une interface SPI. De plus, un régulateur de 3,3 V et un circuit de décalage de niveau sont inclus, permettent l'utilisation en toute sécurité avec une logique et une alimentation de 3 V ou 5 V.

L'un des avantages de la carte BOB 3463 est que le concepteur dispose d'un accès brut aux données des trois capteurs. Un inconvénient correspondant est que l'utilisation de ce capteur (manipulation et traitement de ses données) requiert environ 15 kilo-octets (Ko) de la mémoire Flash du microcontrôleur et utilise de nombreux cycles d'horloge.

Comme alternative, la carte BOB 2472 d'Adafruit est équipée d'une puce de capteur BNO055 de Bosch. Le BNO055 inclut un accéléromètre à 3 axes, un gyroscope à 3 axes et un magnétomètre à 3 axes, et ce dans un seul boîtier (Figure 4).

Image du capteur BNO055 sur la carte BOB 2472 d'AdafruitFigure 4 : En plus d'un accéléromètre à 3 axes, d'un gyroscope à 3 axes et d'un magnétomètre à 3 axes, le capteur BNO055 de la carte BOB 2472 d'Adafruit inclut également un processeur Arm Cortex-M0 qui effectue la fusion des capteurs. (Source de l'image : Adafruit)

De plus, le BNO055 inclut également un processeur Arm Cortex-M0 32 bits, qui prend les données brutes des trois capteurs, effectue une fusion de capteurs sophistiquée et fournit aux concepteurs les informations traitées sous des formes qu'ils peuvent utiliser : quaternions, angles d'Euler et vecteurs. Plus précisément, via l'interface I2C de la carte BOB 2472, les concepteurs peuvent accéder rapidement et facilement aux éléments suivants :

  • Orientation absolue (vecteur d'Euler, 100 Hertz (Hz)) : données d'orientation sur trois axes basées sur une sphère de 360°.
  • Orientation absolue (quaternion, 100 Hz) : sortie quaternion à quatre points pour une manipulation plus précise des données.
  • Vecteur de vitesse angulaire (100 Hz) : trois axes de vitesse de rotation en rad/s.
  • Vecteur d'accélération (100 Hz) : trois axes d'accélération (gravité + mouvement linéaire) en mètre par seconde au carré (m/s2).
  • Vecteur d'intensité du champ magnétique (20 Hz) : trois axes de détection du champ magnétique (en µT).
  • Vecteur d'accélération linéaire (100 Hz) : trois axes de données d'accélération linéaire (accélération moins gravité) en m/s2.
  • Vecteur de gravité (100 Hz) : trois axes d'accélération gravitationnelle (moins tout mouvement) en m/s2.
  • Température (1 Hz) : température ambiante en degrés Celsius.

La fusion des capteurs sur la puce libère la mémoire et les cycles de calcul du microcontrôleur principal, ce qui est idéal pour les concepteurs qui créent des systèmes en temps réel économiques. De plus, les algorithmes de fusion de capteurs peuvent être complexes et fastidieux à maîtriser. La fusion des capteurs sur la puce permet aux développeurs de systèmes d'être opérationnels en quelques minutes, au lieu de plusieurs jours ou semaines s'ils implémentent des algorithmes à partir de zéro.

Conclusion

De nombreux concepteurs sont intéressés par l'intégration de capteurs de mouvement et d'orientation dans leurs conceptions, mais ils ne savent pas par où commencer. Pour les concepteurs qui n'ont pas l'habitude de travailler avec ces dispositifs, se familiariser avec les capteurs de différents fabricants peut être un défi. Une façon de commencer à expérimenter et prototyper consiste à utiliser des cartes de développement de microcontrôleurs open-source économiques comme l'Arduino, ainsi que des cartes BOB de capteurs open-source économiques dotées de capteurs de plusieurs fournisseurs.

Articles associés :

  1. Utiliser des cartes Breakout d'Arduino pour évaluer rapidement des capteurs et des périphériques
  2. IoT, IIoT, AIoT et en quoi ils représentent l'avenir de l'automatisation industrielle
  3. Implémenter facilement l'intelligence artificielle dans n'importe quel système industriel
DigiKey logo

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é.

À propos de l'auteur

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield a obtenu sa licence en ingénierie de contrôle en 1980 à l'université de Sheffield Hallam, en Angleterre, et a commencé sa carrière en tant que concepteur de processeurs (CPU) pour ordinateurs centraux. Au fil des ans, Max a tout conçu, de puces en silicium aux cartes à circuit imprimé, en passant par les amplificateurs d'ondes cérébrales et les moteurs de prédiction steampunk (ne posez pas de questions !). Il a également été à la pointe de l'automatisation de la conception électronique (EDA) pendant plus de 30 ans.

Max est l'auteur et/ou le co-auteur d'un certain nombre d'ouvrages, dont Designus Maximus Unleashed (interdit en Alabama), Bebop to the Boolean Boogie (un guide non conventionnel de l'électronique), EDA: Where Electronics Begins, FPGAs: Instant Access, et How Computers Do Math. Consultez son blog « Max's Cool Beans ».

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey