Arduino opas

Julkaistu: torstai 9.2.2017

Arduino Uno

Sulautetun elektroniikan parissa työskenteleville yllä näkyvä kehitysalusta Arduino Uno voi olla hyvinkin tuttu, mutta kaikille se varmaankaan sitä ei ole. Kuvan piirilevyllä on ohjelmoitava 8-bittinen mikroprosessori (Atmega328P) ja ohjelmointi tapahtuu erillisen Arduino IDE:n avulla (Integrated Development Environment). Koska mikroprosessori on muistiltaan (32 kt flash / 1 kt EEPROM / 2 kt SRAM) ja nopeudeltaan hyvin rajallinen (16 MHz), niin aivan älyttömän suuria projekteja tällä ei kannata toteuttaa, mutta perusharrastaja pärjää tämmöiselläkin oikein mainiosti.

Levylle on mahdollista liittää erilaisia lisälevyjä, joita kutsutaan shieldeiksi. Tietenkin pinneihin saa kiinni hyppylangoilla myös yksittäisiä anturielementtejä tai muita elektronisia osia mikäli tarve niin vaatii.

Tarvittaessa mikroprosessorin voi poistaa levyltä ja sen voi kytkeä vaikkapa omalle protolevylle, jolloin koko kehitysympäristöä ei tarvitse protoonsa asentaa.

Arduinon logiikkajännite on +5 V joten se ei toimi 3,3 voltin laitteiden kanssa ilman erillisiä tasonmuuntimia. Näin ollen myös Arduinon IO-nastat sietävät vain TTL-tasoista signaalia (paitsi analogia-inputit).

Arduinoja on muitakin erilaisia ja Wikipediaan on listattu kattavasti erilaiset kehitysalustat ja ominaisuudet. Saatavilla on sekä suurempaa, että pienempää kehitysalustaa.

Mitä Arduinolla tehdään?

Arduinoa käytetään kuin mitä tahansa muutakin mikropiirien kehitysympäristöä (esim MSP430 Launchpad). Siihen voidaan liittää erilaisia antureita sekä ohjaimia ja niiden avulla toteuttaa haluttuja projekteja. Alkuun pääseminen Arduinolla on kuitenkin paljon yksinkertaisempaa, kuin muilla "vastaavilla" alustoilla - joten se on oikein sopiva valinta ohjelmoinnista kiinnostuneille, mutta hieman hataran harrastuspohjan omaaville.

Toisin sanottuna Arduinon ympärille tehdään kytkentä ja sille koodi. Koodi tehdään yleensä Arduino IDE -ohjelmalla. Tämän lisäksi käyttäjältä vaaditaan, että laitetaan USB-kaapeli Arduinolevyyn kiinni ja toinen pää tietokoneeseen ja toiminnallinen koodi ladataan Arduinoon painamalla Upload nappia. Mikäli koodi on oikein eikä virheitä esiinny, niin sen pitäisi toimia ongelmitta Arduinossa (tietenkin sillä edellytyksellä että koodaaja on tiennyt mitä on tekemässä).

Tältä sivulta löytyy jatkossa erilaisia kokeiluja ja selvityksiä, mitä Arduinolla ja siihen saatavilla lisäosilla tehdään. Erityisesti paneudutaan Prenta Oy:n myymään Arduino UNO -rakentelusarjaan, joka pitää sisällään kaikenlaista kivaa elektroniikkahärpäkettä.

Jos siis haluat oppia ja aloittaa tekemään omaa laitetta tai muuten vain tutustua Arduinoon, niin osta yllä olevasta linkistä mainitsemani setti ja käy tutoriaalin kimppuun. Tutoriaalissa hyödynnetään tuosta setistä löytyviä romppeita, mutta siitä toivottavasti on hyötyä myös vaikka ei settiä omistaisikaan!

Arduino tutoriaali (Arduino opas)

Alta voit aloittaa lukemaan tekemiäni tutoriaalin osia. Jos olet jo tutustunut Arduinon aloituspakkaukseen, voit hypätä osaan 2 - mutta tietysti tee niin kuin haluat.

Latauslinkki koodin kehitykseen: http://www.arduino.cc/en/Main/Software

Lähteet: http://fi.wikipedia.org/wiki/Arduino

1. Arduino Upgraded Learning Kit

