Lego Mindstorms

De Viquipèdia
Dreceres ràpides: navegació, cerca

Lego Mindstorms és una línia de jocs d'experimentació centrats en la robòtica, de la casa Lego. Però les seves possibilitats en fan una eina apreciable en entorns didàctics des de l'escola primària a la universitat.

La primera versió es va distribuir el 1998 amb el nom de "Robotics Invention System" encara que aquí no se n'ha vist a les botigues i s'ha venut únicament com a equip didàctic per a escoles. La versió actual, "Lego Mindstorms NXT" va sortir el 2006 als EUA.

L'equip conté un microcontrolador, sensors i motors amb les vores cobertes dels pius típics dels elements constructius de Lego, per fer-lo una peça més en el muntatge amb material de la mateixa casa. Els connectors elèctrics dels sensors i motors incorporats, convenientment protegits, també tenen la forma del piu de muntatge Lego.

L'equip incorpora, a més, bigues, eixos, rodes i pneumàtics, iguals als d'altres kits de Lego, per a bastir el robot com un vehicle o segons el model o la imaginació ho requereixi.

El joc incideix en els aspectes de muntatge del robot, disseny en un ordinador PC del programa que haurà de seguir, descàrrega del programa al microcontrolador, i seguiment de l'execució del robot sobre una pista de paper o en lliure circulació.

Lego Mindstorms pot ser utilitzat per construir un model de sistema integrat amb parts electromecàniques controlades per un computador. Pràcticament, tot pot ser representat amb les peces tal com en la vida real, com un elevador o robots industrials.

Història[modifica | modifica el codi]

Lego Mindstorms va ser un dels resultats de la fructífera col·laboració entre Lego i l'MIT (Institut Tecnològic de Massachusetts). Aquesta associació es fa servir com a exemple de la relació entre la indústria i la investigació acadèmica que resulta molt beneficiossa per a tots dos socis.

Instal·len els primers centres de LEGO Mindstorms a Chicago, l'any 1997. En realitat fa més de 10 anys i el primer programa es va dir "Robosport", sobre les mateixes bases de joc que tenim actualment.

Construcció[modifica | modifica el codi]

Els models de muntatge proposats venen en un llibret amb el nom de Constructopedia i també en el programari per a PC que acompanya el producte.

Però, a part, hi ha tota una colla d'elements de "LEGO Educatius" que s'hi poden interconnectar de simulació mecànica (engranatges, connectors, diferencials, cardans, corretges, politges, vis-sens-fi, ...), elèctrica (commutadors, panells solars), robòtica (altres sensors i actuadors), i fins i tot pneumàtica (cilindres pneumàtics, bombes i tancs), així com un dispositiu de mesura de la velocitat.

Maquinari[modifica | modifica el codi]

Hi ha hagut diversos microcontroladors en la seva història.

RCX[modifica | modifica el codi]

peça RCX de la primera generació.

Basat en un processador H8/3297 de Renesas[1] (abans Hitachi).

NXT[modifica | modifica el codi]

Basat en el microcontrolador ARM7 de ATMEL.[2]

El software Lego Mindstorms NXT permet programar els robots NXT i descarregar els seus programes mitjançant un port USB o per connexió Bluetooth. Aquest software, que funciona fent 'clicks' i arrossegant, és impulsat per LabVIEW (National Instruments). Inclou instruccions de desenvolupament i guies de programació per iniciar-se en el món de la robòtica i la programació i d'aquesta manera, començar a desenvolupar i programar fàcilment amb robots MINDSTORMS NXT. Aquest programa va ser desenvolupat per complet en el software de programació gràfica de la indústria LabVIEW (National Instruments) per desenvolupar sistemes de control i mesura. Els usuaris de LabVIEW aprecien moltes semblances entre el Software LEGO MINDSTORMS NXT i LabVIEW perquè les dues empreses, National Instruments i LEGO van establir una col·laboració per conservar tots els elements fonamentals de la programació gràfica de LabVIEW. Així van aconseguir optimitzar la interfície de l'usuari per als usuaris d'ordinadors inexperts. Aquest fet fa factible que joves principiants i programadors experts utilitzin el software per programar els seus robots.

Microcontrolador[modifica | modifica el codi]

Comparativa [3][4]

RCX NXT EV3
Processador Hitachi H8/300

@10-16 MHz

32 KB RAM

16 KB ROM

Atmel ARM7

@48 MHz

64 KB RAM

256 KB Flash

TI Sitara ARM9

@300 MHz

64 MB RAM

16 MB Flash

Co-Processador Atmel 8-Bit AVR

