• Ei tuloksia

Elektroniikan opetuskäyttöön soveltuvat Arduino kehitysalustat

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Elektroniikan opetuskäyttöön soveltuvat Arduino kehitysalustat"

Copied!
26
0
0

Kokoteksti

(1)

Kandidaatintyö 20.5.2021 LUT School of Energy Systems

Sähkötekniikka

ELEKTRONIIKAN OPETUSKÄYTTÖÖN SOVELTUVAT ARDUINO KEHITYSALUSTAT

Arduino platforms suitable for teaching electronics

Janne Hanttunen

(2)

TIIVISTELMÄ

Lappeenrannan–Lahden teknillinen yliopisto LUT School of Energy Systems

Sähkötekniikka

Janne Hanttunen

Elektroniikan opetuskäyttöön soveltuvat Arduino kehitysalustat 2021

Kandidaatintyö.

26 s.

Tarkastaja: DI Mikko Nykyri

asia-/hakusanat: Arduino, mikrokontrolleri, ohjelmointi, sulautetut järjestelmät

Alentuneiden kustannuksien takia sulautettujen järjestelmien käyttö on lisääntynyt elektroniikan opetuksessa. Elektroniikan opetuksessa monet projektit perustuvat jonkinlaiseen sulautettuun järjes- telmään, jota pystytään sähköisesti ohjelmoimaan. Tämä on mahdollistanut uuden tavan opettaa opis- kelijoille elektroniikan perusteita sekä ohjelmointia.

Kandidaatintyön tavoitteena on selvittää, miten Arduino Uno, Arduino Nano ja Arduino Mega eroa- vat toisistaan käytettävyydeltään, ominaisuuksiltaan ja ohjelmointitavoiltaan. Samalla tutkitaan mitä hyötyjä ja haasteita niiden soveltaminen opetuskäytössä tuo. Lopuksi valitaan näistä kolmesta kehi- tysalustasta paras alusta elektroniikan opetukseen.

Kallein kehitysalusta Mega sisältää eniten muistia ja liitäntöjä. Se sopii parhaiten kokeneille harras- tajille sekä suurempia projekteja varten. Pienemmät ja paljon halvemmat kehitysalustat Uno ja Nano soveltuvat pienempiin projekteihin, joissa muistin ja liitäntöjen tarve ei ole suuri. Mikroprosessorei- den suorittimien nopeuksiltaan Mega, Uno ja Nano ovat yhtä suuria. Ohjelmointitavoiltaan Arduinot ovat samanlaisia ja niitä ohjelmoidaan saman ohjelmiston Arduino IDEn avulla. Toisin kuin Unossa ja Megassa, Arduino Nano sisältää urosliittimiä naarasliittimien sijaan, jonka seurauksena liitäntöjen tekeminen vaatii usein juottamista eikä testikytkentöjä voi nopeasti tehdä hyppyjohtojen avulla.

Arduinojen käyttö tuo myös haasteita, koska niiden ohjelmointi perustuu avoimeen lähdekoodiin. Se tarkoittaa sitä, että kuka vaan voi kopioida valmiin koodin ja käyttää sitä omassa työssään. Tämä täytyy opetuksessa ottaa huomioon, koska suora kop iointi ei tue oppilaiden kehitystä. Arduinojen käyttö toimiikin parhaiten teorian apuna ja näin pystytään helpommin havainnollistamaan, miten eri komponentit ja kokonaisuudet toimivat.

(3)

ABSTRACT

Lappeenranta–Lahti University of Technology LUT School of Energy Systems

Electrical Engineering

Janne Hanttunen

Arduino platforms suitable for teaching electronics 2021

Bachelor’s Thesis.

26 p.

Examiner: M.Sc Mikko Nykyri

keywords: Arduino, embedded systems, microcontroller, programming

Due to reduced costs, the use of embedded systems has increased in teaching of electronics. In elec- tronics teaching, many projects are based on embedded system that can be electronically pro- grammed. This has enabled a new way of teaching students the basics of electronics as well as pro- gramming.

The aim of this bachelor’s thesis is to find out how Arduino Nano, Arduino Uno and Arduino Mega differ in their usability, features and programming methods. At the same time, the bene fits and chal- lenges of applying them in the field of education is analyzed. After analyzing, the most suitable platform for teaching electronics is selected from these three development platforms.

The most expensive platform with the most pins and memory, Mega is best suited for experienced enthusiasts and larger projects. Smaller and much cheaper development platforms Uno an d Nano are suitable for smaller projects where the need for a great amount of memory and pins is not significant.

The three development platforms share the same amount of microprocessor clock speeds. They are similar in programming and are programmed using the same Arduino IDE software. Unlike Uno and Mega, Nano includes male pins instead of female pins. This means that making test connections requires often soldering and they cannot be made quickly with jump wires.

The utilization of Arduinos is also challenging because their programming is based on an open- source code. This means that anyone in the public domain can copy the finished code and use for their own liking. As directly duplicating finished code does not enhance student development and this needs to be considered while educating. Both on the practical and theoretical level Arduinos help the student to comprehend how different components and entities operate.

(4)

SISÄLLYSLUETTELO

Käytetyt merkinnät ja lyhenteet

1. JOHDANTO ... 6

1.1 Tutkimuksen tavoitteet ja tutkimuskysymykset ... 6

1.2 Tutkimuksen rajaus... 7

1.3 Tutkimuksen rakenne ja menetelmät ... 7

2. SULAUTETTUJEN JÄRJESTELMIEN KOMPONENTIT JA OMINAISUUDET.... 8

2.1 Mikrokontrolleri ... 9

2.2 Muisti ... 9

2.3 Pulssinleveysmodulaatio... 10

2.4 AD/DA-muunnin ... 10

3. ARDUINO KEHITYSALUSTAT... 12

3.1 Arduino Uno REV3 ... 12

3.2 Arduino Nano ... 13

3.3 Arduino Mega 2560 ... 14

3.4 Shield-lisäkortit... 15

3.5 Arduinojen vertailu ... 16

4. ARDUINO IDE KEHITYSYMPÄRISTÖ ... 17

4.1 Ohjelmointikieli ... 19

4.2 Kirjastot ... 20

5. YHTEENVETO... 22

Lähteet ... 24

(5)

KÄYTETYT MERKINNÄT JA LYHENTEET

ADC Analog to Digital Converter, analogia-digitaalimuunnin DAC Digital to Analog Converter, digitaali-analogiamuunnin DRAM Dynamic Random Access Memory, dynaaminen työmuisti

EEPROM Electrically Erasable Programmable ROM, ohjelmallisesti uudelleenkirjoi- tettava lukumuisti

EPROM Erasable Programmable ROM, uudelleenkirjoitettava lukumuisti Flash Sähköisesti uudelleenohjelmoitava lukumuisti

I2C Inter-Integrated Circuit, sarjaliikenne väylä I/O Input/Output, tulo/lähtö

ISCP In Circuit Serial Programming, piirin sarjaohjelmointi PROM Programmable ROM, kerran ohjelmoitava lukumuisti PWM Pulse Width Modulation, pulssinleveysmodulaatio RAM Random Access Memory, työmuisti tai käyttömuisti ROM Reading Only Memory, lukumuisti

