Comment débuter en LabVIEW avec des modules Yoctopuce

Comment débuter en LabVIEW avec des modules Yoctopuce

Cette semaine, on vous présente un petit tutoriel qui vous explique les bases de l'utilisation de modules Yoctopuce dans LabVIEW. On va se limiter à une application toute simple: à savoir allumer et éteindre une lumière en fonction de la luminosité ambiante.




Principe

On va utiliser un Yocto-Light-V3, et une lampe contrôlée par un Yocto-PowerRelay-V3 lequel sera piloté par WiFi grâce à un YoctoHub-Wireless-SR. Rappelez-vous, on a construit il y a quelque temps des petites boîtes qui font exactement ça. Le capteur de lumière sera directement connecté par USB à l'ordinateur qui fait tourner l'application.

Schéma de principe
Schéma de principe


Pour que le code soit plus facile à comprendre on a donné les noms logiques AmbientLight au capteur de lumière et LampControl au relais. Vous pouvez utiliser l'application VirtualHub pour assigner un nom logique à n'importe quelle fonction Yoctopuce.

Préparation

Vous aurez besoin de la librairie Yoctopuce pour LabVIEW, vous pouvez la télécharger depuis notre page de librairies. C'est un gros fichier ZIP que vous pourrez décompresser où bon vous semble. L'archive contient un répertoire par version de LabVIEW. Dans chacun de ces répertoires se trouve un VI nommé install.vi. Ouvrez-le avec LabVIEW pour procéder à l'installation de la librairie. Si vous souhaitez savoir ce que fait exactement cet installeur vous trouverez des détails dans cet article. Une fois l'installation terminée, vous trouverez la librairie Yoctopuce dans le menu "function/addons/Yoctopuce".

La librairie Yoctopuce pour LabVIEW
La librairie Yoctopuce pour LabVIEW




Le programme

Interface utilisateur

L'essentiel de l'interface est un slider qui permet de définir le seuil en dessous duquel la lampe doit s'allumer. On a ajouté quelques indicateurs pour signaler:

  • Si le capteur de lumière est présent (online)
  • Si le relais est présent (online)
  • La valeur du capteur
  • L'état du relais, c'est-à-dire si la lampe est allumée ou non

L'interface utilisateur
L'interface utilisateur



Initialisation

La première chose à faire consiste à initialiser l'API Yoctopuce en lui signalant que l'on souhaite utiliser une connexion USB locale et une connexion réseau. Pour cela on utilise le VI YRegisterHub deux fois: une fois avec le paramètre "usb" et une seconde fois avec l'adresse IP de notre YoctoHub-Wireless-SR, à savoir 192.168.1.95.

Initialisation du code
Initialisation du code


Notez que si l'appel à YRegisterHub échoue, la sortie success est mise à false et la raison du problème est contenue dans la sortie error msg. Le message d'erreur le plus courant est "Another process is already using yAPI", en effet il ne peut y avoir qu'une seule application à la fois qui utilise les modules Yoctopuce directement par USB. Vous trouverez plus d'information sur les tenants et aboutissants de cette limitation technique dans cet article.

Lecture du capteur

La lecture du capteur de lumière se fait tout simplement à l'aide du VI YLightSensor, auquel on donne en paramètre le nom logique du capteur à lire, c'est-à-dire "AmbientLight". On obtient en sortie l'état du capteur et sa valeur.

Interrogation du capteur de lumière
Interrogation du capteur de lumière



Calcul de l'état du relais

Plutôt que de changer l'état de lampe dès que la valeur du capteur de lumière passe le seuil, on utilise un Schmitt-Trigger et on évite ainsi que la commande de la lampe se mettre à osciller quand la lumière ambiante oscille autour du seuil. On a choisi une marge de +/- 5% pour le Schmitt-Trigger.

Calcul du l'état du relais avec un Schmitt-Trigger
Calcul du l'état du relais avec un Schmitt-Trigger



Pilotage du relais

Pour piloter le relais, on utilise le VI "YRelay" auquel on donne en paramètre le nom logique du relais et l'état du relais qu'on vient de calculer.

Contrôle du relais
Contrôle du relais


On récupère la sortie du relais et on l'utilise pour afficher l'état de la lampe dans l'interface. Il ne reste qu'à placer le code de contrôle dans une boucle et à ajouter un petit détail:

Libération de l'API

Lorsque l'application se termine il est indispensable de libérer l'API Yoctopuce à l'aide du VI YFreeAPI. Si vous oubliez de le faire vous risquez de vous retrouver avec l'API Yoctopuce bloquée tant que vous n'aurez pas quitté LabVIEW.

Le code complet
Le code complet



Petite remarque

Vous aurez peut-être remarqué que la boucle de contrôle n'est pas temporisée. Cela ne n'est pas recommandé du point de vue de LabVIEW parce que cela accapare plus de ressources CPU que nécessaire, mais cela ne pose pas de problème à l'API Yoctopuce parce qu'elle optimisée pour ne communiquer avec les modules Yoctopuce que quand c'est nécessaire.

Conclusion

Ce petit programme n'utilise que quelques VIs, mais les autres VIs de la librairie Yoctopuce pour LabVIEW fonctionnent de manière similaire. Si vous avez compris comment fonctionne ce programme, vous n'aurez pas de difficulté à écrire les vôtres.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.