@8 MHz

512 B RAM

4 KB Flash

Memòria extra 512 B RAM

4 KB Flash

ranura microSD

hasta 32 GB

Port 3 per motors i 3

per sensors

3 per motors i 4

per sensors

4 per motors i 4

per sensors

Comunicació amb el PC port IR USB 12 Mbps i

Bluetooth v2.0

USB 480 Mbps i

Bluetooth v2.1

Comunicació per Wi-Fi Amb un adaptador

USB

Comunicació amb smartphones Android Android i iOS
Pantalla LCD monocrom.

segmentada

LCD monocrom.

100x64 px

LCD monocrom.

178x128 px

Compatibilitat Motors del EV3 Ssensors i motors

del NXT

Altres Autodetecció

de dispositius

connectats

Els Lego Mindstorms NXT tenen un processador basat en l'ARM7 amb una arquitectura Von Neumann i els EV3 tenen un basat en l'ARM9 amb Harvard. En una arquitectura Von Neumann la unitat de control (UC) està connectada a una sola memòria per les dades i instruccions. En canvi, una arquitectura Harvard té una memòria per les dades i una altra per les instruccions. La Von Neumann, fins que no ha transferit totes les dades, el bus no pot llegir una altra instrucció a executar, cosa que la Harvard pot realitzar simultàniament.

Els ports de l'EV3 funcionen a 460.8 kb/s i usen el protocol UART (Universal Asynchronous Receiver/Transmitter) full-duplex. En canvi, els ports del NXT funcionen a 9'6 b/s i usen el protocol I2C (Inter-Integrated Circuit) half-duplex [4]  

A partir de la generació dels Lego Mindstorms NXT, es va decidir que per seguretat s'usarien ports rj12 modificats. D'aquesta manera els ports no són compatibles amb les entrades de telèfon, ja que treballen a un voltatge més alt. Un cable d'entrada de telèfon té la al centre i el dels Lego Mindstorms a la dreta. 

Sobre la compatibilitat entre generacions, els components del bloc RCX no és compatible amb cap. Però tots els components del NXT es poden usar amb el bloc EV3. A l'inrevés no: només els motors del EV3 (gran i mitjà) es poden usar amb el NXT com a motors normals [5] 

Tots els sensors i motors del EV3 tenen un AUTO ID únic [6] que serveix per distingir quin sensor o motor està connectat a cada port. D'aquesta manera, l'EV3 pot evitar els intents de lectura a un component que no és, que era un problema que teníem amb els models anteriors. 

Sensors[modifica | modifica el codi]

A la generació EV3 es disposa de cinc sensors diferents: color, contacte, ultrasònic, infrarrojos, giroscopi. I la generació NXT disposa dels mateixos més dos altres sensors: só i temperatura.

Sensor de colors[modifica | modifica el codi]

Aquest sensor ens permet agafar lectures dels colors i la intensitat de llum. Té una freqüència de mostreig d'1 kHz i té tres modes d'ús:[7]

  • Mode de color: pot reconèixer set colors (negre, blau, verd, groc, vermell, blanc i marró) i l'absència de color. Pot servir per ordenar objectes per colors, seguir línies de colors específics,\ldots. L'únic problema són els colors intermedis que poden ocasionar que diferents lectures d'un mateix color, s'interpretin diferent cada vegada. 
  • Mode d'intensitat de llum reflectida: pot mesurar la intensitat de llum que es reflexa. És a dir, mesura la intensitat en una escala de 0 (fosc) a 100 (clar). Pot servir per moure's dins d'una secció clara i parar-se quan sigui fosc, o viceversa. 
  • Mode d'intensitat de llum ambient: pot mesurar la intensitat de llum ambient que hi ha. Mesura la intensitat en una escala de 0 (fosc) a 100 (clar). Pot servir per programar alarmes segons la il·luminació ambient del Sol. 

Sensor de contacte[modifica | modifica el codi]

Aquest sensor ens permet saber quan hi ha algun objecte que col·lisiona amb el sensor. Té tres condicions:[7] 

  • Premut: pot reconèixer quan el sensor s'ha premut.
  • Alliberat: pot reconèixer quan el sensor s'ha alliberat d'una pressió anterior.
  • Xoc: és la unió de les dues condicions anteriors, reconeixent quan el sensor s'ha premut i després s'ha alliberat.

Sensor ultrasònic[modifica | modifica el codi]

Aquest sensor ens permet calcular la distància a objectes mitjançant onades de só que no són perceptibles per l'oïda humana. 