SPI Serial Peripheral Interface, synkroninen sarjaliikenne väylä SRAM Static Random Access Memory, staattinen työmuisti

(6)

1. JOHDANTO

Nykypäivänä sulautettuja järjestelmiä hyödynnetään melkein missä vain laitteessa. Sovel- lukset vaihtelevat älykelloista, kotitalouden laitteista, teollisiin prosesseihin, erilaisiin robot- teihin ja automaatioon. Sulautettua järjestelmää kutsutaan järjestelmäksi, jossa laitteisto ja ohjelmisto on liitettynä toisiinsa eivätkä pysty toimimaan ilman toista (Marwedel, 2011).

Sulautetun järjestelmien hyötyihin kuuluu se, että järjestelmä toimii itsenäisesti eikä toimin- taan tarvita käyttäjää sekä niitä voidaan uudelleen sähköisesti ohjelmoida suorittamaan tiet- tyjä toimintoja. Yksi tällainen sulautettu järjestelmä on Arduino kehitysalustat, joiden suosio on lisääntynyt elektroniikan opetuksessa niiden halventuneiden hintojen ansiosta (Ar- duino.cc, 2021).

Monet opiskelijat saavat ensikosketuksensa Arduino järjestelmiin elektroniikan perusteiden tai sulautettujen järjestelmien opetuksessa. Ne tarjoavat opiskelijoilla helpon väylän elektro- niikan opetukseen sekä elektronisten laitteiden ohjelmointiin. (Muller, 2015) Arduino kehi- tysalustat sisältävät tärkeitä ominaisuuksia, kuten pulssinleveysmodulaation ja analogia-di- gitaalimuuntimen, joiden avulla opiskelijat voivat ohjata servoja, gyroskooppeja ja releitä.

Avoimen lähdekoodin ansiosta komponenttien tutkiminen sekä projektien tekeminen on tehty helpommaksi, jonka seurauksena Arduinot ovat erinomaisia välineitä elektroniikan opetuksen tueksi.

1.1 Tutkimuksen tavoitteet ja tutkimuskysymykset

Sulautettujen järjestelmien hyödyntäminen elektroniikan opetuksessa on lisääntynyt huo- mattavasti viime vuosikymmenen aikana. Niiden hyödyntäminen on muun muassa edesaut- tanut motivaation kasvattamista ja uuden tiedon kartuttamista. Tutkimuksen tavoitteena on selvittää, miten eri Arduino-järjestelmät eroavat toisistaan käytettävyydeltään, ohjelmointi- tavoiltaan ja liitännöiltään sekä selvittää, minkä takia Arduinoja käytetään usein opetuksen tukena. Tutkimuskysymyksiksi muodostui tavoitteiden pohjalta seuraavat:

Mitä hyötyjä ja haittoja Arduino kehitysalustojen käyttö tuo opiskelun näkökulmasta?

Kuinka eri Arduino kehitysalustat eroavat toisistaan?

Mikä valituista Arduinoista soveltuu parhaiten elektroniikan opetukseen?

(7)

Tutkimuskysymyksien avulla selvitetään, miksi Arduino kehitysalustoja hyödynnetään ope- tuskäytössä ja mitä hyötyjä tai haasteita se tuo oppijan kannalta. Samalla pyritään löytämään, mikä kehitysalusta on opiskelijoiden kannalta paras vaihtoehto.

1.2 Tutkimuksen rajaus

Pienikokoisia kehitysalustoja on runsaasti eri käyttökohteita varten monilta eri valmistajilta, joista suosituimmat ovat Arduino ja Raspberry Pi. Tässä tutkimuksessa tutkittavat kehitys- alustat rajataan Arduinoihin, koska niiden käyttö on hyvin yleistä elektroniikan opetuksessa ja niitä käytetään jatkuvasti eri kursseilla riippumatta koulutuksen tasosta niiden helppokäyt- töisyyden ja matalan hinnan ansiosta. Rajauksen valintaan vaikutti myös omakohtainen kiin- nostukseni, koska olen itse käyttänyt vain Arduino pohjaisia kehitysalustoja ja halusinkin perehtyä asiaan tarkemmin.

1.3 Tutkimuksen rakenne ja menetelmät

Tutkimuksessa tehdään kirjallisuuskatsaus, jonka avulla pyritään vastaamaan tutkimuskysy- myksiin. Tutkimusaineistona käytetään aikaisempia tutkimuksia, kirjoja, -materiaaleja ja op- pikirjoja ja tieteellisiä julkaisuja lähivuosilta. Kirjallisuuskatsauksessa taulukoidaan, miten valitut Arduinot eroavat toisistaan laitteistotasolla ja vertaillaan, mikä valituista Arduinoista sopii parhaiten opetuskäyttöön sekä pohditaan mitä hyötyjä ja haittoja niiden soveltaminen opetuksessa tuo. Pohdinnan tukena käytetään aikaisempia tutkimuksia, jotka käsittelevät Ar- duinojen soveltamista opetuskäytössä.

Tutkimuksen johdannossa perehdytään tutkimuksen aihepiiriin, joka tuo lukijalle yleiskuvan miten sulautetut järjestelmät näkyvät ja toimivat nykypäivänä. Johdantoluvussa esitellään myös tutkimuksen tavoitteet ja tutkimuskysymykset sekä tutkimukseen tehdyt rajaukset.

Tutkimuksen toisessa luvussa esitellään sulautettujen järjestelmien kriittiset komponentit, pulssinleveysmodulaatio sekä analogia-digitaali- ja digitaali-analogia-muuntimen toimin- nat. Luvun tavoitteena on muodostaa yleiskuva lukijalle, miten sulautettujen järjestelmien komponentit toimivat ja mikä tarkoitus niillä on järjestelmässä.

Kolmannessa luvussa esitellään vertailtavat Arduino kehitysalustat ja niiden ominaisuuksia vertaillaan laitteistotasolla. Samalla käydään läpi, mitä liitäntöjä eri Arduinot sisältävät ja

(8)

mitä niillä pystytään tekemään. Lisäksi selvitetään, mitä eri lisäkortteja kehitysalustoihin pystytään liittämään ja mitä hyötyjä lisäkorttien käyttäminen tuo. Luvun lopuksi taulukoi- daan saadut tulokset, jonka jälkeen analysoidaan, mihin käyttötarkoitukseen kukin Arduino soveltuu parhaiten.

Luvussa neljä tarkastellaan Arduino IDE kehitysympäristöä. Kehitysympäristöstä käydään läpi käytettävä ohjelmointikieli sekä miten eri kirjastoja voidaan hyödyntää. Luvussa sel- vennetään lukijalle, miten Arduinoja voidaan ohjelmoida.

Viimeisessä luvussa tehdään yhteenveto tutkimuksesta ja vastataan miten saadut tutkimus- tulokset vastaavat tutkimuskysymyksiin. Yhteenvedossa selvitetään myös, mikä valituista Arduinoista soveltuisi parhaiten opetuskäyttöön ja pohditaan mitä hyötyjä ja haittoja näiden käyttö tuo.

2. SULAUTETTUJEN JÄRJESTELMIEN KOMPONENTIT JA OMINAISUUDET

