LEGO Mindstorms
Da Wikipedia, l'enciclopedia libera.
Lego Mindstorms è una linea di prodotti LEGO che combinano mattoncini programmabili con motori elettrici, sensori, mattoncini LEGO, pezzi di LEGO Technic (come ingranaggi, assi e parti pneumatiche) per costruire robot e altri sistemi automatici e/o interattivi.
LEGO Mindstorms è stato distribuito commercialmente come "RIS" (Robotic Invention System - "Sistema di Invenzione Robotico"). È stato anche venduto ed utilizzato come sistema educativo, originalmente attraverso una partnership con il MIT. La versione educativa si chiama LEGO Mindstorms for Schools (LEGO Mindstorms per le scuole) e viene venduto con un software di programmazione basato sulla GUI ROBOLAB.
LEGO Mindstorms può essere usato per costruire un modello di sistema integrato con parti elettromeccaniche controllate da computer. Praticamente tutti i tipi di sistemi integrati elettromeccanici esistenti nella vita reale (come gli elevatori o i robots industriali) possono essere modellati con i Mindstorms.
C'è una grande e ben sviluppata comunità di professionisti ed amatori di ogni età coinvolti nella condivisione di progetti, tecniche di programmazione ed altre idee riguardanti LEGO Mindstorms.
L'RCX Originale dei Minstorms è stato rilasciato nel 1998. Nel 2006 LEGO è stato immesso sul mercato un sistema di nuova generazione chiamato NXT, centrato su di un nuovo mattoncino programmabile[1]. Il LEGO Mindstorms NXT è Open Source.
Indice |
[modifica] RCX
La prima generazione di Lego Mindstorms era costruita intorno ad un mattone programmabile conosciuto come RCX. L'RCX contiene un microcontroller Renesas H/300 come CPU interna e viene programmato scaricando un programma (che può essere scritto in vari linguaggi di programmazione) da un PC o da un Macintosh sulla sua RAM attraverso una speciale interfaccia ad infrarossi. Quando l'utente avvia il programma, la creazione Mindstorm può funzionare in completa autonomia, in base alle istruzioni del programma. Inoltre, due o più creazioni possono comunicare tra loro attraverso la porta ad infrarossi e collaborare o gareggiare tra di loro. Oltre alla porta ad infrarossi, ci sono anche tre porte di ingresso per i sensori e tre porte di uscita per i motori (utilizzabili anche per luci ed altro). C'è anche uno schermo LCD che mostra lo stato della batteria, lo stato delle porte, il programma in esecuzione e altre informazioni.
La versione 1.0 di RCX dispone anche di uno spinotto per un alimentatore esterno che permette di far lavorare il mattoncino continuamente, eliminando i limiti imposti dalle batterie. Gli RCX con alimentatore esterno sono molto popolari per l'utilizzo su robot "stazionari" come bracci robotici o per controllare modelli di "LEGO Treni". In quest'ultimo caso, l'RCX ha bisogno di essere programmato con il software Digital Command Control (DCC) richiesto per le operazioni automatizzate riguardanti i treni.
LEGO ha rilasciato anche un mattoncino denominato Scout, con due porte per i sensori, due per i motori, un sensore di luce integrato e senza interfaccia con il PC. Lo Scout può essere programmato, ma solitamente l'utente seleziona uno dei programmi integrati. Per programmare lo Scout, bisogna attivare il "power mode". Lo Scout può memorizzare un solo programma.
[modifica] Sensori
L'RCX utilizza sensori che gli permettono di monitorare alcuni aspetti dell'ambiente circostante. La Lego ha realizzato quattro tipi di sensore.
- Un sensore tattile, che sente se qualcosa preme contro di esso.
- Un sensore di luce, che misura l'intensità luminosa percependo anche gli infrarossi.
- Un sensore di rotazione, che misura rotazioni o angoli percependo gli incrementi di 22,5 gradi (ovvero di un sedicesimo dell'angolo giro).
- Un sensore termico, che misura la temperatura e può lavorare sia coi gradi Celsius che con i Fahrenheit in un intervallo che va dai -20° C ai +70° C (dai -3° F ai +157° F).
Ci sono anche vari sensori non LEGO ma compatibili con Mindstorms. Alcuni sono addirittura creati dagli utenti.
[modifica] Linguaggi di programmazione disponibili
Forniti da LEGO (entrambi grafici):
- RCX Code, incluso nella versione commerciale, in vendita nei negozi di giocattoli;
- ROBOLAB, basato su LabVIEW (linguaggio usato nei laboratori di ricerca in ogni campo) e sviluppato dalla Tufts University.
Linguaggi di terze parti (tutti testuali tranne actor-lab):
- C and C++ sotto sistema operativo BrickOS (precedentemente LegOS) o utilizzando QuiteC
- Java sotto sistema operativo leJOS o TinyVM
- Lego.NET
- NQC ("Not Quite C")
- OnScreen
- pbFORTH (estensione del Forth)
- PbrickDev
- PRO-BOT
- SqLego
- TclRCX
- Terrapin Logo
- Visual Basic
- XS (Un dialetto LISP simile a Scheme)
- actor-lab linguaggio grafico parallelo all'ufficiale
- C#
[modifica] Mindstorms SDK
Lego offre anche un kit per lo sviluppo di software (SDK) che permette di interagire con l'RCX attraverso qualsiasi linguaggio che supporta ActiveX. L'SDK ha il compito di ottenere i valori dei sensori, accendere e spegnere i motori, ottenere lo stato della batteria e fornire altre funzioni utili.
[modifica] Lego Mindstorms NXT
Il nuovo prodotto Mindstorms è il Mindstorms NXT, che rilasciato ad agosto 2006[1]. Il kit comprende tre servomotori (molto più grandi di quelli contenuti nella "vecchia confezione"), un sensore tattile, un sensore luminoso, un nuovo sensore sonoro, un sensore di prossimità (a ultrasuoni) e un nuovo mattoncino intelligente NXT.
Il mattoncino intelligente NXT ha un processore a 32 bit Atmel AT91SAM7S256 (classe ARM7) a 48 MHz, con 256k flash memory e 64k RAM, un coprocessore 8 bit Atmel ATmega48 (classe AVR: è un RISC a 8 bit) a 8 MHz, con 4k flash e 512 byte RAM uno schermo LCD con una risoluzione di 60x100 pixel, una porta USB 2.0 e connettività Bluetooth. Il Mindstorms NXT possiede quattro porte di ingresso e tre di uscita, ma avendo delle connessioni digitali, sarà possibile aumentarne il numero con dei moduli esterni. I connettori non sono gli stessi dell'RCX e utilizzano porte simili ad un connettore RJ-11. Integrato nel mattoncino c'è un'altoparlante da 8 kHz. Il mattoncino richiede 6 batterie di tipo AA (che potranno anche essere ricaricabili) oppure la Batteria al Litio della casa.
Il Lego Mindstorms NXT è venduto in due versioni: Retail e Education Base Set. La versione Retail è fornita col software di programmazione NXT-G. La versione educativa che è venduta con batteria al litio e caricabatterie, invece, non contiene software. Quest'ultimo è venduto separatamente, con tre licenze distinte (Personal, Classroom, Site).
[modifica] Specifiche dell'NXT
Le specifiche dell'NXT sono quindi le seguenti:
- processore a 32 bit Atmel AT91SAM7S256 (classe ARM7) a 48 MHz
- 256KB memoria flash
- 64KB RAM
- Interfaccia bluetooth v2.0+EDR (chipset CSR BlueCore 4 version 2, clockato a 26 MHz, con propri buffer RAM e firmware stack Bluelab 3.2) velocità teorica massima 0,46 Mbit/sec (per trasferire il software o per controllare il robot da remoto)
- Display LCD bianco e nero da 100×64 pixel (ogni pixel è circa 0,4×0,4mm);
- Può essere programmato su PC o Mac
- speaker mono 8 bit fino a 16 KHz;
- tastiera con quattro tasti in gomma.
- Gli utenti possono creare nuovi software con LabVIEW di National Instruments
- Porta USB 2.0
- Connettività Bluetooth per trasferire il software o per controllare il robot da remoto
- Interfaccia per permettere lo sviluppo di periferiche da parte di terze parti.
[modifica] Parti
- 519 pezzi LEGO Technic
- Tre servomotori, con sensore di rotazione integrato e feedback per il controllo di precisione
- Sensore di movimento e distanza ad ultrasuoni
- Sensore audio, con riconoscimento di tono e timbro
- Sensore luminoso, capace di rilevare colori e intensità luminosa
- Sensore tattile
[modifica] Gare ed eventi
Minibot a Catania
[modifica] Fonti
- Bagnall, Brian (2002). Core Lego Mindstorms Prentice-Hall PTR. ISBN 0130093645
- Baum, Dave (2002). Definitive Guide to LEGO MINDSTORMS, 2nd ed. APress. ISBN 1590590635.
- Erwin, Benjamin (2001). Creative Projects with LEGO Mindstorms (book and CD-ROM). Addison-Wesley. ISBN 0201708957.
- Ferrari et al. (2001). Building Robots With LEGO Mindstorms: The Ultimate Tool for Mindstorms Maniacs. Syngress. ISBN 1928994679.
[modifica] Note
- ^ a b What’s NXT? LEGO Group Unveils LEGO MINDSTORMS NXT Robotics Toolset at Consumer Electronics Show
[modifica] Collegamenti esterni
Informazioni:
- (EN) Official Lego Mindstorms (NXT)
- (EN) Sito FAQ Lego
- (EN) Official Robotics Invention System
- (EN) A summary of information and links about many aspects of Mindstorms
- (EN) Carnegie Mellon's Robotics Academy
- (EN) DCC for the RCX – Mark Riley's LDCC firmware for the RCX
- (EN) An official blog about Mindstorms NXT
- (IT) Sito amatoriale su Lego Mindstorms
- (IT) Sito amatoriale Lego Mindstorms & Robotics
- (IT) Italian Lego User Group
Linguaggi di programmazione e sistemi operativi
- (EN) Tufts University's ROBOLAB page
- (EN) leJOS - Java for the RCX Brick
- (EN) The NQC programming language
- (EN) The Transterpreter (occam runtime system)
- (EN) XS: Lisp on Lego Mindstorms
- (EN) actor-lab
Guide:
- (EN) Preparing a box to program Lego Mindstorms with c/c++ under Linux
- (EN) Preparing QuiteC on Windows
RCX's built-in H8/3292 microcontroller:
- (EN) Renesas H8/3297 Series documents (incl. H8/3292) – Aggiornamenti tecnici, manuali hardware e software, note applicative, ecc.
Mindstorms NXT:
- (EN) Wired Magazine: Geeks in Toyland – Dietro le scene del pannello utente del Mindstorms NXT
- (EN) The NXT STEP - Lego Mindstorms NXT Blog
- (IT) Sito amatoriale Lego Mindstorms NXT