Lorsque nous sortons un nouveau produit, il faut toujours un certain temps pour que les utilisateurs qui en auraient besoin le découvrent, via Internet. C'est ainsi qu'un mois après la sortie du Yocto-Spectral et du Yocto-Spectral-C, nous commençons à recevoir les premiers retours, très positifs. Mais à notre surprise, le premier cadre d'utilisation du produit n'est pas celui que nous avions anticipé...
Lorsque nous avons conçu le Yocto-Spectral, nous avons pensé en priorité à la problématique d'une reconnaissance de couleur, tant en réflexion (sur une surface passive) qu'en émission (sur une dalle lumineuse). C'est pourquoi nous avons inclus dans le produit des modèles prédictifs, et des réglages automatiques adaptés à cette application.
Or, nos premiers utilisateurs s'intéressent davantage à la mesure de l'intensité des différentes bandes du spectre lumineux provenant de sources externes, dont l'intensité peut varier bien davantage que sur une dalle lumineuse d'écran, par exemple. Nous allons donc vous donner des pistes pour régler les paramètres de mesure en mode expert.
Par ailleurs, plutôt que d'effectuer une calibration globale par rapport au blanc, comme on le fait pour la reconnaissance de couleur, il est plus utile pour cette application de procéder bande par bande afin de donner à chaque bande une grandeur physique correspondante, comme l'énergie cm2 par exemple. Nous allons donc également vous indiquer les étapes à suivre.
Réglages en mode expert pour une source lumineuse
Lorsque vous cliquez sur le Yocto-Spectral dans l'interface Web de VirtualHub, vous obtenez la liste des valeurs mesurées pour chaque canal spectral. S'il arrive qu'un message de saturation apparaisse en rouge sous la liste des canaux, même occasionnellement, c'est probablement que vous devez configurer votre capteur en mode Expert, car cela signifie qu'au moins l'un des canaux est saturé et ne peut plus indiquer correctement la valeur mesurée.
Le Yocto-Spectral peut annoncer deux types de saturation: la saturation analogique et la saturation digitale. Cela vient de la manière dont le capteur de spectre est conçu:

Si l'amplificateur analogique sort de la plage électrique prévue, le signal sera tronqué: c'est la saturation analogique. La seule manière d'éviter cela est de réduire le gain de l'amplificateur analogique.
Le convertisseur analogique/numérique transcrit le signal analogique en impulsions comptées par unité de temps. Si le nombre d'impulsions est plus grand que la représentation numérique le permet, la mesure sera aussi tronquée: c'est la saturation digitale. On peut l'éviter, soit en réduisant le signal analogique à l'aide du gain, soit en réduisant le temps d'intégration.
Il est assez facile de repérer le canal à l'origine d'une saturation numérique: c'est forcément celui dont le raw count approche 65000. En revanche, la seule manière d'identifier quel canal est à l'origine d'une saturation analogique est d'augmenter l'amplitude de la source lumineuse et de chercher quel canal n'augmente pas.
Pour faire un réglage optimal de votre capteur, choisissez en principe des paramètres qui ne saturent jamais, même dans les conditions d'illumination les plus intenses. Vous assurerez ainsi une proportionnalité des mesures dans toutes les conditions. Finalement, n'oubliez pas que les modifications que vous faites dans la fenêtre d'affichage ne servent qu'à expérimenter. Pour sauvegarder les paramètres dans la mémoire flash du module, il faut les appliquer dans la fenêtre de configuration du module et presser le bouton Save.
Calibration des fonctions SpectralChannel
Chaque SpectralChannel du Yocto-Spectral est considéré comme un capteur à part entière. Vous pouvez donc utiliser la procédure décrite dans ce précédent article pour définir une transformation (la calibration) entre la valeur lue par le capteur et la valeur annoncée par la fonction SpectralChannel. Vous pouvez même utiliser notre petit outil interactif pour générer les commandes nécessaires pour effectuer la calibration à partir des valeurs mesurées. Vous pouvez choisir dans l'outil si les commandes sont destinées à être intégrées à votre logiciel, ou lancées dans une fenêtre de commande (shell).
Pour la valeur mesurée (raw value), veillez à utiliser la mesure brute annoncée dans l'attribut rawValue de la fonction SpectralChannel, et non l'attribut rawCount: ce dernier correspond à la valeur interne du convertisseur analogique/numérique, mais avant l'application du facteur d'échelle pour tenir compte du gain et du temps d'intégration. La calibration, elle, se base sur la valeur remise à l'échelle, ce qui permet de ne pas forcément devoir la refaire en cas de changement de gain ou de temps d'intégration.
Si vous faites la calibration de chaque canal à l'aide d'une source de lumière d'intensité connue, vous pouvez mettre comme valeur de référence (reference value) la valeur d'irradiance théorique attendue. Vous pourrez ainsi apprendre à votre capteur à mesurer l'irradiance dans l'unité de votre choix. Pour connaître la liste des longueurs d'onde couvertes par chacun des canaux, référez-vous au manuel du Yocto-Spectral.
Soyez conscients que la sensibilité du capteur AS7343 utilisé par le Yocto-Spectral peut varier d'un capteur à l'autre. Il est donc important de répéter la calibration individuellement pour chaque module, si vous voulez obtenir des mesures reproductibles, puis de sauvegarder la calibration dans la mémoire flash du module. C'est ce que nous faisons en usine pour que les modules que nous vendons se comportent tous de manière à peu près identique pour la reconnaissance de couleur.
Finalement, ne vous attendez quand même pas à ce que le Yocto-Spectral, vendu environ 60 EUR, vous fournisse les même résultats qu'un véritable spectromètre à 6'000 EUR. Le petit capteur d'AMS qu'il utilise à beau être assez malin, cela reste un petit chip avec des limitations...