Sulautetut järjestelmät koostuvat monesta eri elektroniikan komponentista ja niiden avulla toimivista ohjelmistoista. Se voidaan ohjelmoida suorittamaan erilaisia toimintoja tiettyä tehtävää varten (Ball ym. 2002). Sulautettujen järjestelmien koot vaihtelevat pienistä sovel- luksista suuriin.

Kuva 2.1. Sula utetun jä rjestelmä n kriittiset komponentit, joita se ta rvitsee toimia kseen (Ga dre, 2000)

Kuvasta 2.1. nähdään mistä komponenteista sulautetut järjestelmät koostuvat. Sen pääkom- ponentit ovat mikrokontrolleri, muisti, joka jakautuu lukumuistiin ROM, työmuistiin RAM, Flash-muistiin sekä EPROM-muistiin, virtalähde, eri väylät ja liitännät, anturit ja ajastimet ja sovellusohjelma.

(9)

2.1 Mikrokontrolleri

Monien sulautettujen järjestelmien sydän eli mikrokontrolleri on pieni tietokone, jota käyte- tään nykypäivän laitteissa yhä enemmän ja enemmän. Monissa eri laitteissa mikrokontrolle- rit ovat integroituna suurempaa järjestelmää tulo- ja lähtöliitäntöjen avulla helpottaakseen muun muassa tiedonsiirtoa. Markkinoilta löytyykin useita eri mikrokontrollereita, joilla jo- kaisella on omat ominaisuutensa ja käyttötarkoituksensa. (Montironi ym. 2017)

Mikrokontrolleria kutsutaan myös sulautetuksi järjestelmäksi, koska mikrokontrolleri ja sitä tukevat piirit ja liitännät ovat sulautettu yhteen. Se sisältää samoja komponentteja kuin su- lautetut järjestelmät, kuten suorittimen, RAM-, ROM-, EPROM- ja EEPROM-muistia, tu- loja ja lähtöjä, ajastimia ja laskureita sekä AD/DA-muuntimia (Kothari, 2015). Mikrokont- rollereita on 4-bittisistä 128-bittisiin asti (CircuitsToday, 2020). Yli puolet myytävistä suo- rittimista ovat 8-bittisiä mikrokontrollereita tai -prosessoreita (Kothari, 2015).

2.2 Muisti

Toimiakseen mikrokontrolleri tarvitsee RAM-muistia. Ilman tätä mikrokontrolleri olisi huo- mattavasti hitaampi. RAM-muisti koostuu kahdesta tallennusmuistista, jotka ovat SRAM ja DRAM. SRAM-muistin ja DRAM-muistin välinen ero johtuu niiden kyvystä säilyttää tietoa (Barr, 2001). Koska RAM-muisti tyhjenee virran katkaistaessa, luetut tiedot täytyy tarvitta- essa tallettaa esimerkiksi ROM-muistiin tai Flash-muistiin (Salo, 2017).

ROM-muisti on siis eräänlainen tallennustila, joka löytyy sisäänrakennettuna monista lait- teista. RAM-muisti eroaa ROM-muistista sillä, että ROM-muisti ei tyhjene virran katkaista- essa. ROM-muisti voidaan jakaa kolmeen eri muistiin, jotka yhdessä muodostavat ROM- muistin. Nämä muistit ovat PROM, EPROM ja EEPROM. PROM-muisti on ikään kuin ker- takäyttömuistia, johon voi vain kerran kirjoittaa tietoa. EPROM-muisti eroaa PROM-muis- tista sillä, että se voidaan kirjoittaa moneen eri kertaan. EEPROM-muisti on nykyaikaisin versio. Sen sisällön voi uudelleenkirjoittaa ohjelmallisesti yhä uudestaan. (Barr, 2001)

Flash muisti on eräänlainen hybridi versio ROM-muistista, jota käytetään koodin tallennuk- sessa. Sitä on nopea lukea, se on halpaa ja sitä voidaan uudelleenkirjoittaa (Barr, 2001).

Tämän takia Flash-muistin käyttö sopii esimerkiksi Arduinoihin tai muihin sulautettuihin

(10)

järjestelmiin, joiden hinnat halutaan pitää mahdollisimman alhaisina menettämättä tärkeitä ominaisuuksia.

2.3 Pulssinleveysmodulaatio

Pulssinleveysmodulaatio on keino hallita analogisia piirejä mikroprosessorin digitaalisilla tuloilla, ja se näkyy esimerkiksi DC-jännitelähteen tehon arvossa. Itse PWM signaali on di- gitaalista signaalia ja sillä on kaksi muotoa: digitaalisella nollalla DC-jännite tai -virta on nolla ja digitaalisella ykkösellä se on maksimi. PWM signaalissa jännite- tai virtalähde toi- mitetaan analogiseen kuormaan toistuvien pulssien avulla, joiden arvot vaihtelevat nollasta maksimijännitteeseen tai -virtaan. Riittävällä kaistanleveydellä mitä tahansa analogista ar- voa voidaan ohjelmoida PWM:lla (Barr, 2001).

Kuva 2.3. PWM-signa a lin toiminta eri työja ksonajoilla (Righto, 2009)

Kuvassa 2.3. nähdään, miten työjaksonaikaa vaihdellen, digitaalinen kanttiaalto muuttaa muotoaan. PWM-signaali digitaalisen kanttiaallon työjakso voi vaihdella välillä 0–100 % ja muuttamalla työjaksonaikaa, eli sitä aikaa milloin signaali on päällä ja milloin pois päältä, voidaan muuttaa komponentin tai moottorin toimintaa. PWM-tekniikkaa sovelletaan muun muassa LEDien himmennyksessä, analogisen lähdön tarjoamisessa, moottorien nopeuden säädössä sekä moduloidun signaalin generoimisessa (Righto, 2009).

2.4 AD/DA-muunnin

Analogia-digitaalimuunnin muuntaa jatkuvan siniaaltoliikkeen digitaaliseksi kanttiaalloksi ja digitaali-analogiamuunnin digitaalisen kanttiaallon analogiseksi siniaaltoliikkeeksi. Ana- loginen signaali näkyy virran tai/ja jännitteen vaihteluna sekä ilman paineen vaihteluna ää- nen muodossa (Eronen, 2011). Analoginen signaali on jatkuvaa eli se voi saada mitä tahansa arvoja lukualueensa rajoissa, kun taas digitaalinen signaali käyttäytyy samalla tavalla kuin

(11)

kanttiaalto ja se voi saada arvoja resoluution asettamilla rajoilla mutta vain tietyllä ajanjak- solla (Kuisma, 2021).

Kuva 2.4. Digita a lisen bittisigna a li muutta minen a nalogiseksi signa a liksi (Rohm, 2021)

DA-muuntimen toimintaperiaate nähdään kuvasta 2.4. DA-muunnin ottaa tietyn määrän bi- näärilukuja ja muuntaa nämä binääriluvut fyysisiksi määriksi (Rohm, 2021). Fyysiset mää- reet voivat olla esimerkiksi jännite, paine tai lämpötila.

Kuva 2.5. 3-bittisen Ana logia signa a lin muutta minen digita a liseksi, missä b2 ta rkoitta a merkittävintä bittiä , b1 ta rkoitta a bittiä ja b0 ta rkoitta a vähiten merkittä vintä bittiä (Rohm, 2021)

