Valid XHTML 1.0 Transitional

Projekti Arttu-3

Päivitetty viimeksi 30.1.2020


Perusasiat

Tämän projektin tarkoituksena on saada aikaan liikkuva olio, robotti, jonka nimi on Arttu-3. Arttu viittaa Arduinoon, mikä muodostaa laitteen 'aivot', ja numero 3 siihen, että tämä on komas versio Arttu-1:stä.

Arttu-3 on viereisen kuvan näköinen. Arttu-3

Artun rakenne on periaatteessa yksinkertainen: edessä on pienehkö vapaasti kääntyvä pyörä (kuten mm. toimistotuoleissa) ja takana on kaksi isompaa kumipintaista pyörää, joita pyrittävät tavalliset sähkömoottorit (Arttu-1:ssä ympäri kääntyvät servot). Sähkömoottoreilla on mahdollista saavuttaa suurempi nopeus kuin servoilla. Arttu-3:n tavoitteena onkin olla mahdollisimman nopea.

Artulla on kolme ultaräänisensoria, joiden avulla Arttu mittaa etäisyyttä eteenpäin ja molemmille sivuille. Arttu mittaa etäisyydet yhden senttimetrin tarkkuudella.

Arttu joka odottaa komentoa käyttäjältä tai suorittaa valmiiksi määriteltyä tehtävää. Komentojen käsittelystä tarkemmin jäljempänä. Valmiina tehtävänä Artulla on yksinkertainen missio: saatuaan aloituskomennon (komentojen antamisesta Artulle tarkemmin jäljempänä) Arttu käynnistää molemmat moottorit, jolloin Arttu alkaa liikkua suoraan eteenpäin. Koko ajan liikkuessaa Arttu mitaa etäisyyttä edessä olevaan seinään tai muuhun esteeseen. Kun este tulee liian lähelle niin Arttu pysähtyy.

Seuraavaksi Arttu mittaa etäisyyttä molemmille sivuille ja kääntyy siihen suuntaan, missä on enemmän 'tilaa' eli este (seinä tms.) on kauempana. Seuraavaksi Arttu sitten käynnistää moottorit ja alkaa liikkua valittuun uuteen suuntaan.

Liikkumisen aikana Arttu mittaa etäisyyttä myös sivuille. Jos Arttu joutuu liian lähelle sivuseinää, niin se tekee pinen korjausliikkeen sivuseinästä poispäin. Näin Arttu yrittää pysyä suurin piirtein kulkuväylän keskellä.

Arttu pysähtyy pysähtymiskomennolla. Komentojen antamisesta on tarkemmin jäljempänä.

Artun 'äly' on sen ohjelmistossa, jota suorittaa Artun 'aivoina' toimiva Arduino Uno -mikrokontrolleri. Arttu-3:n ohjelma on paljolti sama kuin Arttu-2:ssä, mutta Arttu-3:n ohjelma on 'edistyneempi'.


Arduino

Tietoja Arduino-mikrokontrollerista löytyy projektin Arttu-1 kohdalta.


Arttu-3:n rakenne

Arttu-3:n sähköinen kytkentäkaavio on samnalainen kuin Arttu-2:n, joten sitä ei tässä toisteta.

Etäisyyksien mittaamiseen käytetyt ultraäänisensorit (HC-SR04) liitetään kukin neljällä johdolla Arduinoon. Kaksi jodoista ovat virransyöttä varten (+5V ja maa eli 0V) ja kaksi varsinaista sensorin toimintaa varten. Trigger-johtimella käynnistetään mittaus (testiäänen lähetys) ja echo-johtimella saadaan tieto kaiun saapumisesta. Kaiun saapumiseen kuluva aika on sitten verrannollinen kaiun aiheuttaneen esteen etäisyyteen.

Arttu voisi toimia itsenäisesti alkaen suorittaa sille ladattua ohjelmaa heti virran kytkemisen jälkeen. Monipuolisemman toiminnan mahdollistamiseksi Arttuun on lisätty langattoman yhteyden tarjoama XBee-moduli, joka liitetään Arduinon 'päälle' XBee-sovitinta (shield) käyttäen. Kun vaikka PC:hen liitetään toinen XBee-sovitin (XBee USB -moduli), niin niiden välille saadaan langaton yhteys, ja Arduino ja PC-ohjelma voivat lähettää ja vastaanottaa viestejä keskenään. Tätä hyödynnetään Artun ohjaamisessa, katso jäljempänä. XBee:n lisääminen ei vaadi mitään lisäkytkentöjä Arduinossa. XBee-modulissa on pieni kytkin, jolla valitaan, käyttääkö Arduino viestimiseen USB-liitäntää vaiko XBee:tä. Arduinon ohjelmassa molemmat tavat näkyvät samoina, nimittäin sarjaliikenteenä (PC:ssä COM-porttina).


