Lego Mindstorms

Allikas: Vikipeedia
Lego Mindstorms NXT kaugusandur

Lego Mindstorms on tooteseeria, millest saab ehitada erinevaid eesmärke täitvaid roboteid. Komplekti kuuluvad programmeeritav juhtplokk (inglise keeles Brick), mitmed andurid, mootorid ning Lego ehitusosad seeriast Lego Technics. Tooteseeriat arendab MIT Meedia Labor[1] (MIT Media Lab), mis alustas oma koostööd ettevõttega Lego Group 1985. aastal.

Kõige rohkem kasutatakse seeriat Lego Mindstorms õppevahendina, et koolitada õpilasi ja tudengeid. Eestis edendab Lego Mindstormsi kasutamist Kooliroboti projekt[2], mille eestvedajateks on Tiigrihüppe Sihtasutus, Tartu Ülikool ning MTÜ Robootika.[3]

Nimi "Mindstorms" pärineb raamatust "MINDSTORMS: Children, Computers, and Powerful Ideas", mille autoriks on Seymour Papert.[4] [5] Lego Mindstorms NXT nimi tuleneb ingliskeelsest sõnast next, mis tähendab eesti keeles "järgmine".[6]

Robotics Invention System[muuda | redigeeri lähteteksti]

RCX[muuda | redigeeri lähteteksti]

Esimese generatsiooni RCX programmeeritav juhtplokk (inglise keeles Brick).

Esimese generatsiooni Lego Mindstorms kannab nime Robotics Invention System (RIS).[7] Vastavasse komplekti kuulub juhtplokk RCX (Robotic Command eXplorer).

Riistvara[muuda | redigeeri lähteteksti]

Juhtplokil on 8-bitine Renesas H8/3292[8] mikrokontroller, 16 kB suurune püsimälu ja 32 kB suurune muutmälu (RAM).[9] Püsimälus paikneb baasvahetussüsteem ehk BIOS.[10] Muutmälus asub programmi püsivara ja kasutajate loodud programmid. Seadme programmeerimiseks tuleb kasutaja loodud programm spetsiaalse infrapunaliidese abil juhtploki mällu üles laadida. Juhtplokki saab programmeerida, kasutades selleks programmeerimiskeeli, nagu RCX Code ja NXC. Erinevate programmeerimiskeelte kasutamiseks on vaja vahetada RCX püsivara.

Juhtplokil on kolm sisendit anduritega suhtlemiseks ja kolm väljundit mootoritele. Väljudporte saab kasutada ka spetsiaalsete lampide kontrollimiseks. LCD-ekraanilt saab lugeda aku laetuse taset, sisend- ja väljundseadmete staatust, programmi tööolekut ning mida kasutaja loodud programm teeb. Maksimaalselt suudab ekraan korraga kuvada nelja tähemärki[11].

Versioonid[muuda | redigeeri lähteteksti]

Kokku on loodud kolm erinevat versiooni: 1.0, 1.5 ning 2.0. Versiooni 1.0 RCX juhtploki eripära on toiteadapteri olemasolu, mis lubab seadmel töötada ka ilma patareideta. Versioonides 1.5 ja 2.0 on toiteadapter eemaldatud ja seadme toide tuleb patareidelt. Seadmed kasutavad toiteks kuut AA-tüüpi 1,5 V patareid. Toiteadapteriga RCX-versioonid on populaarsed statsionaarsete robootikaprojektide loomisel, nagu robotkäed või kontrollitavad Lego rongid (Lego Train). Erinevus kolme versiooni vahel peale toiteallika on ühendamine arvutiga, kasutades selleks infrapunaliidest (IrDa). Versioonides 1.0 ja 1.5 kasutab IrDa suhtluseks DE-9 jadaväratit, versioonis 2.0 on jadavärat asendatud USB-liidesega.

Infrapunaliides ja suhtlus[muuda | redigeeri lähteteksti]

RCX on võimeline suhtlema teise RCX-seadmega, kasutades selleks sisseehitatud infrapunaliidest. Üks seadmetest hakkab täitma saatja ning teine vastuvõtja rolli. Infrapunaliidese abil on RCX võimeline suhtlema seadmetega Spybots, Scout Bricks, Lego Train ja NXT. NXT puhul on vajalik kolmanda osapoole infrapunaliidese moodul.

