Luovaa ohjelmointia ja kokeilua TPBot-autolla

Micro:bit on alun perin Britannian yleisradioyhtiön BBC:n kehittämä ohjelmoitava kehitysalusta koulujen tietotekniikan opetukseen. Laitteen ensimmäinen versio julkaistiin vuonna 2015 ja toinen versio julkaistiin vuonna 2020.  Laitteessa on erilaisia sensoreita, joilla voi mitata magneettikenttää, kiihtyvyyttä, valoisuutta, lämpötilaa ja äänitasoa. Näihin mittaustuloksiin laite saadaan reagoimaan koodauksen avulla. Lisäksi Micro:bitissä on A- ja B-painonapit, joita voidaan myös ohjelmoida. Micro:bit voi tulostaa 5 x 5 LED-kuviota tai soittaa ääntä. Laitteen koodaus tapahtuu siten, että mennään selaimella MakeCode-sivustolle ja kytketään Micro:bit tietokoneen USB-porttiin eli muodostetaan pari tietokoneen ja Micro:bitin kesken. Kun yhteys on muodostettu, niin selaimessa tehty koodi saadaan siirrettyä ja suoritettua Micro:bitiin koodausympäristössä olevan Lataa-painikkeen avulla.

Micro:bitissä on lisäksi pinnejä. Suuret pinnit ovat nimeltään P0, P1 ja P2. Lisäksi löytyy 3 voltin ulostulopinni eli 3V-pinni, sekä maadoituspinni (GND). Näiden välissä on 20 pienempää pinniä (P3, … ,P22), joihin voi kytkeä laitteita ja erilaisia sähkökomponentteja hauenleukojen avulla. Pinnit mahdollistavat erilaisten lisälaitteiden kytkemisen: Micro:bitille on saatavana erilaisia lisälaitteita ja mittausantureita, kuten esimerkiksi auto, nosturi, drooni, robotti, peliohjain jne.

Tässä artikkelissa tutustumme Micro:bitin lisälaitteeseen nimeltä TPBot, joka on ohjelmoitava robottiauto. TPBot-autossa on kaksi isoa rengasta sivulla ja yksi pieni pallomainen kuula pohjassa. Kumpaakin isoa rengasta voidaan ohjelmoida erikseen. Laitteen etupuolella on etäisyyttä mittaavat anturit ja led-valot, lisäksi auton pohjassa on autoradan tummuutta ja valoisuutta mittaavat anturit. TPBot-auton takana on virtanappi ja paristokotelo, johon menee neljä AAA-paristoa. Markkinoilla on myytävänä myös kalliimpi TPBot-malli ladattavalla akulla. Sähkövirta laitetaan päälle virtanapista yhdellä painalluksella ja katkaistaan kahdella virtanapin painalluksella. Auton takana on myös portteja lisälaitteiden ja antureiden kytkemiseksi. Laitteen päällä on kolo, johon Micro:bit voidaan kytkeä yksinkertaisesti painamalla se pohjaan siten, että Micro:bitin led-valot tulevat eteen ja pinnit menevät koloon.

TPBot-autoa ei tarvitse erikseen koota, vaan se on heti paristojen ja Micro:bitin lisäyksen jälkeen käyttövalmis. Kun menee selaimella MakeCode-ympäristöön, TPBot-auton ohjauskomentoja ei ole valmiina, mutta ne löytyvät helposti. Mene kohtaan Laajennukset napsauttamalla sitä hiirellä, jolloin aukeaa uusi sivu. Kirjoita nyt hakukenttään TPBot ja TPBot-kuvake ilmestyy ruudulle. Kun napsautat kuvaketta hiirellä, tarvittavat komennot lisätään MakeCode-ympäristöön (Kuva 1).

Kuva 1: TPBot-auton ohjauskomentojen lisääminen MakeCode-ympäristössä.

Laitamme seuraavaksi auton liikkumaan eli teemme aluksi seuraavanlaisen koodin (Kuva 2).

Kuva 2: Koodi, jossa auto liikkuu koko ajan eteenpäin, kunnes törmää esteeseen, jolloin auto pysähtyy ja näyttää punaista valoa.

