Tervetuloa kurssille. Tällä sivulla löydät materiaalit jotka käytetään Vantaan aikuisopiston kurssilla Robotiikaa aikuisille. Kurssissa ei ole lähtötasoa vaan voit aloittaa ihan alusta, Kubolla. Jos koodaaminen on sinulle tututtu voit siirtyä vativimpiin tehtäviin. Katso esim Arduino tai Sonic Pi.

Materiaali seuraa kolme polkua, Olen aloittelija, Osaan jotain ja Osaan ohjelmoida. Jos jokin kohta tuntuu liian helpolta tai haastavalta voit hyvin siirtyä eteenpäin.

Olen aloittelija

Tämä osio on ajateltu niille jotka eivät ole aikaisemmin olleet ohjelmoinnin tekemisissä. Jos alku on liian helppoa voit siirtyä testamaan Dashia.

Alku: Kubo

Kubo

  1. Tutustu paloihin jotka ovat pussissa.
  2. Mitä eroa on sinisillä ja punaisilla nuolilla ja paloille missä on pallo? Miten palat missä on pallo liittyy paloihin missä on nuoleja?

    Kubolla on kaksi mustipaikka koodille, yksi siniselle ja toinen punaiselle.

    Koodi mitä haluaa että Kubo muistaa sijoitetaan "pallo"-palikoiden sisään. Ohjelma aktivoidaan laittamalla Kubo samanvärisen nuolo-palikan päälle. Kubo-robootti muistaa kaksi ohjelmaa, sinisen ja punaisen.

    Kun ohjelmoi Kuboa kääntymään, oikealle tai vasemmalle, niin se kääntyy ja ottaa askeleen eteenpäin.

    Loopia toistaa tietyn pätkän koodia, rakenne on seuraavanlainen:

    Kuvassa Kubo suorittaa 4 kertaa komennot mene askeleen eteenpäin, käänny vasemalle ja ota askel.

    Kuin Kubo lukee koodia niin se loistaa violetin värisenä. Sinisenä se odottaa, vihreänä värisenä se suorittaa ohjelmaa ja jos se on punaisena sitä ahdistaa. Voi olla ettei koodissa ole käytetty loppu-palikkaa. Jos Kubo vaikuttaa siltä että Kubo ei tee sitä mitä sen pitäisi niin tyhjennä sen muistia ottamalla pää pois kehosta.

    Ohjelma voi olla noin 20 palikkaa pitkä. Pituuden voi kiertää pysähtymällä Kuboa toisen värin nuolo-palikkaan, jolloin se jatkaa tai suoraan liittämällä nuoli-palikkaa toiseen koodipätkää.

  3. Tee ohjelma missä Kubo ajaa 5 kertaa eteenpäin.
  4. Tee ohjelma missä Kubo ajaa neliössä.
  5. Palikoissa missä on kaksi nuolta mitkä menee ympäri voidaan hyödyntää loopina.
  6. Tee ohjelma missä Kubo ajaa neliötä käyttäen loopia.
  7. Ottakaa Kubo tuubista kartta. Tehtäsi on seuraava:
    1. Olet jalankulkija ja seuraatte liikennesääntöjä, kadusta yli mennään suojatietä pitkin.
    2. Aloita ruudusta B1.
    3. Siirry Kioskille (E1) ja Leipomoon (H1) yhdellä pätkällä koodia.
    4. Leipomosta siirryt Ravintolaan (C7) siten että koodissa käytät looppia.
    5. Ravintolasta siirryt Lipputangolle (I tai J 10) siten että teet ylimääräisen kierroksen istutuksien (E8) ympäri.
    6. Lipputangosta siirryt ruutuun I4 katsomaan maalausta joka on ruudussa I5 (Koska Kubo kääntyy niin kuin kääntyy, suunta ja askel , tämä saatta tuntua vaikealta. Tee se niin hyvin kuin pystyt.), ja sieltä aloitusruutuun B1. Selvitkö yhdellä koodinpätkällä? Vai jaatko koodin kahteen osaan?

Jatko: Dash ja Makeblock

