Näytetään tekstit, joissa on tunniste Arduino. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste Arduino. Näytä kaikki tekstit

lauantai 24. helmikuuta 2018

Piin ohjelmointia Arduinolla ja säikäyttäviä tilanteita

"Pieni Pii, niin viaton ja vapaa" ajattelin mielessäni, kun mietin pientä Piitäni. Mutta sitten hoksasin että hetkinen, vapaako? Eihän se pidäkään paikkaansa, sillä olen ohjaillut Piitä vain kaukosäätimellä. Se ei siis ollut vielä liikkunut ohjelmoinnin avulla satunnaista kokeilua lukuunottamatta! Kokeilin joskus kauan sitten Scratchia eli ohjelmaa, jolla palikoita siirtämällä voidaan ohjelmoida. Mutta tietotekniikan opinnoissani olin jo oppinut jonkin verran ohjelmointia, ja siitä itseluottamukseni syttyikin! Halusin tarjota Piille vapauden kaukosäätimen kahleista ja kokeilla, miten saisin sitä ohjelmoitua kunnolla. No, onhan se koodatessakin koodien vanki, mutta ei kerrota sitä vielä hänelle...katsokaa, miten touhuissaan se lähtee kohti seikkailuja!



En oikeastaan ollut täysin varma, voiko Makeblockin robottia ohjelmoida muutoin kuin mBlockilla, mikä siis on graafinen ohjelmointiympäristö, joka perustuu Scratchille:

MBlock-ohjelmointiympäristö, joka perustuu Scratchille.


Kesti oma aikansa selvittää asiaa, mutta sain vihdoin googlen avulla selville, että mBlockilla pitäisi pystyä siirtymään Arduinon kehitysympäristöön ja koodata siellä. Sen löytää avaamalla mBlockin, valitsemalla Edit ja Arduino mode, jolloin koodilaatikko ilmestyy oikealle puolelle. Jee, olin askelen lähempänä!




Mutta ei kyseisestä laatikosta vielä voinut siirtää koodia Piihin. Sitten hoksasin pienen Edit with Arduino IDE-napin yläkulmassa:


Jipii, tein sen! Paitsi hetkinen, mitään ei tapahtunut, kun painon kyseistä nappia. Googlettamalla selvisi, että mBlockin päivityksen pitäisi auttaa avaamisongelmiin. Päivitystä etsiessäni törmäsin alla olevaan kuvaan ja innostuin valtavasti mBlock 5:sta: pääsisinkö sen avulla harjoittelemaan Pythonia?! Olen haaveillut Pythonin opettelusta, koska sitä kuulema käytetään tekoälyn kanssa työskennellessä. No, voihan sitä kyllä opetella helposti miten vain, mutta olisi kiva, jos voisin yhdessä Piin kanssa harjoitella sitä <3 Vielä ei kuitenkaan ole Pythonin aika, sillä kädet on tällä hetkellä täynnä Java-kielen opettelussa, koska käyn ohjelmoinnin kakkoskurssia. Se on melko työläs kurssi! Oli ihme, että löysin aikaa edes tämän blogin kirjoittamiseen!

mblock 5, joka tukee Python-kieltä. Jee!

Jihuu, päivitys auttoi! Pääsin avaamaan mblockista Arduinon kehitysympäristön! Se on siis alla olevassa kuvassa näkyvä turkoosi laatikko. Siihen vain koodia kirjoittamaan!



Latasin Makeblockin Arduinon koodikirjaston täältä. Sen avulla voin siis avata Arduinon kehitysympäristössä valmiita koodeja, joilla esimekiksi testata Piin toimivuutta. Testaaminen on hyvä tehdä aina aluksi, koska siten nähdään heti, toimiiko kaikki kuin pitääkin. Jos koodia kirjoittaessa ja ladatessa kaikki ei toimikaan kuin pitää, voi siten olla varmempi siitä, ettei vika ole ns. perusjutuissa, vaan todennäköisesti itse koodissa. Valitsin ensin työkaluista oikean alustan, eli "Työkalut - Kortti: Arduino/Genuino Uno". Tarkistin myös, että portti on oikea, mutta siinä ei ollutkaan muita vaihtoehtoja kuin yksi. Testasin ensin moottoreita valitsemalla alla olevan kuvan mukaisesti kirjastosta esimerkkikoodin, painoin lähetä-nuolta (Pii oli tässä vaiheessa jo kytkettynä koneeseen), ja laitoin Piin päälle:



Ja hyvin moottorit hurisivat! Näettehän, miten hurjasti Piin telaketjut rullaavat, en haluaisi olla tuon pikkukaverin tiellä!


Päätin kokeilla, saisinko Piin kulkemaan ympyrää. Otin mallia, miten moottoritestikoodi toimi, ja muokkasin sitä niin, että toinen moottori pyörii vauhdikkaammin kuin toinen. 


Erittäin yksinkertainen koodi, mutta sitäkin riemastuttavampi kokemus, kun Pii alkoi piirtää lempimuotoani eli ympyrää! Tuntui, että mikä tahansa on mahdollista, koska sain sellaisen aikaan. Voi Pii, rakas apurini elämän leikkikoulussa <3



Halusin sen jälkeen testata koodin avulla Piin ultraäänisensoria. Se olikin hieman kinkkisempi toteuttaa, koska en aluksi saanut Piitä pysähtymään, kun jokin tulisi liian lähelle. Ultraäänisensori näytti kyllä toimivan, koska sarjamonitori näytti sen lukemia. Koodi ei vain toiminut niin, että Pii olisi pysähtynyt, kun välimatka on tarpeeksi pieni. Arduino käyttää käsittääkseni ohjelmointikielenä C:tä tai C++:aa, eikä kumpikaan ole minulle tuttuja. 

Olin kuitenkin oppinut jotain koodauskursseilla, joten jonkin ajan kuluttua koin valtavan upean jipii-elämyksen, kun Pii vihdoin pysähtyikin seinän sattuessa kohdalle! En valitettavasti enää viikon parin jälkeen muista, mikä koodissa alunperin oli minulle ongelmana ;__; Harmittaa, etten päässyt tarpeeksi ajoissa dokumentoimaan touhujani. Käytin koodissa Makeblockin koodikirjaston moottori- ja ultraäänisensoripohjia, mutta rakensin koodin kuitenkin lopulta itse, mistä olen ylpeä <3 Vielä vuosi sitten en edes ymmärtänyt, mistä koodaamisessa oli kyse! Todella upeaa huomata oma kehittymisensä. Käytin seuraavanlaista koodia:

Koodissa on käytetty pohjana makeblockin koodikirjaston moottoripohjaa.

Alla vielä avopuolisoni kuvaama taiteellinen otos siitä, miten hienosti Pii pysähtyy seinän sattuessa liian lähelle <3


Touhuillessa sattui tosin vielä tilanne, mikä säikäytti: en saanutkaan millään johtoa enää irti Piistä! Mietin kauhuissani, olinko innoissani runnonut johdon liian ronskisti Piihin. Pieni raukka... Kauhukuvat vilisivät silmissäni, joudunko kenties ostamaan Piille uuden alustan? Jonkin aikaa meni, ennen kuin vihdoin sain johdon irti. Mutta nähtävästi kaikki sujuu vielä kuin pitääkin. Johto taas irtoaa, sen jälkeen, kun sen laittaa liittimeen. Huh! Pitää olla tästä lähin varovaisempi.


Lopuksi vielä vihjekuva siitä, mitä seuraava projektini tulee sisältämään. Jeee, sain vihdoin hommattua hieman työkaluja! Yksisarvinen ei valitettavasti tule kuulumaan mukaan projektiin, se vain halusi mukaan kuvaan <3 


maanantai 6. marraskuuta 2017

Herkkuvahti

Oletko ikinä haaveillut herkkuvahdista, joka hälyttää, jos joku lähestyy aarteitasi? Sellainen on nimittäin helppo tehdä! No, oikeastihan herkkuja on kiva jakaa ja syödä muiden kanssa: jaettu ilo on kaksinkertainen ilo. Ehkä vahti voisi siis olla vaikka itseä varten. Ehkä haluat vähentää herkuilla mässäilyä, mutta kädet kulkeutuvat automaattisesti niitä kohti. Silloin herkkuvahti antaisi muistutuksen!