Arduino Upgraded Learning Kit on muovilaatikollinen kaikkea kivaa tekniikkavekotinta. Tällaisen setin voi ostaa esimerkiksi suomalaisen Prenta Oy:n verkkokaupasta. Kun setti on hankittu, niin lyhyen odottelun jälkeen postista saapuu kuvan mukainen paketti. Alla olevassa kuvasarjassa käydään läpi setin sisältö, lyhyesti selitettynä mikä mikin laite on ja mihin sitä voisi esimerkiksi käyttää. Aivan ensimmäisenä, kun paketin aukaisee niin huomio kiinnittyy kansipaperin takapuoleen sekä päällimmäisinä oleviin komponentteihin ja kytkentäalustaan: Nostamalla päällimmäisen kerroksen pois ...jatka lukemista!

2. Digitaalilähdöt

Ennen kuin varsinaisesti tehdään mitään, on varmaan ihan hyvä vielä selventää mikä Arduinossa on se syvällisin idea. Arduino on lähtökohtaisesti keksitty ihmisille, jotka ovat kiinnostuneita tekemään omia laitteita, mutta eivät välttämättä ole käyneet elektroniikkasuunnittelijan tai ohjelmistosuunnittelijan (Insinööri) koulutusta. Arduinossa onkin haluttu madaltaa oppimiskynnystä niin, että levyllä olevan mikro-ohjaimen syvällisintä toimintaperiaatetta ei ole tarpeen tietää, mikäli haluaa suorittaa yksinkertaisia toimintoja kuten vilkuttaa lediä, ohjata moottoria tai lukea jotakin anturia. Arduinoa voidaan ...jatka lukemista!

3. Digitaalitulot

Osassa 2 käytiin läpi Arduino IDE:n asentaminen ja ensimmäisen sketchin kirjoitus ja sen lataaminen mikroprosessorille. Tässä osassa näytetään kuinka kytkintä luetaan Arduinolla ja perehdytään asioihin hieman syvällisemmin. Arduino ja Wiring Arduinoa ohjelmoidaan open-source pohjaisessa Wiring-nimisessä viitekehyksessä (Framework), joka muistuttaa läheisesti C-kieltä. Wiring on kehitetty tukemaan laajaa joukkoa erilaisia mikroprosessoreita ja kehitysalustoja, kuten Arduino (AVR atmega), MSP430 (Launchpadit), PIC- ja ARM-pohjaiset mikroprosessorit (STM32 -tuki tulossa kirjoitushetkellä). Tarkemmin Wiringista voi lukea sen ...jatka lukemista!

4. Analogiainputit

Edellisessä osassa tutustuttiin hieman syvällisemmin Wiringiin ja Arduinon ohjelmointiin ja seliteltiin mitä käytetyt komennot tai funktiot tarkoittivat. Jatketaan tällä samalla linjalla tässäkin, mutta tietenkin uudella aiheella. Hyödynnetään edellisessä osassa jo kertaalleen tehtyä ja tutkitaan miten saadaan uutta aikaiseksi erilaisten komponenttien kanssa. Tässä osassa tutkitaan LDR-vastuksen ja potentiometrin kytkemistä Arduinoon ja tehdään ns. hämäräkytkin sekä valon on/off säädin potentiometrin avulla. Ennen kytkennän tekoa selvennetään lyhyesti mitä käytetyt komponentit ovat. Mikäli vastuksen ...jatka lukemista!

5. PWM-ohjaus

Edellisessä osassa kytkettiin Arduinolle LDR-vastus ja potentiometri, joita käytettiin ledin sytyttämiseen ja sammuttamiseen. Tehtiin siis yksinkertainen ON/OFF-ohjauskoodi. Samaa kytkentää hyväksikäyttäen, tosin vain hieman sitä muuttamalla, saadaan aikaiseksi himmennettävä led jota voidaan ohjata potentiometrillä. Mutta aluksi aiheesta PWM-ohjaus, mikä se oikein on? PWM-ohjaus PWM-ohjaus on yksinkertaisesti pulssisuhteen muutoksella tehtävää ohjausta, jolloin ohjaus menee vuorotellen päälle ja pois tietyllä taajuudella - kyseessä on siis digitaalinen on/off-ohjaussignaali. Pulssin taajuuden arvoa merkitään Hz ja ...jatka lukemista!

6. 7-segmenttinäyttö

Sivulla 7-segmentti on kerrottu tarkemmin käytetyn näytön tyypistä ja kytkennöistä yms. Tässä osassa on käytetty Prenta Oy:n Arduino rakentelusarjasta löytyvää 5161AS 7-segmenttinäyttöä. Näyttö kytketään Arduino Unon pinneihin 13-7 niin että segmentti A on pinnissä 13 ja kytkentä siitä alaspäin menee järjestyksessä kohti 7:ää. Alla olevissa kuvissa nähdään kytkentäkaavio sekä Fritzing-ohjelmalla tehty kuva kytkennästä. Ohjelma toimii siten, että numerot 0 - 9 ilmestyvät 7-segmenttinäyttöön sekunnin välein. Lähdekoodi on sen verran pitkä, että ...jatka lukemista!