AD-muuntimen toimintaperiaate nähdään kuvasta 2.5. AD-muuntimessa pilkotaan analogi- nen signaali määrävälein, jonka jälkeen näytteen arvot muunnetaan digitaalisiksi arvoiksi, jotta sitä pystytään mittaamaan. AD-muuntimen resoluutio ilmaistaan bittien määrällä, esi- merkiksi kuvan 2.5. 3-bittisen resoluutio on 8, eli se kykenee erottelemaan toisistaan 8 tasoa.

(Rohm, 2021)

Käytettäessä Arduinoa AD-muunnin vertaa liitinnastan jännitettä ja määritettyä referenssi- jännitettä. Jännitereferenssin tarkoituksena on tuottaa stabiili jännite riippumatta ulkoisista häiriöistä. Jännitereferenssi täytyy AD-muuntimissa määrittää, jotta halutaan mitata tai tuot- taa jännitettä. Analogisen referenssijännitteen suhteen on vaihtoehtoja. Voidaan käyttää Ar- duinon ensisijaista jännitelähdettä tai käyttämällä sen sisäistä jännitelähdettä referenssinä.

Helpoin vaihtoehto on käyttää ensisijaista jännitelähdettä referenssiarvona, koska sitä käy-

(12)

tetään vakiona. Jännitteen arvo on joko 5 V tai 3,3 V. Ainoana ongelmana on signaalin epä- vakaisuus. Epävakaisuus näkyy erityisesti, kun projektissa käytetään suurivirtaisia laitteita, kuten servoja tai releitä. (Premeaux ym. 2011)

3. ARDUINO KEHITYSALUSTAT

Arduino on pienikokoinen yhden piirilevyn sulautetun järjestelmän kehitysalusta, joka on rakennettu mikrokontrollerin ympärille. Aloittelijoiden keskuudessa Arduino kehitysalustat ovat tulleet hyvin suosituiksi, koska Arduino ei tarvitse erillistä laitteistoa ladatakseen uutta koodia ohjelmointikortille. Tarvitaan ainoastaan USB-kaapelin, joka liitetään tietokonee- seen. Lisäksi tarvitaan ladata Arduino IDE ohjelmistoympäristö, joka käyttää ohjelmointi- kielenään yksinkertaistettua versiota C++ (sparkFun, 2021).

Arduino kehitysalustat perustuvat avoimeen lähdekoodiin, jota on helppo ohjelmoida ilman aikaisempaa kokemusta. Kehitysalustat julkaistiin vuonna 2005 ja niiden tarkoituksena oli tuoda suhteellisen halpa ja helppo tapa rakentaa elektroninen laite, joka reagoi ympäristöön sensorien avulla. Arduino kehitysalustoihin voi liittää sisäänrakennettuja shield -lisäkortteja.

Näiden avulla Arduinoon saadaan lisättyä jokin lisäominaisuus, esimerkiksi Bluetooth tai moottoriohjain (Louis L. 2016).

3.1 Arduino Uno REV3

Kuva 3.1. Arduino Uno ohjelmointikortti ja sen komponentit ja liitä nnä t (Ca meron, 2019)

(13)

Arduino Uno on yleisin malli Arduinoista ja yksi parhaimpia ohjelmointikortteja elektronii- kasta ja ohjelmoinnista innostuneille aloittelijoille. Tämä johtuu siitä, että Uno sisältää kai- ken tarvittavan eikä mitään ylimääräistä. Koska Unon pinneinä toimii naaraspinnit, voidaan juottamisen sijasta käyttää hyppyjohtoja. Juottamista kannattaa kuitenkin harkita, kun ky- seessä on pitkäaikaisempia kytkentöjä eikä vain testikytkentöjä. Käyttäjäystävälliseksi Unon tekee se, että mikrokontrolleri on kiinnitetty ohjelmointikortin kantoihin. Tämä mahdollistaa mikrokontrollerin vaihtamisen vaivattomasti, jos se vioittuu ylikuormituksesta.

Uno saa virtansa joko DC-jännitelähteestä, USB-liitännästä tai suoraan syöttämällä jännit- teen 7–12 V tulopinniin. USB-liitäntää suositellaan käytettäväksi, koska sitä tarvitaan ko- mentojen lataukseen. Unon virtapinnit mahdollistavat 5 V ja 3,3 V käyttöjännitteen sekä kaksi maadoituspinniä muitten laitteistojen yhdistämiseen. Pinnit 0 ja 1 ovat tarkoitettu datan siirtämiseen ja vastaanottamiseen toisista laitteista. Pinnit 2–13 ovat digitaalisia tulo- ja läh- töpinnejä, joiden tulo- ja lähtöjännite on 5 V tai 0 V riippuen onko kyseessä digitaalinen nolla vai ykkönen (Cameron, 2019). Useat lähtöpinnit toimivat PWM-signaalilla, jolloin pinnin tilat vaihtelevat 5 V ja 0 V välillä. Analogia pinnit A0 – A5 mittaavat jännitettä 0 V ja 5 V väliltä ja muuttavat analogia signaalin digitaalisiksi arvoiksi. Pinnit A4 ja A5 voivat kommunikoida toisten laitteiden kanssa. Samalla tavalla pinnit 10–13 voivat kommunikoida toisten laitteiden kanssa mutta ne käyttävät vastaavasti I2C ja SPI protokollaa (Cameron, 2019).

3.2 Arduino Nano

Kuva 3.2. Arduino Na no ohjelmointikortti ja sen liitä nnä t (Arduino.cc, 2021)

(14)

Näistä kolmesta pienin ohjelmointikortti Nano sopii pienempiin projekteihin, joissa tehon- tarve tai muistin tarve ei ole suuri. Nano on liitännöiltään ja teholtaan sama kuin Uno mutta pienemmässä koossa. Erona Unoon Nanossa Atmegan328 mikrokontrolleri on piirilevyyn kiinni juotettu pintaliitoskomponentti, jonka seurauksena vioittuneen mikrokontrollerin vaihtaminen on työläämpää ja onkin suositeltavaa ostaa uusi ohjelmointikortti. Nanon pinnit ovat naaraspinnien sijaan urospinnejä, jonka seurauksena Nanon voi suoraan laittaa kiinni kytkentäalustaa näitten pinnien avulla. Se soveltuu projekteihin, joissa painon suuruus on kriittinen sekä se on kätevä ahtaissa tiloissa, joihin ei suurempi ohjelmointikortti mahdu.

Koska Nano on fyysisiltä mitoiltaan pieni, shield -lisäkorttien käyttö ei ole mahdollista.

Nano saa virtansa ainoastaan mini USB-liitännästä tai syöttämällä jännitteen suoraan siihen tarkoitettuun pinniin. Näistä kolmesta Arduinoista Nano ei sisällä DC-jänniteliitäntää. Na- non virtapinnit antavat joko 5 V tai 3,3 V käyttöjännitteen ja se sisältää kaksi maadoituspin- niä ulkoisia kytkentöjä varten. Ohjelmointikortin pinnit D2–D13 toimivat digitaalisina tulo- ja lähtöpinneinä, joista kuutta voidaan käyttää PWM-signaalina. Pinnit A0–A7 toimivat ana- logisina tuloina ja muuttavat signaalin digitaaliseksi.

3.3 Arduino Mega 2560