Herkkuvahti-projektissa opin, että projektia kannattaa lähteä rakentamaan vaihe vaiheelta. Jokaista osaa kannattaa testata erikseen, jotta näkee, missä mahdollinen vika on. Opin myös yhdistämään koodia, testasin ensimmäistä kertaa Arduino Nanoa ja liitin ensimmäisen kerran ulkoisen virtalähteen Arduinoon. Katsoin Herkkuvahtiin ohjeet pääosin Tero & Kimmo Karvisen kirjasta Sulautetut - Opi rakentamaan robotteja ja muita sulautettuja järjestelmiä. Olin todella innoissani, kun ystäväni halusi myydä kirjan minulle! Olin etsinyt kyseistä kirjaa kaikkialta, mutta se oli loppuunmyyty.

http://sulautetut.fi/img/cover-sulautetut.jpg

Kirjassa neuvottiin, miten rakennetaan Väijyvahti. Se mittaa ultraäänisensorilla edessään olevaa etäisyyttä ja hälyttää värinällä, jos jokin tulee ultraäänisensoria liian lähelle. Kirjan Väijyvahdissa käytettiin tärinämoottoria, jota minulla ei ollut. Aloin pohtia, osaisinko käyttää sen tilalta summeria. Tutkailin netistä kummankin komponentin liittämistä koekytkentälevyyn. Kytkennät vaikuttivat samanlaisilta. Luin niistä esimerkiksi täältä ja täältä. Tiedän myös jo koodaamisesta jotakin, joten luotin siihen, että osaan kirjoittaa ja yhdistää koodit oikealla tavalla, vaikken kirjasta sanasta sanaan niitä kopioisikaan. Törmäsin muuten värinämoottoreita tutkiessani todella loistavaan Ihmevekotin- nettisivustoon, jossa myydään mm. erilaisia sensoreita ja muuta elektroniikkaa. Tuntui kuin olisin eksynyt lelukauppaan, koska siellä vaikutti olevan niin paljon kaikkea mielenkiintoista! Pitää tutustua sivustoon tarkemmin. Tai no enpä tutustukaan enempää, koska sitä selaillessani tekee mieli tilata sieltä kaikki! :|

Päätin käyttää tässä projektissa ensimmäisen kerran Arduino Nanoa; aiemmin olen käyttänyt Arduino Unoa. Luin, että Uno ja Nano toimivat käytännössä samalla tavalla, Nano on vain pienempi ja siinä on nähtävästi pari pinniä vähemmän. Mutta saman koodin pitäisi toimia niihin kumpaankin. Liitin Nanon suoraan koekytkentälevyyn, toisin kuin Unon. Täällä on vertailtu eri Arduino-malleja. Kirjan mukaan tarvitsin seuraavanlaiset varusteet:

Kuva on kirjasta Sulautetut - Opi rakentamaan robotteja ja muita sulautettuja järjestelmiä. Tero karvinen & Kimmo Karvinen (2010).

Minulla ei ole leikkureita eikä johdonkuorintapihtejä, ja värinämoottorin tilalta käytin summeria. Alla minun varusteeni (johtoja tarvitsin enemmän kuin vain kuvassa olevat, ja paristokin puuttuu kuvasta):



Rakensin projektin seuraavalla tavalla:

1. Testasin Arduinon toimivuuden

Ensin testasin, että Arduino toimii. Liitin sen tietokoneeseen usb-johdolla, avasin Arduino-sovelluksen ja latasin Arduinoon Blink-koodin. Sen pitäisi siis saada Arduinon sisäänrakennettu valo vilkkumaan. Aluksi se ei toiminut, mutta en ollut vain hoksannut valita oikeaa porttia. Jee, sain ladattua kaikki testaamani koodit arduinoon! Yksi testattavista on myös tekemäni SOS-koodi, eli Arduino vilkuttaa SOS-merkkiä. Mutta Blink tulee valmiina Arduino-sovelluksessa, ja senkin testaaminen riittää.

2. Ultraäänisensorin kytkeminen koekytkentälevyyn


