Varmasti jokaisen nörtin haaveisiin kuuluu oman robotin rakentaminen. Mitäpä jos kertoisin, että se on helpompaa, kuin moni luulee? Jopa minäkin osaan ohjelmoida ledit vilkkumaan haluamallani tavalla. Lisää koodausta ja saan nallen heiluttamaan ommeltua puukkoa kuin Norman Bates. Pienellä lisäharjoituksella voin rakentaa itselleni oman robotti-imurin, josta olen haaveillut.
Suomessa ei taida olla kovin montaa korkeakoulua, joissa opetetaan ohjelmointia arduinolle. Minä opiskelen yhdessä sellaisessa. HAAGA-HELIAn ammattikorkeakoulussa on yksi 3 opintopisteen kurssi, jolla sitä opetetaan. Mielestäni aivan liian vähän, sillä ainakin itse koen suurta innostusta kun se valo alkaa vilkkua.

Arduino, eli robottisi aivot
Lähde: http://en.wikipedia.org/wiki/File:Arduino_001.jpeg
Arduinolle ohjelmoimisen aloittaminen on helppoa, mutta vaatii hieman rahaa. Onneksi komponentit eivät ole kalliita. Arduinon kehitysympäristön voi ladata mille tahansa koneelle, mutta se toimii parhaiten linux-alustalla. Windowsille arduinon asentaminen vaatii erillisten ajureiden hankkimista, mutta ei sen suurempaa. Koodikieli perustuu c-kieleen, tosin sitä ei tarvitse osata ennalta. Kehitysympäristöstä löytyy myös paljon esimerkkikoodeja, tuleepa mukana myös ohjeet peruskomentoihin.
Arduinon lisäksi tarvitaan erilaisia sensoreita, riippuen omasta käyttötarkoituksesta. Esimerkiksi QTI-sensorilla mitataan tummien ja vaaleiden pintojen valoisuutta infrapunan avulla. Sensoreihin liittyviä esimerkkikoodeja löytyy helposti googelttamalla ja niitä muokkaamalla sensorin saa esimerkiksi sytyttämään ledejä.
Allaolevalla videolla näkyy kuinka FlexiForce-painesensori toimii. Sensori mittaa jännitettä ja sytyttää valon tietyn jännitteen perusteella.
Arduinolla saa tehtyä kaikkea hienoa. Omia varashälyttimiä, kiroilevia pehmoleluja, pelejä… Oikeastaan oma mielikuvitus on vain rajana. Englannin kielistä apua arduinon aloittamiselle löytyy vaikka kuinka paljon. Suomeksi tietoa kaipaaville suosittelen Tero Karvisen kirjaa Sulautetut – opi rakentamaan robotteja ja muita sulautettuja järjestelmiä.
Suomessa ei taida olla kovin montaa korkeakoulua, joissa opetetaan ohjelmointia arduinolle. Minä opiskelen yhdessä sellaisessa. HAAGA-HELIAn ammattikorkeakoulussa on yksi 3 opintopisteen kurssi, jolla sitä opetetaan
Aijaijai… (naamani vääntyy Dr Strangelove- tyyppiseen hymyyn) että suomessa on vähän korkeakouluja, joissa opetetaan arduinon käyttöä. Tottahan tuo, on myös totta että suomessa on myös aika vähän korkeakouluja, joissa opetetaan kertotaulua.
Kun ohjelmoinnin perusteet, ymmärrys digitaalitekniikasta, tietokoneen arkkitehtuurista yms muusta on hallussa.. käy sulautettuihin perehtyminen ilman että erityisemmin perehdyttäisiin johonkin arduinoon.
Siis vaikka arduino on hintaansa nähden tehoton, arduinon kehitysympäristö on lapsellinen, kääntäjä luo turhaa overheadiä, arduinoon ei saa kunnon reaaliaikakäyttöjärjestelmää (freeRTOS) ja pinnit loppuu tosikäytössä kesken, täytyy tosiaan myöntää että arduino sopii tosiaan matalan kynnyksen protoiluun,
Tosiammattilaisen silmissä arduino on kuitenkin samanlainen “harrastelijamainen” komponentti kuin pahamaineinen NE555 (ja sen sukulaiset).
(oma huomautus: oikei joku on yrittänyt jotain freertos rävellystä http://code.google.com/p/duinos/)
Arduinon kanssa puuhastellessa, kannattaa muistaa että sulautettujen maailma ulottuu pidemmälle kuin pelkkä arduino. Arduino rajoittaa liikaa elämää. Ymmärtääkseni Arduino esimerkiksi tukee tietyn pinnin tilan muutoksen triggaamaa keskeytystä.. Mutta ei esim ajastimen muuttamista laskuriksi joka kasvaa pinnin tilan muutoksista. (mahdollista tehdä taajuuslaskuri, vaihtoehtoina laske tietty aika pulsseja tai sitten mittaa aika mikä kestää laskurin ylivuotoon).
Mikrokontrollerien ohjelmoinnin hienous on raudan tarjoamissa toiminnallisuusissa. Oli se sitten ajastimeksi tai laskuriksi käskytetty kellolohko, UART-sarjaliikennelähetin/vastaanotin, SPI-väylä, PWM generaattori. Sulautetut on muutakin kuin GPIO-pinnin nitkutusta ja inputin tilan pollaamista.
Ja mikrokontrollerien lisäksi on olemassa DSP-prosessorien maailma. . Ja sitten tosi koville äijjille ja akoille FPGA. (RINNAkkaisuus on seksikästä)
Myös assembler ohjelmointia kannattaa kokeilla. Se on kuin panisi ilman kumia, mitään turhaa ei ole välissä :D. Vaikka Assemblyohjelmointi ei olekkaan kovin tuottava ja nopea tapa kehittää ohjelmaa… tarjoaa se mahdollisuuden oppia tuntemaan rauta syvällisesti.. lisäksi assemblyohjelmoijat kykenevät kirjoittamaan parempaa ja tiukempaa koodia korkean tason kielillä (esim C:llä)
Sitten ei myöskään kannata unohtaa nykyään suosittuja, sulautettuja linux PC:itä.. kuten esimerkiksi Rasperry PI:tä.. Jotka käytännössä ovat kuin normi linux tietokoneita , mutta niissä on tarjolla muutama GPIO-pinni piikkirimasta. tietenkään tavallinen linux ei kelpaa kovaan realiaikaisuuteen (näytesämppeli sisään, tulos ulos).. Mutta asioissa joissa vaaditaan suurta lasketatehoa, näyttöä, äänentoistoa,massamuistia ja verkkoliitäntää, mutta joihin riittää useiden kymmenien millisekuntien arvaamattomat viiveet.. on linux voittajan valinta.
Sulautetuissa on kuitenkin tärkeintä muistaa että kaiken takana on fysiikka ja peruselektroniikan ymmärrys kannattaa olla hallussa, jotta virheiden haku ei mene taikauskoiseksi arpomiseksi.
Ja kaikista tärkeimpänä on vekottimen käyttötarkoitus. Puukkoaheiluttava nalle on erittäin hyvä alku. UPEETA!! (wau… onko nörttitytöissä sittenkin joku terveet elämänarvot omaava naisenalku?)
Lord Selibacy suosittelee TUKES-ihmisten kauhuksi nallen kädeksi järjeää servoa ja käteen dremeliä, jonka akselille on kiinitetty sirkkeli. Dremelin voi laittaa käynnistymään releestä.. (Suosittelisin SSR, solid state relay:ta, Sitä on helpompi ajaa suoraan arduinon +5v logiikalla ilman lisäkomponentteja).
Jup ja latvasta puuhun mennään, näin on kovat ÄIJÄT JYRÄÄ.
Olisiko vaan niin että aloitetaan vain sieltä puun juurelta, ja kun päästään ensimmäiselle oksalle ollaan jo hieman ylempänä, josta on taas helpompi kiivetä seuraavalle oksalle.
ÄIJÄT hyppää suoraan latvaan, ja rakentaa oman tietokoneen, sekä kävelevän ja puhuvan sekä laulavan ja ajattelevan droidin alta aikayksikön, ilman koulutusta ja mitään pohjatietoja. No ei niitä missään tarvita, ei edes aloittelijoiden ymmärtämisessä.
Nörttitytöille mielenkiintoisia aikoja harrastuksen parissa. Kuten sanoin, sieltä maan tasalta sinne puuhun noustaan, ja kiinnostus kasvaa koko ajan, mitä sieltä hieman korkeammalta näkee.
Näistä tulee ysärinostalgiat paikallisen Infokaupan ylähyllylle jossa myytiin robottirakennussarjoja joista sai kolvi kourassa väkerrettyä mm. mustaa viivaa valkoisella taustalla seuraavan härpättimen ja lankaa joko eteen tai taaksepäin kapuavan “apinan” joka valitsi suunnan äänen perusteella.
Henk. koht. myönnän auliisit olevani sen verran feikkinörttityttö, ettei musta taida ihan heti tulla robotinrakentajaa, mutta sen sijaan pääni pursuaa sisäsällöntuotannollisia ideoita siitä, mitä kaikkea pientä hauskaa tällä tekniikalla voisi toteuttaa… Pistetäänkö, Riikka, firma pystyyn?
Tulin vain likettämään Lordin kommenttia.
Jos tutkii instructablesia ja thingiverseä niin kyllähän Arduino on se ylivoimaisesti suosituin alusta ja sillä on tehty kaikki mielenkiintoisimmat jutut. Yhtenä esimerkkinä nyt vaikka gps-ohjatut reittiohjelmoitavat multikopterit http://www.diydrones.com/notes/ArduPilot
Mielestäni tämä tulisi laittaa vähintään valinnaiseksi jo peruskouluihin. 3D-tulostushan alkaa jo vähitellen päästä peruskoulujenkin ohjelmaan. (Lopultakin).