Kuva 3.3. Arduino Mega 2560 ohjelmointikortti ja sen liitä nnä t (a rduino.cc, 2021)

Arduino Mega sopii kehittyneimpiin projekteihin, joissa liitäntöjen ja muistin tarve on suu- rempi. Siinä on lähes neljä kertaa enemmän digitaalisia tulo- ja lähtöpinnejä kuin Nanossa tai Unossa. Ohjelmointikortti perustuu ATmega2560 mikrokontrolleriin, jonka ansiosta se

(15)

pystyy tekemään enemmän eri toimintoja samanaikaisesti kuin Nano tai Uno. Arduino Mega on lähes identtinen Unon liitäntöjen sijaintien suhteen, joten samat shield -lisäkortitkin käy- vät Megaan. Vaikka Megaan liitettäisiin shield-lisäkortti, jää vielä käytettäväksi ohjelmoin- tikortin oikealla sivulla olevat digitaaliset tulo- ja lähtöpinnit. Tämä mahdollistaa useamman oheislaitteen samanaikaisen kytkennän.

Mega saa virtansa USB-liittimestä, DC-jännitelähteestä tai syöttämällä käyttöjännitteen sii- hen varatulle pinnille. Megan virtapinnit antavat joko 3,3 V tai 5 V käyttöjännitteen sekä kaksi maadoituspinniä. Se sisältää 16 analogista tuloa, jotka on merkitty ohjelmointikorttiin A0–A15. Digitaalisia tuloja Megassa on 54, joista 14 käyttää PWM-signaalia. Pinnit 2–13 käyttävät PWM-signaalia ja pinnit 0, 1 ja 14–21 ovat muitten laitteiden kommunikointia varten. Ohjelmointikortin oikealla reunalla on loput digitaaliset tulo- ja lähtöpinnit. Jokainen näistä pinneistä antaa 5 V käyttöjännitteen mutta PWM-signaalilla varustetut digitaaliset tulo- ja lähtöpinnit antavat jännitteen väliltä 0 V–5 V riippuen pinnin tilasta.

3.4 Shield-lisäkortit

Arduino ohjelmointikorttien päälle voidaan asentaa monia eri Shield -lisäkortteja, jotka tuo- vat jonkin lisäominaisuuden esimerkiksi moottoriohjaimen, eri näyttöjen käytön tai langat- toman tiedonsiirron, kuten Bluetooth, Ethernet, GSM käytön. Monet lisäkorteista ovat suun- niteltu niin, että niitä voidaan kasata toistensa päälle. Arduinon lisäkortit käyttävät usein Arduino Uno R3 pohjapiirroksena, jonka seurauksena ne ovat yhteensopivia monien eri Ar- duinojen kanssa (sparkFun, 2021). Toimiakseen lisäkortit usein tarvitsevat kirjaston tai esi- merkkikoodin. Näitä kirjastoja tai koodeja voi ladata Arduinon kotisivuilta tai käyttää Ar- duino IDEn omia kirjastoja.

Jokaisen Shield-lisäkortin täytyy noudattaa samoja muotoja kuin alkuperäinen Arduino, jotta ne olisivat yhteensopivia. Jotkut lisäkortit tarvitsevat Arduinon ICSP liittimiä, toiset tarvit- sevat kaikkia Arduino liittimiä ja toiset vain muutamia. Nämä kaikki pitää ottaa huomioon, kun lisäkortteja kasataan toistensa päälle, ettei ne käytä samoja liittimiä. (sparkFun, 2021)

(16)

Shield-lisäkortteja voi ostaa erikseen esimerkiksi Arduinon omilta nettisivuilta tai tehdä itse.

Ohjeita löytyy Arduinon omilta sivuilta. Jos lisäkortteja halutaan itse tehdä, se tarvitsee juot- tamista. Ilman juottamista Arduinon ja lisäkortin yhteys toimii vain ajoittain välttämättä ei ollenkaan (sparkFun, 2021).

3.5 Arduinojen vertailu

Alla olevassa taulukossa 3.1. on lueteltu eri Arduino ohjelmointikorttien teknisiä tietoja.

Ta ulukko 3.1. Arduinojen tekniset tiedot Alustan

nimi

Mikro- kontrolleri

Käyttö- jän- nite/Syöt- töjännite

Suori- tin no- peus

Ana- logiset I/O

Digi- taaliset I/O (PWM)

EEPROM [kB]

SRAM [kB]

Flash [kB]

Hinta [€]

UNO AT-

mega 328P

5 V/

7–12 V 16 MHz

6/0 14 (6) 1 2 32 20,00

MEGA AT- mega 2560

5 V/

7–12 V 16 MHz

16/0 54 (15) 4 8 256 35,00

Nano AT- mega 328

5 V/

7–12 V 16 MHz

8/0 14 (6) 1 2 32 20,00

Kuten taulukosta 3.1. nähdään, että kaikkien kolmen ohjelmointikortin suorittimien nopeu- det ovat samoja, vaikka perustuvatkin saman valmistajan eri mikrokontrollereihin. Suurin ero ohjelmointikorttien välillä on niiden muistin ja liitäntöjen määrä. Koska kouluprojek- teissa tarvittavien liitäntöjen määrä ei usein ole suuri, päädytään käyttämään joko Unoa tai Nanoa. Megan käyttöä kannattaa kuitenkin harkita, jos projektissa tarvitaan lisämuistia, enemmän pinnejä tai halutaan käyttää shield-lisäkortteja, jolloin digitaalisia tulo- ja lähtö- pinnejä jää vielä käytettäväksi. Unollaki voi hyödyntää näitä shield -lisäkortteja mutta tällöin täytyy ottaa huomioon, että se vie huomattavan määrän digitaalisia ja analogisia tulo- ja läh- töpinnejä eikä muille oheislaitteille jää hirveästi kytkentämahdollisuuksia. Nanossa shield - lisäkorttien käyttö ei ole mahdollista, joten jos projektissa niitä halutaan käyttää, täytyy va- lita joko Uno tai Mega. Ohjelmointikorttien hinnat vaihtelevat paljon riippuen ostetaanko alkuperäisiä Arduinoja, Genuinoja vai kopioita, joiden hinnat voivat olla jopa viidenneksen alkuperäisten hinnoista.

Jos projektissa fyysisillä mitoilla tai painolla on suuri painoarvo, suositellaan Nanon valit- semista. Nano on jo valmiiksi noin kaksi kertaa pienempi ohjelmointikortti kuin Uno lähes

(17)

samoilla ominaisuuksilla. Nanon voi kiinnittää suoraan piirilevylle, jolloin fyysiset mitat py- syvät kontrollissa. Nano on myös näistä kolmesti usein se halvin, joka osin selittyy sen pie- nen kokonsa takia.

Monet aloittelijat käyttävät Unoa ensimmäisinä ohjelmointikortteina sen käyttöystävällisyy- den takia. Siinä on selkeästi merkitty kortille virta-, digitaaliset-, analogiset- ja kommuni- kointipinnit sekä Unossa on mahdollisuus vaihtaa mikrokontrolleri, jos se vioittuu harjoitel- lessa. Aloittelijoille Uno on hyvä myös sen takia, koska juottamista ei tarvitse osata, tarvi- taan vain koekytkentäalusta, muutama elektroniikan komponentti ja hyppyjohtoja, joiden avulla saadaan tutkittua laitteen tai komponentin toimintaa.