Kirjan ohjeessa käytetään Ping-ultraäänisensoria, mutta minulla on vain HC-SR04-ultraäänisensori. Olin muistavinani, että Piillä olisi Ping-sensori, mutta sillä olikin joku ihan oma! Suloista <3 Kirjassa Make:Sensors -Projects and Experiments to Measure the World with Arduino and Raspberry Pi (Tero karvinen, Kimmo Karvinen & Ville Valtokari) on kerrottu Pingin ja HC-SR04-sensorin eroista. Erona on, että HC-SR04 käyttää erillisiä pinnejä äänen tuottamiseen ja kaiun mittaamiseen. Sen koodi eroaa siis hieman Ping-sensorin koodista. Luin sensorien eroista jo jossain aiemmassa projektissani, mutta olin jo unohtanut. Sulautetut-kirjassa on käytetty Ping-sensoria, joten otin projektiini koodin samojen tekijöiden Make: Sensors kirjasta. Toivoin, että koodi toimii Nanollakin, koska Make: Sensors kirjassa on käytetty puolestaan Unoa. Mutta luin, että saman kodin pitäisi toimia kummassakin, ja toimihan se. Koodit vaikuttivat kirjoissa myös hieman erilaisilta, muttei paljon. Ping ja HC-SR04 kytketään melkein samanlailla koekytkentälevyyn, mutta HC-SR04:ssa pitää otta huomioon se yksi ylimääräinen pinni. Alla on kuvat kytkentöjen eroista:

HC-SR04-sensorin kytkeminen koekytkentälevyyn ja Arduino Unoon. Kuva kirjasta Make:Sensors -Projects and Experiments to Measure the World with Arduino and Raspberry Pi.Tero karvinen, Kimmo Karvinen & Ville Valtokari(2014).




Ping-sensorin kytkeminen koekytkentälevyyn ja Arduino Unoon. Kuva kirjasta Make:Sensors -Projects and Experiments to Measure the World with Arduino and Raspberry Pi.Tero karvinen, Kimmo Karvinen & Ville Valtokari(2014).

Tältä valmis kytkentäni näytti!



Koodi ultraäänisensoriin on otettu siis samasta kirjasta kuin yläpuolella olevat kytkentäkuvat.

Koodi kirjasta Make:Sensors -Projects and Experiments to Measure the World with Arduino and Raspberry Pi.Tero karvinen, Kimmo Karvinen & Ville Valtokari(2014).


3. Summerin kytkeminen

Minulla oli sekä passiivinen että aktiivinen summeri, kumpaahan kannattaisi käyttää? Luin netistä, että aktiivinen summeri tuottaa ääntä itse, kun taas passiiviselle pitäisi itse lähettää äänisignaali. Päätin siis käyttää aktiivista. Mutta mitenhän erotan aktiivisen ja passiivisen summerin toisistaan tämän projektin jälkeen, koska ne kummatkin on merkitty alla olevassa kuvassa näkyvällä plussalla? Oletin, että passiivisessa summerissa olisi ollut miinus. Hetkinen, tätä kirjoittaessani hoksasin, että plus tarkoittaa positiivista jalkaa! Olin kytkentöjäni tehdessä pohtinut, kumpi on positiivinen ja kumpi negatiivinen jalka. Päädyin siihen, että jalat ovat varmaan samanlaiset kuin ledeissä, eli pitempi olisi positiivinen. Olihan se!



Summerin kytkeminen mietitytti, koska Väijyvahdin kuvissa, joissa oli käytetty tärinämoottoria, moottori oli kytketty johtojen avulla koekytkentälevyyn, kun taas minun summerissani oli vain jalat. Toinen, positiivinen, pää tulisi liittää Arduinon pinniin ja toinen , negatiivinen, Groundiin sekä värinämoottorin että summerin tapauksessa. Olisi hankala liittää summeri vain jalkojen avulla kokeytkentälevyyn: en olisi saanut venytettyä sitä niin, että toinen jalka osuisi samalla riville Arduinon GND:n kanssa ja toinen pinnin kanssa. Mutta onneksi muistin toimineeni aiemmassa projektissani niin, että kytkin komponentin uros-ja naarasjohtojen janalla kiinni komponenttiin tai koekytkentälevyyn. En tosin tiedä miten järkevää se on, mutta se toimi myös summerin kohdalla! Tältä kytkentäni näytti.