7. Releohjaus

Aina silloin tällöin saatetaan tarvita ohjata jotakin ulkopuolista laitetta, minkä käyttöjännitettä ja virtaa ei voida suoraan Arduinolta ottaa. Laite voi esimerkiksi olla 12/24 voltin tuuletin tai moottori tai jopa verkkovirtaan (230 V) liitettävä laite, esimerkiksi yö- tai jouluvalo. Tässä osassa on käytetty alla olevan kuvan mukaista relekorttia, jolla ulkopuolista laitetta voidaan ohjata. Ohjauksen hoitaa Songlen SRD-05VDC-SL-C tyyppinen rele Arduinosta syötetään vain ohjaussignaali sekä käyttöjännitteet (+5V ja GND) relekortille. Kuorma kytketään ...jatka lukemista!

8. Askelmoottorin ohjaus

Tässä osassa käytetään Prenta Oy:n Arduino elektroniikkasetistä löytyvää 5 voltin askelmoottoria 28BYJ-48 sekä ohjauspiiriä ULN2003. Askelmoottoreita löytyy useimmiten esimerkiksi tulostimista, 3D-tulostimista, CNC-koneista, roboteista sekä erilaisista teollisuuden ja automaation sovelluksista. Askelmoottorin hienous on siinä, että sitä on suhteellisen yksinkertainen ohjata ja se liikkuu tarkasti haluttuun asentoon ilman lisäantureita. Askelmoottoria ohjataankin yleensä open-loop periaatteella, joka tarkoittaa sitä, että askelmoottorin ottamien askelien määrää ei varmisteta esimerkiksi enkooderilla tai potentiometrillä tai jollakin muulla tavalla. ...jatka lukemista!

9. Servomoottorin ohjaus

Tässä osassa käytetään Prenta Oy:n Arduino elektroniikkasetistä löytyvää 5 voltin miniservoa. Kyseinen mikroservo on merkiltään Tower Pro SG90 ja painaa huikeat 9 grammaa. Kyseisiä servoja löytyy muiltakin myyjiltä ja netistä näitä voi ostaa erillisinä muistakin kaupoista. Toki nettikaupoista löytyy paljon muitakin servoja joita voi käyttää. Servon datasivut. Ohjattava servo on näppärä pieni moottori erilaisiin (vaikkapa ahtaisiinkin) paikkoihin ja moottorin pakkaus sisältää myös erilaisia vääntövarsia. Moottorin akseli pyörii 180 astetta (90 astetta suuntaansa) ja tämän ...jatka lukemista!

10. LED-matriisi ja 74HC595 siirtorekisteri

Arduino-oppaan kymmenes osa käsittelee hieman laajempaa ja monimutkaisempaa kokonaisuutta. Tällä kertaa en kuitenkaan käy kaikkia asioita niin perusteellisesti läpi ja jätänkin tutkimisen ja ihmettelyn enemmän lukijan vastuulle. Selitän kuitenkin mielestäni hankalimmat kohdat matriisinäytön ohjauksesta sekä siirtorekisterin käyttämisestä. Tätä esimerkkiä varten tarvitset: Arduino kehitysalusta 8x8 LED-matriisi 74HC595 siirtorekisteri IC-piiri Koekytkentäalusta sekä johtimia Kaikki yllä olevat osat löytyvät Prenta Oy:n Arduino Uno rakentelusarjasta. LED-matriisin kytkeminen Arduinoon Alla olevassa kuvassa nähdään, kuinka LED-matriisi ...jatka lukemista!

11. Infrapunavastaanotin/ kaukosäätimen vastaanotin

Prentashopin Arduino setissä mukana tullut infrapunavastaanotin otetaan nyt käyttöön ja tehdään Arduinolle ohjelma, joka tulkitsee lähetetyt infrapunaviestit. Ehkä selvemmin kuitenkin sanottu jos puhutaan kaukosäätimen vastaanottimesta. Vastaanottimen komponenttina käytetään kolmijalkaista VS1838 IR-vastaanotinta, minkä pinnijärjestys on sama mikä lähes kaikissa IR-vastaanottimista löytyy: Out-pinni kytketään Arduinon haluttuun pinniin, tässä tapauksessa pinniin numero 7. Kytkentä Kytkentä kokonaisuudessaan on hyvin yksinkertainen, alla olevan kuvan mukainen: Vastaanottimelle kytketään 5 volttia (punainen), maajohto (musta) sekä OUT-signaalin johto ...jatka lukemista!