4. ARDUINO IDE KEHITYSYMPÄRISTÖ

Arduino sisältää laitteiston lisäksi sisäänrakennetun ohjelmointiympäristön Arduino IDEn.

Arduino IDE on avoimeen lähdekoodiin perustuva ohjelmisto, jota käytetään koodin muok- kaamiseen ja valmiin koodin lataamiseen. Suurin osa Arduinoista yhteensopivia Arduino IDEn kanssa, kuten myös Uno, Mega ja Nano. IDE on saatavilla Windowsille, Linuxille ja Mac OS X:lle ja sen voi ladata Arduinon omilta kotisivuilta. Alustana se käyttää Java Plat- formia, jossa on sisäänrakennettuna funktioita ja käskyjä, joita tarvitaan virheenkorjauk- sessa, koodin muokkaamisessa ja sen kokoamisessa. Jokainen Arduino sisältää ohjelmoita- van mikrokontrollerin, jonka toimintaa voidaan muuttaa ohjelmoimalla sitä. Arduino IDE käyttää ohjelmointikielenään C-kieltä muistuttavaa ohjelmointikieltä. (Fezari, 2018)

Miamin yliopistossa apulaisprofessorina toimiva Peter Jamieson tutki, miten Arduino kehi- tysalustan käyttö sopii opetuskäyttöön. Tätä hän lähti tutkimaan ottamalla sulautettujen jär- jestelmien opetuksen tueksi Arduino Unoja. Hänen mielestään kyseinen alusta tarjoaa opis- kelijoille hyviä ominaisuuksia, joiden avulla opiskelijat voi rakentaa laitteita, jotka olisivat lähes mahdottomia toteuttaa muilla alustoilla. Laajan Arduino-yhteisön ansiosta, opiskelijat voivat opiskella yhteisön tekemien materiaalien avulla sekä tutkia millaisia projekteja Ar- duinolla voi tehdä. Yhteisö koostuu erilaisista insinööreistä, tiedemiehistä ja muista elektro- niikan harrastajista. Ideana tällaisessa yhteisössä on se, että opiskelijoilla on vapaa pääsy materiaaliin ja voivat hyödyntää yhteisön tekemiä projekteja omissa projekteissaan. (Jamie- son, 2011)

(18)

Kuva 4.1. Arduino IDEn luonnoseditori (Pa n ym. 2018)

Avatessaan Arduino IDEn, avautuu kuvan 4.1. mukainen luonnoseditori. Ennen kuin koodia aletaan kirjoittamaan, täytyy valita työkaluista käytettävä ohjelmointikortti sekä valita oikea portti. Ohjelmointikortin nimi sekä sarjaportin nimi näkyy luonnoseditorin oikeassa alakul- massa. Jotta sarjaportin pääsee valitsemaan, täytyy Arduino olla kytkettynä USB-portilla tietokoneeseen.

Ta ulukko 4.1. Työka lupa lkin kuva kkeet ja toiminnot

Varmista Tarkistaa mahdolliset virheet koodissa

Lähetä Lähettää luonnoksen Arduinoon

Uusi Tekee uuden luonnospohjan

Avaa Avaa luonnoksen tiedostoista

Tallenna Tallentaa luonnoksen

Sarjamonitori Näyttää Arduinolle lähetettyä sarjadataa

Taulukosta 4.1. nähdään työkalupalkin toiminnot. Tärkeimpänä toimintona aloittelijalle on varmista-toiminto. Se toimii luonnoksen virheentarkastuksena. Lähetä-toiminto lähettää

(19)

luonnoksen USB-portin kautta ohjelmointikortille ja suorittaa luonnoksessa määritetyt toi- minnot. Jos ohjelmointikortti ei toimi haluamalla tavalla, voi sarjamonitori-toiminto olla avuksi. Sarjamonitorin avulla voidaan paikallistaa virhe ja korjata virhe luonnoksessa, eli se toimii virheiden jäljittäjänä. Sen avulla voidaan myös tutkia Arduinolle lähetettyä dataa, esi- merkiksi voidaan tutkia lämpötilasensorista saatuja lämpötilan arvoja.

4.1 Ohjelmointikieli

Arduino IDE käyttää pohjanaan C/C++ -kieltä, jota on taas muokattu helppokäyttöisem- mäksi, jotta projektien tekeminen Arduinolla olisi sulavampaa. Monet peruskomennot kui- tenkin ovat samoja C-kielen kanssa, joten sen osaamisesta on apua (Dunbar, 2020). Näitä komentoja ovat muun muassa void setup(), void loop(), pinMode(), delay(), digitalWrite().

Kuva 4.2. Arduino IDE nä yttä ä koodin ta rkastuksessa ilmenneen via n

Aloittelijaystävälliseksi Arduino IDEn tekee se, että ennen koodin latausta ohjelmointikor- tille se tekee virheentarkastuksen kuvan 4.2. mukaisesti ja näyttää missä mahdollinen virhe on syntynyt. Vertailtaessa esimerkiksi C-kieleen, jossa tällaista virheentarkastelua ei ole si- säänrakennettuna, helpottaa se koodien kirjoittamista. Sisäänrakennettu virheenkäsittely te- kee myös koodin kirjoittamisesta paljon mukavampaa ja nopeampaa, kun ei tarvitse itse etsiä mahdollista pilkkuvirhettä. Virheentarkastus ohjelma on myös oppimisen kannalta hyvä, koska tällöin saa heti varmuuden onko koodi kirjoitettu oikein eikä tarvitse arpoa miksi Ar- duino ei käyttäydy halutulla tavalla.

Koska Arduino IDE perustuu avoimeen lähdekoodiin, voi jokainen kopioida valmiin koodin ja käyttää sitä omassa projektissaan. Tämä nähdään usein ongelmana opiskelumaailmassa eikä välttämättä pystytä tunnistamaan onko projektin tekijä kirjoittanut itse koodin vai la- dannut sen netistä ja muokannut sitä omaan projektiin sopivaksi. Usein valmista koodia ei löydy internetistä, joka toimisi suoraan omaan projektiin ja täten opiskelija joutuu korjaa- maan sitä tarvittaessa. Jo tämän pienen muokkauksen tehdessä opiskelijan tietotaito kehittyy eikä kopiointi monesti haittaa. (Jamieson, 2011)

(20)

Ohjelmointitavoiltaan Uno, Nano ja Mega ovat hyvin samanlaisia. Erot johtuvat pinnien ominaisuuksista ja niiden määrästä, esimerkiksi onko pinnit analogisia, digitaalisia, PWM- signaalilla varustettuja vai käyttävätkö ne I2C tai SPI protokollaa. Tämän takia Megaa varten tehdyt koodit eivät välttämättä toimi Unossa tai Nanossa. Toisaalta vähemmän pinnejä si- sältävä Nanon tai Unon koodi toimii Megassa.

4.2 Kirjastot

Kuva 4.3. Arduino IDEn eri kirja stojen lisä ä minen luonnokseen