Otin summeriin koodin tältä sivulta. Muutin vain pinnin tilalle pinnin 5.



4. Koodien yhdistäminen


Yhdistin ultraäänisensorin ja summerin koodit muutoin Sulautetut-kirjan ohjeiden mukaan, mutta muuntelin sitä summerille sopivaksi. Yllätyin, että koodi toimi ensimmäisellä yrittämällä, kuten kaikki muukin tässä projektissa! Kuva lopullisesta, yhdistetystä koodista:

Koodi on mukailtu kirjan Sulautetut - Opi rakentamaan robotteja ja muita sulautettuja järjestelmiä. Tero Karvinen &     Kimmo karvinen (2010) ohjeen mukaan.

5. Pariston liittäminen 

Halusin luomukseni toimivan myös ilman usb-kaapelia, jotta sitä voisi siirrellä vapaasti. Sulautetut-kirjan ohjeiden mukaan siihen tarvitsisi vain paristonepparin, joka minulla oliki tullut Arduino-paketin mukana. Ongelmana vain oli, että paristonepparissa oli päässä tällainen liitin:



Liitin sopii Arduino Unon alustaan, mutta Nano oli kiinni koekytkentälevyssä, eikä Nanossa ollut liitoskohtaa nepparille. Huomasin Ihmevekotin.fi-sivulla myytävän halvalla paristoneppareita, joten päätin katkaista omasta nepparistani pään pois, jotta voisin liittää ne koekytkentälevyyn. Käytin tähän operaatioon saksia, koska minulla ei ole leikkureita. Hoksasin leikkaamisen jälkeen, että johdot pitää kuoriakin, jotta sähkö pääsee virtaamaan. Kokeilin mattoveistä, ja pienen urakoinnin jälkeen onnistuinkin! Mutta Charmmy Kitty vihkoni hieman kärsi, koska käytin sitä alustana. No, uhrauksia pitää välillä tehdä.




 Nyt vain tungin johtojen päät koekytkentälevyn koloihin ja liitin toisen pään paristoon, joka tuli myös Arduino-pakettini mukana. Tältä lopputulos näytti!


Nyt viritelmääni voi liikuttaa vapaasti ilman, että tietokone roikkuu siinä kiinni. Tulen vielä  jossain vaiheessa opettelemaan koteloiden tai muiden suojien kasaamista virityksilleni, jotta ne näyttäisivät nätimmiltä. Tadaa, nyt herkkuvahti on valmis! Se päivystää tässä sipsipussiani. Voisin myös laittaa summerin piippaamaan SOS-merkkiä aina, jos joku lähestyy soveltamalla koodiin aiemmin ledeille tekemääni SOS-koodia.



Olin todella innoissani ja inspiroitunut tehdessäni tätä projektia, koska olin iloinen siitä, että huomasin edistyneeni! En ollut enää epävarma otteissani, eikä  koekytkentälevyn kanssa puuhailu tuntunut enää uudelta ja vieraalta asialta. Huomasin, että tekemällä oppii: osasin yhdistää aiemmissa projekteissani saavuttamaani tietoa tähän nykyiseen projektiin. Olen opetellut tietotekniikan opinnoissani koodausta, joten osasin myös jo hieman soveltaa koodia. Olen huomannut, että sekä tietotekniikan opinnoissani että näiden projektien rakentelussa opin ja minun kannattaa opetella ongelmanratkaisua, eikä pyrkiä osaamaan kaikkea ulkoa. Se taitaa olla melko itsestäänselvyys. Jos on jokin ongelma, miten sitä kannattaa lähteä ratkomaan? Mistä saan tietoa, jota tarvitsen esimerkiksi projektin tekemiseen? Jos osaan selvittää kysymyksiin / ongelmiin ratkaisut, kaikki on mahdollista! Olen huomannut, että olen melko hyvä etsimään tietoa. Hyödynnän ja yhdistelen monia eri kirjoja ja internetiä, ja toimin paljon myös intuitioni pohjalta kun etsin vastauksia. Pääsen myös helposti flow-tilaan. Ehtisinpä pian tehdä taas uuden projektin! Koulu vie käytännössä kaiken aikani työni kanssa, mutta se on sen arvoista.

