Lego Mindstorms

RCX

RCX-keskuspalikalla varustetut setit tulivat kauppoihin vuonna 1998. Se ohjelmoidaan tietokoneella tarkoitusta varten kehitetyllä ohjelmalla. Ohjelmia voidaan ajaa joko suoraan tietokoneen kautta tai tallentamalla ne RCX-keskuspalikkaan, josta niitä voidaan ajaa nappia painamalla. RCX:ssä on kolme anturiporttia ja kolme sähkömoottoriporttia. RCX:n käyttämät moottorit ovat Lego Technic -sarjan käyttämiä yhdeksän voltin moottoreita. RCX on korvattu pitkälti uudella NXT-älypalikalla eikä alkuperäisiä RCX-sarjan settejä ole enää myynnissä.

NXT

NXT julkaistiin vuonna 2006. Se sisältää kolme sähkömoottoria ja neljä anturia: valo-, ultraääni-, kosketus- ja äänianturin. Lisäksi sarja sisältää ohjelmointiyksikön ja erinäisen määrän Lego Technic -osia. Myös NXT ohjelmoidaan tietokoneella. NXT:ssä on kolme ulostuloporttia, neljä sisääntuloporttia ja yksi USB-portti, jonka kautta tietokoneella ohjelmoitu ohjelma siirretään NXT:hen. NXT on varustettu Bluetoothilla. Lego julkaisi uuden 2.0 version NXT:stä vuonna 2009. NXT 2.0 ei poikkea paljoa NXT 1.0:sta, muulla tavoin kuin jollain muutetuilla rakennusosilla ja uudella valoanturin korvanneella värianturilla. Myös äänianturi korvattiin toisella kosketusanturilla.

EV3

Mindstorms EV3 malli julkaistiin syksyllä 2013 kahtena sarjana Home, sekä Education. Kuluttajille suunnatussa 31313 sarjassa on keskusyksikkö (Brick), 2 ajomoottoria, 1 keskikokoinen moottori, sekä kosketus-, väri- ja IR-etäisyysanturit. Lisäksi sarjaan kuuluu IR-majakka/kauko-ohjain. Kaikkiaan osia on 601 kpl. Koulukäyttöön suunnatussa paketissa on keskusyksikön lisäksi akku (LiIon), kaksi kosketusanturia, ultraääni- ja asentoanturit (Gyro), muttei IR-etäisyysanturia eikä kauko-ohjainta.
Keskusyksikössä on liitännät neljälle anturille, mini-USB (ohjelmointi), USB (yksiköiden rinnankytkentä/WLan), neljälle moottoriyksikölle, sekä Bluetooth-yhteys Android&iPad -laitteille. Prosessorina on ARM9 (Linux), muistia RAM 64MB+16MB Flash+microSD(max 32GB). Näyttö on kaksivärinen 178x128 pikseliä. Kouluversio tukee näytteen keräystä, jopa 1000mittausta/s.

Ohjelmoitavuus

Sekä RCX-, NXT- että EV3-ohjelmointiyksikkö ovat ohjelmoitavissa. Helpoin/ensimmäinen tapa ohjelmoida ohjelmointiyksiköitä on käyttää setin mukana tulevaa graafista ohjelmointityökalua. Ohjelmat rakennetaan erilaisista palikoista, joiden avulla voidaan määritellä esimerkiksi tiettyjen moottorien pyöriminen, anturien luvut, ynnä muuta. Näin voidaan esimerkiksi rakentaa ohjelma, joka vierittää ohjelmointiyksiköitä moottorien avulla pyörittämällä renkaita n kierrosta ja sitten lukee kosketusanturin arvon.
Lego Group on julkaissut jokaiselle ohjelmointiyksiköilleen software development kit:n, ja näiden avulla Mindstorms-fanit ovat tehneet omia ohjelmia päästäkseen eroon alkuperäisten ohjelmien rajoitteista (esim. ehtolauseiden puuttuminen). Esimerkki tällaisesta ohjelmasta on Bricx Command Center (BricxCC), jonka avulla RCX-ohjelmointiyksikköön voi lähettää C-kieleen perustuvalla NQC-kielellä tehtyjä ohjelmia. Näitä ohjelmia pyörittää ohjelmointiyksikössä sen oma sisäinen ohjelmisto (firmware).
Koska ohjelmointiyksikkö voi kommunikoida tietokoneen kanssa, myös ohjelmointiyksikön sisältö on muokattavissa. Kaksisuuntaisen yhteyden avulla on mahdollista poistaa alkuperäinen firmware ja korvata se uudella. Tunnetuimmat korvaajat ovat Lejos, joka korvaa firmwaren Java-kieltä ymmärtävällä, Brickos, joka korvaa firmwaren C-kieltä ymmärtävällä ja pbForth, joka korvaa firmwaren Forth-kieltä ymmärtävällä.
Ohjelmointiyksikön ohjelmilla, jotka on tehty kehittyneellä kielellä kuten C:llä, on mahdollista tehdä tehokkaita ehtolauseisiin perustuvia robotteja, jotka voivat reagoida tilanteisiin reaaliaikaisesti. On myös mahdollista kehittää ohjelmointiyksiköiden välistä kommunikaatiota ja työnjakoa.