RCX 1.0 IrDa kandesignaali sagedus on 38,5 kHz ning RCX 2.0 IrDa kandesignaali sagedus on 76 kHz. Mõlemad versioonid suudavad saata andmeid mõlemal sagedusel.[12] Kandesignaal on genereeritud RCX sisemiste taimeritega.

RCX suhtleb arvutiga läbi jadaühenduse või USB-põhise IrDa-torni. [13] IrDa-torni toetavad operatsioonisüsteemid Windows 98, ME ja XP (32-bitine). Eksisteerib parandusprogramm, et toetada hüper-hargtöötluse tehnoloogiaga/mitmetuumalisi protsessoreid. Ametlik tugi Windows Vistale (32-bitine) puudub, aga leidub vastavaid draivereid, mis tagavad korrapärase töö. Jadaühenduse torn töötab tõrgeteta 32-bitise Windows 7 operatsioonisüsteemiga, kui kasutada kolmanda osapoole USB-jadaühenduse adapterit ja draiverit.

Unikaalne kood[muuda | redigeeri lähteteksti]

Kõikidel RCX versioonidel on unikaalne number, mis on seadmele trükitud. See oli vajalik tehnilisele toele, et luua Lego Mindstorms kasutajakontot veebilehel, mis nüüdseks on oma töö lõpetanud. Esimene toodetud RCX on tähistatud numbriga "000001".[14]

Robotics Discovery Set[muuda | redigeeri lähteteksti]

Scout[muuda | redigeeri lähteteksti]

Scout on sinist värvi juhtplokk, millel on kaks porti anduritele, kaks mootoritele ja üks sisseehitatud valgusandur. Juurde saab lisada veel ühe mootoripordi, kui kasutada seadet Micro Scout. Scouti saab osta komplektiga Robotics Discovery Set. Programmeerimiseks peab kasutaja lubama power mode´i ehk toiterežiimi. Scout suudab hoida mälus ühte programmi. [15]

Riistvara[muuda | redigeeri lähteteksti]

Scout on kasutab Toshiba mikrokontrollerit. Mälu on jaotatud 32 kB püsimälu ja 1 kB muutmälu (RAM) vahel, millest 400 B on vaba kasutajale kasutamiseks. Seadme püsivara asub püsimälus, mis ei lase kasutada teisi püsivarasid. Muutmälu väikese mahu tõttu on paljud eelmääratletud alamfunktsioonid paigutatud püsimällu. [16]

Scout toetab ainult passiivseid välisandureid, mis tähendab, et ainult puute-, temperatuuri- ja teised toidet mittevajavad andurid saavad olla kasutuses. Scout kasutab 8-bitise resolutsiooniga A/D muundurit, samas kui RCX kasutab 10-bitist A/D muundurit.[17]

Infrapunaliides ja suhtlus[muuda | redigeeri lähteteksti]

RCX saab kontrollida seadet Scout, kasutades "Send IR Message" programmiplokki. RCX tegeleb Scouti kontrollimisega, samal ajal kui Scout võtab vastu RCX-ilt käsklusi. Sel ajal on vaja seadmel Scout kõik sätted välja lülitada ehk seada režiimi off.

Scout suudab omakorda kontrollida Micro Scouti, kasutades selleks VLL-tehnoloogiat (Visual Light Link)[18] ja spetsiaalset optilist fiiberkaablit. [19]

Tarkvara[muuda | redigeeri lähteteksti]

Legol oli plaan toota eraldi lisapakett, mis lubaks kirjutada Scoutile programme, kasutades selleks arvutit ja tarkvara, nagu RCX Code. Projekti keerulisuse ja kulukuse tõttu see tühistati.

Droid Developer Kit & Dark Side Developer Kit[muuda | redigeeri lähteteksti]

Micro Scout[muuda | redigeeri lähteteksti]