_______________________________________________________________________

Projekti herkkuvahti - yhteenveto:


Ongelmakohtia, joita kohtasin, mutta jotka selvitin
- värinämoottorin korvaaminen summerilla
- koodien kirjoittaminen ja yhdistäminen värinämoottorin sijaan summerille
- koodien kirjoittaminen ja yhdistäminen Ping-sensorin sijaan HC-SR04-sensorille
- onko Arduino Unon ja Nanon koodeissa eroavaisuuksia
- kumpaa summeria käyttää, aktiivista vai passiivista?
- paristonepparin liittäminen koekytkentälevyyn

Mitä opin
- Käyttämään Arduino Nanoa
- Yhdistämään koodeja
- Projektin rakentamisen periaatteet - testaaminen vaihe vaiheelta
- Ulkoisen virtalähteen liittäminen Arduinoon
- Ultraäänisensori Pingin ja HC-SR04:n eroja

Projektissa käyttämäni tietolähteet
-  Sulautetut - Opi rakentamaan robotteja ja muita sulautettuja järjestelmiä. Tero Karvinen &     Kimmo karvinen (2010).
- Make: Sensors. Projects and Experiments to measure the World with Arduino and        Raspberry Pi. Tero karvinen, Kimmo Karvinen & Ville Valtokari (2014).
- https://forum.arduino.cc/index.php?topic=129741.0



lauantai 29. heinäkuuta 2017

Arduinon testailua

Jipii, vihdoin Amazonista tilaamani Arduinon aloituspaketti saapui! Kerron myöhemmin mitä kaikkea se sisältää, kunhan tutustun ensin kaikkiin osiin. Siellä oli ainakin sensoreita, johtoja, koekytkentälevy, ledejä ja resistoreja (vai sanotaanko niitä vain vastuksiksi, en ole varma suomenkielisistä termeistä), ja ennen kaikkea Arduino! Osat olivat menneet kuljetuksen aikana sikin sokin, toivottavasti kaikki ovat ehjiä. Kuvassa on laatikko, jonka olen jo järjestänyt. Tarkistin, että se sisältää kaikki osat, ja sisälsihän se! Cd-levyn tiedostoja en saanut vielä purettua koneelleni, mutta en jaksanut vielä selvittää mistä se johtuu. Aloituspaketti maksoi postikuluineen 57 euroa.




Tässä itse Arduino! Pääsinkin kokeilemaan sitä ennen Raspberry Pitä. Luulin aluksi, että Arduino ja Raspberry ovat samanlaisia laitteita, mutta Arduinoa käytetään tietokoneen välityksellä, kun taas Raspberry Pi on tietokone itsessään, eli siihen kytketään näyttö ja näppäimet sun muut. Wikipedia tiesi kertoa Arduinosta seuraavaa: "Arduino on avoimeen laitteistoon perustuva mikro-ohjain-/elektroniikka-alusta ja ohjelmointiympäristö. Laitteisto perustuu 8-bittiseen Atmel AVR -mikro-ohjaimeen, jonka pinneihin voi kytkeä erilaisia antureita, moottoreita, LED-valoja ja muita komponentteja. Laitteistoa ohjelmoidaan C++:aan perustuvalla Arduino-ohjelmointikielellä.". Arduino-laitteita on eri malleja, minulla on UNO R3. Mallit eroavat Wikipedian mukaan toisistaan mm. keskusmuistin, Flash-muistin ja digitaalisten ja analogisten pinnien määrässä.


Ohjelmoinnissa käytetään Arduino Alpha-ohjelmaa. Seurasin Arduinon käynnistämisessä kirjan "Make: Sensors -Projects and Experiments to Measure the World with Arduino and Raspberry Pi" (Tero Karvinen, Kimmo Karvinen ja Ville Valtokari) ohjeita. Kirja on vaikuttanut tähän mennessä todella hyvältä: se kertoo Raspberryn ja Arduinon eroista ja miten kummankin laitteen avulla voi rakentaa samanlaisia projekteja. 