Jos haluamme, että auto liikkuu koko ajan eteenpäin, laitamme komennon Go Forward at speed 100 %, toista ikuisesti -silmukan sisälle. Käytännössä jossain vaiheessa eteen tulee este, jolloin auton pitäisi pysähtyä. Tarvitsemme siis jos-ehtolauseen, joka aktivoi pysähdyksen. Jos auton nopeus on 100 %, niin ”sonar distance” raja-arvon on hyvä olla jos-ehtolauseessa noin 20 cm, koska TPBot-auton pysähtyminen ei tapahdu kuin seinään. Suurempi nopeus vaatii suuremman reagointiajan. Nopeuden pienentyessä tämän ehdon raja-arvo voi olla myös pienempi. On kuitenkin parempi, että auto pysähtyy ennen kuin törmää esineeseen tai seinään, vaikka auton kuoren pitäisi kestää pienet kolhut, jotka johtuvat ajamisesta esteeseen. Eli nyt rakennamme ehdon, että jos auton etäisyys seinästä on alle 20 cm, niin pysähdy ja muuta valo punaiseksi, muutoin menemme täysillä eteenpäin vihreät valot palaen. Tämä koodi on esitetty kuvassa 2. Nostamme aluksi siis jos-muuten rakenteen kohdasta Logiikka työpöydälle. Muut tarvittavat komennot löytyvät MakeCoden kohdasta TPBot. Kun olet saanut koodin valmiiksi, siirrä koodi Micro:bitiin Lataa-painikkeella. Micro:bitin pitää olla silloin kytkettynä piuhalla tietokoneen USB-porttiin. Kun koodi on siirretty onnistuneesti Micro:bitiin, irrota Micro:bit tietokoneen USB-portista ja laita se TPBot-auton päällä olevaan koloon, niin että Micro:bitin led-valot tulevat eteenpäin. Kun nyt painat TPBot-auton takana olevaa virtapainiketta, auto suorittaa Micro:bitissä olevan koodin eli lähtee kulkemaan eteenpäin. Jos eteen tulee este, auto pysähtyy.

Voisinko siirtää koodin suoraan Micro:bitiin Bluetoothin avulla, jolloin Micro:bit voisi olla koko ajan kiinni TPBot-autossa? Vastaus on kyllä, jos sinulla on käytössä tabletti tai ChromeBook. Voit ladata sovelluskaupasta ilmaisen micro:bit-sovelluksen. Koulukäytössä ohjelma pitää ensin sallia ylläpidon toimesta, jos esimerkiksi lataat sen Google Play tai App Store-kaupasta. Laita Micro:bit kiinni TPBot-autoon ja laita autoon virta päälle auton takana olevasta virtapainikkeesta. Kun käynnistät micro:bit-sovelluksen, valikossa on komento Manage Connections, valitse ensin se ja sitten Pair a microbit. Paina nyt Micro:bit-laitteessa A-, B- ja Reset-painikkeet pohjaan yhtä aikaa. Kun nyt vapautat Reset-painikkeen, mutta pidät vielä A- ja B-painikkeen pohjassa, Micro:bitin 5 x 5 led-näyttöön tulee esille juuri tälle Micro:bitille ominainen kuvio. Micro:bit-sovelluksessa jatka painamalla Next ja seuraavaksi piirrä tabletin näytölle sama kuvio kuin Micro:bitissa. Kun seuraavaksi painat Next, niin langaton Bluetooth-yhteys muodostetaan. Kun testaat koodia kohdassa Create Code ja painat Lataa-painiketta, niin Bluetooth-yhteyden pitää olla tällöin päällä eli tarvittaessa joudut painelemaan A-, B- ja Reset-painikkeita Micro:bitista uudestaan aktivoidaksesi Bluetoothin. Se kumpi on parempi, Micro:bitin siirtäminen koodin kanssa tietokoneesta TPBot-autoon vai langaton Bluetooth-yhteys, riippuu tarpeesta ja käytettävissä olevista resursseista. 

Aluksi on hyvä ohjelmoida Micro:bitillä erilaisia reittejä, esimerkiksi kuinka kulkea neliö, kahdeksikko jne., jotta komennot tulevat tutuiksi. Myös parkkeeraus johonkin ruutuun on hyvä tehtävä. Seuraava askel voisi olla sellaisen koodin tekeminen, jonka avulla kierretään edessä oleva este. Tätä ideaa voi laajentaa esimerkiksi siihen, kuinka selvitä ajamalla sokkelosta läpi. Sokkeloisen radan rakentaminen laatikoista on jo sinänsä mielenkiintoinen tehtävä, testaamisesta nyt puhumattakaan. TPBot-auton pohjassa on kaksi anturia, jotka tunnistavat, ajaako auto valkoisella vai mustalla alustalla. Kun autossa olevaan Micro:bitiin lisätään seuraava koodi, niin TPBot-auto saadaan seuraamaan radassa olevaa paksua mustaa viivaa.

Kuva 3: Koodi, jolla auto saadaan seuraamaan mustaa viivaa.