Micro Scout loodi algtaseme kasutajate jaoks. Tegemist on väga limiteeritud juhtplokiga, millel on üks sisseehitatud valgusandur ja mootor. Micro Scouti juhtplokki kutsutakse inglise keeles Pbrick. Seadmel on seitse sisseehitud programmi. Seadet saab kontrollida seadmete Scout, Spybotics või RCX abil, kasutades VLL-põhist ühendust. Micro Scout (nagu Scout) baseerub Toshiba mikrokontrolleril.

Programmeerimine[muuda | redigeeri lähteteksti]

Seadet saab programmeerida VLL abil. Selleks on esmalt vaja kalibreerida valgusandur, mis seadme sisselülitamisel seadistab ära tumeduse väärtuse. Järgnevalt on vaja Micro Scout sätestada programmeerimisrežiimi, mis paneb seadme lugema VLL koode.[20] [18] Järgnevalt on võimalik anda seadmele ette kuni 15 instruktsiooni. Programmi loomisel kustutatakse vana programm mälust ja asendatakse uuega. Salvetamiseks ja jooksutamiseks tuleb vajutada Run nuppu. Salvestatud programmi ei saa muuta, vaid tuleb uuega asendada.

Komplektid[muuda | redigeeri lähteteksti]

Seadet müüdi osana, mis kuulus komplekti Droid Developer Kit (R2D2), ja hiljem ka Darkside Developer Kit (AT-AT Imperial Walker).

Lego Mindstorms NXT[muuda | redigeeri lähteteksti]

Lego Mindstorms NXT juhtplokk[muuda | redigeeri lähteteksti]

Lego Mindstorms NXT Intelligent Brick/NXT juhtplokk

NXT juhtplokk (Intelligent Brick) on RCX juhtploki järglane, sellest tuleneb ka nimi NXT ehk NEXT (järgmine). Tegemist on järgmise generatsiooni juhtplokiga, millel on kaks protsessorit – peamine on Atmel 32-bitine ARM7 protsessor AT91SAM7S256 ja teine kaasprotsessor Atmeli 8-bitine AVR protsessor ATmega48. Mäluhaldust teostatakse ARM7 256 kB välkmäluga ja 64 kB muutmäluga.[21] Kasutajale on vaba mälu umbes 120 kB. Selline kogus tuleneb sellest, et välkmälus paikneb ka püsivara. Tänu sellele on võimalik seadmele laadida peale teisi püsivarasid ja kasutada programmeerimiseks ka teisi programmeerimiskeeli. Arvutiga ühendamiseks saab kasutada USB 2.0 ühendust või Bluetooth 2.0 juhtmevaba ühendust.

Seadmel on neli sisendporti, kolm väljundporti, valjuhääldi, 100 x 64-piksline LCD-ekraan, neli nuppu. Seadet toidab kuus AA-tüüpi 1,5 V patareid või 1400 mAh laetav liitiumioonaku.[22] Andurite ja mootorite vaheliseks suhtluseks kasutatakse I²C[23][24] ja RS-485[25] protokolle. Kõikides NXT versioonides on juhtplokk sama.

Lego Mindstorms NXT 1.0[muuda | redigeeri lähteteksti]

Lego Mindstorms NXT on programmeeritav robootikakomplekt, mis toodi turule 2006. aasta juulis, asendades sellega esimese generatsiooni Lego Mindstorms komplektid. Komplekt koosneb 577 elemendist: kolmest servomootorist, neljast andurist (kaugus-, heli-, puute- ja valgusandur), seitsmest ühenduskaablist, USB-liidese kaablist ja NXT juhtplokist. Komplektis on lisaks veel NXT-G, mis on visuaalne programmeerimiskeskkond, mis võimaldab luua uusi programme ja neid ka kergesti NXT-seadmesse üles laadida. Tarkvaral on lisaks veel instruktsioonid nelja baasroboti jaoks, milleks on järgmised: Alpha-Rex (humanoid), Tri-Bot (auto), Robo-Arm T-56 (robotkäsi) ja Spike (skorpion).

Lego Mindstorms NXT õppeversioon[muuda | redigeeri lähteteksti]

Lego MINDSTORMS NXT Educational Version/õppeversioon