Arduino IDEssä on kuvan 4.3. mukaisesti monia sisäänrakennettuja kirjastoja, jotka tuovat luonnokseen lisätoimintoja, kuten langattoman tiedonsiirron (Arduino.cc, 2021). Ilman näitä kirjastoja, täytyisi kirjoittaa koodi lisätoiminnolle, joka ei välttämättä aloittelijoilta onnis- tuisi tai veisi liikaa aikaa. Näiden avulla saadaan tehtyä monimutkaisempia kouluprojekteja vaivattomasti. Sillä on myös motivoiva puoli, koska koodaukseen kuluva aika alenee ja voi- daan keskittyä olennaisen tutkimiseen tai oppimiseen. Monille elektroniikasta kiinnostu- neille on varmasti esteenä se, että koodaaminen on jäänyt vähemmälle ja tällöin tällaiset sisäänrakennetut kirjastot alentavat kynnystä projektien aloittamiseen ja motivoivat uusien tekemistä.

Usein käytettyjä kirjastoja ovat muun muassa langattomaan tiedonsiirtoon liittyvät kirjastot, kuten WiFi, Bluetooth ja GSM. Näitä kirjastoja käytetään silloin, kun Arduinoon on liitetty

(21)

jokin shield-lisäkortti esimerkiksi Ethernet tai Bluetooth moduuli. Kirjastojen avulla saadaan hyödynnettyä moduulien ja shield-lisäkortin tuomat ominaisuudet.

Kirjastoja käytettäessä täytyy kuitenkin muistaa se, että kaikki kirjastot eivät välttämättä so- vellu kaikille Arduinolle. Monet ovatkin tehty tiettyjä Arduino ohjelmointikortteja varten esimerkiksi Megaa varten. Pienellä muokkauksella monet kirjastot toimivat eri ohjelmointi- korttien välillä mutta tällöin täytyy olla kokemusta koodauksesta. Usein tätä ei tarvitse tehdä, koska monet harrastajat ovat tehneet samat kirjastot eri ohjelmointikorteille.

Kuva 4.4. Eri kirja stojen ta rkentava hakuvalikko, jolla voida a n etsiä tietyn a ihealueen ja eri Arduinojen kirja stoja

Kirjastoja voi myös hakea kuvan 4.4. mukaisesta valikosta. Erona kuvan 4.3. kirjastoihin on se, että valikon kirjastot ovat muiden harrastajien tekemiä kirjastoja, joita kaikki voivat käyt- tää. Hakuvalikolla pystytään myös etsiä tiettyjä aihealueita, joita ovat esimerkiksi tiedonkä- sittely tai sensorit. Näitä kirjastoja joudutaan usein käyttämään uusissa projekteissa, jotta saadaan tietyt toiminnot toimimaan.

Huonoja puoliakin kirjastojen lisäämisellä on, nimittäin niiden lataaminen ohjelmointikor- tille vie huomattavan määrän muistia. Tämän takia täytyy ottaa huomioon muistirajoitteet, jotka vaihtelevat ohjelmointikorttien välillä (arduino.cc, 2021). Käytettäessä Unoa sekä Na- noa on oltava erityisen tarkkoja muistin käytön kanssa, sillä ne sisältävät vain 32 kB Flash- muistia. Jos projektiin on liitettynä useampia lisälaitteita, jotka tarvitsevat toimiakseen eri kirjastoja, voi 32 kB Flash-muisti olla liian vähäinen. Arduino Uno ja Nano soveltuukin projekteihin, joissa kirjastojen määrä pysyy alhaisena ja näillä ohjelmointikorteilla on suo- siteltavaa poistaa ylimääräiset kirjastot, jos niille ei ole käyttöä. Toimenpiteen voi tehdä

(22)

poistamalla #include lausekkeen sisällä olevat komennot, jolloin Arduino IDE ei enää yh- distä kirjastoon ja luonnoksen muistinkäyttö alenee (arduino.cc, 2021). Jos muistinkäytön kanssa on ongelmia, on suositeltavaa käyttää Megaa, joka sisältää noin viisi kertaa enemmän Flash-muistia kuin Uno ja Nano.

5. YHTEENVETO

Opetuskäytössä yhä useammat elektroniikan projektit perustuvat Arduino kehitysalustojen ympärille niiden helppokäyttöisyyden takia. Työn tarkoituksena olikin selvittää, miten eri Arduino kehitysalustat eroavat toisistaan laitteistotasolla ja selvittää mitä hyötyjä tai haittoja kyseisten alustojen soveltaminen tuo. Samalla haluttiin selvittää, mikä valituista Arduinoista olisi soveltuvin elektroniikan opetukseen riippumatta käyttäjän lähtötasosta.

Suuria eroja ohjelmointikorttien välillä ei ole ja erot esiintyvät ohjelmointikorttien liitäntöjen ja muistin määrässä, koossa ja hinnassa. Arduino Uno perustuu ATmega328 mikroproses- soriin, Nano perustuu ATmega328P mikroprosessoriin ja Mega perustuu ATmega2560 mik- roprosessoriin. Vaikka ohjelmointikortit perustuvat saman valmistajan eri mikroprosessorei- hin, niiden kellotaajuudet ovat samoja. Kooltaan suurin ohjelmointikortti Mega sisältää 54 digitaalista ja 16 analogista tulo- ja lähtöpinniä, kun taas pienin ohjelmointikortti Nano si- sältää vain 14 digitaalista ja kahdeksan analogista tulo- ja lähtöpinniä. Pankkikortin kokoi- nen Uno sisältää saman verran digitaalisia tulo- ja lähtöpinnejä kuin Nano mutta analogisia tuloja ja lähtöjä sillä on kuusi. Muistiltaan Uno ja Nano ovat samanlaisia ja sisältävät yhtä paljon SRAM-muistia ja Flash-muistia, joiden suuruudet ovat 2 kB ja 32 kB. Mega sisältää neljä kertaa enemmän SRAMia ja jopa kahdeksan kertaa enemmän Flash-muistia kuin Uno ja Nano. Unon ja Nanon hinnat vaihtelevat 5 € - 20 € välillä ja usein Nano on näistä kahdesta se halvin. Megan hinta on usein suurempi sen kokonsa, liitäntöjen ja muistin määrän ansi- osta, ja sen hinta vaihtelee 20 € - 50 € välillä riippuen mistä se ostetaan.

Kirjallisuuskatsauksessa esitellyistä Arduinoista elektroniikasta kiinnostuneelle opiskelijalle tai harrastajalle Arduino Uno on selkeästi paras kehitysalusta. Valintaan vaikutti ohjelmoin- tikortin helppokäyttöisyys ja käyttäjäystävälliset ominaisuudet. Valintaa päädyttiin pääosin sen takia, koska Unossa kytkennät voidaan tehdä ilman juottamista ja vikatilanteissa mikro- kontrolleri on helposti vaihdettavissa. Unossa on myös aloittelijalle sopiva määrä liitäntöjä ja muistia toteuttaakseen pienimuotoisia projekteja. Sen hyvä puoli on myös se, että se on

(23)

eniten myyty Arduino alusta, joten sille löytyy enemmän materiaaleja, joiden avulla voi tehdä projekteja itsenäisesti.

Arduinojen käytössä on myös haittapuolensa, koska se perustuu avoimeen lähdekoodiin.