Pot mesurar objectes a una distància entre 1 i 250 cm, té una resolució de 0.1 cm i una precisió de +/- 1 cm.[7] Pot servir per usar-se com a un sònar o fins i tot per esperar i encendre's quan un objecte s'apropa. Exemples reals de sensors com aquests els podem trobar en portes automàtiques,... 

Sensor d'infrarojos[modifica | modifica el codi]

Aquest sensor ens permet detectar llum infraroja d'objectes i rastrejar el Transmissor d'infrarojos remot dels Lego Mindstorms EV3. Té dos modes d'ús:[7] 

  • Mode proximitat: pot mesurar aproximadament la distància a un objecte amb onades de llum reflectida. Mesura la proximitat en una escala de 0 (a prop) a 100 (lluny). Es poden mesurar objectes fins a 70 cm de distància.
  • Mode guia: pot detectar una font d'infrarojos en un canal d'entre quatre a una distància màxima de 200 cm. D'aquesta manera, el sensor pot aproximar la direcció de gir (en una escala de -25 a 25) i la distància (en una escala de 0 a 100) a l'objecte emissor.

Sensor giroscopi[modifica | modifica el codi]

Aquest sensor ens permet mesurar el moviment i els canvis en la orientació. Té una freqüència de mostreig d'1 kHz i dos modes d'ús:[7] 

  • Mode d'angle: pot mesurar angles amb una precisió de +/- 3º.
  • Mode giroscopi: pot mesurar la velocitat angular amb un màxim de 440º.

Exemples reals de sensors com aquests els podem trobar en sistemes de navegació, smartphones,... 

Sensor de só[modifica | modifica el codi]

Aquest sensor és únic dels Lego Mindstorms NXT i ens permet mesurar els nivells de soroll.

Pot mesurar els nivells de soroll en decibels (dB) i decibels ajustats (dBA).[8] La diferència entre els dB i els dBA és que els dBA s'ajusta a la sensibilitat de l'oïda humana i per tant correspon a tots els sons que pot escoltar un humà. Per contra, els dB mesura tots els sons: els que podem escoltar i els que no. 

Es poden mesurar fins a 90 dB en una escala de percentatges de 0 (fluix) a 100 (fort). D'aquesta manera, el sensor pot distingir entre sons forts i fluixos, però mai pot distingir entre tons diferents. 

Sensor de temperatura[modifica | modifica el codi]

Aquest sensor és únic dels Lego Mindstorms NXT i ens permet mesurar temperatures en les escales Celsius i Fahrenheit. 

Pot mesurar temperatures a l'escala Celsius entre -20 ºC i 120 ºC i a l'escala Fahrenheit entre -4 ºF i 248 ºF.[9]  

Motors[modifica | modifica el codi]

A la generació EV3 es disposa de dos motors diferents: el gran i el petit.

Motor gran[modifica | modifica el codi]

El motor gran ens serveix per realitzar moviments quan es necessita alta precisió. 

Aquest motor va entre 160 i 170 rpm amb una precisió d'1º. Té un parell de funcionament de 20 Ncm i un parell d'aguant de 40 Ncm. Aquest motor disposa d'un sensor giroscopi integrat que permet sincronitzar la rotació de diferents motors.

Motor mitjà[modifica | modifica el codi]

El motor mitjà ens serveix per realitzar moviments quan es necessita velocitat i temps de resposta ràpid o un tamany de robot petit. 

Aquest motor va entre 240 i 250 rpm amb una precisió d'1º. Té un parell de funcionament de 8 Ncm i un parell d'aguant de 12 Ncm. Aquest motor també disposa d'un sensor giroscopi 

Altres components[modifica | modifica el codi]

Transmissor d'infrarojos remot[modifica | modifica el codi]

Els transmissor d'infrarojos remot serveix per emetre infrarojos que el sensor d'infrarojos dels Lego Mindstorms EV3 rep. Té dos modes d'ús:[7]

  • Mode normal: el transmissor emet senyals infrarojos que el sensor rep. Es pot usar per fer que el robot rastregi el transmissor.
  • Mode remot: permet usar el transmissor con un control remot. D'aquesta manera, es pot distingir quina combinació amb quatre botons diferents s'ha premut. En total, pot distingir entre 11 configuracions diferents.

Programari[modifica | modifica el codi]

L'equip inclou un programari, adreçat als nens i nenes a partir de 12 anys, que mostra els models i el seu muntatge pas a pas i facilita la programació per blocs, amb l'aspecte de peces de trencaclosques que s'encaixen en seqüència, amb blocs que indiquen alternativa, iteració, final d'iteració, inici d'interrupció per esdeveniment i blocs que permeten llegir o reaccionar als sensors i temporitzadors, activar o aturar els motors o làmpades, i accions compostes com girar, ballar i remenar.