Idea on siinä, että jos molemmat pohjassa olevat sensorit näyttävät mustaa, niin mennään eteenpäin eli molemmat pyörät pyörivät samalla nopeudella. Mutta jos vasemmanpuoleinen anturi näyttää valkoista ja oikea mustaa, niin auton pitää tällöin kääntyä oikealle, jotta päästään taas siihen tilanteeseen, että molemmat anturit näyttävät mustaa. Oikealle kääntyminen toteutetaan siten, että vain vasen pyörä pyörii, mutta ei oikea. Jos tilanne olisi toisin päin eli oikeanpuoleinen anturi näyttää valkoista ja vasen mustaa, niin auton pitäisi vastaavasti kääntyä vasemmalle. Tällöin oikea pyörä pyörii, mutta ei vasen. Jos käy niin, että molemmat anturit näyttävät valkoista, niin silloin olemme ajaneet ulos radalta eli emme enää seuraa viivaa ja silloin auto pysäytetään. Toinen vaihtoehto voisi olla peruutus eli laittaa molempien renkaiden nopeus negatiiviseksi. TPBot-auton mukana tulee yksinkertainen silmukan muotoinen viivarata, jossa viivan seuraamista voi testata. Haasteita tässä tehtävässä ovat TPBot-auton ajonopeus, viivan paksuus ja viivan kaarevuus. Voi myös askarrella oman viivaradan, esimerkiksi yksinkertaisesti laittamalla mustaa teippiä valkoiselle paperille. Jos haluaa viivaan kaarevuutta, autoradan osia voi myös tulostaa paperille ja koostaa näistä radan paloista haluamansa radan. Päällystämällä paperirata esimerkiksi kontaktimuovilla radasta saadaan kestävämpi.

Kuva 4: Kuvassa vasemmalla on testissä itse tehty viivarata, joka on koostettu neliönmuotoisista radan osista, jotka on tulostettu paperille ja kytketty toisiinsa. Kuvassa oikealla viivan seuraamisidea on käännetty päinvastoin eli auton pitää edetä silloin kun pohjan anturit näyttävät täysin valkeaa ja pysähtyä kun pohjan anturit näyttävät täysin mustaa. Käytännössä saamme aikaiseksi sokkelon, jossa mustaa väriä ei saa ylittää. Tässä on myös käytetty apuna mustaa teippiä sokkelon tekemiseen. Valokuvat: Tuomo Riekkinen.

Tässä yhteydessä voi tietysti kysyä, voisiko TPBot-autoa ohjailla painikkeilla kuin kauko-ohjattavaa autoa. Kyllä voi, mutta silloin tarvitaan kaksi Micro:bitiä yhtä autoa kohden. Toinen Micro:bit on kiinni autossa ja toinen on ohjaamista varten. Kahden Micro:bitin välille saadaan Bluetooth-yhteys Radio-toiminnon avulla, kun ne käyttävät samaa ryhmää. Kun ensimmäisessä Micro:bitissä painetaan A-painiketta, se lähettää radiotoiminnon avulla numeron 1 toiselle Micro:bitille, joka on kytkettynä TPBot-autoon. Kun toinen, autoon kytketty Micro:bit saa numeron 1, niin TPBot-auto kääntyy vasemmalle. Vastaavasti B-napista voisi kääntyä oikealle. Jos molemmat napit (A+B) ovat pohjassa, silloin mennään eteenpäin. Tämä idean tutkiminen ja toteuttaminen jätetään lukijalle.

Kuten nämä esimerkit osoittivat, niin muutamilla peruskomennoilla saadaan mielekästä tekemistä ja ohjelmallista ajattelua esimerkiksi valinnaisen tietotekniikan tunnille. Tärkeintä tässä on luova kokeilu ja tutkiminen. Nykyään suositellaan, että opittua tietoa myös sovelletaan käytäntöön, ja erilaiset STEM-projektit tukevat tätä. Esimerkiksi pallon kuljetus, sokkelo, radan kiertäminen mahdollisimman nopeasti tai autohippa, voisivat olla innostavia, haastavia tehtäviä TPBot-autolle. Laitetta voi kehittää eteenpäin ostamalla siihen erilaisia lisälaitteita, kuten esimerkiksi kouria, joilla voi tarttua esineisiin. TPBot-autoa voisi käyttää myös fysiikassa, kun tutkitaan ja mitataan tasaista ja kiihtyvää liikettä. Vain mielikuvitus on rajana.

Lähteet

[1] https://learn-en.readthedocs.io/en/latest/microbitKit/TPbot_tianpeng/

[2] https://makecode.microbit.org/

Kirjoittaja