Mindstorms NXT 2.0

Transcript

Mindstorms NXT 2.0
Mindstorms NXT 2.0
Scritto da Prof. S. Giannitto - Amministratore
28/10/2010
Lego Mindstorms NXT è un kit robotico programmabile rilasciato dalla Lego alla
fine di Luglio 2006.
Rimpiazza il kit Lego Mindstorms di prima generazione,che era chiamato Robotics
Invention System. Il kit base è composto da due versioni: The Retail Versione il
Education Base Set.Questi possono essere utilizzati per competere nelle gare
FIRST
Lego
League.
Viene
utilizzato
soprattutto
con
il
linguaggio
di
programmazione NXT-G, ma esiste una gran varietà di altri linguaggi come: NXC,
NBC, RobotC, e BricxCC. Una nuova versione del set, Mindstorms NXT 2.0 è
stata annunciata nel gennaio 2009; questa vanta un sensore avanzato a colori e parecchie caratteristiche migliorate.
Questo set è stato disponibile prima in Gran Bretagna e Germania nei negozi on-line Lego; successivamente (1 agosto
2009) ha iniziato a vendere negli usa ed è numerato 8547.
Il mattone NXT
Il componente principale del kit è il computer a forma di mattone chiamato "NXT brick" (brick vuol dire mattone in inglese).
Può ricevere l'input da un massimo di quattro sensori e controlla fino a tre motori elettrici, attraverso cavi RJ12, molto simili
ma incompatibili con i cavi del telefono RJ11. Il "mattone" ha un display LCD monocromatico di 100x64 pixel e quattro
bottoni che possono essere utilizzati per navigare l'interfaccia utente a menu gerarchici. Esso ha anche un altoparlante
che può riprodurre file sonori campionati a 8 kHz. La corrente è fornita nella versione per utenti normali da 6 batterie AA
(1.5 V ognuna) mentre la versione "educational" da una batteria ricaricabile Li-Ion e il relativo carica batterie.
Specifiche tecniche
microprocessore centrale a 32-bit AT91SAM7S256 @ 48 MHz (256 KB flash memory, 64 KB RAM)
microcontroller a 8-bit ATmega48 @ 4 MHz (4 KB flash memory, 512 Bytes RAM)
CSR BlueCore 4 Bluetooth controller @ 26 MHz (Memoria flash esterna da 8 MBit, 47 KB RAM)
Display LCD con matrice da 100×64 pixel
Può essere programmato usando Windows o Mac OS (NBC/NXC supporta anche Linux)
L'utente crea un programma con un nuovo software, derivato da LabVIEW di National Instruments
Una sola porta USB 1.1 a piena velocità (12 Mbit/s)
Connettività wireless Bluetooth (Classe II), per trasferire programmi all'NXT senza fili o per poter controllare il robot
remotamente (attraverso cellulare o possibilmente da un PDA)
4 porte di input, piattaforma digitale a 6 fili (una porta include una porta di espansione conforme IEC 61158 Fieldbus
Type 4/EN 50 170 (P-NET) per usi futuri)
3 porte di output, piattaforma digitale a 6 fili
Digital Wire Interface, permettendo a terze parti di sviluppare dispositivi esterni
Possono essere usati anche altri software.
Firmware e kit di sviluppo
Lego ha rilasciato il firmware per l'NXT Intelligent Brick come Open Source.
Sono disponibili parecchi kit di sviluppo che contengono documentazione per l'NXT:
Software Developer Kit (SDK), include informazioni sugli host USB drivers, formato dei files eseguibili e informazioni
sul bytecode
Hardware Developer Kit (HDK), include documentazione e schemi elettrici per NXT brick e i sensori
Bluetooth Developer Kit (BDK), documenta i protocolli usati per la comunicazione via Bluetooth
Programmazione
Programmi molto semplici possono essere scritti usando il menu dell'NXT. Programmi più complicati e file sonori
possono essere scaricati usando la porta USB o senza fili usando il Bluetooth. I file possono anche esser copiati tra due
NTX brics diversi attraverso l'interfaccia wireless, inoltre, diversi telefoni cellulari possono essere utilizzati come
telecomando per comandare da remoto il sistema. Fino a quattro NXT brick possono comunicare simultaneamente
attraverso Bluetooth quando sono eseguiti programmi generati dall'utente.
La versione retail del kit include software per scrivere programmi che possono essere eseguiti su PC e Macintosh. Il
software è basato su LabVIEW di National Instruments e fornisce un linguaggio di programmazione visuale per scrivere
semplici programmi e per farne il download sul "mattone" NXT.
NXT-G
NXT-G v1.0 è il software di programmazione che si trova incluso con l'NXT. Ci sono due differenti interfacce di
programmazione. Una è inclusa con i kit retail ed educational e l'altro può essere comprato separatamente. Questo
software è adeguato per la programmazione base, come guidare i motori, collezionare gli input dei sensori, fare calcoli e
imparare strutture di programmazione semplificate e controlli di flusso. Riportiamo qui alcuni vantaggi/svantaggi
nell'utilizzo della versione 1.0 di questo software:
Pro:
Contro:
• NXT-G è semplice da installare su
• i Programmi NXT possono essere molto più grossi di
macchine Windows XP e Vista, ed
identici programmi sviluppati con un linguaggio di
è anche supportato il Mac OS X.
programmazione fornito da terze parti (es: 12 kiB
• NXT-G può trasferire i dati via
Bluetooth o attraverso l'incluso
cavo USB.
• NXT-G fornisce un ambiente grafico
facile da usare di tipo drag and
drop.
• I grafici includono l'installazione dei
contro 2 kiB).
• I programmi prendono sostanzialmente tempi più
lunghi di caricamento rispetto programmi di terze
parti.
• Quando si creano programmi di grosse dimensioni,
NXT-G tende ad andare in crash e a perdere i dati
non salvati.
cavi che mostrano il flusso dei dati
• Il software NXT-G solitamente è lento in fase di
da blocco a blocco.
esecuzione, perfino su PC potenti.
La maggior parte di questi problemi sono stati risolti con la versione v1.1 del software NXT-G.
LabVIEW Toolkit
NXT-G è basato su LabVIEW, uno standard industriale della programmazione. Creato da National Instruments,
LabVIEW usa una programmazione a flusso di dati (data flow) per creare uno strumento virtuale. Per permettere una
programmazione più avanzata, in senso grafico, National Instruments ha rilasciato un Toolkit per l'NXT. La versione 1.0
è in vendita dal dicembre 2006. Dalla data di rilascio, sono stati trovati parecchi bugs e sono stati creati nuovi sensori.
Mentre il toolkit permette la creazione di nuovi sensori, National Instruments non ha ancora formalmente rilasciato un
aggiornamento.
Next Byte Codes & Not eXactly C
Next Byte Codes (NBC) è un semplice linguaggio open-source con una sintassi da linguaggio assembly che può essere
usato per programmare il "mattone NXT".
Not eXactly C (NXC) è un liguaggio open-source di alto livello, simile al linguaggio C, costruito a partire dal compilatore
NBC. Esso può essere anche usato per programmare il mattone NXT. NXC è essenzialmente l'NQC per l'NXT.
RobotC
RobotC è un altro linguaggio di programmazione basato sul linguaggio linguaggio C per il Vex, il First Tech Challenge, e il
Lego Mindstorms.
URBI
URBI è un linguaggio parallelo e guidato dagli eventi (event-driven) con interfacce verso il C++/Java e il Matlab. Ha
anche una architettura a componenti (UObject) per il calcolo distribuito. Urbi è compatibile con molti robot come il Nao
(vedi Robocup), Bioloid o Aibo.
leJOS NXJ
leJOS NXJ è un linguaggio di alto livello open source basato sul linguaggio Java che usa un firmware ad-hoc sviluppato dal
team leJOS.
LEJOS OSEK
Per riuscire a scrivere in C/C++, può essere usato il LEJOS OSEK, ma anche in questo caso è richiesto un firmware adhoc.
MATLAB e Simulink
MATLAB è un linguaggio di programmazione ad alto livello per il calcolo numerico, di acquisizione dati e analisi.
Esso può essere utilizzato per controllare i robot Lego Mindstorm NXT attraverso una porta seriale Bluetooth.
Simulink è un ambiente basato su MATLAB per la modellazione e la simulazione di sistemi dinamici. Utilizzando
Simulink, un utente è in grado di progettare algoritmi di controllo, generare automaticamente il codice C per questi
algoritmi, e scaricare il codice compilato su Lego Mindstorm NXT.
FLL NXT Navigation
FLL Nxt Navigation è un programma open source per aiutare i movimenti sul tavolo della competizione FLL (First Lego
League). Usa file NXT-G e .txt per scrivere programmi.
Sensori
Questo è quello che è incluso nel kit base del Lego Mindstorms:
Tre identici servo motori insieme ad ingranaggi di riduzione, assemblati con encoder di rotazione ottici interni che
misurano la loro rotazione con un alto grado di accuratezza.
Un sensore touch che rileva se è premuto, urtato, o rilasciato. Il pulsante arancione Enter e il pulsante grigio destro e
sinistro possono essere programmati per funzionare come sensori. Nel software di programmazione NXT-G, un
valore 0 è dato quando non viene premuto, e un valore di 1 è dato se è premuto.
Un sensore di luce che rileva il livello di luce in una direzione, e comprende anche un LED per l'illuminazione di un
oggetto. Il sensore di luce in grado di percepire la luce ambientale con il LED impostato su off, oppure in grado di
percepire la luce riflessa, con il LED impostato per generare luce.
Un sensore sonoro che ha un microfono che può essere utilizzato per rilevare l'ampiezza di un suono. Utilizzando il
sensore di suono, è possibile programmare un robot a muoversi quando si applaude
Un sensore ad ultrasuoni in grado di misurare la distanza tra il sensore e un ostacolo, e di rilevare il movimento. Può
mostrare la distanza sia in centimetri che in pollici. La distanza massima che può misurare è di 233 cm con una
precisione di 3 centimetri.
Questi pezzi non sono inclusi nel kit Lego Mindstorms NXT base e possono essere acquistati separatamente:
Un sensore di temperatura (Termometro) che misura sia in gradi Celsius che in gradi Fahrenheit
Compagnie terze costruiscono anche altri tipi di sensori venduti da Lego
I sensori vengono assemblati e programmati. Nel software Lego Mindstorms, si può decidere cosa fare con le
informazioni che provengono dai sensori (per esempio, è possibile programmare il movimento del robot in avanti fino a
toccare qualcosa).
Lego vende anche un adattatore per la linea di prodotti Vernier. Vernier produce dispositivi per la raccolta dei dati e
relativo software per l'uso in materia di istruzione.
Parti
Inclusi nel kit base:
519 parti LEGO Technic (e parti Bionicle, incluse le tenaglie Visorak)
NXT Intelligent Brick
Tre servo motori
sensore ad ultrasuoni per la distanza ed il movimento
sensore del suono, con modelli sonori
sensore della luce, misura l'intensità della luce
Sensore del tatto (pressione/rilascio/collisione)
Inclusi nel set base education:
431 parti LEGO Technic tra cui:
NXT Intelligent Brick
Batterie ricaricabili al litio
3 servo motori
1 sensore ad ultrasuoni per la distanza ed il movimento
1 sensore del suono, (non nel modello 8547 2.0)
1 sensore della luce, misura l'intensità della luce (nel modello 2.0 gestisce anche i colori)
2 Sensori del tatto (pressione/rilascio/collisione)
3 cavi converter, per usare i sensori ed i motori del Mindstorms RIS 2.0 con il "mattone NXT" (ognuno 39cm)
7 cavi di connessione (uno da 20cm, quattro da 35cm, due da 50cm)
3 luci
Parti addizionali vendute separatamente:
Sensore bussola
Sensore dei colori
Sensore accelerometro
Ricerca ad infrarosso
Sensore giroscopico
Sensore per comunicazione ad infrarossi
Adattatore per sensori Vernier
Più informazioni possono essere trovate su Sito di Lego Mindstorms
Tutti gli esistenti libri Lego Mindstorms NXT possono essere trovati presso Repository dei libri Lego Mindstorms NXT
Sito della FAQ di Lego
Collegamenti esterni
Lego Mindstorms Home Page
Lego Mindstorms NXT su Open Directory Project
Mindstorms su Open Directory Project