Skip to main content

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
    Icône d'installation d'un VI
  • 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.

Exemple d'un programme Labview

Exemple d’un programme Labview fonctionnant avec un Arduino

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 »

Création d'une boucle while

Création d’une boucle while permettant d’exécuter le programme indéfiniment

Nous allons ensuite pouvoir créer le corps de notre programme à l’aide des deux palettes d’outils précédemment installées :

Ouverture de la palette outils Arduino du Block_Diagram

Ouverture de la palette outils Arduino du Block_Diagram

 

Ouverture de la palette outils Arduino du Front_Panel

Ouverture de la palette outils Arduino du Front_Panel

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.

Description des élément d'un programme

Description des éléments d’un 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 ».

Explication du survole d'une fonction

Explication du survol d’une fonction sur un connecteur pour créer des contrôleurs

Paramètre fonction

Paramètre fonction

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.

Création d'un bouton de contrôle

Création d’un bouton de contrôle

Nous allons procéder de la même façon pour les entrées des capteurs.

Avancement du programme : état presque terminé

Avancement du programme : état presque terminé

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é :

Programme final Labview pour Arduino

Programme final Labview pour Arduino

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 ».

Icône lancement du programme

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.

Thomas Aubret

11 Comments

  • hichamgheddou dit :

    merci bien

  • Steed dit :

    Très intéressant.Merci.
    Est-ce qu’il existe un compilateur gratuit qui permette d’uploader directement du code Labview dans l’arduino?

  • Lajoinie dit :

    Bonjour,
    Est-il possible de commander un capteur directement sur Labview sans passer par Arudino?
    Merci de votre réponse.

    • Fabien Aubret dit :

      Bonjour,
      Qu’entendez-vous par « sans passer par Arduino » ? De quelle manière souhaitez vous interfacer votre capteur ?

      • Alizé Lajoinie dit :

        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)

  • LADOUALI MAHIEDDINE dit :

    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 .

  • Abdelhaq dit :

    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.

  • Yasyn dit :

    Bonjour ;
    J’ai besoin d’un icône de BMP180 et de capteur d’humidité de sol sur LabVIEW.

  • Gilles dit :

    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?

  • dounexaf dit :

    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.

  • yvy dit :

    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 .

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.