Dash

  1. Ota Dash ja iPadi. iPadilla on kansio nimeltään Robotiikka tai Pelit. Käynnistä Blockly niminen sovellus.
  2. Painamalla Play nappia pääset eteenpäin sovelluksessa.
  3. Dashin saa päälle virtanapista, valkoinen nappi kyljestä.
  4. Dashin saa yhdistetty näytön oikeasta yläkulmasta.
  5. Jos haluat voit tehdä oman profiilin Manage Profilesin alla.
  6. Siirry tilaan joka näyttää tältä.

  7. Vasemmalla on ohjelmia mitkä käytetään. Mitä löydät Startin alla? Entäs Drive? Mistä löydät looppeja? Mitä löydät Variablesin alla?
  8. Variables eli muuttujat ovat tietolaatikkoja, joihin tallennetaan tietoa jota ohjelma tarvitsee myöhemmin.
  9. Blockeja (näitä värikkäitä laatikoita) saat käyttöön vetämällä ne oikealla olevaan työtilaan. Laatikot pitävät olla yhdessä jotta ohjelma on yhtenäinen.

  10. Jos haluat muuttaa muuttajan arvoa, niin paina muuntajan laatikkoa ja muuttakaa arvoa. Saat näkyviin seruaavantapainen ruutu.

  11. Tee seuraavaa:
    1. Ohjelma missä Dash ajaa eteenpäin noin 1 metri, ja peruuttaa takaisin lähtöpaikalle.
    2. Tee seuraavaksi ohjelman missä Dash ajaa neliötä loopin avulla.
    3. Lisää lopuksi Controlin alla Repeat X times tai Repeat forever palikka.
    4. Tee ohjelma joka Dash suoriittaa monta kertaa peräkkäin.
    5. Hyvä, seuraavaksi tehdään musiikkia.
    6. Kiinnitä Xylofoni ja Nuija Dashiin.
    7. Lookin alla saat Dashin pään siirtymään ylös ja alas, vasemmalle ja oikealle.
    8. Ohjelmoi Dashiä niin että hän soittaa pienen kappaleen. Muistakaa Loop- ja Repeat-palikat. Wait, joka on Controlin alla, saattaa myös olla hyödyllinen.
  12. Paljon mitä liitetään robotiikkaan koskee valintoja. Koodissa valintoja tehdään käyttäen if-lausetta (jos - niin). Jos jokin ehto toteutuu niin tee seuraavaa. Harjoitellaan if-lauseen käyttöä seuraavaksi
    1. Tee ohjelma missä Dash ajaa ympäri luokkaa osumatta esteisiin. Ajattele että jos edessä on este niin tee...
    2. Kun perusohjelma on valmis voit kehittää sitä. Miten Dash kannattaa liikkua jotta hän pääsee esteestä ohi? Sanooko tai vilkuuko Dash kun hän huomaa esteen?

Dash ja muuttujat

Muuttujat (variables) ovat tietolaatikoita mihin ohjelma tallentaa tietoa, mitä käytetään myöhemmin ohjelmassa.

  1. Muuttujat löydät Variablesin alla. Vetämällä sen työpöydälle voit muokata sitä painamalla blokkia.
  2. Normaalissa ohjelmointikielessä muuttajille annetaan nimi, Dashin Blocklyssa muuttujia on viisi: appelsiini, banaani, jne.
  3. Muutujalle tietyn arvo, tallentaa arvon jollekin toisella nimellä, antaa satunnaisarvon sekä antaa arvon jostain Dashin sensoreista.
  4. Harjoitellaan muuttajien käyttöa tekemällä seuraavat harjoitukset
    1. Arvotaan muuttujalle arvon, ja Dash ajaa niin monta neliötä (tai muita kuvioita).
    2. Itseohjautuva Dash. Kun hän huomaa esteen niin hän arpoo lähteekö hän peruttamaan oikealle tai vasemmalle.
    3. Kuten yllä mutta jos Dash huomaa että perässä on joku niin hän ajaa nopeampaa, kunnes takana ei enää ole ketään.
    4. Arvo muuttajalle arvon ja sen perusteella Dash soittaa jonkun melodian Xylofonilla.