RoboLab[10] és el programari per a escoles, desenvolupat a partir del software LabView de National Instruments desenvolupat a la "Tufts University".[11] Permet fer diagrames amb icones per a les diferents accions sobre dels sensors, motors i làmpades, i visualitzar-hi els paràmetres de les accions com si fossin arrecades que pengen de les icones.

Per als més grans i avesats a la informàtica existeixen múltiples possibilitats:

Gordon's Brick Programmer
[12] mini entorn de programació per a l'RCX. Permet crear instruccions i programes a partir de menús.
NQC
[13] és un llenguatge similar al C que permet programar totes les funcions del controlador RCX sobre el sistema operatiu original.
BrickOS[14] (abans LegOS) 
és un sistema operatiu de substitució per al controlador RCX. Permet fer programes en diversos llenguatges per a ser compilats amb gcc[15] de gnu al codi màquina dels micros de la sèrie H8/300 de l'RCX.
LejOS
[16] és un sistema operatiu de substitució que permet programar el RCX i el NXT en llenguatge Java.

Canals d'obtenció i traduccions[modifica | modifica el codi]

És problemàtic encara, aconseguir aquest material, car Lego té molt parcel·lats els mercats de distribució i no permet que se serveixi des d'un país a un altre.

La mateixa web oficial de Lego per a la venda en línia diferencia productes per a cada país i fins fa poc no oferia aquesta gamma per a Espanya. Actualment s'ofereix[17] la gamma NXT però només en francès o anglès.

Existeix un únic proveïdor de "Lego Educatius"[18] per a Espanya, que subministren una versió del software en castellà encara que acostuma a no ser l'última versió. És molt interessant la secció de complements de cara a elements mecànics, hidràulics i altres insospitats.

Una font molt interessant és el mercat de segona mà a través de Ebay.[19] Hi podeu trobar tota mena de peces o programari, paquets didàctics o col·leccions voluminoses. De vegades els elements més interessants se solen subhastar "amb tramesa només dins el país de l'ofertant" i no apareixen a la llista de disponibles per al propi país (ex. Esp.); per això cal entrar en el web Ebay país per país i veure que hi ha i, en cas que només admetin lliuraments del subhastat al país d'origen, fer valer els contactes o amics allà, si val la pena.

Lego Mindstorms NXT 2.0[modifica | modifica el codi]

Lego Mindstorms NXT 2.0 és un nou kit per muntar un robot de la línia Lego Mindstorms. Actualment es pot comprar a gairebé totes les botigues de Lego en línia. Conté 619 peces i el seu nombre clau és 8.547. Costa aproximadament de 280 dòlars. Amb aquest set es llança el nou Sensor de Color RGB, RGB vol dir Vermell Verd i Blau (Per les seves sigles en anglès Red, Green, Blue).

Referències[modifica | modifica el codi]

  1. Renesas.com - fabricant del micro H8/3297 de l'RCX (anglès)
  2. NXTreme a Lego Mindstorms
  3. Edgar Tello, Tania Y. Guerrero, Vicente P. Saldivar. A review of Lego Mindstorms robotics platform for educational and research applications, 2013.
  4. 4,0 4,1 «Comparing the NXT and EV3 bricks» (en anglès). Xander Soldaat, 2013.
  5. «EV3 and NXT: Difference and Compatibility» (en anglès). Laurens, 2013.
  6. «LEGO Support» (en anglès).
  7. 7,0 7,1 7,2 7,3 7,4 7,5 EV3 Guía de uso.
  8. «Building Robots with LEGO Mindstorms NXT» (en anglès). Dave Astolfo, Mario Ferrari, Giulio Ferrari, 2007.
  9. «LEGO Education» (en anglès).
  10. Robolab a Tufts University
  11. Tufts University - Centre d'Educació mitjançant l'Enginyeria
  12. Gordon's Brick Programmer (anglès)
  13. Llenguatge "Not Quite C" per a l'RCX (anglès)
  14. BrickOS Sistema Operatiu per a l'RCX (anglès)
  15. GCC (Col·lecció de compiladors del projecte GNU (anglès)
  16. LejOS sistema operatiu per a la programació en Java (anglès)
  17. Lego Mindstroms en línia (anglès)
  18. Distribuïdor oficial de "Lego Educatius" (castellà)
  19. Ebay - productes Mindstorms disponibles per a Espanya (anglès)

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Lego Mindstorms Modifica l'enllaç a Wikidata