Monella opiskelijalla onkin houkutus kopioida valmis koodi ja käyttää sellaisenaan omassa työssään. Tällainen tapa ei tue opiskelijan tietotaidon kasvattamista. Kuitenkin haittojen vai- kutus ei ole niin suuri, ettei Arduinoja kannattaisi käyttää opetuksen apuna. Arduinojen käyt- tämisellä voidaan tukea teoriaa, jolloin opiskelijat itse pääsevät tutkimaan, miten eri kom- ponentit käyttäytyvät.

(24)

LÄHTEET

Arduino.cc 2021. Arduino Libraries. Julkaistu verkossa. https://www.ar- duino.cc/en/main/libraries. Viitattu 30.3.2021

Arduino.cc. 2021. Arduino Mega2560 Rev3. Julkaistu verkossa. https://store.arduino.cc/ar- duino-mega-2560-rev3. Viitattu 22.2.2021

Arduino.cc. 2021. Arduino Nano. Julkaistu verkossa. https://store.arduino.cc/arduino-nano.

Viitattu 22.2.2021

Arduino.cc. 2021. Arduino Uno Rev3. Julkaistu verkossa. https://store.arduino.cc/arduino- uno-rev3. Viitattu 22.2.2021

Ball, P.E. Stuart R. 2002. Embedded Microprocessor Systems: Real World Design. 3.painos.

Amsterdam, Newnes. Viitattu 20.1.2021

Barr, Michael. 2001. Memory types. Embedded system design. 14 (5), 103-. Viitattu 14.4.2021

Barr, Michael. 2001. Pulse width modulation. Embedded systems desgin. 14 (10), 103-. Vii- tattu 17.1.2021

Cameron, Neil. 2019. Arduino Applied Comprehensive Projects for Everyday Electronics.

1. painos. Berkley, CA: Apress Viitattu 10.4.2021

CircuitsToday. 2020. Basics of microcontrollers. Julkaistu verkossa. https://www.circuitsto- day.com/basics-of-microcontrollers. Viitattu 21.1.2021

Dunbar, N. 2020. Arduino Software Internals A Complete Guide to How Your Arduino Lan- guage and Hardware Work Together. 1. painos 2020. Berkeley

Eronen, Mauri. 2011. Tietoa: Mitä DA-muunnin tekee? Hifimaailma. 7/2011. Viitattu 12.3.2021

(25)

Fezari, Mohamed. & Dahoud, Al, Ali. 2018. Integrated Development Environment “IDE”

For Arduino. ResearchGate, 1-12. Viitattu 15.3.2001

Gadre, Dhananjay. 2000. Programming and customizing the AVR microcontroller.

McGraw-Hill Education. Viitattu 21.1.2021

Jamieson, Peter. 2011. Arduino for Teaching Embedded Systems. Are Computer Scientists and Engineering Educators Missing the Boat? in Proc. FECS, 2010, 289-294. Viitattu 14.4.2021

Kothari, D. P. Vasudevan, Shriram K. R. M. D., Sundaram N., Murali. (2015). Embedded Systems. 2.painos. Lontoo: New Academic Science. Viitattu 12.1.2021

Kuisma, Mikko. & Leinonen, Satu. Sähköisiä signaaleita. Julkaistu verkossa.

http://www.kuisma.eu/elper/2signal/1index.html. Viitattu 12.3.2021

Peddapelli, Satish Kumar. 2016. Pulse Width Modulation: Analysis and Performance in Multilevel Inverters. Berliini: De Gruyter Oldenbourg. Viitattu 17.1.2021

Marwedel, P. 2011. Embedded System Design: Embedded Systems Foundations of Cyber- Physical Systems. 1. Aufl. Springer Science + Business Media. Viitattu 23.3.2021

Montironi, M.A., Qian, B. & Cheng, H.H. 2017. Development and application of the ChAr- duino toolkit for teaching how to program Arduino boards through the C/C++ interpreter Ch. Julkaistu verkossa. doi/full/10.1002/cae.21854. Viitattu 16.12.2020

Muller, L. ym. 2015. Using the Arduino Uno to teach digital control of power electronics, Julkaistu verkossa. 10.1109/COMPEL.2015.7236487. Viitattu 19.4.2021

Premeaux, E. & Evans, B. (2011) Arduino Projects to Save the World. 1. Painos. Berkeley, CA: Apress L. P. Viitattu 6.4.2021

(26)

Rohm. 2021. What are A/D and D/A converters? Julkaistu verkossa.

https://www.rohm.com/electronics-basics/ad-da-converters/what-are-ad-da-converters. Vii- tattu 12.3.2021.

Salo, J. 2017. Sulautettujen järjestelmien hyödyntäminen toisen asteen ammatillisessa ope- tuksessa. Pro Gradu. Jyväskylän yliopisto. Jyväskylä. Viitattu 23.3.2021

Shiriff, Ken. 2009. Secrets of Arduino PWM. Julkaistu verkossa.

http://www.righto.com/2009/07/secrets-of-arduino-pwm.html. Viitattu 21.2.2021.

SparkFun Electronics. 2021. What is an Arduino? Julkaistu verkossa. https://learn.spark- fun.com/tutorials/what-is-an-arduino. Viitattu 11.2.2021.

SparkFun Electronics. 2021. What is a Shield? Julkaistu verkossa. https://learn.spark- fun.com/tutorials/arduino-shields. Viitattu 12.3.2021.

Pan, T. & Zhu, Y. 2018. Designing Embedded Systems with Arduino A Fundamental Tech- nology for Makers. Singapore. Viitattu 4.4.2021

Viittaukset

LIITTYVÄT TIEDOSTOT

Joissain koneissa, jotka eivät vaadi suurta tarkkuutta, kuten esimerkiksi plasmaleikkurissa, voidaan käyttää ketjuvetoa samaan ta- paan, kuin hihnavetoa.. 4.7

Piano Arduinolla sujui suunnitellusti, pieniä ongelmia koodin sekä summerin toi- mivuuden kanssa tuli, mutta nämä ratkottiin sujuvasti.. Tässä työssä tarvittiin hyviä

Hälyttimelle rakennetaan myös näytöllinen laite, jolla sitä voidaan ohjata ja sen tilaa voidaan seurata.. Insinöörityö sai ideansa mökiltä, jota haluttiin seurata

Arduino ohjelmointiympäristö toimii tekstinkäsittelyohjelmana ohjelmakoodin kirjoittamiselle, jonka lisäksi se kommunikoi Arduino laitteiden kanssa ja hoitaa Arduino

Asennus Windows-käyttöjärjestelmään kannat- taa tehdä asennustiedoston avulla, joka asentaa Arduinon kanssa keskuste- luun tarvittavat USB-ajurit.. [9.] Asennuksen jälkeen

OpenEVSE Arduino Shield -protokortin tarkoitus on ohjata kontaktorin käämejä, luoda control pilot -signaali ja ilmaista latauspisteen tila RGB-ledivalon eri väreillä.. 5.1

Projektia varten suunniteltu toimintaperiaate osoittautui hieman monimutkaiseksi, koska ensin piti tallettaa Arduinoon sensoreihin pintiedot, joiden avulla haettiin osoitetiedot ja

Avoimeen lähdekoodiin perustuvat ohjelmat ovat yleensä monimuotoi- sempia, niissä on runsaasti ominaisuuksia, jonka takia ohjelmien käyttäminen aloittelijalta voi olla