keskiviikko 9. joulukuuta 2015

Lego-robotti ohjelmointityökaluna Osa 2 – Robottiohjelmointia

Olen testaillut oppilaiden kanssa Lego-robottien ohjelmointia kolmella Lego Mindstorms EV3 -laitteella. Tarkoituksena on ollut opetella robottiohjelmoinnin periaatteita.

Robottien kasaaminen oli tietenkin lähinnä hauskaa testiä sorminäppäryydelle ja hoksottimille. Toki jo siinä tulivat tutuiksi niin anturit kuin moottoritkin.

Alla video Gripp3r -mallisen robotin kasaamisesta. Oppilas teki videon eikä taustamusiikkia valitessaan kauheasti tekijänoikeuksia kunnioittanut, mutta omalla vastuullaan:



Gripp3r-ryhmä teki omasta projektistaan nettisivun: http://dhaos91.wix.com/legorobotti

Spiker-mallista robottia kasannut ryhmä (nettisivu ei näemmä enää pystyssä) teki robotin, jonka pystyy liikkumisen lisäksi ampumaan ja hyökkäämään saksilla. Alla video siitä, kuinka sen ensimmäinen koodi toimi käytännössä:



Kolmas projektiryhmä teki R3ptar -mallisen robotin, joka oli eräänlainen käärme. Heidän nettisivunsa on myös pystyssä yhä: https://r3ptarproject.wordpress.com/

Opiskelijat opettelivat aluksi ohjaamaan robottejaan mukana tulevan infrapunaohjaimen avulla. Alla videota R3ptarin infrapunaohjaamisesta:

https://vimeo.com/127123798

Toinen tapa ohjata Lego-robottia on Android/iOs -laitteella, johon on asennettu Legon softa. Ohjaaminen tapahtuu Bluetoothin välityksellä. Näiden kauko-ohjaamisten hyöty on lähinnä siinä, että oppii moottorien mekaniikan, ja siitä puolestaan on hyötyä ohjelmoinnissa. Alla video Gripp3rin Bluetooth -ohjauksesta:



Sitten tietenkin itse ohjelmointiin. Näillä ensimmäisen vuoden oppilailla ei ollut alla yhtään ohjelmointikurssia, mutta Lego-robottien kanssa se ei paljoa hidastanut. Alla kuva Gripp3rin ensimmäisestä koodista ja jokaisen palkin selitykset:




Ja seuraavaksi toki video siitä mitä koodi sai käytännössä aikaan:



Legon työkalulla rinnakkaiset toiminnot, toistot ja ehtorakenteet ovat helppoja. Järkeväksi robottiohjelmoinniksi homma muuttuu kuitenkin vasta siinä vaiheessa, kun robotin toiminta muuttuu ympäristön mukaan. Tätä varten Legon perusmallissa tulevat mukana infrapunasensori, kosketussensori ja värisensori. Infrapunasensorilla voi aistia esteen etäisyyttä. Alla koodi joka vie robottia eteenpäin, kunnes edessä näkyy este, jolloin robotti kääntyy:




Alla sitten video siitä, kuinka koodi saa robotin etsimmään uloskäyntiä huoneesta törmäilemättä:



Robotin aherrusta ei tässä kuitenkaan palkittu, koska ulospääsyä vankilasta ei ollut.

Lopuksi Gripp3riä muutettiin siten, että siihen asetettiin värisensori maata vasten. Alla oleva koodi etsii loputtomassa silmukassa valkoista ja punaista, ja vaihtaa näiden mukaan suuntaa:




Ja alla sitten video, kuinka tuolla koodilla robotti saatiin seuraamaan punaista viivaa valkoisella alustalla:



Mukana hieman nopeutusta jotta video ei olisi liian pitkä.

Näiden projektien jälkeen opiskelijalla on varmasti matalampi kynnys ohjelmoida mitä tahansa teollisuusrobottia.