Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

Concevoir un niveau à bulle pour les malvoyants

Cet article décrit la conception complète d'un niveau à bulle pour les malvoyants. Il utilise un accéléromètre ADXL312 pour mesurer la force gravitationnelle dans les plans horizontal et vertical et émet un signal sonore lorsque l'accéléromètre est exactement horizontal ou vertical.

Il peut également être utilisé comme capteur d'inclinaison pour mettre à niveau, par exemple, des remorques dans des applications automobiles où le niveau à bulle peut être situé à un endroit éloigné de la roue jockey. Il est également utilisé comme sous-circuit dans les systèmes de stabilité automobile ou les drones.

Présentation

Amar Latif fait sensation sur la scène culinaire britannique après son apparition dans Celebrity MasterChef . Cependant, Amar est non seulement un bon cuisinier, mais il dirige également sa propre agence de voyages, est un conférencier motivateur, a parcouru la plupart des pays d'Amérique du Sud et est également une personnalité de la télévision. Les super pouvoirs de cet homme sont-ils sans fin ?

Malheureusement, il y a. Amar est aveugle à 95%. À mesure que la technologie évolue et que le monde lutte pour la suivre, la bataille est encore plus difficile pour les malvoyants. La plupart des avancées technologiques nous obligent à passer plus de temps devant un écran. Pour les malvoyants, le temps d'écran excessif reste un « si seulement ».

Si la technologie peut être utilisée pour enrichir la vie des personnes ayant une déficience visuelle, cela ne peut être qu'une bonne chose. Avec seulement 18% de la population aveugle enregistrée étant complètement aveugle (ou « aveugle noir »), cela laisse la grande majorité avec au moins une certaine vue même s'ils ne peuvent pas distinguer les détails. Ainsi est née l'idée d'un niveau à bulle pour les aveugles.

Schéma de conception

La conception du capteur d'inclinaison était basée sur l'ADXL312, qui est un accéléromètre à faible courant pouvant mesurer jusqu'à ±1,5 g dans les axes x, y et z avec les données lues via un bus SPI. La pièce est disponible dans un boîtier de 5 mm × 5 mm et consomme 0,1 A en mode veille. Il mesure à une résolution de 10 bits, de sorte que l'ADXL312 peut détecter des changements aussi bas que ±2,9 mg dans chaque axe. L'ADXL312 stocke les données gravitationnelles pour chaque axe en tant que valeur de complément à deux jusqu'à ± 511, que le microcontrôleur lit et affiche sur un écran LCD à 16 caractères à une seule ligne. La figure 1 montre les axes de détection de l'ADXL312.

cliquez pour l'image en taille réelle

Figure 1. Axes de détection de l'ADXL312. (Source :Appareils analogiques)

La pièce a une lecture pleine échelle à 1,5 g , donc une force gravitationnelle de 1 g donne une lecture 2 / 3 de cela. Par conséquent, si l'ADXL312 est exactement de niveau, le registre de l'axe z doit lire 2 / 3 pleine échelle, tandis que les axes x et y doivent indiquer zéro. De même, lorsque l'ADXL312 est parfaitement vertical, la lecture de l'axe x doit être 2 / 3 pleine échelle, tandis que les axes y et z doivent indiquer zéro. Si l'ADXL312 commence à s'éloigner de n'importe quel axe, la lecture maximale commence à diminuer tandis que la lecture sur les autres axes commence à augmenter, selon le sinus de l'angle d'inclinaison.

À l'intérieur de l'ADXL312

L'ADXL312 est un système microélectromécanique (MEMS) constitué d'une structure micro-usinée en polysilicium en surface construite sur une plaquette de silicium. Des ressorts en polysilicium suspendent la structure sur la surface de la plaquette et offrent une résistance contre les forces d'accélération.

Des doigts fixes en silicium s'entrelacent avec des doigts sur une masse étalon en mouvement pour créer des condensateurs différentiels dont les caractéristiques peuvent être mesurées. L'accélération dévie le faisceau et déséquilibre les condensateurs différentiels, résultant en une sortie de capteur dont l'amplitude est proportionnelle à l'accélération. La structure est illustrée à la figure 2.

cliquez pour l'image en taille réelle

Figure 2. Le fonctionnement interne de l'ADXL312. (Source :Appareils analogiques)

L'ADXL312 peut être adressé en utilisant soit I 2 C ou SPI, et les données x, y et z sont stockées dans six registres internes de 8 bits. Il possède également de nombreuses autres fonctionnalités, notamment une FIFO à 32 niveaux, deux interruptions multifonctions, des registres de décalage, un auto-test mécanique et des modes de veille automatique.