Artun ohjelma

Arttu-3 -ohjelman nykyinen versio (v0.1) löytyy täältä Arttu-3 ohjelma. Arduino-ohjelman tiedostotunniste (extension) on .ino ja ohjelmakoodia voi tarkastella melkein millä vain tekstiohjelmalla, esim. Notepad, Wordpad, Notepad++. Ohjelman perustoiminnot ovat samat kuin Arttu-1:ssä ja Arttu-2:ssa eikä niitä tässä toisteta. Ohjelman yksityiskohdat selviävät tutkimalla oheista ohjelmakoodia.

Arttu-3:n ohjelman tärkeimmät erot Arttu-1:een ja Arttu-2:een ovat seuraavat: ... kesken ...


Artun ohjaaminen (komennot)

Käynnistyttyään Artun ohjelma odottaa komentoja sarjalinjan kautta (siis USB:n tai XBee:n kautta). Komennon (merkkijonon) saavuttua ohjelma tutkii komennon ja alkaa suorittaa sen vaatimia toimia. Arttu-3:n komnennot ovat pääosin samoja Arttu-1:n ja Arttu-2:n kanssa. Eroavuudet on kerrottu jäljempänä (päivitys kesken). Periaatteessa Arttu-3 toimii Arttu-2:n komennoilla, mutta Arttu-2 ei välttämättä kaikilta osin Arttu-3:n komennoilla. Toki olisi mahdollista tehdä yhteinen ohjelma, joka tunnistaisi, onko se ladattu Arttu-1:een, Arttu-2:een vaiko Arttu-3:een ja toimisi sen mukaisesti. Tähän ei kuitenkaan ole suoranaista tarvetta (?).

... kesken ...


PC-ohjelma Controller.exe

Tässä yksinkertainen PC-ohjelma Windows-ympäristöön komentojen lähettämiseksi Artulle ja viestien vastaanottamiseksi Artulta pc_program.

Ohjelman voi ladata täältä Controller-ohjelma PC:lle. Ohjelma on .exe-muotoinen ja sen voi ajaa suoraan ilman erillistä asentamista. Tietoturvaohjelmat eivät välttämättä ole tuosta riemuissaan.

Ohjelman käynnistyttyä ensiksi pitää valita käytettävä COM-portti niiden listasta. Tämän jälkeen voidaan lähettää komentoja. Komentoa mahdollisesti edeltävä numeerinen arvo valitaan listasta 'Value' (tai none, jos numeroarvoa ei tarvita). Seuraavaksi valitaan haluttu komento listasta 'Command' ja lopuksi painetaan painiketta ' Send val+cmd', jolloin ohjelma lähettää komennon Artulle. Lähetetty komento näkyy listalla 'Sent/rcvd' kuten myös Artun lähettämät viestit. Lähetetyn komennon edessä näkyy merkintä '->', joka ilmaisee kyseessä olevan lähetetty komento. Listan voi halutessa tyhjentää painikkeella 'Clear'.

Kenttään 'Free command' voi kirjoittaa haluamansa komennon, jos vaikka 'Value' ja 'Command' -listoista ei löydy tarvittavaa yhdistelmää, tai jos haluaa lähettää useampia komentoja yhdellä kertaa. Tämä komento lähetetään painikkeella 'Send free cmd'.

Jos jokin valmis komento toimii vain Arttu-2:ssa tai Arttu-3:ssa niin siitä on maininta ao.komennon vieressä (tämän toteutus on vielä kesken).


Yhteys ulkomaailmaan

Arttu-3:een on toteutettu yhteys ulkomaailmaan (esim. PC:hen) siten, että PC eli PC:ssä ajettava ohjelma voi seurata Artun liikkumista ja mahdollisesti sen perusteella ohjata Artun toimintaa. Jo nyt Arttu voi siis edellä todetusti ottaa vastaan komentoja PC-ohjelmalta ja lähettää sille kuittauksia, mutta muuten PC-ohjelma ei puutu Artun toimintaan. Tämä uusi ominaisuus on kuitenkin vielä keskeneräinen ja täydentyy myöhemmin.

Muuta

Viereisessä videossa Arttu-3 selvittää yksinkertaisen labyrintin. Arttu-3 The Movie

Toisessa videossa Arttu-3 selvittää umpikujan. Arttu-3 and Dead End

Jos Sinulla on kysyttävää Artusta tai Arduinosta yleisemmin tai muuta kommentoitavaa, niin voit lähettää viestiä osoitteeseen cpo miukumauku funnyimagination piste com. Laita aiheeksi Arttu-3 (tai vain Arttu). Tuota postia ei seurata kovin aktiivisesti, joten vastaus voi kestää. Kärsivällisyyttä !