NI myRIO - UdPPC Lyon 2014

Transcription

NI myRIO - UdPPC Lyon 2014
NATIONAL INSTRUMENTS
NI myRIO
Concevez des systèmes réels, rapidement
Manuel officiel des sessions « Apprenez à concevoir des systèmes réels, rapidement, avec NI myRIO »
NI myRIO : Concevez des systèmes réels, rapidement
NI myRIO, c’est quoi ?
Au cours de cette session de travaux
pratiques, vous allez prendre en main
le matériel NI myRIO dédié à la
conception de systèmes embarqués et
au contrôle/commande.
NI myRIO a été créé pour que les
étudiants puissent « pratiquer
l’ingénierie » sur des projets d’un
semestre en moyenne. Il s’appuie sur
l’architecture Zynq de Xilinx, et intègre
donc sur la même puce un processeur
double cœur ARM Cortex-A9 à 667
MHz et un FPGA reprogrammable.
Cette puissance brute, associée au
grand nombre d’E/S, permet aux
étudiants de se lancer dans des projets
complexes. Le déploiement et la
surveillance des applications sont aussi
grandement facilités par le WiFi
intégré. Enfin, le boîtier compact et
robuste trouvera sa place facilement
sur les paillasses des salles de TP ou
dans les sacs à dos.
D’un point de vue logiciel, NI myRIO
utilise toute la puissance de NI LabVIEW pour le développement d’applications temps réel et
FPGA. Plutôt que de passer des heures à déboguer une syntaxe complexe ou créer des
interfaces graphiques, les étudiants peuvent se concentrer sur la conception et l’assemblage
du système, sans aucune pression liée à la lourdeur de l’environnement ou du langage de
programmation.
Une personnalité FPGA par défaut est déployée en usine, pour que les débutants puissant
commencer immédiatement à utiliser les E/S disponibles, sans avoir à reprogrammer le FPGA.
Cette possibilité devient beaucoup plus intéressante quand les étudiants souhaitent adapter le
comportement des E/S aux capteurs et actionneurs à leur disposition. Par exemple, ils pourront
facilement remplacer une E/S numérique classique par une commande PWM pour piloter des
moteurs supplémentaires. Cette faculté d’adaptation rend myRIO utilisable tout au long du
cursus, depuis des cours d’initiation aux systèmes embarqués jusqu’à des projets de fin
d’études.
Ce TP vous propose donc de prendre en main ce périphérique dédié au contrôle/commande et
à l’embarqué. NI myRIO est programmable aisément via NI LabVIEW, un environnement de
programmation graphique, convivial et rapide à mettre en œuvre.
ni.com/myrio | 2
NI myRIO : Concevez des systèmes réels, rapidement
Introduction à LabVIEW
Les étudiants et les enseignants ont besoin de connaissances
de base sur l’environnement LabVIEW avant de pouvoir
concevoir des systèmes temps réel ou de reprogrammer un
FPGA. NI a conçu cette session de travaux pratiques pour ceux
qui n’ont aucune expérience de LabVIEW. Cependant, ce
manuel ne remplace pas une vraie formation – il ne couvre pas
tous les menus, boutons ou fonctions de LabVIEW. Si vous avez
déjà une expérience préalable de LabVIEW, vous pouvez dès
maintenant commencer à programmer NI myRIO. La section
suivante est une introduction à la nature graphique et aux
capacités du langage de programmation LabVIEW. Elle s’arrête
aussi sur l’écran d’accueil et l’Explorateur de Projet, avant de
conclure avec un exercice sur la création d’un programme
LabVIEW simple.
LabVIEW est un environnement de programmation graphique utilisable par les étudiants pour
développer rapidement des applications qui couvriront plusieurs plateformes et systèmes
d’exploitation. La puissance de LabVIEW repose sur sa capacité à s’interfacer avec des milliers
d’appareils et d’instruments, en utilisant des centaines de bibliothèques et de VIs existants.
LabVIEW accélère ainsi le développement et permet d’acquérir, analyser et présenter des
données très rapidement.
Les applications LabVIEW imitent l’apparence d’instruments réels (comme des multimètres,
des générateurs de signaux ou des oscilloscopes). Elles sont donc appelées Instruments
Virtuels ou VI (Virtual Instruments). Chaque application LabVIEW possède une face-avant, une
icône/connecteur et un diagramme. La face-avant sert à reproduire l’interface graphique d’un
appareil du monde réel. Les programmeurs peuvent adapter et personnaliser cette face-avant,
par exemple avec des types de visualisations différents en fonction des données à analyser.
L’icône/connecteur est l’équivalent direct des terminaux d’entrée/sortie d’un instrument, pour
lui permettre de s’interfacer avec d’autres appareils. Les VIs peuvent donc contenir d’autres VIs
(appelés sous-VIs), tous connectés les uns aux autres et avec une profondeur illimitée (comme
des fonctions et des sous-fonctions dans un langage de programmation textuel).Enfin, le
diagramme est l’endroit où le développeur crée le code lui-même. Contrairement à des
langages textuels comme C, Java, C++ ou Visual Basic, LabVIEW utilise des icônes à la place
de lignes de code pour créer des applications. Cette différence implique que l’exécution du
code est gouvernée par des règles sur le flux de données, plutôt qu’une exécution séquentielle.
Les fils de connexion entre les nœuds et les VIs déterminent l’ordre d’exécution du code.
En résumé, les VIs LabVIEW sont graphiques, gouvernés par le flux de données et la
programmation événementielle, et sont capables de cibler de multiples plateformes. Ils
profitent de la flexibilité d’une approche orientée objet, en plus de capacités de multithreading
et de programmation parallèle. Enfin, les VIs LabVIEW peuvent être déployés vers des cibles
temps réel et FPGA.
ni.com/myrio | 3
NI myRIO : Concevez des systèmes réels, rapidement
L’écran d’accueil LabVIEW (Getting Started Window)
Suivez les instructions du DVD LabVIEW livré avec NI myRIO pour installer LabVIEW et les
modules complémentaires que vous avez achetés. Activez les produits en utilisant l’Assistant
d’Activation, and le logiciel devrait être prêt à l’emploi.
Sous Windows 7, vous pouvez lancer LabVIEW à partir du Menu Démarrer, en naviguant vers
le raccourci LabVIEW 2013 ou en effectuant une recherche sur “LabVIEW”.
Une fois que l’exécutable LabVIEW a chargé toutes les ressources, l’écran d’accueil apparaît.
La fenêtre Set Up and Explore apparaîtra à chaque démarrage, tant que l’option “Show on
launch” est cochée. Elle a été personnalisée pour NI myRIO et pour correspondre aux attentes
des étudiants. A partir de cette fenêtre, ils peuvent lancer l’assistant Getting Started Wizard for
NI myRIO (comme à partir de l’assistant USB Monitor), accéder à des tutoriaux de démarrage,
trouver de l’aide pour la programmation LabVIEW, ou configure le WiFi sur NI myRIO. Pour
l’instant, vous pouvez fermer cette fenêtre.
L’écran d’accueil permet de créer de nouveaux projets, ouvrir des projets existants et lancer
l’outil de recherche d’exemples (NI Example Finder). Vous pouvez accéder à cette fenêtre à
n’importe quel moment à partir du menu LabVIEW»Getting Started Window d’un VI. Quelques
options supplémentaires sont disponibles en bas de la fenêtre. Chaque option vous redirigera
vers des informations utiles, des tutoriaux ou des exercices pour vous supporter dans vos
projets avec NI myRIO. Utilisez-les souvent dans votre apprentissage de l’environnement
LabVIEW.
ni.com/myrio | 4
NI myRIO : Concevez des systèmes réels, rapidement
Écran d’accueil LabVIEW
Une partie de la philosophie myRIO consiste à combler le fossé entre le problème réel et sa
solution en créant le moins possible de problèmes intermédiaires. Évitez les écueils comme le
“syndrome du VI blanc” (le VI vide qui peut empêcher de réfléchir et de démarrer un projet) en
utilisant les exemples à votre disposition, en créant des projets à partir de modèles existants,
ou en profitant des forums en ligne et du support technique. Pour des tâches et des problèmes
simples, beaucoup d’utilisateurs et d’employés NI ont déjà créé du contenu qui répond
exactement aux spécifications de votre système, ou s’en approche très fortement. Réinventer
la roue peut être long et douloureux, et vous pouvez l’éviter grâce à la puissance de LabVIEW
et du réseau d’ingénieurs et de scientifiques qui créent du contenu pour supporter la
communauté.
ni.com/myrio | 5
NI myRIO : Concevez des systèmes réels, rapidement
L’Explorateur de Projet LabVIEW (Project Explorer)
L’explorateur de projet LabVIEW vous aide à contrôler les ressources liées à une application,
par exemple les VIs, commandes, images, documents texte, informations de configuration et
de déploiement… La structure du projet permet un contrôle simple et facile des ressources, et
l’explorateur de projet permet d’allouer des ressources à plusieurs appareils, typiquement
appelés des cibles.
L’explorateur de projet LabVIEW semblera familier à ceux qui sont habitués à d’autres
environnements de développement intégrés, et son utilisation sera sensiblement la même.
LabVIEW est un langage multiplateformes avec un support complet de ses modules et
bibliothèques. Vous pouvez écrire la plupart des VIs sur la machine de développement et cibler
ensuite un appareil comme NI myRIO parce que le système d’exploitation utilisé est compatible
avec LabVIEW et ses modules complémentaires.
Notez que l’organisation des fichiers dans l’explorateur de projet ne reflète pas l’organisation
des fichiers sur la cible matérielle. Typiquement, un projet est créé dans un répertoire et tout
son code source est placé au même niveau, sans système de sous-répertoires, même si la vue
du projet semble hautement organisée. Déplacer des fichiers au sein du projet ne modifie pas
l’organisation des fichiers sur le disque dur, seulement la vue associée dans l’explorateur de
projet.
ASTUCE : Une cible est un appareil capable d’exécuter un VI.
Complétez les étapes suivantes pour créer un nouveau projet :
1. Cliquez sur le bouton Create Project (ou Créer un projet en français) sur l’écran d’accueil
LabVIEW.
2. La fenêtre Créer un projet s’ouvre et vous propose plusieurs options. Explorez les
différentes options en créant un projet ou en utilisant le lien Informations
supplémentaires associé à chaque modèle de conception qui vous semble intéressant.
3. Pour cette fois, sélectionnez l’option Projet vide comme point de départ pour votre
projet.
4. Cliquez ensuite sur le bouton Terminer pour créer un projet vide et ouvrir l’explorateur
de projet LabVIEW.
Pour enregistrer un nouveau projet :
1. Depuis l’explorateur de projet, sélectionnez Fichier»Enregistrer.
2. Une boîte de dialogue d’enregistrement apparait et vous demande un répertoire de
destination accompagné d’un nom de projet. Sélectionnez un emplacement approprié
pour le projet et donnez-lui un nom explicite.
L’explorateur de projet LabVIEW s’ouvre et un nouveau projet est prêt à être rempli avec des
ressources et du code source. L’explorateur de projet LabVIEW comporte un menu standard
avec des options familières (Fichier, Edition, Affichage…) ainsi que des options propres à
LabVIEW. L’explorateur de projet en lui-même est constitué de deux onglets pour les éléments
et les fichiers. L’onglet Éléments affiche les éléments d’un projet organisés de manière
ni.com/myrio | 6
NI myRIO : Concevez des systèmes réels, rapidement
hiérarchique, tandis que l’onglet Fichiers montre tous les éléments du projet et les fichiers
associés sur le disque dur.
Explorateur de projet LabVIEW
L’organisation du projet est visible sur l’onglet Éléments de l’explorateur de projet LabVIEW. La
racine du projet, le premier élément dans la liste, montre sur quel projet vous êtes en train de
travailler. Sous la racine du projet, le niveau suivant contient toutes les cibles vers lesquelles
pointe le projet. Un projet vide pointe par défaut sur une cible locale ou le « Poste de travail ».
Sous la cible « Poste de travail », les spécifications de construction intègrent la configuration de
construction pour la distribution des sources d’autres options de déploiement disponibles pour
LabVIEW et les modules complémentaires. Vous les utiliserez quand vous déploierez vers des
cibles embarquées.
Alors que cet atelier se concentre sur des VIs simples, vous avez besoin de comprendre les
bases de l’explorateur de projet LabVIEW pour développer des projets plus complexes. Pour
l’instant, cependant, le projet est assez vide et accomplit peu de choses. Développez un VI
simple dans le projet suivant pour apprendre à programmer sous LabVIEW.
Conservez ce projet ouvert pour l’utiliser dans la prochaine section.
ni.com/myrio | 7
NI myRIO : Concevez des systèmes réels, rapidement
Exercice 1: Construire un VI LabVIEW sous Windows
Pour apprendre l’environnement graphique de programmation LabVIEW, créez une application
basique qui illustre les principes de la programmation basée sur le flux de données. Dans cet
exercice, vous programmez un convertisseur de température qui traduit des degrés Fahrenheit
en degrés Celsius.
Pour programmer en LabVIEW, vous devez créer un nouveau VI en sélectionnant
Fichier»Nouveau VI dans l’explorateur de projet LabVIEW.
Création d’un VI vide
Cette opération crée un VI vide sous la cible Poste de travail, dans le projet ouvert
précédemment. Ce nouveau VI est constitué de deux fenêtres : la face-avant et le diagramme.
ni.com/myrio | 8
NI myRIO : Concevez des systèmes réels, rapidement
Face-avant et diagramme
Enregistrez le nouveau VI en sélectionnant Fichier»Enregistrer depuis la face-avant ou le
diagramme. Quand la boîte de dialogue d’enregistrement apparaît, donnez un nom approprié au
VI. Nous vous conseillons de sauver les VIs dans le même répertoire que le projet dans lequel
ils vont être utilisés. Si vous souhaitez partager des VIs entre plusieurs projets, vous pouvez les
enregistrer dans le répertoire d’un des projets ou dans un répertoire complètement différent.
L’explorateur de projet LabVIEW garde une trace de ces VIs et vous demandera de pointer sur
des VIs déplacés ou supprimés en cas de besoin.
Maintenant que vous avez enregistré le VI, vous allez pouvoir créer le code de conversion de
température. Complétez les étapes suivantes pour écrire le VI :
1. Ce code s’exécute de manière continue et, comme les langages textuels, LabVIEW utilise
des boucles pour exécuter des tâches de manière répétitive. Il est possible d’arrêter
l’exécution des boucles avec un bouton sur la face-avant ou, de manière plus traditionnelle,
avec une logique dans le code qui détermine à quel moment la tâche est terminée. Pour cet
exercice, utilisez une boucle While pour surveiller en permanence la valeur en Fahrenheit et
la convertir en Celsius, et utilisez un bouton sur la face-avant pour arrêter l’exécution.
a. Basculez sur le diagramme en sélectionnant la fenêtre associée ou en pressant
<Ctrl-E> depuis la face-avant (un autre appui sur <Ctrl-E> rebasculera sur la faceavant ; utilisez ce raccourci pour passer rapidement d’une fenêtre à l’autre).
ASTUCE : Les raccourcis clavier accélèrent énormément la navigation dans l’environnement LabVIEW. Ils
vous permettent aussi de passer pour un magicien de LabVIEW !
ni.com/myrio | 9
NI myRIO : Concevez des systèmes réels, rapidement
b. Cliquez-droit sur le diagramme pour ouvrir la palette des fonctions. Cette palette
contient tous les nœuds et VIs utilisés pour programmer en LabVIEW. Il est possible
de personnaliser l’apparence de la palette, mais par défaut tous les modules et VIs
sont affichés. Repérez les intitulés de chaque catégorie, naviguez vers
Programmation»Structures»Boucle While et sélectionnez la boucle While.
Sélection d’une boucle While
c. Dessinez une boucle sur le diagramme. Cliquez avec le bouton gauche, faites glisser
le curseur pour créer une boucle et cliquez une seconde fois avec le bouton gauche
pour terminer le tracé. Il est possible de redimensionner les boucles en survolant les
huit poignées de redimensionnement situées sur la bordure de la boucle, puis en
faisant glisser une de ces poignées en maintenant le bouton gauche appuyé.
ni.com/myrio | 10
NI myRIO : Concevez des systèmes réels, rapidement
Diagramme avec boucle While
d. Basculez sur la face-avant et cliquez-droit pour ouvrir la palette des commandes.
Cette palette contient tous les éléments utilisables pour créer l’apparence du VI
avec des contrôles ressemblant à ceux d’un instrument réel. Naviguez vers
Moderne»Booléen»Bouton Stop.
Sélection d’un bouton Stop
ni.com/myrio | 11
NI myRIO : Concevez des systèmes réels, rapidement
e. Cliquez avec le bouton gauche sur l’icône du bouton Stop et faites glisser l’élément
sur la face-avant. Remarquez la silhouette du contrôle que vous êtes en train de
déplacer sur la face-avant. Utilisez cet indice visuel pour placer le bouton n’importe
où sur la face-avant, en relâchant le bouton gauche.
Face-avant avec bouton Stop
f.
Rebasculez maintenant sur le diagramme et repérez la nouvelle icône du bouton
Stop. Si l’icône apparaît en dehors de la boucle While, faites-la glisser à l’intérieur.
Survolez l’icône du bouton Stop pour faire apparaitre son terminal de sortie (un point
vert sur la droite de l’icône). Déplacez le curseur sur ce terminal, et le curseur
change d’apparence pour ressembler à une bobine de fil.
g. Câblez le bouton Stop à la condition d’arrêt de la boucle While (en bas à droite de la
boucle, en vert) en cliquant avec le bouton gauche sur le terminal de sortie du
bouton Stop puis sur le terminal d’entrée de la condition d’arrêt (l’ombre du fil
apparaît sous le curseur de la souris pendant le tracé). Un fil vert devrait apparaître
entre les deux icônes pour indiquer que les valeurs booléennes des deux
composants sont correctement câblées (les autres types de données ont des
couleurs différentes).
ni.com/myrio | 12
NI myRIO : Concevez des systèmes réels, rapidement
Boucle While avec condition d’arrêt câblée
2. Créez maintenant la commande Fahrenheit et l’indicateur Celsius sur la face-avant.
a. Basculez sur la face-avant et cliquez-droit pour faire apparaître la palette des
commandes. Naviguez vers Moderne»Numérique»Commande numérique.
b. Placez la commande sur la face-avant en cliquant avec le bouton gauche dans la
palette, en déplaçant le curseur sur la face-avant, et en cliquant une seconde fois
pour placer la commande n’importe où.
c. Remarquez que la commande est intitulée “Commande numérique”, un nom peu
parlant. Renommez la commande en double-cliquant sur l’intitulé. Appelez ce
contrôle “Fahrenheit”.
d. Ouvrez la palette des commandes (clic droit) et localisez un thermomètre dans la
catégorie Moderne»Numérique»Thermomètre. Placez le thermomètre n’importe où
sur la face-avant (clic gauche, déplacement du curseur, clic gauche).
e. Comme pour la commande Fahrenheit, renommez l’indicateur thermomètre en
double-cliquant sur son intitulé. Appelez cet indicateur “Celsius”.
f. Ajoutez maintenant des fonctionnalités supplémentaires en créant une LED qui
détectera quand une température tombe en-dessous de 0°C. Placez une LED sur la
face-avant en naviguant vers Moderne»Booléen»LED circulaire.
g. Placez la LED n’importe où sur la face-avant (clic gauche, déplacement du curseur,
clic gauche).
h. Renommez la LED en “Sous 0°C ?”
ni.com/myrio | 13
NI myRIO : Concevez des systèmes réels, rapidement
Face-avant avec commandes et indicateurs
3. Une fois les commandes et indicateurs placés sur la face-avant, vous pouvez implémenter
les mathématiques et la logique de la conversion de degrés Fahrenheit en Celsius dans le
diagramme.
a. Basculez vers le diagramme and remarquez les nouvelles icones pour les
commandes et indicateurs Fahrenheit, Celsius et Sous 0°C. Déplacez l’icône
Fahrenheit à l’intérieur de la boucle While, sur la gauche, ainsi que les indicateurs
Celsius et 0°C Switch, sur la droite. Gardez une place suffisante entre les icones.
b. Placez un nœud de soustraction dans le diagramme en cliquant-droit pour ouvrir la
palette des fonctions et en naviguant vers Programmation»Numérique»Soustraire.
Placez le nœud juste à droite de l’icône Fahrenheit.
c. Câblez le terminal de sortie de l’icône Fahrenheit au terminal d’entrée supérieur du
nœud de soustraction.
d. Cliquez-droit sur le terminal d’entrée inferieur du nœud de soustraction et
sélectionnez Créer»Constante.
e. Entrez une valeur de “32” dans la constante.
f. Placez un nœud de multiplication dans le diagramme en cliquant-droit pour ouvrir la
palette des fonctions et en naviguant vers Programmation»Numérique»Multiplier.
Placez le nœud à droit du nœud soustraire.
g. Câblez le terminal de sortie du nœud de soustraction au terminal d’entrée supérieur
du nœud de multiplication.
h. Placez un nœud de division sur le diagramme en cliquant-droit pour ouvrir la palette
des fonctions et en naviguant vers Programmation»Numérique»Diviser. Placez le
nœud de division sous le nœud de soustraction.
i. Cliquez-droit sur le terminal d’entrée supérieur et sélectionnez Créer»Constante.
Assignez une valeur de “5” à cette constante.
ni.com/myrio | 14
NI myRIO : Concevez des systèmes réels, rapidement
j.
Cliquez-droit sur le terminal d’entrée inferieur et sélectionnez Créer»Constante.
Assignez une valeur de 9 à cette constante.
k. Câblez le terminal de sortie du nœud de division au terminal d’entrée inferieur du
nœud de multiplication.
l. Câblez le terminal de sortie du nœud de multiplication au terminal d’entrée de l’icône
de l’indicateur Celsius.
m. Placez un nœud de comparaison “inférieur à 0” sur le diagramme en cliquant-droit et
en naviguant vers Programmation»Comparaison»Inférieur à zéro ? Placez le nœud à
droite du nœud de multiplication.
n. Câblez le terminal de sortie du nœud de multiplication au terminal d’entrée du nœud
“inférieur à 0”.
o. Câblez la sortie du nœud “inférieur à 0” à l’entrée de l’icône Sous 0°C ?
4. Maintenant que vous écrit tout le code, exécutez le VI. Vérifiez que votre VI a été bien câblé
en le comparant à la figure 1 ci-dessous, et vérifiez que la flèche d’exécution n’est pas
brisée.
a. Basculez vers la face-avant (<Ctrl-E>). Vérifiez que tous les contrôles sont
visualisables à l’écran.
b. Repérez la flèche d’exécution dans la barre d’outils and cliquez dessus avec le
bouton gauche pour démarrer l’exécution du programme.
c. Par défaut, le thermomètre affiche seulement des valeurs entre 0 et 100 (vous
pouvez modifier ces limites en double-cliquant sur l’échelle et en saisissant des
valeurs différentes). Pour cet exercice, saisissez des valeurs en degrés Fahrenheit
pour voir l’indicateur Celsius se mettre a jour avec la valeur correspondante (entre 0
et 100).
d. Quand vous avez fini d’utiliser le VI, vous pouvez terminer l’exécution avec le bouton
Stop.
5. Enregistrez et fermez le VI de conversion de température et le projet.
A la fin de cet exercice, vous devriez vous sentir à l’aise avec l’approche par programmation
graphique. Le modèle LabVIEW multiplateformes facilite la création d’applications pour de
nombreux appareils supportés. Vous allez utiliser le même environnement dans les exercices
suivants pour créer des programmes destines à NI myRIO avec la même structure, les mêmes
commandes et indicateurs, et les mêmes fonctionnalités. Avant tout, vous devez d’abord
installer, configurer et paramétrer l’appareil NI myRIO qui sera utilisé pendant le
développement. Les outils inclus avec NI myRIO facilitent grandement les phases d’installation
et de configuration. La section suivante couvre l’installation matérielle et vous guide au travers
de l’assistant de démarrage rapide (Getting Started Wizard) pour NI myRIO.
ni.com/myrio | 15
NI myRIO : Concevez des systèmes réels, rapidement
VI de l’exercice 1 :
Figure 1
ni.com/myrio | 16
NI myRIO : Concevez des systèmes réels, rapidement
Installation du matériel : Connexion de NI myRIO
Un des objectifs de myRIO est de simplifier l’installation du matériel. Pour y parvenir, NI myRIO
dispose d’un utilitaire d’installation et de configuration diffèrent de NI Measurement &
Automation Explorer (MAX). Vous pouvez toutefois utiliser MAX si vous le souhaitez et si vous
êtes plus a l’aise avec cet environnement. NI myRIO dispose par exemple d’un utilitaire de
surveillance des connexions USB, qui s’exécute quand vous connectez l’appareil à l’ordinateur
hôte. Apprenez à utiliser NI myRIO USB monitor et l’assistant NI myRIO Getting Started Wizard
dans la prochaine section.
NI myRIO USB Monitor
Faites bien attention à alimenter NI myRIO avec l’adaptateur fourni. Branchez le câble USB de
type B sur NI myRIO et l’autre extrémité sur un port USB de l’ordinateur hôte.
Sans avoir à démarrer LabVIEW ou NI MAX, à condition que l’appareil soit alimenté, le système
d’exploitation devrait reconnaître NI myRIO et installer les pilotes nécessaires. Une fois cette
étape accomplie, sous un système d’exploitation de type Windows, Windows devrait
automatiquement lancer l’utilitaire NI myRIO USB Monitor ci-dessous.
En même temps que le numéro de série et l’adresse IP, vous disposez de quatre options une
fois que NI myRIO est détecté :
ni.com/myrio | 17
NI myRIO : Concevez des systèmes réels, rapidement
1. Launch the Getting Started Wizard
L’assistant Getting Started Wizard vous permet d’observer rapidement le statut fonctionnel de
l’unité NI myRIO. L’assistant cherche et détecte des appareils NI myRIO, se connecte aux
unités sélectionnées, vérifie que la partie logicielle est à jour, suggère une mise à jour s’il en
éprouve le besoin, permet de renommer l’appareil puis affiche une face-avant qui vous permet
d’observer les valeurs mesurées par l’accéléromètre, allumer ou éteindre les LEDs en façade,
et tester le bouton reprogrammable par l’utilisateur.
L’écran final de l’assistant Getting Started Wizard propose deux options:
Start my first project now
Sélectionner cette option lance un tutorial affiché dans un navigateur web, similaire à
l’exercice 2 de cette session de TP.
Go straight to LabVIEW
Sélectionner cette option lance LabVIEW et son écran d’accueil.
2. Go to LabVIEW
Sélectionner cette option lance LabVIEW et son écran d’accueil.
3. Configure NI myRIO
Sélectionner cette option ouvre l’utilitaire de configuration de NI myRIO dans un navigateur
web.
4. Do Nothing
Si LabVIEW est déjà ouvert et qu’un projet est configuré pour cibler NI myRIO, vous pouvez
sélectionner cette option pour fermer NI myRIO USB Monitor quand une unité est reconnectée
à l’ordinateur de développement.
Lancement de l’assistant Getting Started Wizard
Depuis NI myRIO USB Monitor, sélectionnez Launch the Getting Started Wizard. Cliquez sur
Next et l’assistant se connecte à l’unité myRIO, vérifie les mises à jour logicielles et vous
propose de renommer l’appareil. Si aucun logiciel n’est installé sur NI myRIO, l’assistant
installera automatiquement la version la plus récente. Ensuite, une fenêtre de diagnostic
apparaît. Elle vous permet de visualiser les valeurs mesurées par l’accéléromètre 3 axes, tester
le bouton reprogrammable par l’utilisateur, et allumer ou éteindre les LEDs en façade.
ni.com/myrio | 18
NI myRIO : Concevez des systèmes réels, rapidement
Maintenant que vous avez installé et configuré NI myRIO, vous allez pouvoir créer des VIs
temps réel et les exécuter sur le processeur (de la même manière qu’un VI Windows) en
profitant du FPGA pour libérer la vraie puissance du calcul parallèle. Dans la prochaine section,
vous créez un projet par défaut et explorez les fonctionnalités d’une architecture basique.
Exécuter du code temps réel sur NI myRIO
Configurez maintenant un projet NI myRIO à partir des modèles de conception disponibles dans
LabVIEW 2013. Après avoir créé un projet par défaut, ouvrez le programme principal “Main.vi”
et explorez-le en détails. Complétez ensuite un exercice pour modifier le comportement du
programme principal.
Le code temps réel s’exécute sur le processeur intégré à NI myRIO. Ce code peut recevoir des
données depuis le FPGA, ou envoyer des données vers le FPGA en utilisant des nœuds d’E/S
FPGA, des FIFOs DMA et des VIs Express qui utilisent la “personnalité“ FPGA par défaut. Les
entrées et sorties des connecteurs d’extension NI myRIO ou le port NI miniSystems
communiquent avec le processeur via le FPGA. Le FPGA est abordé en détails plus tard ; pour
l’instant, rappelez-vous que NI myRIO est livré avec une personnalité par défaut qui transmet
toutes les données d’E/S des connecteurs et capteurs intégrés (y compris le bouton et
l’accéléromètre) vers le code et le processeur temps réel.
Maintenant que vous avez connecté et configuré NI myRIO, vous pouvez créer un projet NI
myRIO et commencer à développer du code. Utiliser la personnalité FPGA par défaut est un
bon point de départ pour la création d’un projet autonome simple, ou pour une preuve de
concept sur un projet plus complexe utilisant le FPGA. Pour du code nécessitant de
personnaliser la manière dont NI myRIO gère les E/S, un projet personnalisé FPGA sera plus
approprié. Néanmoins, personnaliser le FPGA n’est pas obligatoire pour des projets simples,
donc cette section repose sur un projet standard.
ni.com/myrio | 19
NI myRIO : Concevez des systèmes réels, rapidement
Exercice 2: Explorez le programme principal Main.vi
Suivez ces étapes pour configurer un projet NI myRIO à partir d’un modèle de conception :
1. Depuis l’écran d’accueil de LabVIEW, cliquez sur le bouton Create Project.
Creating a Project
2. Dans le panneau de gauche de la boîte de dialogue “Créer un projet”, sélectionnez
myRIO dans l’arborescence des modèles de conception.
Modèles de conception NI myRIO
ni.com/myrio | 20
NI myRIO : Concevez des systèmes réels, rapidement
3. Le panneau de droite affiche maintenant trois options : un projet standard vide, un projet
myRIO et un projet de personnalisation du FPGA. Le projet vide est le même que celui
créé dans l’exercice 1.
a. Utilisez le modèle de conception myRIO Project pour créer un projet avec la
personnalité FPGA par défaut. Ce modèle est utile pour les projets qui n’ont pas
besoin des fonctionnalités étendues offertes par la personnalisation du FPGA.
b. Utilisez le modèle de conception myRIO Custom FPGA Project pour
personnaliser la définition du FPGA sur NI myRIO. Par exemple, les trois
connecteurs offrent par défaut huit lignes d’E/S numériques de type PWM. Si
vous avez besoin de connecter plus d’actionneurs pilotés en PWM, ou plus
d’entrées, il est possible de reconfigurer le FPGA pour offrir le support du PWM
sur un nombre supérieur de lignes d’E/S numériques. Le même principe
s’applique aux autres protocoles comme I2C, SPI, etc.
4. Sélectionnez myRIO Project dans la liste et cliquez sur le bouton Suivant.
5. Donnez un nom approprié au projet et sélectionnez un répertoire pour y sauvegarder le
projet. Vérifiez que la case à cocher Plugged into USB est sélectionnée et que l’unité NI
myRIO porte le bon nom dans la liste de droite.
Configuration d’un projet LabVIEW
6. Cliquez sur Terminer quand tout semble configuré correctement.
Ce modèle de conception NI myRIO configure l’unité comme une cible au sein du projet. Il
est crucial de bien comprendre que le code du VI s’exécute bien sur NI myRIO même si la
face-avant est affichée sur l’ordinateur de développement. Ce mode, appelé interactive
front panel mode, est destiné au développement et au débogage uniquement. Dans la
version finale de l’application, les commandes et indicateurs de face-avant des VIs présents
sur la cible temps réel seront inaccessibles. Le code est destiné à être déployé vers NI
myRIO et exécuté sans connexion USB. Il est possible d’utiliser des variables partagées
ni.com/myrio | 21
NI myRIO : Concevez des systèmes réels, rapidement
publiées sur le réseau pour recevoir et envoyer des données depuis ou vers NI myRIO. Les
possibilités offertes par ce mécanisme sont très importantes. Même sans reconfigurer le
FPGA, vous pourrez acquérir des données et prendre des décisions rapidement sur le
processeur temps réel de NI myRIO. En même temps, les communications réseau
permettent au PC de développement de stocker et/ou d’analyser les données, et même
d’envoyer des ordres à NI myRIO pour modifier son comportement.
Pour cet exercice, NI myRIO est branché physiquement à l’ordinateur de développement et
vous souhaitez que le code s’exécute sur son processeur. Vous avez la possibilité
d’interagir avec la face-avant du VI en cours d’exécution sur le processeur RT de NI myRIO,
et le moteur de variables partagées s’occupe de toutes les communications requises pour
le transfert des données. Cette utilisation de la face-avant est appropriée pour des
configurations de test et élimine le besoin d’avoir des communications plus complexes
entre l’hôte et la cible RT.
L’explorateur de projet LabVIEW affiche maintenant deux cibles : “Poste de travail” et
“myRIO-1900 (xxx.xx.xx.x).” La cible NI myRIO contient déjà un VI appelé “Main.vi.” Ce VI
fournit du code pour vous donner un point de départ.
Hiérarchie du projet LabVIEW
1. Ouvrez Main.vi depuis l’explorateur de projet LabVIEW avec un double-clic.
2. La face-avant du VI s’ouvre et devrait contenir un graphe dé d’un bouton stop.
3. Examinez le diagramme avant d’exécuter le VI. Basculez vers le diagramme avec <CtrlE>.
4. La structure entourant la boucle While, qui ressemble à une pellicule de film, est appelé
une Structure Séquence.
ni.com/myrio | 22
NI myRIO : Concevez des systèmes réels, rapidement
Il existe deux types de séquences : plate et empilée. La structure utilisée dans Main.vi
est plate. La Structure Séquence force une exécution séquentielle du code. La totalité
du code d’une image de la pellicule (de gauche à droite) doit s’exécuter avant que
l’image suivante puisse apparaître. Il est possible d’utiliser des tunnels pour transférer
des données entre les images. Dans ce cas, la séquence structure de Main.vi est
présente pour forcer une architecture Ouvrir-Acquérir/Traiter-Fermer. Utiliser une telle
structure est le moyen le plus simple de s’assurer que le code s’exécute dans un ordre
déterminé, bien qu’il soit possible d’arriver au même résultat avec des considérations
simples sur la programmation par flux de données.
ASTUCE : Les Tunnels sont les petits carrés sur les bordures des boucles, séquences et structures
condition. Elles apparaissent automatiquement quand deux terminaux séparés par de telles structures sont câblés
entre eux, ou vous pouvez les créer manuellement en cliquant sur la bordure. Les tunnels passent des données
d’une structure ou d’une boucle seulement quand tout le code à l’intérieur a terminé de s’exécuter.
a. Le cadre “initialiser” de la séquence structure est le premier à s’exécuter. La
seule action effectuée est la création d’une constante de cluster d’erreur et son
passage au cadre suivant via un tunnel.
b. Le cadre “acquérir et traiter les données” reçoit le cluster d’erreur, et une
boucle While appelée “Main Loop” (Boucle Principale) commence à s’exécuter.
A l’intérieur de la boucle principale, un VI Express (le VI bleu appelé
“Accelerometer”) est utilisé pour récupérer les données de l’accéléromètre
embarqué sur NI myRIO. Ces données sortent ensuite des terminaux x-axis, yaxis, et z-axis par les fils orange (nombres en double-précision) et assemblées au
sein d’un cluster pour être passées au graphe déroulant sur la face-avant.
ni.com/myrio | 23
NI myRIO : Concevez des systèmes réels, rapidement
Remarquez le VI “Attendre (ms)” dans le coin supérieur droit du VI.
Ce VI force une exécution de la boucle toutes les 10 ms à condition que tout le
code situé à l’intérieur puisse s’exécuter en moins de 10 ms ; sinon la boucle
s’exécute aussi vite que possible mais n’attend pas 10 ms supplémentaires. La
boucle possède ainsi une fréquence de 100 Hz (avec, encore une fois, la
contrainte que le code à l’intérieur soit capable de s’exécuter aussi rapidement).
Puisque le graphe déroulant affiche les 100 derniers échantillons, vous pouvez
visualiser une seconde d’acquisition de données depuis l’accéléromètre. Comme
avec la plupart des boucles cadencées par logiciel, un certain niveau de jitter
apparaît toujours sur le cadencement de la boucle. Pour des tâches dont le
déterminisme est plus critique, il est possible de s’orienter vers la
programmation FPGA et les Boucles Cadencées dans LabVIEW.
5.
6.
7.
8.
Deux conditions d’arrêt existent pour la boucle principale : le bouton stop, que
vous pouvez presser n’importe quand pendant l’exécution pour arrêter la boucle
et passer à l’étape suivante de la structure séquence, et une condition d’arrêt
sur erreur, créée en câblant le cluster d’erreur en sortie du VI Express sur un
nœud OU avec le bouton stop. La condition d’arrêt sur erreur termine la boucle
While et passe à l’étape suivante de la structure séquence si une erreur se
produit dans un VI auquel le cluster d’erreur est câblé. Il est possible de
combiner les erreurs provenant de plusieurs VIs pour créer des protocoles
d’exécution plus sûrs, pour que des appareils physiques reliés au système ne
soient pas endommagés par des erreurs dans le code ou des informations de
capteur manquantes.
c. Quand le boucle While principale “Main Loop” a terminé son exécution, le
cluster d’erreur est transmis en sortie jusqu’à l’étape finale de la structure
séquence. Cette étape est utilisée pour fermer les références ouvertes sur NI
myRIO avant la sortie du programme. Quand vous ajouterez des fonctionnalités
supplémentaires, vous pourrez utiliser cette étape pour fermer les lignes d’E/S,
et enregistrer ou supprimer des données.
Maintenant que vous avez analysé la structure du code, observez son comportement
pendant l’exécution. Basculez vers la face-avant en pressant <Ctrl-E>. Cliquez sur la
flèche d’exécution ou pressez <Ctrl-R> pour lancer l’exécution du VI sur NI myRIO.
Quand le déploiement a été effectué avec succès sur NI myRIO, le graphe déroulant
commence à afficher les valeurs des échantillons lues par l’accéléromètre. Secouez NI
myRIO pour voir les valeurs évoluer en temps réel.
Pressez le bouton stop pour autoriser le VI à quitter la boucle principale et terminer
l’exécution de la séquence structure.
Conservez le projet et le VI ouverts.
La configuration d’un nouveau projet NI myRIO est très similaire à la configuration des
autres cibles temps réel NI. Il est possible de changer n’importe quel projet en projet temps
réel en ajoutant l’unité RT au projet en tant que cible, à la racine de l’explorateur de projet
LabVIEW. Vous pouvez aussi créer un projet RT depuis un modèle de conception en suivant
les étapes détaillées dans la section précédente.
ni.com/myrio | 24
NI myRIO : Concevez des systèmes réels, rapidement
Les détails du fonctionnement du programme principal par défaut “Main.vi” ont dû vous
aider à comprendre son architecture. Vous pouvez maintenant ajouter des fonctionnalités à
un processus existant (une boucle While existante) ou même ajouter des boucles While
pour traiter des données en parallèle. Cependant, gardez à l’esprit que le processeur RT ne
peut pas exécuter plus de processus en parallèle qu’il n’a de cœurs disponibles. Quand un
trop grand nombre de boucles est présent, le processeur gère le parallélisme comme
d’autres langages de programmation — avec des threads et un basculement entre les
tâches pendant l’exécution.
ni.com/myrio | 25
NI myRIO : Concevez des systèmes réels, rapidement
Exercice 3: Créer du code temps réel pour NI myRIO
En utilisant le modèle de conception NI myRIO, écrivez un programme LabVIEW destiné à NI
myRIO qui utilise les fonctionnalités intégrées à l’unité. Dans cet exercice, vous allez créer une
application autonome qui utilise le bouton reprogrammable et les LEDs en façade.
Si le projet de l’exercice précédent est toujours ouvert, suivez les étapes suivantes pour créer
le VI RT. Dans le cas contraire, retournez à la section précédente et suivez les instructions pour
la création d’un nouveau projet NI myRIO.
1. Ouvrez Main.vi sous la cible myRIO-1900 (xxx.xx.xx.x) dans l’explorateur de projet
LabVIEW.
2. Ouvrez le diagramme.
3. Agrandissez l’étape centrale de la séquence structure et la boucle While qu’elle
contient.
a. Placez le curseur sur la bordure inférieure de la séquence structure et localisez la
poignée de redimensionnement bleue au centre de la bordure. Cliquez et
déplacer la poignée vers le bas pour augmenter la place disponible pour placer
des blocs.
b. Placez le curseur sur la bordure droite de l’étape centrale de la structure
séquence et localisez la poignée de redimensionnement bleue. Cliquez et
déplacez la poignée vers la droite pour augmenter la surface disponible dans
l’étape centrale.
c. Placer le curseur sur le coin inférieur droit de la boucle While. Cliquez et
déplacez la poignée de redimensionnement pour agrandir la boucle While et
remplir l’espace créé dans les étapes a et b.
4. Créez un déclenchement sur front montant qui détectera un appui sur le bouton
reprogrammable de NI myRIO (et ignorera un maintien de l’appui sur le bouton).
a. Placez un Button Express VI sur le diagramme à partir de la palette NI myRIO.
i. Cliquez-droit et naviguez vers myRIO»Onboard»Button. Placez le VI
Express à l’intérieur de la boucle While, juste sous le VI de
l’accéléromètre.
ii. Appuyez sur OK dans la boîte de dialogue de configuration pour
conserver les valeurs par défaut du VI Express. Ce VI Express se charge
d’ouvrir une référence vers le matériel à travers la personnalité FPGA sur
NI myRIO, puis lit la valeur actuelle du bouton. Puisque le VI Express est
placé à l’intérieur de la boucle While, son code sera exécuté à chaque
itération. A première vue, cette approche peut sembler très coûteuse si
le code doit ouvrir une référence à un canal de données particulier à
chaque cycle, depuis le FPGA. Cependant, les VIs Express de la palette
NI myRIO utilisent une fonctionnalité d’“ouverture intelligente” qui évite
d’ouvrir la référence à chaque itération. Donc, après la première itération,
ni.com/myrio | 26
NI myRIO : Concevez des systèmes réels, rapidement
le VI s’exécute beaucoup plus rapidement comme il n’a besoin que de
lire la valeur du bouton.
b. Câblez la sortie Value du VI Express Button sur la bordure gauche de la boucle
While.
c. Cliquez-droit sur le tunnel créé sur la bordure de la boucle While et sélectionnez
Remplacer par un registre à décalage. L’apparence du tunnel est modifiée, et
une icône du même type apparaît sur la bordure gauche de la boucle While, au
même niveau. Ces deux tunnels constituent un registre à décalage. Le côté droit
du registre stocke une information de l’itération en cours, tandis que le côté
gauche rappelle les données stockées à l’itération précédente. A l’aide de ce
mécanisme, vous pouvez comparer la valeur actuelle du bouton à celle de
l’itération précédente (pendant la première itération, la valeur précédente est
initialisée à Faux).
ni.com/myrio | 27
NI myRIO : Concevez des systèmes réels, rapidement
d. Placez un nœud OU Exclusif sur le diagramme.
i. Cliquez-droit et naviguez vers Programmation»Booleén»OU Exclusif.
Placez le nœud OU Exclusif sur le diagramme, dessous et à droite du VI
Express Button.
ii. Câblez la sortie Value du VI Express Button au terminal d’entrée
supérieur du nœud OU Exclusif.
iii. Câblez le côté gauche du registre à décalage (qui stocke la valeur du
bouton) au terminal d’entrée inférieur du nœud OU Exclusif.
ni.com/myrio | 28
NI myRIO : Concevez des systèmes réels, rapidement
e. Placez un nœud ET sur le diagramme.
i. Cliquez-droit et naviguez vers Programmation»Booleén»ET. Placez le
nœud ET sur le diagramme à droite du nœud OU Exclusif.
ii. Câblez la sortie Value du VI Express Button au terminal d’entrée
supérieur du nœud ET.
iii. Câblez la sortie du nœud OU Exclusif au terminal d’entrée inférieur du
nœud ET.
f.
Utilisez le raccourci <Ctrl-H> pour ouvrir l’Aide Contextuelle et mieux
comprendre le fonctionnement des nœuds OU Exclusif et ET. Avec la fenêtre
d’aide contextuelle ouverte, vous pouvez survoler n’importe quel élément du
diagramme ou de la face-avant pour en apprendre plus sur sa fonction.
Maintenant que la logique de détection du front montant sur le bouton est en
place, nous allons pouvoir utiliser cette logique pour ajouter des fonctionnalités à
l’application.
5. Créez un cycle d’allumage des LEDs en façade quand le bouton est pressé.
a. Placez une Constante Vrai sur le diagramme.
i. Cliquez-droit et naviguez vers Programmation»Booléen»Constante Vrai.
Placez la constante dans le cadre Initialize de la structure séquence.
ii. Câblez la constante Vrai à la bordure gauche de la boucle While (le tunnel
à travers la bordure du cadre de la structure séquence est créé
automatiquement).
ni.com/myrio | 29
NI myRIO : Concevez des systèmes réels, rapidement
b. Placez trois Constante Faux sur le diagramme.
i. Cliquez-droit et naviguez vers Programmation»Booléen»Constante Faux.
Placez trois constantes dans le cadre Initialize de la séquence structure
— la première sous la constante Vrai, et les deux suivantes l’une en
dessous de l’autre.
ii. Câblez les constantes Faux à la bordure gauche de la boucle While.
ni.com/myrio | 30
NI myRIO : Concevez des systèmes réels, rapidement
c. Remplacez les tunnels par des registres à décalage.
i. Cliquez-droit sur chaque tunnel de données booléennes que vous venez
de créer sur la bordure gauche de la boucle While et sélectionnez
Remplacer par un registre à décalage.
d. Les quatre constantes booléennes (une vraie, trois fausses) sont utilisées pour
suivre l’état de chacune des quatre LEDs en façade de NI myRIO. Ce code est
une implémentation très simple et très directe du transfert de la valeur d’une
LED à la suivante. Une autre méthode pourrait reposer sur un compteur et une
fonction modulo qui calculerait le reste de la division de la valeur du compteur
par quatre, pour ensuite se servir de cette valeur pour allumer une des quatre
LEDs (0, 1, 2 ou 3). Cette approche permettrait de n’utiliser qu’un seul registre à
décalage mais demanderait de placer plus de fonctions à l’intérieur du
diagramme, plus tard dans l’exécution.
ni.com/myrio | 31
NI myRIO : Concevez des systèmes réels, rapidement
e. Placez une Structure Condition sur le diagramme.
i. Cliquez-droit et navigues vers Programmation»Structures»Structure
Condition. Placez une structure condition à l’intérieur de la boucle While,
juste en-dessous et à droite de la logique de détection d’un front montant
(nœuds OU exclusif et ET).
ii. Câblez la sortie du nœud ET au sélecteur de condition de la structure
condition.
iii. Basculez la structure sur la condition Faux en cliquant sur les flèches à
gauche et à droite de la boîte de sélection de condition, ou en
sélectionnant directement le nom de la condition Faux dans le menu
déroulant accessible avec la flèche orientée vers le bas.
iv. Câblez les registres à décalage pour qu’ils traversent en ligne droite la
structure condition, en tirant le fil depuis la bordure gauche de la boucle
ni.com/myrio | 32
NI myRIO : Concevez des systèmes réels, rapidement
While jusqu’à la bordure gauche de la structure condition, puis vers la
bordure droite de la boucle While. Si la valeur n’est pas d’abord câblée
sur la bordure gauche de la structure condition, l’outil de câblage
automatique contournera la structure condition pour éviter de la
traverser.
v. Basculez sur la condition Vrai.
vi. Câblez le tunnel de chaque valeur booléenne au tunnel situé juste en
dessous, à l’exception du dernier tunnel à gauche qui sera câblé sur le
premier tunnel à droite.
f.
Avec cette logique, un front montant sur le signal du bouton (autrement dit,
quand l’utilisateur appuie sur le bouton) va déclencher la condition Vrai de la
structure et décaler la valeur de chaque LED à la LED suivante dans la séquence.
La LED allumée à ce moment-là transfère sa valeur à la suivante, et s’éteint en
même temps que les trois autres. Ce phénomène se produit à chaque fois qu’un
appui sur le bouton est détecté, et l’allumage de la dernière LED est transféré à
la première quand le cycle est terminé. Cependant, ce code ne fonctionnera pas
tant que NI myRIO n’aura pas interprété ces booléens comme des signaux
destinés aux LEDs.
6. Demandez aux LEDs en façade de s’allumer et s’éteindre en se basant sur la logique
créée juste avant.
a. Placez un VI Express LED sur le diagramme.
i. Cliquez-droit et naviguez vers myRIO»Onboard»LED. Placez le VI Express
LED dans le coin inférieur droit de la boucle While. Cliquez sur OK dans la
ni.com/myrio | 33
NI myRIO : Concevez des systèmes réels, rapidement
boîte de dialogue de configuration du VI Express LED pour conserver les
paramètres par défaut qui permettent de piloter les quatre LEDs en
façade.
ii. Câblez chacune des valeurs booléennes créées à l’étape précédente aux
entrées LED0, LED1, LED2 et LED3 du VI Express LED.
7. Exécutez le VI en cliquant sur la flèche dans la barre d’outils. Vérifiez que le code
fonctionne bien en appuyant sur le bouton de NI myRIO et en observant l’allumage
successif des LEDs, et le passage de la quatrième à la première en bout de cycle.
8. Pour vérifier que le code s’exécute bien sur NI myRIO et non sur l’ordinateur de
développement, cliquez-droit sur la cible NI myRIO dans l’explorateur de projet
LabVIEW et sélectionnez Déconnecter.
9. Débranchez le câble USB de NI myRIO et vérifiez que le code s’exécute encore.
10. Quand vous avez terminé, reconnectez le câble USB.
11. Dans le projet LabVIEW, sélectionnez Connecter dans le menu contextuel de la cible NI
myRIO.
12. Cliquez sur le bouton stop de la face-avant LabVIEW pour arrêter l’exécution du code.
ni.com/myrio | 34
NI myRIO : Concevez des systèmes réels, rapidement
Field-Programmable Gate Arrays
FPGAs are silicon chips that operate around a matrix of configurable logic blocks (CLBs)
connected via programmable interconnects. You can configure these logic blocks to process all
the basic logic gates that come in standard ICs and, in many cases, more complex logic. The
first commercially viable FPGAs were invented by Xilinx cofounders Ross Freeman and Bernard
Vonderschmitt in 1985. The clear advantage of the FPGA is that you can modify the hardwarelevel logic without acquiring or modifying physical hardware and ICs. This means you can
design custom logic for your system and reconfigure the FPGA to execute the logic at run time.
You develop the FPGA “personality” in a software environment and then implement the
personality on the silicon level. Due to the nature of FPGAs, individual sections of the chip that
are independent of one another can execute in true parallel.
True parallelism means that tasks running on the FPGA are truly independent and highly
deterministic. Determinism is critical in controls, robotics, and other mechatronics applications
(a typical FPGA system can be designed to react to digital inputs in as little as 25 ns [40 MHz],
and sometimes faster). Some examples of LabVIEW FPGA applications include intelligent DAQ,
ultrahigh-speed controls, specialized communication protocols, CPU task offloading to save the
processor for more complicated analysis, complex timing and synchronization, and hardware-inthe-loop testing. With the ability to react to changes in data so quickly, the FPGA help you
design industrial-quality systems and experiments without huge investments in actual industrial
equipment.
With the LabVIEW FPGA Module, the process of programming FPGAs is completely graphical
and features fully automated compilation. You design the FPGA personality using VIs from the
LabVIEW FPGA Module palette in LabVIEW. Then when you are ready to compile, LabVIEW
generates the intermediate VHDL files required by the Xilinx compiler, starts the compiler, and
passes the files to it. This produces a bitfile that is then downloaded onto the FPGA chip’s flash
memory to be read at run time. When the FPGA runs, it reads this bitfile and then reconfigures
itself per the file’s instructions.
ni.com/myrio | 35
NI myRIO : Concevez des systèmes réels, rapidement
Exercice 4 : Explorer la personnalité FPGA par défaut livrée avec NI myRIO
1. A partir de l’écran d’accueil LabVIEW, sélectionnez Create Project (Créer projet en
français).
2. Dans la fenêtre Créer un projet, sélectionnez la catégorie myRIO dans l’arborescence du
panneau de gauche.
3. Dans le panneau de droite, sélectionnez le modèle de conception myRIO Custom FPGA
Project. Le lien informations supplémentaires contient une description détaillée de
l’utilisation du modèle de conception.
4. Cliquez sur Suivant pour configurer le projet.
a. Donnez un nom approprié au projet, sélectionnez un emplacement pour
l’enregistrement, et sélectionnez l’unité NI myRIO branchée en USB.
5. Cliquez sur Terminer pour créer le projet.
6. Quand l’explorateur de projet LabVIEW a terminé de charger le projet, le poste de travail
et myRIO – 1900 (xxx.xx.xx.x) apparaissent en tant que cibles.
7. Déployez la cible NI myRIO et remarquez la nouvelle catégorie « Chassis ». Cette
arborescence apparaît sur des cibles qui permettent de cibler un FPGA. Logiquement, la
cible FPGA elle-même (« FPGA Target ») se trouve dans cette catégorie « Chassis ». Le
premier rôle du FPGA étant de gérer toutes les E/S de NI myRIO, vous retrouvez toutes
les E/S au sein de « FPGA Target ». La catégorie est organisée en répertoires pour que
l’utilisateur puisse repérer facilement l’emplacement physique de chaque nœud d’E/S.
Les deux connecteurs MXP, le connecteur MSP et les E/S sorties intégrées ont chacun
un répertoire unique, lui-même divisé en type d’E/S (analogique/numérique) et
connexions physiques. Il est possible de glisser/déposer ces nœuds d’E/S dans un VI
FPGA pour lire ou écrire à cet emplacement. N’importe quelle commande ou indicateur
de la face-avant du VI FPGA peut être écrite ou lue, respectivement, dans le VI RT.
8. Ouvrez “myRIO-1900 Customized FPGA.vi” pour visualiser le code fourni avec la
personnalité par défaut du FPGA.
9. Explorez ce code.
Remarques
 La cible FPGA a une horloge cadencée à 40 Mhz configurée dans le projet.
 Tout VI créé dans cette portion du projet est considéré comme un VI FPGA, et LabVIEW
