Bonjour à tous !
Aujourd’hui nous allons découvrir comment utiliser le logiciel LabVIEW avec un Arduino. Nous allons voir comment récupérer les données de différents capteurs, comment par l’appuie sur un bouton nous pouvons allumer une LED, faire tourner un moteur. Les applications sont infinies !
LabVIEW est un logiciel développé par National Instruments permettant de coder à l’aide de diagramme. Vous pouvez grâce à ce logiciel créer des outils de mesure et de contrôle souvent très utilisés dans des projets de recherches.
Nous allons partir du principe où vous connaissez les bases de la programmation sous LabVIEW.
Comment installer les VIs Arduino ?
- Installer LabVIEW en créant un compte sur leur site : http://france.ni.com/
- Télécharger et installer la dernière version d’évaluation de LabVIEW : http://www.ni.com/trylabview/
- Télécharger et installer la dernière version des drivers NI-VISA : http://www.ni.com/download/ni-visa-15.0.1/5693/en/
- Télécharger et installer le module VIPM (VI Package Manager) permettant d’ajouter de nombreux compléments, dont ceux de l’arduino : http://jki.net/vipm/download
- Rechercher « Labview Interface for Arduino » puis cliquer sur (installer)
- Enfin, rendez-vous à cette adresse (pour ma part, qui devrait être similaire pour vous) « C:\Program Files\National Instruments\LabVIEW 2014\vi.lib\LabVIEW Interface for Arduino\Firmware\LIFA_Base »
Ouvrez le ficher « LIFA_Base.ino » avec la version 1.0.5 de l’IDE Arduino. (le téléversement ne fonctionnera pas avec une autre version) Vous pouvez trouver la version de l’IDE à cette adresse https://www.arduino.cc/en/Main/OldSoftwareReleases
Comment fonctionne LabVIEW ?
Un programme LabVIEW se compose de deux parties. Une partie appelée « Front_Panel » (partie gauche de la photo) est l’interface sur laquelle l’utilisateur va interagir pour commander son arduino. Puis une partie « Block-Diagram » où le programme sera écrit.
Faisons un rappel de la constitution d’un programme arduino. Chaque programme (sketch) est constitué de deux parties :
- Void setup()
- Void loop() qui est une boucle while qui tourne en permanence (while(1))
Lorsque nous allons coder un programme Arduino sous LabVIEW nous mettrons donc en premier lieu une structure de type « while loop »
Nous allons ensuite pouvoir créer le corps de notre programme à l’aide des deux palettes d’outils précédemment installées :
Une chose importante à savoir, quel que soit le nombre de capteur ou de pin que nous souhaitons gérer, seule une seule fonction « init » est nécessaire. Néanmoins il nous faudra autant de fonction « close » que de fonction dans votre programme.
Une fois nos principales composantes du programme placées, il va falloir configurer les ports, la carte, et le Front_Panel. Pour cela, on survole une fonction, on se place au niveau d’un connecteur puis on clique droit et clique sur « create ».
A cet instant nous avons le choix entre :
- Constant : permet de fixer la donnée sans pouvoir la modifier lors de l’exécution du programme
- Control : permet de modifier la donnée pendant l’exécution du programme
- Indicator : permet d’avoir un retour visuel sur le connecteur
Le « Control » est intéressant lorsque l’on définit notre matériel, type de carte, port, baud, pin du capteur, état du capteur…
Choisissons « Control ». On se retrouve maintenant dans cette situation. On peut remarquer l’apparition d’un bouton de contrôle sur le Front_Panel.
Nous allons procéder de la même façon pour les entrées des capteurs.
Voici à présent ce que ça donne. Tous les paramètres ont été créés. Il ne nous reste plus qu’à créer des indicateurs pour lire la valeur des capteurs de température et de luminosité.
Voilà à quoi ressemble notre programme une fois terminé :
Il ne nous reste plus qu’à connecter l’arduino sur l’ordinateur, d’ouvrir l’IDE 1.0.5 et d’uploader le fichier LIFA_Base.ino sur votre carte. Ensuite lancer le programme LabVIEW en cliquant sur la flèche ou en faisant « ctrl+r ».
Pour arrêter le programme, cliquez sur le bouton stop sur le Front_Panel.
A quoi cela peut-il servir ?
Il est possible qu’au cours de vos études, vous soyez menés à jumeler arduino et labview. Cela permet d’avoir un contrôle et un visuel virtuel de vos capteurs et de votre système. De plus, étant donné que le code uploadé sur l’arduino n’est jamais modifié, on peut imaginer utiliser seulement une puce AtMega328 bootloadée et programmée afin de créer un arduino maison. Je vous apprendrai à en créer un dans un nouveau tutoriel !
Thomas A.
merci bien
Très intéressant.Merci.
Est-ce qu’il existe un compilateur gratuit qui permette d’uploader directement du code Labview dans l’arduino?
Bonjour,
Est-il possible de commander un capteur directement sur Labview sans passer par Arudino?
Merci de votre réponse.
Bonjour,
Qu’entendez-vous par « sans passer par Arduino » ? De quelle manière souhaitez vous interfacer votre capteur ?
Bonjour,
En fait je voulais juste savoir s’il était possible de brancher un capteur type accéléromètre directement sur une carte NI ou s’il fallait passer par Arduino et récupérer les données par une liaison Arduino/Labview (en branchant la carte Arduino à celle de NI)
bonjour Mrs merci bien pour les infos il ya une possibilité normalement de faire q une seule clos VI connecter l un a l autre et faire une seule clos a la fin ca marche tres bien aussi ou bien on peux aussi utilisé le port arduino cela fait la faire aussi .
bonjour, je veux réaliser un station de mesure à base arduino et labview et je veux utiliser des capteurs ( BMP180, HC-SR04, DHT11, photorésistance, LM35, …).Mais je ne veux pas utiliser LIFA BAS.Est ce qu’il ya une possibilité de fair ca avec une autre programme.
Bonjour ;
J’ai besoin d’un icône de BMP180 et de capteur d’humidité de sol sur LabVIEW.
Bonjour,
Je cherche à faire l’acquisition de trois signal différent analogique en continue mais il ne lit que la valeur de A1 et pas les autres valeur analogique. Est-ce qu’il y a une possibilité d’acquérir les trois/quatre signal sur les pin analogique?
Bonjour, je dois finaliser un projet sur le quel je dois récupérer les signaux analogiques d’un banc de testes : la tension(pzt), la vitesse (moteur à courant continue) et le poids appliqué sur l’échantillon.
Le banc de teste est piloté par un programme Arduino et la récupération des signaux (courbes) doit se faire sur LabVIEW.
A noter :
Le programme Arduino doit assurer plusieurs taches mais les plus importantes sont :
Mesure de la force appliquée sur le capteur de charge
Mesurer la tension analogique d’un pzt
Mesurer la vitesse du moteur
Et tout cela aura pour but de transmettre toutes ces données à un port série vers LabVIEW.
Dans un premier temps, pour téléverser le programme ; j’ai effectué une lecture du port série à travers le sérial Visa pour la suite vidé le port série sur LabVIEW. Cependant, ça n’a pas marché j’ai des valeurs nulles sur mes courbes.
Je voulais utiliser LIFA (LabVIEW, Interface For Arduino) base mais pour l’instant je ne comprends pas comment ça marche c’est-à-dire que je ne sais pas si je peux récupérer les données directement sur les pins de la carte Arduino qui contiennent les informations dont j’ai besoin avec LIFA.
Je suis donc à la recherche d’aide pour résoudre ce problème. Toute suggestion serait grandement appréciée. Merci d’avance pour votre aide.
dounexaf dit: Bonjour
je pense que tu peux récupérer les données de tes capteurs Sur Labview sans passer par la lecture du buffer de la carte Arduino. Tu peux utiliser ta carte Arduino comme un instrument sur Labview grâce aux librairies Linx et Arduino et faire la lecture des ports de ta carte .