Makeblock

  1. Makeblock koostuu paloista mitkä kiinnitetään toisiinsa magnettien avulla. Palikat ovivat joko kiinnittää suoraan toisiinsa tai sitten kaapeleiden avulla. Palikoita on kolme eri laista:
    1. vihreät antavat sähköa ja mahdollistavat kommunikaation, mm Bluetooth ja Wifi.
    2. oranssit ohjaavat, mm nappeja, ääni- ja kosteusmittarin.
    3. siniset näyttävät dataa tai tekee toiminnon, mm näyttö, LED valoja ja ohjaimia moottoreihin.
  2. Tutustu mitä laatikossa on. Jos kaipaat niin kannen sisäpuolella on ohjekirja.
  3. Jokainen piiri mitä rakennat tarvitsee sähköä. Jotta piiri toimii niin ajattele että signaali menee vasemmalta oikealle. Katso kuvaa.

  4. Rakenna yksinkertainen piiri missä käytät Power, Temp Sensor ja Display. Temp Sensor vaatii mittarin. Saatko näkyviin lämpötilan?
  5. Jotta saa piirit keskustelemaan keskenään käytetään Wireless-T ja Wireless-R palikat. Liitä ne ensin yhteen, ne vilkuu hetken, kun valo palaa ne ovat valiina käyttöön.
  6. Rakenna piiri joka koostuu kahdeosta osasta. 1. osa koostuu Power ja Knobista, 2. osassa on 8x8 LED valo. Mihin liität Wireless-R ja Wireless-T palikat jotta saadaan signaali kulkemaan 1. osasta 2. osaan?
  7. Ennen kuin otetaan ohjelmointia mukaan niin rakenna seuraavat kaksiosaiset piirit:
    1. Liiketunnstin, joka sytyttää LED-nauhaa kun PIR-sensori havaitsee liikehdintää.
    2. Kosteusilmaisin, joka pitää ääntä jos kun kosteus on tarpeeksi korkea. Testaa laittamalla kosteusilmasin veteen.
    3. Moottori jota ohjataan Light Sensorin avulla. Mitä eroa on DC Motor Driver ja Servo Driverin välillä?

Makeblock ja ohjelmointia

  1. Seuraavaksi katsotaan miten voidaan ohjelmoida ja tehdä piireistä monipuolisempia.
  2. Lataa/ käynnistä Makeblockin Neuron sovellus tabletilla.
  3. Valitse Classic Verison, se toimii Creative Lab Kitin kanssa.
  4. Käytä Bluetooth-palikaa jotta saat yhteyden piiriin.
  5. Näytön yläreunassa näet palikoita mitkä käytät. Alareunassa löydät komentoja.

  6. Vetämällä palikat alas työpöydälle voit ohjelmoida niitä.
  7. Painamalla palikan kuvaa voit muuttaa sen asetuksia. Vetämällä palikasta tai toimiosta toiseen saat ne liitettyä yhteen. Painamalla viivaa saat sen poistettua ruksista.
  8. Rakenna Bluetooth, Power, Gyro Sensor ja 8x8 LEDia käyttäen piiriä joka näyttää sydäntä jos piiri on suorassa.

  9. Rakenna jotain seuraavista ideoista
    1. Auto joka ajaa itsekseen, varoen esteitä. Saatko siihen käytettyä PIR Sensoria? Sound Sensoria? Light Sensoria?
    2. Kastelujärjestelmän joka kastelee kasvit kun multa on kuivaa.
    3. Diskovalojärjestelmää joka muuttaa valaistusta äänenkorkeuden mukaan.
    4. Mitä muuta hauskaa keksit?

Osaan jotain

Lego Mindstorms

Lego Mindstorms on Legon kehittämä robtiikka-sarja. Legot ovat monelle tuttuja jotka madaltavat kynnystä rakentaa. Lisäksi sensorit ovat laadukkaita. Lego Mindstroms voidaan ohjelmoida joko palikoilla, blokeilla tai kirjoittamalla Pyhonia.

Mottoreita kytketään portteihin A - D ja sensorit portteihin 1 - 4.

Mindstorms ja blokit

  1. Perusnäkymä Mindstorms apissa on seuraava:

  2. Paina "New Program" niin pääset alkuun.
  3. Valikot löytyvät alhaalta: Vihreän alla ohjataan mottoreita, ääntä ja näyttöä, Keltaisen alla on Loop, If-lauseet, odotus ja jos haluaa tehdä lisä funktioita, Violetin alla on kommenttityökalu.

  4. Ensimmäiseksi rakennetaan robottia joka ajaa neliötä.
    1. Mottoreita voidaan ohjata kolmella eri blokeilla.

    2. Miten ne eroaa toisistaan? Mitkä ovat niiden hyödyt ja mahdolliset rajoitteet?
    3. Kuvassa on merkattu 1. ja 2. Miten moottorin käyttäytymien muuttuu muuttamalla vaikon olevia valintoja?
    4. Miten saat robootin ajamaan etenpääin ja kääntymään? Miten saat sen ajamaan neliötä ilman ja loopin kanssa? Miten saat sen tekemään asian loputtomasti?
  5. Sitten lisätään etäisyyssensoria ja gyroa. Muokaa sitä että se ajaa itsekseen ja väistää esteitä jos ne ovat lähempänä kuin 30 cm.
    1. Miten hyödynnät gyro-sensoria kun robottii yrittää väistää estettä?
  6. Tutustutaan paine-sensoriin. Muuta robottia siten että se ajaa 30 s ympäri, väistäen esteitä, kun painenappia on painettu kerran.
  7. Tutustutaan valo-sensoriin. Muuta robottia siten että se kiertää rataa tai ajaa pöydällä putoamatta alas.
    1. Kun käytät valo-sensoria, voit mitata valon arvoja. Teet sen valitsemalla robotissa valikon missä saat esille sensoreiden raaka data, vastaavia arvoja saat näkymiin ohjelmointisovelluksessa.
    2. Miten hyödynnät sen tiedon ja ehto-lauseen?