Latasin kyseisen kirjain ohjeiden mukaisesti ensimmäiseksi Arduinon ohjelmointiohjelmiston täältä. Kytkin Arduinon USB-johdon avulla tietokoneeseeni ja jippii! Siihen syttyi valot! Vihreä valo oli koko ajan päällä, keltainen vilkkui. Tuntui hienolta: tästä kaikki lähtee! 


Ohjelmiston lataaminen ja asentaminen sujui hyvin, ja pääsin käynnistämään itse ohjelman, joka näkyy alla olevassa kuvassa. Piinkin ohjelmoinnissa käytetään Arduinon ohjelmistoa, joten se näytti tutulta. Latasin ohjelman nähtävästi vahingossa suomeksi. Englanninkielinen versio olisi parempi, koska kirjatkin ovat englanniksi. No, en jaksanut ladata sitä ainakaan vielä uudestaan. Näkisin ainakin mitä eri termit ovat suomeksi, kun niitä Piin kanssa välillä pohdiskelin.


Valitsin kirjan ohjeen mukaan boardeista (Työkalut -> Kortti) oletuksen, eli Arduino / Genuino Unon. Yleisin ensimmäinen Arduinolle siirrettävä ohjelma eli koodinpätkä on Blink, joka vilkuttaa yhtä Arduinon sisäänrakennettua LED-valoa. Siitä näkee, toimiiko kaikki niin kuin pitääkin. Eli jos Blinkin lataa Arduinoon ja led alkaa vilkkua, kaikki on sujunut oikein. Kannattaa siis ensimmäiseksi kokeilla sitä.
     Ohjelmia ladataan Arduinolle kuvassa näkyvää nuolta (Tiedosto-kohdan alla) painamalla. Kun laittaa hiiren sen kohdalle, siinä lukee lähetä (englanniksi varmaan upload). Kun ohjelma ladataan Arduinoon, Arduinon valot vilkkuvat nopeasti. En ole varma, mitä lähetä-painikkeen vasemmanpuoleinen merkki "varmista" tekee, pitää tarkistaa! 
     Hoksasin, että minullahan kyseinen LED-valo vilkkui koko ajan. Olikohan Arduinoni rikki? Netissä joku sanoi, että monissa Arduinoissa kyseinen Blink-ohjelma on jo valmiiksi ladattuna. Ehkä minullakin oli kyse siitä? Yritin kuitenkin testausmielessä ajaa Blink-ohjelmaa (Tiedosto -> Esimerkit -> 01.Basics -> Blink), mutta siihen tuli alla näkyvä virhe. Kirja oli onneksi varoittanut, että virhe saattaa ilmaantua, mikäli ei ole vielä valinnut oikeaa porttia. Valitsin porteista (Työkalut -> Portti) ainoan vaihtoehdon eli COM5:en. Sen jälkeen virhettä ei tullut. Mutta kuten saattoi olettaa, mikään valon toiminnassa ei muuttunut, koska led vilkkui muutenkin koko ajan.


Miten siis saisin testattua, että kaikki toimii kuin pitääkin? Hoksasin, että voisin kokeilla vilkuttamisen sijaan LED-valon sammuttamista. Esimerkkien koodeissa onneksi kerrotaan, mitä kukin koodin kohta tekee. Koodin muokkaaminen onnistui siis helposti sellaiseksi, että valon pitäis sammua. Alla olevassa kuvassa on kyseinen koodi.

Ja kyllä, valo todellakin sammui! Olin hurjan ylpeä itsestäni! LED-valon sammuttaminen on pieni askel konkareille, mutta suuri askel aloittelijalle. Ystäväni keksi, että Arduinon LED-valon voisi laittaa morsettamaan jotain. Sekin oli helppo toteuttaa! Kuka keksii, mitä LED-valo sanoo? Alla on video itse morsetuksesta ja sen koodi.



Olen ilokseni huomannut itsessäni edistymistä: kun tutkailin kuukausia sitten Piin ohjelmointia, en kunnolla ymmärtänyt mistä on kyse, koska kaikki tuntui niin uudelta ja oudolta. En olisi varmaan silloin osannut muokata tämän päiväisiä koodeja toimiviksi. Todella hienoa huomata kehittyneensä!