Lego Mindstorms NXT õppeversioon (Educational Version) on loodud koolidele, et arendada noortes huvi reaalainete vastu. Komplekti ei kuulu tarkvara, see tuleb eraldi juurde osta. Arendamise käigus on võimalik vahetada püsivara ja valida sobivaim programmeerimiskeel, millest paljud on vabavaralised ja tasuta. Õppeversiooni baaskomplekt [26] koosneb 431 elemendist, mille sisse on arvestatud erinevad andurid, mootorid, jne. Põhiosade hulka kuuluvad järgmised komponendid:

  • kolm servomootorit
  • ultraheliandur ehk kaugusandur
  • heliandur
  • valgusandur
  • kaks puuteandurit
  • laetav aku
  • aku laadija
  • ühenduskaablid
  • NXT juhtplokk
  • juhised komplekteerimiseks.

Lisaks on võimalik juurde osta lisakomplekt [27], mis täiendab komponentide kogust 817 võrra. Komplekt koosneb peamiselt erilistest detailidest (käigud, ühenduskaablid, rattad). Õppeversioon sobib hästi kokku vanemate Mindstorms-versioonidega, kuna sisaldab ka kolme erilist tagasiühilduvat ühenduskaablit.

Lego Mindstorms NXT 2.0[muuda | redigeeri lähteteksti]

Lego Mindstorms NXT 2.0 avaldati 5. augustil 2009. aastal. Komplekt koosneb 619 osast (koos mootorite ja anduritega). Versiooniga 2.0 tutvustati värviandurit, mis suudab eristatada peale musta ja valge ka erinevaid heledusi ja värve. Komplekti moodustavad [28] peale ehitusosade andurid nagu:

  • ultraheli andur, mis funktsioneerib kui kaugusandur
  • kaks puuteandurit
  • kolm servomootorit
  • värvusandur
    Mindstorms NXT Color Sensor (värvusandur).
  • NXT juhtplokk

Erinevus varasemate versioonide ja NXT 2.0 vahel on võime opereerida ka ujukomaarvudega, kui eelmised versioonid olid, vaid suutelised tegema tehteid täisarvudega. Tegemist on tarkvaralise lahendusega püsivaras ja seega saab uuendada ka NXT 1.0 versioone 2.0-ks. Tähelepanuväärne erinevus on ka selles, et uues versioonis puudub heliandur, selle asemel on lisatud veel üks puuteandur.[29]

Andurid[muuda | redigeeri lähteteksti]

Lego Mindstormsiga ühildub palju andureid, mille hulka kuuluvad ametlikud Lego ja kolmandate osapoolte andurid. Suurimateks kolmandate osapoolte andurite tootjateks on HiTechnic[30], Mindsensors[31] ja Vernier[32]. Järgnevalt on toodud Lego Mindstorms NXT standardandurid.

NXT heliandur NXT kaugusandur (ultraheli andur) NXT valgussensor NXT puuteandur NXT mootor
Capteur-sonore.jpg
Capteur-ultrasons.jpg
Capteur-photosensible.jpg
Capteur-tactile.jpg
Servo-moteur.jpg

Programmeerimiskeeled[muuda | redigeeri lähteteksti]

Lego Mindstormsi programmeerimine[33] on pigem käsukastidega programmeerimine, kui koodprogrammeerimine. Leidub ka programmeerimiskeeli, millega arendamine on raskem algajatele, kuid annavad rohkem võimalusi.