limitera automatiquement les fonctions et types données disponibles dans le VI.
 Vous pouvez créer un tout nouveau VI FPGA ou modifier le VI FPGA par défaut.
Le VI FPGA par défaut est un bon exemple d’une gestion sûre des données d’E/S depuis le
FPGA, pour les préparer à être transférées au VI Real-Time. NI myRIO est livré avec une
personnalité FPGA par défaut qui gère toutes les entrées et sorties des connecteurs MXP et du
connecteur MSP. Le FPGA par défaut possède des E/S PWM, UART, I2C, SPI et des encodeurs
en quadrature, en nombre suffisant pour la grande majorité des applications simples sur
lesquelles travailleront les étudiants (consultez le manuel NI myRIO pour obtenir la
ni.com/myrio | 36
NI myRIO : Concevez des systèmes réels, rapidement
configuration détaillée des connecteurs). Pour simplifier grandement l’architecture des projets,
utilisez la personnalité FPGA par défaut et programmez seulement les VIs hôte de la partie
Real-Time (exécutés sur le processeur ARM sur NI myRIO) et les VIs Windows (exécutés sur la
machine de développement).
ni.com/myrio | 37
NI myRIO : Concevez des systèmes réels, rapidement
Resources and Next Steps
Accessory Kits
You can purchase accessory kits to facilitate the rapid realization of projects with the NI myRIO
device. View kit pricing and availability at ni.com/myrio/accessories.
The Starter Kit includes a battery holder, a protoboard (which plugs into the MXP ports), a wire
kit, LEDs, switches, a speaker, a microphone, a DC motor, encoders, a Hall effect sensor, and a
piezo element. This kit is intended to get a student started quickly building simple circuits and
expanding their understanding of digital and analog inputs and outputs.
The Mechatronics Kit includes all of the Starter Kit contents plus DC motors with encoders, an
ambient light sensor, an ultrasonic range finder, servo motors, a compass, a DC motor driver (H
bridge), an infrared proximity sensor, a triple axis digital output gyro, and a triple axis
accelerometer. This kit is aimed at students who are building basic robots or mechatronics
systems for their applications.
The Embedded Systems Kit includes a UART LCD screen, a digital temperature sensor, digital
potentiometers, a barometric pressure sensor, a keypad, an LED matrix, an RFID kit, and an SPI
EEPROM. This kit is intended for students building systems to run stand alone from the host
computer.
NI myRIO Project Essentials Guide
The NI myRIO Project Essentials Guide provides a multimedia learning resource for students
who are completing projects at all levels. This resource was designed to help students get
started interfacing
NI myRIO to a broad variety of sensors, actuators, and other components using LabVIEW
software. The guide breaks down wiring, I/O requirements, device theory, and programming for
over 20 different devices common to NI myRIO projects.
ni.com/myrio/project-guide
ni.com/myrio | 38
NI myRIO : Concevez des systèmes réels, rapidement
C Support for NI myRIO
NI myRIO is based on NI reconfigurable I/O (RIO) technology, which gives you the ability to
program both a processor running a real-time OS and a customizable FPGA. In addition to
LabVIEW software, the
NI myRIO processor is fully programmable in C or C++ using the default shipping personality
placed on the FPGA.
ni.com/myrio/c-support
NI myRIO Community
Connect with other NI myRIO users and view projects and example code.
ni.com/community/myrio
Next Steps
National Instruments is invested in the success of the professors and students using our
products. Now that NI myRIO has been introduced and an idea of the potential of this device is
understood, the next step is to learn more about LabVIEW and RT systems. National
Instruments offers many avenues for learning how to successfully configure hardware, write
code, and deploy it. The two most accessible are online resources intended to teach the user
the basics of LabVIEW called “Learn LabVIEW” and “Learn RIO.” You can access these
resources from ni.com/students/learn free of charge. Both “Learn LabVIEW” and “Learn RIO”
contain video tutorials and simple exercise sets that can rapidly accelerate a user’s learning
curve. These two modules are strongly recommended for all NI myRIO users.
© 2013 National Instruments. All rights reserved. LabVIEW, National Instruments, NI, ni.com, and NI
miniSystem are trademarks of National Instruments. Other product and company names listed are
trademarks or trade names of their respective companies.
ni.com/myrio | 39