Il est souvent utile de mesurer le poids dans le cadre d’applications d’automatisation : pas seulement pour obtenir un poids précis, mais aussi pour détecter la présence d’objets ou d’animaux, ou même pour compter des pièces. Cela faisait donc un certain temps que nous nous y intéressions, mais il nous manquait une pièce clé pour y arriver jusqu’à récemment. Jusqu’à l’arrivée du Yocto-milliVolt-Rx...
Principe et schéma
Le poids se mesure à l’aide d’un capteur de force appelé cellule de charge. Une cellule de charge est un transducteur qui converti l’amplitude d’une force mécanique, appliquée sur un point donné, en une tension de quelques millivolts, proportionnelle à la force.
Une cellule de charge capable de mesure jusqu'à 45 Kg
Une cellule de charge fonctionne comme un Pont de Wheatstone: la tension de sortie est aussi proportionnelle à la tension d’excitation appliquée à la cellule. Dans notre expérience, nous utilisons une cellule de charge 45Kg dont la sortie est spécifiée pour 20mV/V. Cela signifie que lorsqu’elle est alimentée en 3.3V, elle donne un signal de sortie de 66mV pour une charge de 45Kg, ou 0.66mV pour une charge de 450g.
Comme la valeur de sortie de la cellule de charge dépend de la tension d’excitation qui lui est appliquée, il est important d’utiliser une alimentation très stable. Il suffit de quelques millivolts, donc nous pouvons les prendre directement sur la sortie du régulateur linéaire 3.3V présent sur tous les modules Yoctopuce. Voici donc le schéma de notre expérience :
Le câble Ethernet fournit aussi bien la connectivité réseau que l’alimentation électrique. Le YoctoHub-Ethernet fournit l’accès distant au Yocto-milliVolt-Rx, qui est utilisé pour interfacer la cellule de charge, et au Yocto-MiniDisplay, qui sert à afficher la value mesurée.
Construction mécanique
La partie mécanique est un point sensible de la balance : idéalement, la totalité de la force engendrée par le poids de l’objet mesuré devrait être dirigée sur le point sensible de la cellule de charge. Mais comme l’objet est en général bien plus grand que la cellule, il faut un support (plateau) qui permet de faire tenir l’objet de manière stable sur la cellule. Une manière d’obtenir ce résultat est d’utiliser plusieurs cellules (plusieurs points d’appui) et d’additionner la somme des poids mesurés par les cellules, mais cela renchérit le système. Nous avons décidé de construire une balance avec un seul point de mesure, et de stabiliser la charge à l’aide d’une petite tour en plastique coulissante.
Notre balance connectée faite maison
Une autre solution bon marché aurait été de démonter une balance existante, et de connecter des capteurs Yoctopuce directement sur les cellules de charges, en parallèle à l’électronique existante. Comme l’impédance du Yocto-milliVolt-Rx est énorme, il n’aurait même pas perturbé le fonctionnement de l’électronique d’origine.
Logiciel et configuration
Pour afficher et enregistrer les poids mesurés sur l’ordinateur de contrôle, nous sommes partis de l’application d’exemple fournir dans la librairie Yoctopuce Delphi, qui dessine un graphique à partir de n’importe quel capteur. Cette application est prévue pour travailler sur un capteur connecté par USB, mais elle peut très simplement être modifiée pour travailler sur un capteur connecté à un YoctoHub-Ethernet, en remplaçant la ligne
par
Nous ajoutons en plus à la fonction de callback le code qui affiche la dernière valeur mesurée directement sur le Yocto-MiniDisplay fixé sur la balance. Ceci peut être fait simplement avec ces deux lignes :
dispLayer.drawText(32, 8, YALIGN_DECIMAL_CENTER, newValue)
Pour obtenir des mesures bien stables, nous configurons la fréquence des mesures à 60 par minute. Le Yocto-milliVolt-Rx effectue automatiquement un sur-échantillonnage et un moyennage de manière transparente.
Cette solution fonctionne sans autres pour enregistrer et afficher la valeur en millivolt lue à la sortie de la cellule de charge. Pour afficher une valeur en Kg plutôt qu’en mV, il faut encore configurer la correspondance entre les deux unités dans le Yocto-milliVolt-Rx.
D’après la spécification, notre cellule de charge produit à 3.3V un signal de 66mV pour 45.36 Kg. Mais c’est une valeur théorique, qui peut en réalité varier un peu d’une cellule à l’autre. Pour calculer le rapport exact pour une cellule donnée, il suffit de faire une mesure précise avec un poids connu. Dans notre cas, nous avons mesuré 2.5mV pour une charge de 1.6 Kg, donc nous configurons le Yocto-milliVolt-Rx pour faire correspondre la plage de 250mV à 160 Kg.
En plus de cette variation d’amplitude, la cellule de charge est biaisée à l’origine : la valeur de la sortie hors de toute charge peut varier jusqu’à 5mV d’après les spécifications. Dans notre cas, on mesure à vide une tension de 1.3mV. Il faut donc aussi compenser ce biais dans la configuration du capteur, sans quoi les poids lus seront fantaisistes. A cet effet, nous venons d’ajouter dans le firmware du Yocto-milliVolt-Rx un réglage permettant de saisir un biais de signal, qui est soustrait avant d’interpréter le signal afin de recentrer correctement le zéro.
Une fois correctement paramétrée, la balance est assez précise
Une fois le Yocto-milliVolt-Rx configuré, le logiciel et l’écran de la balance affichent automatiquement les valeurs correspondantes en Kg. Et en plus, comme tous les paramètres spécifique à la cellule de charge sont stockés dans le module d’interface plutôt qu’être codés en dur dans le logiciel, il ne sera pas nécessaire de modifier le programme si vous un jour il faut changer de cellule de charge. De même, si une autre application doit accéder à notre balance IP, il obtiendra directement des valeurs correctes.
Voici le résultat en vidéo :
Comme vous pouvez le constater, bien que la conception mécanique de cette balance soit rudimentaire, la précision globale de la balance avoisine la précision théorique de la cellule de charge (1%). N’oubliez toutefois pas que l’utilisation d’une balance non certifiée construite soi-même n’est pas permise dans le cadre d’activités de vente au poids. Donc vous ne pourrez malheureusement pas voir de si tôt une Yocto-Balance pour de vrai au marché du coin, désolé !