Lego ametlikud programmeerimiskeeled:[muuda | redigeeri lähteteksti]

  • RCX Code[34]RCX juhtploki programmeerimiseks loodud visuaalne programmeerimiskeel.
  • ROBOLAB[35] RCX juhtploki programmeerimiseks loodud visuaalne programmeerimiskeel. Kasutab LabView'd programmi mootoriks, arendatud Tuftsi Ülikoolis.
  • NXT-G[36] Graafiline arenduskeskkond, visuaalne programmeerimiskeel, mis tuleb kaasa NXT seeriaga (kasutab LabView'd programmi mootoriks).

Populaarsed kolmandate osapoolte keeled:[muuda | redigeeri lähteteksti]

  • GNAT GPL[37] NXT programmeerimine, kasutades Ada programmeerimiskeelt.
  • Not Exactly C (NXC)[38] Vabavaraline C programmeerimiskeelele sarnane kõrgtaseme programmeerimiskeel.
  • Not Quite C (NQC) [39] Vabavaraline C programmeerimiskeelele sarnane kõrgtaseme programmeerimiskeel.
  • RoboMind [40] Lihtne õpetlik skriptimiskeel virtuaalsetele ja füüsilistele Lego NXT robotitele.
  • pbFORTH[41] Forth Lego Mindstormsile
  • pbLua[42] Lua programmeerimiskeel Lego Mindstormsile.
  • Visual Basic [43] Visual Basic programeerimiskeel Lego Mindstormsile.
  • LeJos[44] Java programmeerimiskeel Lego Mindstormsile.

Lego Mindstorms Eestis[muuda | redigeeri lähteteksti]

Eestis tegeleb Lego Mindstormsi edendamisega Kooliroboti projekt.[45] Projekt sai alguse 2007. aasta kevadel eesmärgiga edendada inseneriteadust Eesti koolides. Projekti edendamiseks otsitakse koole, kes oleksid nõus projektis osalema.

Projekti raames korraldatakse õpetajatele kursuseid ning jagatakse õppematerjale. Robootikakomplektide ostmiseks peavad koolid leidma endale sponsorid või taotlema toetust Tiigrihüppe Sihtasutusest.

Tuntumad robootikavõistlused on:

  • Baltic Robot Sumo[46] – Eesti, Läti ja Leedu robotiehitajate võistlus, mille eesmärgiks on insenerioskuste ja tehnilise loomingulise mõtlemise propageerimine.
  • Robots Intellect[47] – Leedus toimuv Baltimaade robootikavõistlus, mille peaauhind on 9000€. Meeskond võib koosneda kuni neljast liikmest ja osaleda saab kuni kahe robotiga.
  • EstLat robotivõistlus[48] – Eesti ja Läti robotiehitajate võistlus. Võisteldakse joone järgimises, sumomaadluses ja etteantud linna läbimises.
  • FIRST Lego League Eesti[49] – Robotivõistluse eesmärgiks on lahendada 2,5 minuti jooksul erinevaid ülesandeid ja koguda võimalikult palju punkte. Ülesanneteks on tõsielulised probleemid. Probleeme lahendataks Lego Mindstorms NXT juhtploki abil.
  • Robotex[50] – Robotex on Tallinna Tehnikaülikooli, Tartu Ülikooli ja IT Kolledži korraldatav robotite võistlus. Võistlus toimub igal sügisel alates aastast 2001. Peamisteks ülesanneteks on jalgpall ja joone järgimine.

Vaata ka[muuda | redigeeri lähteteksti]

Viited[muuda | redigeeri lähteteksti]

  1. MIT Meedia Labor ja Mindstorms. MIT Media Lab, Kasutatud 10.11.2012. (inglise keeles)
  2. Kooliroboti projekt. Kasutatud 10.11.2012.
  3. Kooliroboti projekti toetajad. Kasutatud 10.11.2012.
  4. Papert, Seymour (1980), MINDSTORMS: Children, Computers, and Powerful Ideas, New York: Basic Books, ISBN 0465046290 
  5. Bumgardner, Jim. The Origins of Mindstorms. Wired, 29. märts 2007. Kasutatud 10.11.2012. (inglise keeles)
  6. NXT nimi. Robotsquare, 18. veebruar 2012. Kasutatud 10.11.2012. (inglise keeles)
  7. Latif, Usman. Lego Mindstorms: What Went Wrong?. TechUser.Net, 27. november 2005. Kasutatud 10.11.2012. (inglise keeles)
  8. Caprani, Ole. CPU The RCX CPU. 2. juuni 2006. Kasutatud 10.11.2012. (inglise keeles)
  9. Caprani, Ole. Memory The RCX Memory. 2. juuni 2006. Kasutatud 10.11.2012. (inglise keeles)
  10. RCX ROM. (PDF) Kasutatud 4.12.12. (inglise keeles)
  11. RCX LCD Display. Kasutatud 10.11.2012. (inglise keeles)
  12. RXC kandesignaal. Kasutatud 10.11.2012. (inglise keeles)
  13. RCX IrDa-torn. (PDF) Kasutatud 04.12.2012. (inglise keeles)
  14. Esimene RCX juhtploki pilt. Kasutatud 10.11.2012.
  15. Lego Mindstorms Scout Software Developer Kit. (PDF) Kasutatud 4.12.2012. (inglise keeles)
  16. Gasperi, Michael; Hempel, Ralph; Villa, Luis; Baum, Dave (2000), Extreme MINDSTORMS: An Advanced Guide to Lego MINDSTORMS, New York: Springer-Verlag New York, ISBN 1893115844 
  17. A/D muundurid, RCX ja Scout. Kasutatud 10.11.2012. (inglise keeles)
  18. 18,0 18,1 VLL. Kasutatud 10.11.2012. (inglise keeles)
  19. Scout ja Micro Scout. Kasutatud 10.11.2012. (inglise keeles)
  20. VLL koodid Micro Scout´ile. (PDF) Kasutatud 10.11.2012. (inglise keeles)
  21. Lego NXT Memory and Power Supply. (PDF) Kasutatud 10.11.2012. (inglise keeles)
  22. What's Inside the NXT Brick?. 2. august 2006. Kasutatud 10.11.2012. (inglise keeles)
  23. Toledo, Sivan. I²C ja NXT. oktoober 2006. Kasutatud 10.11.2012. (inglise keeles)
  24. Lego NXT I²C communication. 5. aprill 2009. Kasutatud 10.11.2012. (inglise keeles)
  25. RS-485 ja NXT. Kasutatud 10.11.2012. (inglise keeles)
  26. Lego Mindstorms õppeversiooni baaskomplekt. Kasutatud 10.11.2012. (inglise keeles)
  27. Lego Mindstorms NXT õppeversiooni lisakomplekt. Kasutatud 10.11.2012. (inglise keeles)
  28. Lego Mindstorms NXT 2.0 komplekti kirjeldused erinevates keeltes. Kasutatud 10.11.2012. (inglise keeles)
  29. Understanding the difference between NXT set versions. Robotsquare, 18. veebruar 2012. Kasutatud 10.11.2012. (inglise keeles)
  30. HiTechnic andurid. Kasutatud 10.11.2012. (inglise keeles)
  31. Mindsensors andurid. Kasutatud 10.11.2012. (inglise keeles)
  32. Vernier andurid. Kasutatud 10.11.2012. (inglise keeles)
  33. Lego Mindstorms programmeerimiskeeled. Kasutatud 10.11.2012. (inglise keeles)
  34. Knudsen, Jonathan. Lego MindStorms: RCX Programming. O´Reilly, 31. jaanuar 2000. Kasutatud 10.11.2012. (inglise keeles)
  35. ROBOLAB-online. Kasutatud 10.11.2012. (inglise keeles)
  36. Eestikeelne NXT-G kasutusjuhend. (PDF) Kasutatud 10.11.2012.
  37. GNAT GPL. Kasutatud 10.11.2012. (inglise keeles)
  38. NXC. Kasutatud 10.11.2012. (inglise keeles)
  39. NQC. Kasutatud 10.11.2012. (inglise keeles)
  40. RoboMind. Kasutatud 10.11.2012. (inglise keeles)
  41. pbFORTH. Kasutatud 10.11.2012. (inglise keeles)
  42. pbLua. Kasutatud 10.11.2012. (inglise keeles)
  43. Hanley, David ja Hearne, Sean. Lego Mindstorms Programming with Visual Basic. (PDF) Kasutatud 10.11.2012. (inglise keeles)
  44. Ülevaade Lego Mindstorms NXT ja Java ühildumisest. (PDF) Kasutatud 10.11.2012.
  45. Kooliroboti projekt. Kasutatud 11.11.2012.
  46. Baltic Robot Sumo kodulehekülg. Kasutatud 11.11.2012. (inglise keeles)
  47. Robots Intellect kodulehekülg. Kasutatud 11.11.2012. (inglise keeles)
  48. EstLat robotivõistluse kodulehekülg. Kasutatud 11.11.2012. (inglise keeles)
  49. Mis on FLL?. Kasutatud 11.11.2012.
  50. Robotex. Kasutatud 11.11.2012.

Välislingid[muuda | redigeeri lähteteksti]