La conception du niveau à bulle

Le schéma de circuit complet du capteur d'inclinaison est illustré à la figure 3.

L'ADXL312 a une tension d'alimentation maximale de 3,6 V, tandis que l'écran LCD et le buzzer nécessitent 5 V, donc l'entrée principale du circuit est de 5 V, et ceci est régulé à l'aide d'un régulateur linéaire de 3,3 V, 150 mA (ADP121) pour alimenter l'ADXL312, le microcontrôleur et la mémoire E2.

Le port B, la broche 2 (la broche CAL) du microcontrôleur est tiré vers le haut par une résistance de 10 kΩ. Il dispose également d'un cavalier lui permettant d'être relié à la terre. Au démarrage, le microcontrôleur interroge l'état de la broche CAL, et si cette broche est tirée vers le bas par le cavalier, il lit les registres x, y et z, soustrait ces lectures de zéro, puis charge le résultat dans les registres de décalage à l'intérieur l'ADXL312 et les stocke dans la mémoire externe E2, la 25AA040. L'ADXL312 ajoute automatiquement les lectures des registres de décalage à toute mesure future sans interaction avec le processeur, supprimant ainsi les décalages calibrés.

Si le cavalier est retiré, la broche CAL est tirée vers le haut et la routine d'étalonnage est contournée. Les lectures de décalage sont lues directement à partir de la mémoire E2 et chargées dans les registres de décalage de l'ADXL312. Ainsi, pendant la fabrication, le niveau à bulle peut être monté dans un gabarit d'étalonnage avec la broche CAL maintenue basse, l'appareil peut être étalonné et les valeurs de décalage stockées dans la mémoire E2. Après l'étalonnage, le cavalier est retiré et lors des mises sous tension suivantes, la mémoire E2 est interrogée et les lectures d'offset étalonnées sont chargées dans les registres d'offset de l'ADXL312.

Le logiciel effectue ensuite huit lectures de chaque axe, et les résultats sont moyennés puis affichés sur l'écran LCD à 16 caractères. L'affichage est mis à jour toutes les 100 ms.

cliquez pour l'image en taille réelle

Figure 3. Le schéma complet du niveau à bulle pour les malvoyants. (Source :Appareils analogiques)

La figure 4 montre que la sensibilité maximale est atteinte lorsque chaque capteur est proche de sa lecture zéro. C'est là que la pente de l'onde sinusoïdale est la plus raide, donnant ainsi le changement maximal de lecture de la gravité pour tout changement d'inclinaison.


Figure 4. Montrant le changement sinusoïdal de la force g avec l'angle. (Source :Appareils analogiques)

Heureusement, le niveau à bulle n'a besoin de mesurer l'inclinaison que lorsque chaque capteur est parfaitement horizontal et que la lecture du capteur est proche de zéro.

Le logiciel a été écrit pour permettre l'étalonnage simultané des axes x et z. Il est facile de placer la pièce sur une plate-forme horizontale et de calibrer l'axe x du capteur d'inclinaison. Cependant, à ce stade, l'axe z subira une force de 1 g , donc une lecture z doit être prise, comparée au décompte à pleine échelle à 1 g , et toute erreur chargée dans le registre de décalage. Un étalonnage plus précis de chaque axe du capteur d'inclinaison peut être obtenu en calibrant à la fois dans les plans horizontal et vertical, mais cela nécessite un étalonnage en 2 étapes et une modification du logiciel.

Le tableau 1 montre un exemple de données de complément à deux. Les nombres positifs suivent la notation binaire conventionnelle. Les nombres négatifs utilisent le bit le plus significatif (MSB) comme bit de signe ; ainsi, les nombres positifs ont un MSB égal à zéro et les nombres négatifs ont un MSB égal à 1.

Tableau 1. Exemple de données complémentaires à deux

Décimal Binaire +51101 1111 1111+100 0000 0001000 0000 0000-111 1111 1111-51110 0000 0001

Le complément à deux d'un nombre positif peut être trouvé en inversant tous les bits, puis en ajoutant 1. Ainsi, le code passe de 00 0000 0000 à 11 1111 1111 lors du passage d'un compte de zéro à un compte de –1.

Le logiciel lit les registres x et z et, si la valeur de l'un des registres est 0 ou 1023 (11 1111 1111), il met le port B, bit 5 à l'état haut, ce qui active le transistor Q1 et fait retentir le buzzer 5 V. Lorsque le capteur d'inclinaison est parfaitement horizontal, l'axe x a une lecture de 0 ou 1023 et lorsqu'il est parfaitement vertical, l'axe z a une lecture de 0 ou 1023. Ce n'est que lorsque les deux registres ne sont pas égaux à 0 ou 1023 que le buzzer arrête de retentir.

