-
Introduzione all’ambiente di lavoro di LabVIEW ed il modulo Lego Mindstorms Nxt
In questo articolo farò una panoramica generale sulla programmazione dei Lego NXT 2.0 tramite l’ambiente di sviluppo LabVIEW (Laboratory Virtual Instrument Engineering Workbench).
Prima di tutto è bene sapere che per poter programmare con LabVIEW gli NXT è necessario scaricare un kit aggiuntivo ed installarlo: KIT LEGO MINDSTORMS NXT 2.0.LabVIEW è diverso dai noti linguaggi di programmazione come il c, il java o il c++ in quanto è un linguaggio di tipo grafico, cioè i programmi sono scritti disegnando dei diagrammi a blocchi. Nei linguaggi di programmazione tradizionali l’esecuzione è in modo sequenziale (top-down) mentre In LabVIEW è il flusso di dati che determina l’ordine di esecuzione. LabVIEW, inoltre, è compatibile con numerosissimi di dispositivi hardware e include librerie per analisi avanzate e per la visualizzazione dei dati.
Da questa introduzione è palese che in questo contesto non dovrete scrivere nessuna riga di codice del tipo:public class RegulateTest
{
Stopwatch sw = new Stopwatch();
//build an array of motors
Motor [] m = {Motor.A, Motor.B, Motor.C};
/**
* Display program name, wait for button, then call go/
* @param args
*/
public static void main( String[] args)
{
LCD.drawString(" Reg Test", 0, 0);
Button.waitForPress();
LCD.clear();
new RegulateTest().go();
}
/**
* performs the test twice, with and without speed regulation.
*/
public void go()
{
for( int i = 0; i<3; i++)m[i].setSpeed(720);
step();
for( int i = 0; i<3; i++)m[i].regulateSpeed(false);
step();
}
...
...Ma è molto più probabile che voi vediate una cosa del genere:

Vediamo come si presenta l’ambiente di lavoro.
Creare un progetto per i Lego NXT
Per creare un progetto con cui programmare il vostro robot NXT, dopo aver installato il modulo Lego Mindstorms NXT, avviate LabVIEW e vedrete che all’inizio vi chiederà se desiderate creare un “Blank VI” oppure “Blank VI target to NXT“. Ovviamente la scelta da effettuare è la seconda.
Perché si usa il termine “VI“? La risposta è semplice: i programmi creati con LabVIEW hanno estensione VI che sta per VIRTUAL INSTRUMENTS.
Pannello frontale e diagramma a blocchi
Un programma in LabVIEW (ossia un VI) è costituito da un pannello frontale, un diagramma a blocchi e un’icona.
Il pannello frontale è la finestra che dovete utilizzare per creare l’interfaccia grafica della vostra applicazione, è in questo contesto che potrete disegnare dei pulsanti, inserire dei campi di testo atti a visualizzare, ad esempio, il valore letto da alcuni sensori, creare dei grafici, inserire delle immagini e molto altro ancora!Gli ingressi in LabVIEW vengono chiamati indicatori mentre le uscite controlli.
La finestra da utilizzare per programmare la vostra applicazione è denominata diagramma a blocchi: attenzione labVIEW è un linguaggio di tipo grafico comandato dal flusso dei dati quindi non è necessario scrivere il codice ma bensì utilizzeremo dei blocchetti che collegheremo ad altri e cosi via. Quindi è una naturale conseguenza che questo ambiente è adatto per quel target di persone che non adorano la programmazione testuale (in cui occorre ricordare sintassi complicate, opzioni astruse , ecc.
) ad esempio gli elettronici o i telecomunicazionisti. Ma con questo non voglio escludere ovviamente gli informatici
Poiché tutto si disegna, si hanno delle Palette: se dal pannello frontale provate a fare click destro compare la palette dei controlli e degli indicatori che potete utilizzare mentre se dal diagramma a blocchi fate click destro compare la palette delle funzioni.
Vedremo che i blocchetti che inserirete nella vostra applicazione assumeranno un colore diverso a seconda del tipo di dato che contengono: arancioni se sono di tipo reale, blu se di tipo intero etc.
Un altro aspetto da non sottovalutare è il fatto che quando si lavora nel diagramma a blocchi o nel pannello frontale il comportamento del mouse varia in base al contesto.
Il Pannello Frontale
Ecco come si presenta il pannello frontale:

Facendo click destro in un qualunque punto del foglio griglio compare la Palette suddivisa per categorie (indicatori e controlli di tipo numerico, booleano, grafici, decorazioni e molto altro).
Il Diagramma a Blocchi
Dal pannello frontale per passare al diagramma a blocchi scegliere la voce “Show Block Diagram” dal menu Window oppure premere la combinazione di tasti “CTRL+E“.
Ed ecco l’area in cui programmeremo il nostro robot tramite dei blocchetti collegati tra di loro:
Anche qui facendo click destro con il mouse compare la palette dedicata al modulo NXT: le categorie che utilizzeremo in questa guida sono NXT Programming e NXT I/O.
NXT Programming
Sotto NXT Programming troviamo tutte i blocchetti dedicati alla programmazione del robot come:
- Structures: qui troviamo i cicli while, for, gli switch etc
- Numeric: qui troviamo sommatori, moltiplicatori, divisori etc
- Boolean: qui troviamo gli operatori booleani come gli OR, AND etc
- String, Comparison, Data Manipulation etc
Ecco delle figure che rappresentano i vari blocchetti che sono presenti nelle rispettive categorie:
NXT I/O
Sotto la categoria NXT I/O troviamo tutti i blocchetti per interagire con i motori, i sensori, il display, il bluetooth e così via:

Link Utili su LabVIEW e Lego Mindstorms NXT 2.0
- A questo link potrete consultare il sito ufficiale di LabVIEW in Italiano http://www.ni.com/labview/i/
- In questo articolo spiegano che cos’è LabVIEW e quali sono le funzioni fondamentali: http://www.ni.com/labview/whatis/i/
- Video introduttivo in inglese: http://zone.ni.com/wv/app/doc/p/id/wv-1344/upvisited/y
- Ecco dove scaricare il toolkit per i LEGO MINDSTORMS NXT 2.0 http://zone.ni.com/devzone/cda/tut/p/id/4435
- Esempi di programmi e progetti NXT (con istruzioni per il montaggio dei pezzi) http://www.nxtprograms.com
- Sito ufficiale Lego Mindstorms NXT 2.0 http://mindstorms.lego.com/en-us/Default.aspx
3 Responses to “Introduzione all’ambiente di lavoro di LabVIEW ed il modulo Lego Mindstorms Nxt”
Lascia un Commento
The trackbacks and pingpacks:
- Scriviamo Hello World! sul display del LEGO NXT 2.0 con LabVIEW | Il Blog di Daniela Remogna - Pingback on 10/11/08 15:17
- Accendiamo il motore del Lego NXT 2.0 con LabVIEW | Il Blog di Daniela Remogna - Pingback on 10/11/08 15:28
- Costruiamo il primo robot con lego Mindstorms NXT e facciamolo muovere con LabVIEW! | Il Blog di Daniela Remogna - Pingback on 10/11/08 15:30
Link consigliati
Categorie
- Actionscript 3 – Trucchi e Segreti (9)
- Algoritmi e Programmazione Avanzata (3)
- Analisi di Basi di Dati (10)
- Assembler 8086 (2)
- Base di dati (1)
- Codifiche (1)
- Data Mining (4)
- E-learning (4)
- Flash (9)
- Grafica 3D (1)
- HTML5 (1)
- Intelligenza Artificiale (1)
- Lego Mindstorms NXT (6)
- Linguaggio C++ (1)
- Linux (8)
- Microsoft Office (7)
- news (1)
- Objective C (4)
- PHP (9)
- Progetti Politecnico (11)
- Programmazione ad Oggetti (Java) (1)
- Programmazione in C (16)
- Realtà Aumentata (1)
- Red5 (6)
- Seminari (3)
- SEO (3)
- Server (3)
- Sicurezza dei Sistemi Informatici (17)
- Siti Amici (1)
- Strategia e Innovazione (19)
- Tecnologie delle Basi di Dati (2)
- Utilità (11)
- web design (2)
Articoli Recenti
- Come creare una UILabel da codice senza utilizzare Interface Builder in Objective-c
- Tool per testare il codice PHP online
- LMS – An Elearning Platform with Online activation and 5 free users forever
- LMS – Piattaforma di E-learning gratis per i primi 5 utenti….
- Gli Active Record di Yii: un design pattern per rappresentare le tabelle del database in un modo orientato agli oggetti.
- Come creare un pulsante dinamicamente in Objective-c – Iphone SDK
- Actionscript 3 versus Objective-C: vediamo le principali differenze a livello di sintassi del codice
- Firewall: IP Tables un esempio su Linux
- Una piccola introduzione al framework php Yii (Yes It Is!) – installazione e creazione di una semplice applicazione web 2.0
- NetBeans IDE: JVM Creation Failed vediamo come risolverlo
- I sistemi esperti basati su regole
- I protocolli in Objective C sono molto simili alle interfacce di Java
- 19 – Strategia e Innovazione – Benefici della diversificazione: matrice BGC
- 18 – Strategia e Innovazione – Scelta del tempo di ingresso nel mercato – I FIRST MOVER
- 17 – Strategia e Innovazione – I mercati “WINNER TAKE ALL”
Tags
Acrobat Writer Gratis
Actionscript 3
addEventListener
API disegno flash
appunti del corso di strategia e innovazione
AS3
Audio Streaming
Cancellare un'immagine da un PDF
cicli ed iterazioni in c
context free grammar
esercitazioni svolte in linguaggio c
esercitazioni svolte sui trigger oracle
esercizi svolti assembler 8086
eventi in actionscript 2
eventi in actionscript 3
file system linux
Formati Video HTML5
forward-chaining
gestione della memoria dinamica in c
gestione delle liste in c
getURL
Guida Visual Basic For Application - VBA
HTML5
indicizzare un sito sui motori
jflex
LEGO MINDSTORMS NXT 2.0 - BLUETOOTH - C#
linguaggi e traduttori
Modificare un file PDF
moveTo
navigateToURL
Oracle Database 10g Express Edition
Primo programma in c
programmare robot
root
scelte ed alternative in c
setChildIndex
streaming real time
swapDepths
TextField buttonMode
vettori in c
video in as2
video in as3
Video Streaming
XML
XMLList