Lego ja Python

Legon oma ohjelmointi-ympäristö käy nopeasti hankalaksi jos haluaa rakentaa suurempaa projektia. Jotta saamme muuttujat käyttöön meidän on pakko ohjelmoida kirjoittaen. Lego Mindstormseja voidaan ohjelmoida Pythonilla.

  1. Siirry osoitteeseen https://education.lego.com/en-us/support/mindstorms-ev3/python-for-ev3. MicroSD korteilla on valmiiksi EV 3 MicroPyhton Image.
  2. Tarvitset ladata ja asentaa Visual Studio Code editorin ja Lego Education EV3 lisäkirjaston.
  3. Legon omat ohjevideot on hyvä katsoa läpi.
  4. Visual Studio Code (Steps 4-5) videon lopussa on Expanding the example program. Muista tehdä se.
  5. Sivulla on Download the EV3 MicroPython Getting Started Guide (incl. API and sample code). Avaa se ja käytä apuna.
  6. Tee seuraavat tai vastaavat rakennelmat.
    1. Robotin joka ajaa neliötä.
    2. Robotin joka ajaa ympäri huonetta väistäen esteitä. Miten saat siihen liitettyä gyroa?
    3. Robotin joka valo-sensorin avulla ajaa rataa pitkin.
  7. Kappaleesta 9 ja eteenpäin löydät esimerkkejä ja sivilla 54 löydät sisällysluettelon missä on listattuna kaikki komennot mitkä voit käyttää.

Vaativampaa: Arduino

Seuraavat työt ja komponenteillä saa helposti vaativimia, ja helpompia töitä tehdyksi. Ohjelmointi tapahtuu kirjoittaen, jolloin oma tietokone on pakko olla mukana.

Arduino

Arduino on mikrokontrolleri johon liitetään komponenttejä. Vantaan Robotiikkakeskuksessa on Mehackitin kehittämä rakennussarja. Mene osoitteeseen learn.mehackit.org, rekisteröi ja valitse Elektroniikkaa ja ohjemlointia Arduinoilla (Maker Kit).

Aloita luvusta 1 ja asenna Adruino IDE.

Materiaalia kannattaa edetä järjestyksessä. Jotkut asiat vievät enemmän aikaa kuin toiset. Haaste tehtävät voit jättää tekemättä, jos siltä tuntuu. Luvut 2 - 5 luovat sen perustan mitä tarvitset tekmään projektityön, joka on luku 6. Materiaali on luotu lukion kurssille, tarkoitaa että materiaalia on noin 40 tunnille. Teet sen minkä ehdit.

Koodausta: Code.org ja Sonic Pi

Tässä osiossa löydät sivuja missä käsitellään koodausta. Näitten ratkaisemiseksi suosittelen tietokonetta.

Code.org

Code.org on nuorille suunnattu ohjelmointi sivusto. Kun lähtee rakentamaan voi hyvin aloittaa tästa. Mene Code.orgin sivulle ja aloita Kurssista 4.

Jos tehtävät tuntuvat liian helpolta niin hyppää muutaman yli kunnes löydät sinulle sopivia tehtävän.

Sonic Pi

Sonic Pi on sovellus missä koodaat musiikkia. Tyyli on vapaa, se voi olla jazzia, klassista tai vaikka EDM:ää. Lataa omalle koneelle sopiva versio ja aloita opiskelu tutoriaalin avulla.

Mitä jatkoksi?

Paljon joka liittyy robotiikkaan liittyy myös ohjelmointiin. Tietyllä alustalla rakentaminen, esim Arduino tai Raspberry Pi, vaatii tietyn ohjelmointikielen. Jotta ohjelmointi sujuu ohjelmointikielellä ei ole väliä. Seuraavilla sivuilla ovat hyviä harjoittelemaan ohjelmointia:

Lisäksi löytyy Helmetistä hyviä kirjoja jotka käsittelevät robotiikka ja tekoälyä. Ray Kurzweilin The singularity is near on klassikko. Suosittelen, kirjaa löytyy vain englanniksi. Pekka Vahvansen Kone kaikkivaltias on kriittinen muistutus meille kaikille robotiikasta ja uhkista.