Précision et développements ultérieurs

Considérant un seul axe, une lecture maximale de 1 g est atteint lorsque la gravité agit le long de cet axe, et cette lecture se réduit à 0 g lorsque la pièce est inclinée à 90°, comme illustré à la figure 5.


Figure 5. Calcul de l'angle d'inclinaison à l'aide de la lecture gravitationnelle. (Source :Appareils analogiques)

Ainsi, la force gravitationnelle exercée est dictée par l'équation

où Ø est l'angle d'inclinaison mesuré par rapport à l'horizontale. Si la pièce peut mesurer à une résolution de 2,9 mg , alors il peut résoudre à un angle de 0,17°. Il est difficile de déterminer un chiffre pour la précision d'un niveau à bulle standard, car la position exacte de la bulle est difficile à établir. Cependant, d'après les expériences, l'extrémité d'un niveau à bulle de 1,2 m peut se déplacer d'environ 3,2 mm (la largeur de deux PCB non remplis !) avant que la bulle ne semble décentrée. Cela équivaut à un angle d'environ 0,15°, indiquant que nous pouvons remplacer un niveau à bulle par un capteur d'inclinaison électronique avec peu de perte de résolution.

Si une plus grande précision est requise, l'ADXL313 offre une résolution de 11 bits sur une échelle de 1 g. L'interface et les jeux de registres sont très similaires à ceux de l'ADXL312, donc le logiciel ne nécessite pas beaucoup de modifications. L'ADXL355 offre un bruit considérablement plus faible et une résolution plus élevée.

L'ADXL312 a une densité de bruit de 340 μg /√Hz, et plus la bande passante est faible, meilleur est le bruit. La bande passante de la pièce est programmable (de 3,125 Hz à 1600 Hz avec un réglage par défaut à 50 Hz). Bien que la réduction de la bande passante améliore le bruit, cela réduira également le taux de mise à jour de l'affichage. Pour cette conception, la bande passante a été fixée à 6,25 Hz, ce qui implique un bruit efficace de 850 μg . Le bruit peut également être réduit en prenant beaucoup plus de lectures et en les faisant la moyenne.

Une autre amélioration serait d'avoir un écran LCD indiquant les degrés. Cependant, cela nécessite l'utilisation de fonctions mathématiques dans la bibliothèque C si des sinus et des cosinus doivent être inclus dans le logiciel. Ces fonctions occupent trop d'espace de code pour un microcontrôleur bas de gamme. Une approximation proche d'une fonction sinus peut être obtenue en utilisant le développement en série de Taylor, et cela devrait occuper considérablement moins d'espace de code.

Conclusion

L'ADXL312 fournit un système de mesure d'inclinaison électronique à faible coût qui est facile à interfacer avec un microcontrôleur bas de gamme. La conception décrite précédemment a prouvé qu'elle peut rivaliser avec la précision des niveaux à bulle conventionnels, mais avec une interface électronique. Cela lui permet d'être utilisé comme sous-système dans des conceptions plus grandes qui doivent mesurer l'inclinaison, telles que les systèmes de mise à niveau des remorques, les systèmes de contrôle de stabilité et les drones.

Plus important encore, il peut être utilisé pour augmenter l'indépendance des malvoyants, et ce texte montre une conception complète au niveau du système, y compris le matériel, les logiciels et la mémoire non volatile, ainsi qu'une sortie audio et visuelle.


Simon Ronce est diplômé de l'Université Brunel à Londres en 1991 avec un diplôme en génie électrique et électronique, spécialisé dans l'électronique analogique et la puissance. Il a passé sa carrière dans l'électronique analogique et a travaillé chez Linear Technology (qui fait maintenant partie d'Analog Devices). Il peut être contacté à [email protected] .

Contenus associés :

Pour plus d'informations sur Embedded, abonnez-vous à la newsletter hebdomadaire d'Embedded.


Embarqué

  1. Concevoir un cœur plus flexible pour le réseau de campus multi-gigabit
  2. Innodisk :solutions AIoT pour le domaine médical
  3. Présentation des arguments en faveur des puces neuromorphiques pour l'IA informatique
  4. Conception de commandes de moteurs pour systèmes robotiques
  5. SIGHT :For the Blind
  6. Quelles sont les erreurs courantes à éviter lors de la conception pour la fabrication ?
  7. Le meilleur niveau d'optimisation et d'organisation dans l'usine intelligente
  8. Le défi de la méthode 5S pour l'industrie 4.0
  9. Merci pour les souvenirs!