22.3. Calibration des senseurs
Votre module Yocto-RangeFinder est équipé d'un capteur numérique calibré en usine. Les valeurs
qu'il renvoie sont censées être raisonnablement justes dans la majorité des cas. Il existe cependant
des situations où des conditions extérieures peuvent avoir une influence sur les mesures.
L'API Yoctopuce offre le moyen de re-calibrer les valeurs mesurées par votre Yocto-RangeFinder. Il
ne n'agit pas de modifier les réglages hardware du module, mais plutôt d'effectuer une
transformation a posteriori des mesures effectuées par le capteur. Cette transformation est pilotée
par des paramètres qui seront stockés dans la mémoire flash du module, la rendant ainsi spécifique
à chaque module. Cette re-calibration est donc entièrement software et reste parfaitement réversible.
Avant de décider de vous lancer dans la re-calibration de votre module Yocto-RangeFinder, assurez
vous d'avoir bien compris les phénomènes qui influent sur les mesures de votre module, et que la
différence en les valeurs vraies et les valeurs lues ne résultent pas d'une mauvaise utilisation ou d'un
positionnement inadéquat.
Les modules Yoctopuce supportent deux types de calibration. D'une part une interpolation linéaire
basée sur 1 à 5 points de référence, qui peut être effectuée directement à l'intérieur du Yocto-
RangeFinder. D'autre part l'API supporte une calibration arbitraire externe, implémentée à l'aide de
callbacks.
Interpolation linéaire 1 à 5 points
Ces transformations sont effectuées directement dans le Yocto-RangeFinder ce qui signifie que vous
n'avez qu'à enregistrer les points de calibration dans la mémoire flash du module, et tous les calculs
de
correction
seront
get_currentValue()
get_currentRawValue()
Les points de calibration sont simplement des couples (Valeur_lue, Valeur_corrigée). Voyons
l'influence du nombre de points de corrections sur les corrections.
Correction 1 point
La correction par 1 point ne fait qu'ajouter un décalage aux mesures. Par exemple, si vous
fournissez le point de calibration (a,b), toutes les valeurs mesurées seront corrigées en leur ajoutant
b-a, de sorte à ce que quand la valeur lue sur le capteur est a, la fonction rangeFinder retournera b.
La mise en pratique est des plus simples: il suffit d'appeler la méthode calibrateFromPoints() de la
fonction que l'on désire corriger. Le code suivant applique la correction illustrée sur le graphique ci-
dessus à la première fonction rangeFinder trouvée. Notez l'appel à la méthode saveToFlash du
www.yoctopuce.com
effectués
de
manière
renverra
la
continuera de renvoyer la valeur avant correction.
Correction de mesures avec 1 point de calibration, ici (5,10)
totalement
valeur
corrigée,
22. Programmation avancée
transparente:
La
fonction
alors
que
la
fonction
175