1. Sissejuhatus: millist Arduinot valida, programmeerimiskeskkond Arduino IDE
<- eelmine peatükk
järgmine peatükk ->
1.1 Eesmärk: Arduino Esimese tunni eesmärk on tööks vajaliku isikliku programmeerimiskeskkonna käivitamine.
Materjali omandamise järel on õpilane tutvunud Arduinoga:
Mõistetest oskab õpilane teha vahet roboti funktsionaalsetel osadel: teab, mis on roboti kontroller ja milleks seda vaja on. Esimese tunni järel õpilane teab üldjoontes, kust kohast materjali, detaile, nõuandeid ning—kõige tähtsam—programminäiteid leida. Ühtlasi on õpilane saanud ka Arduino loomise tausta kohta infot ja märksõnu, millega on huvitav internetis iseseisvalt surfata. Esimese Arduino-kogemuse juurde käib kindlasti ka surfamisharjumuse tekitamine.
1.2.Töövahendid:
1 Alustamiseks parim on lihtne Arduino Uno. Näiteks võrreldes mugavalt ilma juhtmeteta otse prototüüpimisplaadile surutava väiksemahulise Arduino Nanoga, on Arduino UNO viikude tähistused suurema kirjaga ja selgemini loetavad. Arduino Nano eelistamise korral võib vajalikuks osutuda luubi kasutamine, et veenduda õige juhtme õige viigu külge ühendamises. Arvestada tuleb mugavalt väikese Arduino Nano puhul ka sellega, et vajalik on mikro-USB kaabli kasutamine. Arduino Uno ühendamiseks tuleb kasutada USB kaablit—vt 1.2.Töövahendid.
2 IDE = Integrated Development Environment
1.3 Tegevused
Tarkvara on tasuta kättesaadav Arduino kodulehelt
Võimalik on kasutada veebieditoriga versiooni. Mugavam veebis töötamisest võiks siiski olla Arduino programmeerimiskeskkonna (Arduino IDE) kasutamine iga õpilase isiklikus arvutis. Ülaltoodud kodulehel on olemas versioonid nii Windows, Mac OS X, kui ka Linux operatsioonisüsteemide jaoks. Selguse huvides lisame siia ka ekraaniülesvõtte sellest netilehest.
- Kui tegemist on arvutiklassi arvutite kasutamisega, siis peaks tarkvara olema enne tunni algust alla laetud. Kokkuhoitud aja arvelt saab juba esimest programmi uurida või ka näiteks rääkida Arduino funktsioonist ja nime tähendusest (vt allpool mõned ideed lahti kirjutatult, nime teemasse kiirest sissejuhatusest võiks olla kasu hiljem Arduino-toodete valikus orienteerumisel, nimede meelde jätmisel).
- Kuigi täpsed juhised Arduino IDE installeerimiseks ja esimeseks käivitamiseks on saadaval Arduino kodulehel https://www.arduino.cc/en/Main/Howto , on ikkagi soovitav õpetajal need juhised õpilastega läbi käia kuni Arduino arvutiga ühendamiseni välja.
- Õpetaja juhendab ja aitab. Vajadusel esitage õpetajale küsimusi.
- Et seda peatükki on planeeritud „paaristunnina“ järgmise peatükiga, siis installeerimise osa järgmises peatükis eesti keeles lahti kirjutatud. Samas ei ole kindlasti keelatud eespool näidatud Arduino netilehelt inglise keeles instruktsioone järgides installeerimine kohe lõpuni teha. Installeerimine on ajamahukas.
1.4. Arduino funktsioonist robotis
Hästi formuleeritud lõigu roboti osadest-funktsioonidest leiame „Robootika Gümnaasiumile“ õpikust. vt Sissejuhatus ja Programmeerimine. (https://www.robootika.ee/wp/wp-content/uploads/2015/04/robootika_gymn_opik.pdf )
„Töötavas robotis saame eristada järgmisi osi: kontroller, andurid, täiturid ja kontrolleri mälus asuv programm, mis kogu süsteemi juhib. Robot saab ümbritsevast keskkonnast andmeid tänu anduritele ja programm on see, mis kontrolleri tööd juhib - võtab vastu otsuseid mootorid käivitada või seisata, uurib anduritelt saadud andmeid ja sunnib robotit käituma vastavalt otsustele. Kontrolleris asuv protsessor täidab programmis kirjapandut ja selle tulemusel käitub robot nii, nagu me programmi kirjutades selle määrasime. Robot on täpselt nii tark nagu teda juhtiv programm.“
Laiema pildi loomiseks on mõistlik arutleda õpikus sisalduva lõigu üle:
- Milliseid osi saame eristada töötavas robotis?
- Millist rolli mängib kontroller (mikro-kontroller)? Kuigi Arduino UNO-t tervikuna nimetame kontrolleriks, juhime tähelepanu, et Arduino-plaadil asub mikrokontroller ATmega (alloleval pildil tähistatud punasega).
- Kas on võimalik, et robot on oma loojast targem?
- Kas on võimalik, et robot on oma loojast kiirem?
- Kuidas „tarkus“ ja „kiirus“ võiks kombineeruda?
- Milliseid töid ei saa kunagi jätta robotile? Miks?
Ei ole sugugi kasutu filosofeerida selle üle, mida soovime saavutada ja seejärel mõelda, et kas see kõik, millest võiksime unistada, on realiseeritav mingil moel, mis meile ka hiljem otstarbekas võiks tunduda.
Olulisim siinkohal on ehk mõista, et katsetamine saab olema huvitav lõputu tegevus. Eesmärkide teadvustamine ei tähenda eesmärkide armutut järgimist, ent järjest paranev detailidega kursisolek võimaldab seada järjest paremini läbimõeldud eesmärke.
Harjutus A
Iga kursuslane visandab joonisena oma nägemuse robotist.
1.5. Arduino programmeerimiseks kasutatav keel
Arduino programmeerimiseks kasutatav keel sarnaneb C++ keelega, ent on muudetud kasutajasõbralikumaks. Antud kursusel võimaldame õpilastele parema sisse-elamise huvides ka juba valmis programmide kasutamist. Valmis kirjutatud programme saab nii Arduino IDE-st kui ka järgnevate peatükkide tekstidest vabalt oma arvutisse kopeerida ja vahel isegi ilma muutusteta koheselt tööle panna. Paljudel juhtudel on siiski mõistlik programm üle kontrollida: vajaduse korral tuleb programmi muuta—midagi juurde lisada või ära võtta—veenduda, mis töötab ja mis ei tööta. Selles kursuses on oluline eksperimenteerimisest rõõmu tunda. Internetist või Arduino IDE-st vajaliku programmi või programmilõigu kiire ülesleidmine on üks neid töövõtteid, mida loodame selle kursusega omandada. Seega on isegi „mahakirjutamine“ soositud: eriti kahest ametlikust allikast.
Meie kursusel Arduino võimaluste tutvustamiseks kasutatavad vooluahelad on võimalik enamusel juhtudel koostada ka numbritega 01-11 tähistatud näidetes toodud lahendustele tuginedes.
Vaata näidisprogrammide otse menüüst lahti-klikkimise kohta ka kõrvalolevat illustratsiooni.
NB! Kui otsustate Arduino IDE-s need näited ise vähemalt läbi kirjutada ning kulutada aega paratamatult tekkivate vigade parandamisele, siis hakkate ka kiiremini orienteeruma koodis. Koodis orienteerumine avab põnevamaid konstrueerimisvõimalusi.
1.6. Arduino toodetest
Arduino tooteid https://www.arduino.cc/en/Main/Products on erinevaid ja neid saab kasutamiseks valida vastavalt vajadusele. Hea ülevaate erinevate toodete omadustest saab siit: https://www.arduino.cc/en/Products/Compare.
Arduino tooteid võime jagada kuueks tüübiks: 1) algajatele mõeldud (entry level), 2) eriomadustega (enhanced features), 3) asjade internetile mõeldud (internet of things), 4) hariduslik (educational), 5) kantavad (wearables) ja 6) 3D printimisele mõeldud tooted.
Arduinode mitmekesisus võimaldab teha valikuid paljude erinevatele funktsioonidele kohandatud plaatide seast.
Näiteks kui on vähe ruumi Arduino UNO jaoks, siis võime eelistada Arduino Nano. Kui vajadused suurenevad, siis on võimalik kasutusse võtta Arduino Mega (vt alloleval pildil).
Ent kõigil neil on üks programmeerimiskeskkond—Arduino IDE.
Kui Arduinode mitmekesisuses esialgu ei orienteeru, siis see ei ole probleemiks. Alustajale parim on ikkagi Arduino klassika: Arduino UNO.
Kuivõrd meil on tegemist sissejuhatava kursusega, eelistame lihtsuse ja töökindluse tõttu Arduino UNO mudelit. Tähelepanuväärne on Arduino UNO puhul ka viikude tähistuste selgus. Viikude tähistused ei pruugi spetsialiseerunumale mõttekäigule orienteeritud mudelitega töötades enam sama kergesti jälgitavad olla.
Arduino UNO-ga töötamine on suure tõenäosusega muretuim kõigi ülejäänud mudelitega töötamisest: väga palju ei saa viltu minna ja kui juhtub suurem äpardus, siis on uue Arduino Uno hind suhteliselt väike. Vt https://store.arduino.cc/arduino-uno-rev3 . Kuna Arduino Uno on oma omadustelt sobilik nii hobiprojektides kui ka teaduseksperimentides, siis on Arduino Uno näol tegemist Arduino toodetest kõige rohkem kasutatud plaadiga, mille kohta on ka internetist kõige lihtsam materjale leida. Paljudele küsimustele saab abi Arduino foorumist. Need aspektid teevadki meie jaoks Arduino UNO parimaks valikuks.
1.6.1. Kuidas on mõistlik hankida endale Arduino?
Arduinot saab hankida ametliku kodulehe abi kasutades https://store.arduino.cc/ .
Üks võimalusi on ka soetada algaja pakett—Arduino starter kit. Tegemist on mitmekihiliselt detaile täis pakitud karbiga, milles ka ingliskeelne projektiraamat. (https://store.arduino.cc/genuino-starter-kit ).
Arduino kodulehelt leiame ka hoiatuse võltsingute teemal: https://www.arduino.cc/en/Products/Counterfeit .
NB!
Soovitada saab Arduino netist ostmist vaid ametliku edasimüüja käest ja kontrollitud kvaliteediga. Järeletehtud „Arduinod“ on saadaval odava hinnaga, ent pole garantiid kvaliteedi osas. Vaatamata sellele, et mõne kogenud isiku käes on ka probleemsete või lausa vigaste järeletehtud Arduinodega võimalik töö tehtud saada, on algajal tark teha ostud tuginedes Arduino kodulehe infole: https://store.arduino.cc/distributors
1.6.2. Kus on leida vastuseid küsimustele? Näiteks, kui soovin nõuannet, et kas on tark osta endale Arduino stardikomplekt?
Arduino starter kit ei pruugi olla rahaliselt odavaim, samas usutavasti on komplekti soetades algus mugavam. Mina hankisin endale stardipaketi alles siis, kui seda õpikut kirjutama asusin ja mulle selle sisu meeldis. Kas ta nüüd ka kallim oli—ses osas pigem nõu ei annakski, sest väga õpetlik on, kui hakkate ükshaaval või seeriatena komponente ise ostma. Omal käel ostes põrkute kokku saadavuse probleemidega, tarneaegade edasilükkumisega—kogete pisitillukeses mastaabis seda, mida tunneb igapäevatööd tegev elektroonikatööstusele komponente sisseostev ekspert.
Oma projekte tehes olen kohanud näiteks Tartu elektroonikapoodides entusiastlikke noori müüjaid, kes ka ise katsetavad ja ei hoia kogemusi salajas: kritiseerivad müüdavat kaupa ja räägivad oma kogemustest—annavad nõu, mida on tark soetada, kommenteerivad tarneaegu ja aitavad muuta tellimusi. Nad on ühed Teie koostööpartneritest. Internetiallikatest aga eelistage Arduino kodulehelt leitavat infot:
https://www.arduino.cc/en/Tutorial/HomePage?from=Main.Tutorials
https://www.arduino.cc/en/Guide
https://www.arduino.cc/reference/en/
https://create.arduino.cc/projecthub
Näiteks poest Arduino stardikomplekti ostes ajage võimaluse korral juttu; võite saada kogenud kaaskatsetajatelt väärt nõuandeid, kuulda ka huvitavatest Eesti koolidest ja kursustest. See on meeldiv maailm—suhelge!
Üritage leida vestluskaaslasi foorumitest. Arduino ametlikult kodulehelt leiate foorumi: https://forum.arduino.cc/ .
Koduseks harjutuseks
Lööge netiotsingusse sisse märksõnad „Arduino“, „forum“ ja „projects“ uurige, mida leiate.
Suurema ostu pealt on vahel hind odavam: '''Peale esimesi projekte tekib igal õppuril vajadus veel midagi juurde soetada; tark on siis juba võtta materjali piisava varuga—võimaluse korral koos ostes võite saada ka koguste pealt allahindlust. Koopereeruge ja taas—suhelge! Surfake aga iseseisvalt! Hea harjutus on kohe praegu lüüa internetiotsingusse sisse märksõnad „Arduino“, „starter“ ja „kit“ ning „comments“'''—uurige, mis selle märksõnade kombinatsiooni peale internetist leiate.
1.6.3. Kolm erinevat võimalust kasutada Arduino IDE-t
Alustuseks on olemas hea ingliskeelne juhendmaterjal. Infot leiab ka Arduino Project Hub-ist. Arduino programmeerimiskeskkond (IDE) teeb mugavaks programmide kirjutamise ja oma Arduino-plaadile üleslaadimise. IDE hankimiseks tuleb minna Arduino Software kodulehele , kus on valida kahe võimaluse vahel.
Et osa saada Arduino Web Editor—esimese variandi—mugavustest, tuleb järgida sellelt lingilt klikitavaid instruktsioone. Selleks, et kasutada Arduino Desktop IDE—teist varianti, tuleb esmalt klikkida oma operatsioonisüsteemi tähistaval lingil, seejärel läbida etapphaaval kogu ülejäänud installeerimine: Windows , Mac OS X , Linux , Portable IDE (Windows and Linux)
Sellel kursusel me eelistame Arduinot kasutada oma arvutist. Tahame olla kindlad, et mistahes neti-probleem ei sega mõnusat katsetamist.
Seoses koroonaviiruse levikuga ja piirangutega kogunemistel on aegajalt vaja Arduino õppida ka distantsilt ilma füüsilist Arduino riistvara omamata. Seda on mugav teha virtuaalses Arduino keskkonnas TinkerCad Circuits https://www.tinkercad.com/learn/circuits
1.6.4. Arduino nimest: Miks on Arduinol selline nimi—mida see tähendab?
Tõenäoline on, et õpilastest keegi millalgi sellise küsimuse esitab. See võib juhtuda ka esimesel tunnil.
Arduino nimi tuleneb Itaalia ajaloos tuntud aadlimehe nimest—Arduino d’Ivrea (eluaastad 955-1015).
Kasutage otsisõnadena „Arduin of Ivrea“ ning vaadake, mida leiate inglise keeles Arduino d’Ivrea kui ajaloolise isiku kohta.
Prototüüpimis-projektides kasutatava kontrolleriplaadi loojad tavatsesid koos külastada Arduino d’Ivrea nime kandvat baari ja seal töö üle arutleda.
Arduino mudelite seas on huvitava nimega Arduinosid: näiteks Arduino Duemilanove, milles duemilanove tähendab itaalia keeles arvu ’2009’. Tegemist on antud mudeli väljalaske-aastaga. Arduino Diecimila puhul tähendab diecimila aga arvu 10.000: tähistamaks seda, et antud modifikatsiooni väljalaske hetkeks oli toodetud üle 10.000 Arduino.
Kust kohast aga tuleb Arduino Uno? ’Uno’ tähendab itaalia keeles numbrit ’üks’: kui lasti käibele Arduino Software (IDE) 1.0, siis seda tähistati ka Arduino kontrolleriplaadile nime andmisega.
Nii et igal nimel on oma tähendus, Arduino nime aga valisid kontrollerplaadi loojad oma kooskäimiskoha nime järgi, viimane sai selle nime aga ajalooliselt isikult.
- Muide, iga õpilane saab kursuse lõppedes valmivale oma projektile mõelda ka nime.
- Kui projekti täiustada, siis võib anda sellele ka numbri: näiteks teine ja täiustatud versioon võiks kanda numbrit 2.
1.6.5. Kust kohast leida inspiratsiooni projektide tarvis?
Inspiratsiooni leiab näiteks otsisõnadega „hobby projects Arduino“—mis minul annab esimeseks lingiks https://www.instructables.com/id/Arduino-Projects . Märksõnade juurde saab aktiivseks klikkida video-otsingu ja vaadata mõtte ergutuseks projektidest tehtud videokokkuvõtteid. Projekte on maailmas videosse võetud tohutul hulgal: vabaks õhtuks hea „filmivaliku“ leidmine ei peaks raskusi valmistama. Netis saadaolev materjal on kahtlemata eeliseks, ent peate tegema ka kriitilise valiku—mida tasub vaadata ja mida ei tasu vaadata. Aja jooksul tekivad Teil eelistused—kõiki materjale Te enam ei vaata. Mingil hetkel aga kasvate nendest materjalidest välja. Peale esimese peatüki läbimist on aga kindlasti huvitav veidi netis ringi vaadata. Mida üldse seal Arduino kohta leidub?
1.6.6. Keel ja Arduino
Maailma kõige levinum keel, ka levinuim robootika-info edastamise keel, ka Arduino üle arutamise keel—on inglise keel. Seega tõsise robootikahuvilise võõrkeelevalikuks on inglise keel.
Ent milliseid keeli veel võiks vaja minna robootikas? Eriti mõeldes vajadusele suhelda ka robotiga?
Kohustuslik küsimus Teile mõtisklemiseks:
- Kas ka matemaatika kvalifitseerub inimese ja roboti koostoimimise jaoks vajalikuks keeleks?
Ent nüüd küll aitab sissejuhatusest, asume järgmise peatüki kallale: selleks on LED vilgutamine.
1.7. Kodutöö
Pange kirja ja joonistage oma robootika-nägemus—nii, et seda saaks esitada õpetajale. Eesmärk on talletada Teie nägemus kuni kursuse lõpuni. Kas Te sellest ka oma lõputöös kinni peate, ei ole nii oluline kui see, kuidas ise näete oma nägemuse muutumist kursuse lõpuks.
Edu kirjeldamisel!