”Lego-insinööri”
ITK-messuilla sain asiakkaaltamme tehtävänannoksi tutustua Lego Mindstorms tuotteeseen. Muistin, että asiakkaamme ovat jo ennestään käyttäneet ympäristöstämme löytyvää Enchanting-ohjelmointiympäristö Lego NXT-laitteiden ohjelmointiin.
Messuilta päästyäni koukkasinkin seuraavan mahdollisuuden tullen sopivaan kauppaan ja hankin toimistollemme Lego Mindstorms EV3 home -version. Olin tutustunut tuotteeseen jo ennakkoon ja todennut, että laite on päivitetty versio aiempaan NXT sarjaan verrattuna. Selvitin myös, että tässä tuotteessa olisi erillinen paikka microSD kortille, joten laitteen omaa ohjelmistoa ei tarvitse päivittää Enchanting sopivaksi.
Oikeat työkalut
Nopeasti selvisi, että Enchanting-ohjelmointiympäristö ei tue lainkaan Lego EV3 mallin laitteita. Koska Legon omaa ohjelmointiympäristöä ei ole saatavissa Linux-käyttöjärjestelmälle, oli seuraavaksi etsittävä jokin muu vaihtoehto. Tutkin eri vaihtoehtoisia ohjelmistoja, mutta kaikki vaikuttivat kuitenkin perusopetuksen näkökulmasta hieman liian haastavilta ja halusin, että käyttöliittymä olisi muistuttanut enemmän Scratch tyylistä raahattavaa käyttöliittymää.
Vihdoin etsiminen tuotti tulosta, löysin saksalaisen Fraunhofer IAIS, Googlen ja Legon yhteistyön hedelmän www.open-roberta.org sivuston. Siellä aikani etsiessäni totesin, että kyseessä on avoimella lähdekoodilla toteutettu Lego-ohjelmointiympäristö, jota voi käyttää pilvipalveluna lähes kaikilla laitteilla.
Ohjelmointi verkossa
Tutkin ensimmäisenä perusvaatimukset mitä tarvitaan, jotta palvelua voisi käyttää.
Vaatimukset: Kehittäjän omat sivut
- Lego Mindstorms EV3
- microSD kortti (min 2 Gb)
- wlan-usb sovitin
Käyttöönotto:
Varsinainen Open Robertan käyttöönotto tapahtuu seuraavasti.
- Alusta microSD kortti
- Siirretään kortille seuraavat tiedostot
- OpenRobertaFirmware-1.1.0-release.zip siirrä purettuna
- ejre-7u60-b19-ejre-7u60-fcs-b19-linux-arm-sflt-headless-07_may_2014.tar.gz
- Kytke EV3-laitteeseen USB-wlan-sovitin
- Aseta laitteeseen microSD kortti
- Käynnistä EV3
- Odotetaan asennuksen valmistumista
- Laite ilmoittaa melodialla, että se on käyttövalmis
- Langattoman verkon käyttöönotto
- Selaa painikkeilla kohtaan Wifi
- Mikäli wifi-sovittimesi on tuettu tulee lista verkoista joihin voi liittyä
- Valitse verkko ja syötä salasana
- Selaa painikkeilla kohtaan Wifi
- Ohjelmoinnin aloitus
Käyttöliittymä
Mielestäni Open Robertan käyttöliittymä on selvästi Legon omaa ohjelmointiympäristöä loogisempi ja selkeämpi. Osa syynä tähän on varmasti se, että Open Roberta käyttää Blockly käyttöliittymää, joka on tuttu vastaavanlaisissa ohjelmoinnin opetukseen tarkoitetuista ympäristöissä. Seuraavassa kuvassa on esitetty peruskoodi, jossa laite kävelee eteenpäin kunnes havaitsee esteen. Tämän jälkeen peruuttaa ja kääntyy joko oikealle tai vasemmalle.
Tein useita testejä ja mielestäni sain toimimaan kaikki ne ominaisuudet, jotka toimivat Legon omassakin ympäristössä. Ainoastaan kaukosäätimen painikkeiden ja bluetoothin käytölle ei ole vielä tukea. Tästäkin ongelmasta varmaan päästään pian, koska tein siitä tukipyynnön kehittäjille ja he ottivat sen työnalle.
Loppusanat
Open-roberta.org ympäristö on helppo lähtökohta lähteä kokeilemaan ohjelmointia Legoilla. Seuraavana vaiheena voisi olla vaikka pythonin tai JavaScript koodin suorittaminen samalla alustalla. Mielestäni Open Robertan kehittäjät ovat onnistuneet luomaan mielekkään ja helpon lähestymistavan ohjelmointiin. Robottien ohjelmoinnissa on mielestäni tärkeää, että niitä ei tarvitse nostella pöydälle uudelleenohjelmoinnin ajaksi, vaan robotit ovat turvassa lattialla tai niille suunnitellulla alustalla ja ohjelma päivitetään langattomasti.
Olemme olleet yhteydessä ohjelmiston kehittäjiin ja selvitämme mahdollisuuksia ohjelmiston tarjoamisesta omille asiakkaillemme sekä sen tulevaisuuden näkymiä. Aloitamme erittäin todennäköisesti Open robertan suomennoksen ja tutkimme oman Open Roberta -palvelun pystyttämistä, jossa se olisi käytettävissä ohjeineen suomeksi. Informoimme mahdollisesta omasta versiosta, lisäohjeista ja suomennoksista lähiaikoina.
Mikko Jokinen
Viimeisimmät kommentit