Robootika gümnaasiumile

Seotud dokumendid
Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

Robootika ringi tööplaan Sven Hendrikson - Tartu Kivilinna Kool Heilo Altin - MTÜ Robootika 1. klass Ringitunni kestus: üks 60-minutiline tund nädalas

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

Microsoft Word - Toetuste veebikaardi juhend

B120_10 estonian.cdr

Pintsli otsade juurde tegemine Esiteks Looge pilt suurusega 64x64 ja tema taustaks olgu läbipaistev kiht (Transparent). Teiseks Minge kihtide (Layers)

Kom igang med Scratch

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

6 tsooniga keskus WFHC MASTER RF 868MHz & 4 või 6 tsooniga alaseade SLAVE RF KASUTUSJUHEND 6 tsooniga WFHC RF keskus & 4 või 6 tsooniga alaseade SLAVE

KASUTUSJUHEND

SINU UKS DIGITAALSESSE MAAILMA Ruuter Zyxel LTE3302 JUHEND INTERNETI ÜHENDAMISEKS

遥控器使用说明书(ROHS) ALPA-CS349-R09D(E)-0301(内容)

Programmi AnimatorDV Simple+ lühike kasutajajuhend

Võistlusülesanne Vastutuulelaev Finaal

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

P9_10 estonian.cdr

(10. kl. I kursus, Teisendamine, kiirusega, kesk.kiirusega \374lesanded)

Microsoft Word - requirements.doc

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

raamat5_2013.pdf

Microsoft Word - 56ylesanded1415_lõppvoor

Outlookist dokumendi registreerimine Plugina seadistamine Dokumendi registreerimine Outlookist Vastusdokumendi registreerimine Outlookist Outlooki plu

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

FRESENIUS ÕPPEKESKUS KIIRJUHEND

efo09v2pke.dvi

Microsoft Word - EHR.docx

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Elisa Ring Elisa Ringi mobiilirakendus Versioon

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Ülesanne #5: Käik objektile Kooli ümberkujundamist vajava koha analüüs. Ülesanne #5 juhatab sisse teise poole ülesandeid, mille käigus loovad õpilased

Microsoft Word - HEOS 1 kasutusjuhend EST.docx

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

Relatsiooniline andmebaaside teooria II. 6. Loeng

Taskuprinter KASUTUSJUHEND

E-arvete juhend

Microsoft Word _08_D7_RU_ET--1530_kujundatud.doc

Document number:

(Microsoft Word - T\366\366leht m\365isaprogramm 4-6 kl tr\374kkimiseks.doc)

01_loomade tundmaõppimine

Lisa I_Müra modelleerimine

Tartu Ülikool

PÄRNU TÄISKASVANUTE GÜMNAASIUM ESITLUSE KOOSTAMISE JUHEND Pärnu 2019

Projekt: Sööbik ja Pisik Tartu Lasteaed Piilupesa Koostajad: Merelle Uusrand ja Ülle Rahv Sihtgrupp: 4 5aastased lapsed Periood: veebruar märts 2017 P

Microsoft Word - TM70_SP-MG_kasutusjuhend.docx

Väärtusta oma vabadust. Eesti Yale Seifide Kasutusjuhend Mudelid: YSB/200/EB1 YSB/250/EB1 YSB/400/EB1 YLB/200/EB1 YSM/250/EG1 YSM/400/EG1 YSM/520/EG1

Microsoft Word - Bose_SoundLink_around-ear_Kasutusjuhend.docx

loogikaYL_netis_2018_NAIDISED.indd

Sissejuhatus mehhatroonikasse MHK0120

Andmed arvuti mälus Bitid ja baidid

HCB_hinnakiri2017_kodukale

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

lvk04lah.dvi

Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joo

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Informaatika eriala Laure Oras LEGO MINDSTORMS NXT: Jõuplaat ja näidisülesand

Image segmentation

NR-2.CDR

RVT_ DC-Arctic, 1, en_GB

HCB_hinnakiri2018_kodukale

efo03v2pkl.dvi

Microsoft Word - Keypad-controller-manual-new_1.docx

Pealkiri

View PDF

Loeng03

StandardBooks_versiooni_uuendusWin

PAIGALDUSJUHEND DUŠINURK VESTA 1. Enne paigaldustööde alustamist veenduge, et elektrikaablid, veetorud vms ei jääks kruviaukude alla! 2. Puhastage sei

Tõstuksed Aiaväravad Tõkkepuud Automaatika KÄIGUUKSED Käiguuksed on paigaldatavad kõikidele sektsioonuste tüüpidele. Käiguukse saab varustada kas tava

vv05lah.dvi

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

Remote Desktop Redirected Printer Doc

KIIRJUHEND Lugege kiirjuhend enne seadme kasutamist hoolikalt läbi. Kõik tärniga (*) märgitud juhised kehtivad WLAN + 3G mudelitele (Lenovo B6000-H(V)

Microsoft PowerPoint - EMCS13

Müügiarvete juhend VEP_

Kasutusjuhend Dragon Winch vintsile DWM, DWH, DWT seeria Sisukord Üldised ohutusnõuded... 3 Vintsimise ohutusnõuded... 3 Kasulik teada... 4 Vintsimise

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

Tants on loodud 1985.aasta tantsupeoks Muusika Lepo Sumra Koreograafia Helju Mikkel koostöös Lille- Astra Arraste ja "Sõlesepad" tantsurühma meestega.

Microsoft PowerPoint - Mis on EstWin.pptx

VL1_praks2_2009s

DE_loeng5

EESTI MEISTRIVÕISTLUSED PONIDE TAKISTUSSÕIDUS 2005

Pimeda ajal sõitmine

Robomadin 2019 Sumo võistluse reeglid 1. Tutvustus Käesolev dokument sätestab reeglid Mini Sumo, LEGO Sumo ja mbot Sumo robotitele. Reeglid tulenevad

Microsoft Word - QOS_2008_Tallinn_OK.doc

Tartu Kutsehariduskeskus Teksti sisestamine Suurem osa andmetest saab sisestatud klaviatuuril leiduvate sümbolite abil - tähed, numbrid, kirjavahemärg

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur

normaali

1. Edisoni raamat

DJI GOGGLES Kiirjuhend V1.0

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

EBSCO täistekstiandmebaaside kasutamine Otsingu sooritamiseks: 1. Logi sisse 2. Vali EBSCOhost Web 3. Seejärel vali andmebaas, milles soovid otsingut

Word Pro - digiTUNDkaug.lwp

PIKSELOITS Täpsustused 15.oktoobri 2018 seisuga Tants on loodud 1985.aasta tantsupeoks Muusika Lepo Sumra Koreograafia Helju Mikkel koostöös Lille- As

Kiekim mees kirjeldus.docx

Microsoft Word - ref - Romet Piho - Tutorial D.doc

G TECTA 4G mitme gaasi detektor EE Lühijuhend

DUŠINURK MILDA PAIGALDUSJUHEND 1. Enne paigaldustööde alustamist veenduge, et elektrikaablid, veetorud vms ei jääks kruviaukude alla! 2. Puhastage sei

KOTKAS AVE kasutajakeskne juhend Loomise Muutmise kuupäev: kuupäev: Versioon: 2.0 Klient: Keskkonnaministeeriumi Infotehno

Praks 1

Väljavõte:

Robootika gümnaasiumile Robootika töövihik Heilo Altin, Taavi Duvin, Sven Hendrikson, Ramon Rantsus, Ranel Sarapuu, Anne Villems

Kujundus ja küljendus: Taavi Duvin Fotod, joonised, ekraanitõmmisd: Heilo Altin, Taavi Duvin, Sven Hendrikson, Ramon Rantsus, Ranel Sarapuu Õppematerjali valmimist toetas Eesti Teadusagentuur TeaMe programmist. See teos on litsentseeritud Creative Commonsi 3.0 Eesti litsentsiga. Autorile viitamine + Mitteäriline eesmärk + Jagamine samadel tingimustel Tartu Ülikool Tartu 2013 Autorid: Heilo Altin, Taavi Duvin, Sven Hendrikson, Ramon Rantsus, Ranel Sarapuu, Anne Villems 2

Sissejuhatus LEGO andurite kasutamisse ning programmeerimisse 3 I nädala ülesanded 3 Ülesanne 1. Puuteanduriga tutvumine 3 Ülesanne 2. Ultrahelianduriga (kaugusanduriga) tutvumine 3 Ülesanne 3. Helianduriga tutvumine 3 Ülesanne 4. Valgustugevuse anduriga tutvumine 3 Ülesanne 5*. Mitme anduri kasutamine 3 II nädala ülesanded 3 Ülesanne 1 - Takistust eemaldav robot 3 Ülesanne 2 - Takistuse eemaldamine kahe anduriga 3 Programmeerimisjuhtmete kasutamine 3 III nädala ülesanded 3 Ülesanne 1. Lambid põlema 3 Ülesanne 2. Naeratav robot 3 Ülesanne 3. Nime kuvav robot 3 Ülesanne 4*. Stopper 3 IV nädala ülesanded 3 Ülesanne 1. Tutvumine mootoriga 3 Ülesanne 2. Täpseim mootor 3 Ülesanne 3. Kiirendav ja aeglustav robot 3 Ülesanne 4*. Joonistusrobot 3 Muutujate kasutamine 3 V-VIII nädala ülesanded 3 Analoogandurid 3 Ülesanne 1. Laua koristaja 3 Ülesanne 2. Joont jälgiv robot 3 Ülesanne 3*. Alarm 3 Digitaalandurid 3 Ülesanne 4. Takistusega joone jälgimine 3 Ülesanne 5*. Tunnelit läbiv robot 3 3

IX nädala ülesanded 4 Ülesanne 1. Kasti ületav robot 4 Ülesanne 2. Kiirelt sõitev robot 4 Ülesanne 3*. Etteantud punkti liikuv robot 4 X-XI nädala ülesanded 4 Ülesanne 1. Puldiga auto 4 Ülesanne 2. Takistusi vältiv telerobot 4 Ülesanne 3*. Roboti andmesideprotokoll 4 XII-XIII nädala ülesanded 4 Ülesanne 1. Sisenejaid ja väljujaid loendava roboti planeerimine 4 Ülesanne 2. Inimesi loendav robot 4 Ülesanne 3. Täpsem inimesi loendav robot 4 Ülesanne 4*. Sisenejaid ja väljujaid loendav robot 4 Ülesanne 5. Andmete töötlemine arvutiga 4 XIV-XVII nädala ülesanded 4 Ülesanne 1. Kirjelduse uurimine 4 Ülesanne 2. Tutvumine näpunäidetega 4 Ülesanne 3. Teised lahendusvõimalused 4 4

Sissejuhatus LEGO andurite kasutamisse ning programmeerimisse Õpieesmärgid: õpilane tutvub graafilise programmeerimise NXT-G keskkonnaga ning õpib tundma lihtsamaid algoritme. Graafiline programmeerimine Paleti sümbolite selgitused Liikumine. Selle plokiga saab mootoreid edasi-tagasi liigutada ning seisata. Kombineerides erinevaid parameetreid, saab panna robotit pöörama, kiirust muutma jne. Salvestamine ning taasesitamine. Selle plokiga saab salvestada mootorite liikumist ning taasesitada eelnevat liikumisalgoritmi. Heli esitamine. Selle plokiga saab esitada helinaid või kindlaks määratud sagedusel toone. pilti. Ekraanile kuvamine. Selle plokiga saab ekraanile kuvada teksti, pilti või enda joonistatud Viivitus. Selle plokiga saab roboti tööd peatada kuni anduri tingimuse täitumiseni või mittetäitumiseni või määrata ajaline viivitus. Tsükkel. See plokk lubab robotil oma tööd korrata andurile, loendurile, ajale või loogikale baseerudes. Tingimuslause. Selle blokiga saab robotile erinevates olukordades tegutsemiseks käske anda. Sinihamba saatmine. Selle plokiga saab üle sinihamba andmesidet luua. Lamp. Selle plokiga saab lampi põlema panna. Lambi kasutamiseks läheb vaja lisatäiturit, mida baaskomplektis pole. Puuteandur. Selle plokiga saab puuteandurit kasutada. Heliandur. Selle plokiga saab heliandurit kasutada. 5

Valgustugevuse andur. Selle plokiga saab valgustugevuse andurit kasutada. Kaugusandur. Selle plokiga saab kaugusandurit kasutada. NXT nupud. Selle plokiga saab programmides kasutada NXT nuppe. Pöörete andur. Selle plokiga saab andmeid pööramise kohta. Taimer. Selle blokiga saab kasutada taimerit, et näiteks viivitada mingit protsessi. Sinihamba vastuvõtja. Selle blokiga saab sinihamba vahendusel loodud andmesidet vastu võtta. Termomeeter. Selle blokiga saab mõõta temperatuuri. STOP. Selle plokiga peatatakse roboti töö. Loogikaplokk. Selle plokiga saab sooritada loogikatehteid. Matemaatika plokk. Selle plokiga saab sooritada matemaatilisi tehteid. Võrdluste plokk. Selle plokiga saab võrrelda arvulisi väärtusi. Piirväärtuste plokk. Selle plokiga saab kontrollida, kas arvude väärtused mahuvad võrreldavasse piirkonda, ja see väljastab loogilise tulemuse jah" või ei". Juhusliku arvu plokk. Selle plokiga saab valitud piirkonnas tekitada juhusliku arvu. Muutuja. Näiteks koolimatemaatikast teada tundmatu x on muutuja. 6

Konstant. Fikseeritud arv. Numbrid sõneks. Selle plokiga muudetakse numbrid sõneks. Tekst. Selle blokiga saab teksti sisestada. Sundärkvelolek. Hoiab näiteks ühendust üleval. Salvestamine. Võimaldab faile robotisse salvestada. Kalibreerimine. Võimaldab optimeerida ning kalibreerida andureid. Mootori reset. See plokk nullib valitud mootori. Andmekogumise algus. See plokk võimaldab panna roboti andmeid koguma. Andmekogumise lõpp. See plokk peatab andmete kogumise. Sinihamba kontrollimine. Selle plokiga saab avada ja sulgeda sinihamba ühendust. Näited võimalikest lisaplokkidest: EOPD. See andur võimaldab mõõta valgustugevust ning mõõta täpselt lähedasi kaugusi. IR-otsija. Selle bloki abil saab otsida IR-kiirgust. Vernier anduri plokk. Selle ploki abil saab kasutada Vernier andureid. Selleks, et programmeerida, saab kasutada nii tekstilist kui ka graafilist keskkonda. Käesolevas peatükis vaatleme graafilist programeerimist, mille nimi on NXT-G. Roboti programmeerimise jaoks tuleb liigutada plokke riba peale. Vaata joonist 1. Iga erinev plokk annab robotile erineva korralduse. Samas saab kasutada tsükleid ja tingimuslauseid, et anda robotile algeline otsustusvõime. Vaata joonist 2. 7

Joonis 1. Programmeerimisriba ja sellele lohistatud mootoriplokk. Joonis 2. Programm, mis töötab lõpmatus tsüklis ehk seni, kuni kasutaja selle peatab. Tsükli sees on tingimuslause, mis kasutab puuteandurit: allavajutatud anduri korral robot liigub, kui andurit ei vajutata, siis robot seisab. Plokkide lisamine Robotitele saab lisada ka kolmandate tootjate andureid. Kuna nende andurite kohta programmis plokid puuduvad, siis tuleb aeg-ajalt programmi uusi plokke importida. Näiteks firma Hitechnic andurite lisablokid on saadaval nende kodulehelt, samuti on võimalik firma Vernier kodulehelt importida sobiv andurite plokk. Uute plokkide lisamiseks tuleb NXT-G keskkonnas valida Tools" menüü alt Block Import and Export Wizard". Seejärel valida kataloog, kust plokk imporditakse, ning soovi korral määrata, millisesse menüüsse plokk lisatakse (joonis 3). Joonis 3. Ploki lisamise valiku aken, milles määratakse imporditava ploki asukoht ning palett, kuhu plokk lisatakse. 8

I nädala ülesanded Õpieesmärgid: õpilane tutvub graafilise programmeerimise NXT-G keskkonnaga ning õpib tundma lihtsamaid algoritme. Andurid on roboti ühed tähtsamad osad. Ilma anduriteta ei suuda robotid ümbrust tunnetada. Vastavalt roboti ülesandele tuleb valida ka vajalikud andurid. Andurite paremaks tundmaõppimiseks lahenda järgmised ülesanded. Iga ülesande puhul peab robot andurile reageerima (kuvama ekraanil teksti ning tekitama heli). Lisaks peab robot vähemalt ühel korral käivitama oma mootorid. Ülesanne 1. Puuteanduriga tutvumine Programm, kus robot reageerib puuteandurile. Kirjelda, kuidas robot reageeris anduri puudutamisele. Ülesanne 2. Ultrahelianduriga (kaugusanduriga) tutvumine Programm, kus robot reageerib kaugusandurile. Kirjelda, kuidas robot reageeris, kui anduri ette sattus takistus. Ülesanne 3. Helianduriga tutvumine Programm, kus robot reageerib heliandurile. Kirjelda, kuidas robot reageeris, kui andur tuvastas ruumis müra. Ülesanne 4. Valgustugevuse anduriga tutvumine Programm, kus robot reageerib valgustugevuse andurile 9

Kirjelda, kuidas robot reageeris, kui andur oli kinni kaetud või valgusallika lähedal. Ülesanne 5*. Mitme anduri kasutamine Eelnevalt õppisime andureid kasutama väga lihtsates olukordades. Tavaliselt on robootikasüsteemid siiski tunduvalt keerukamad. Järgmise ülesande käigus tuleb koostada programm, mis kasutaks kõiki eelnevalt katsetatud andureid ja mootoreid. Robot peaks oma töötamise ajal täitma järgmisi ülesandeid: puuteandurit all hoides käivitab robot korraga kaks mootorit; kui ruumi valgustugevus langeb alla teatud piiri (näiteks 50% maksimaalsest anduri mõõdetavast väärtusest), siis teeb robot häält; kui objekt asub lähemal kui 30 cm, siis robot vilgutab ekraanil kirja STOP"; kui helitugevus ruumis on kõrgem kui 80% maksimaalsest anduri mõõdetavast väärtusest, siis robot peatab oma töö. 10

II nädala ülesanded Õpieesmärgid: õpilane oskab LEGO Mindstorms robotiplatvormi baasmootoreid käsitseda ja suudab robotiga sujuvalt kiirendada ja pidurdada; õpilane oskab võtta lugemeid baasmootori sisseehitatud pöördeandurilt ja neid võimalikes lahendustes kasutada. Sissejuhatus Robot kasutab mootoreid nii oma asukoha muutmiseks (liikumiseks ruumis) kui ka mingite osade (andurid, käpad, mastid jne) liigutamiseks. Mootorite täpne juhtimine võib esmapilgul tunduda väga lihtsana, aga kokkuvõttes võib ka pisikenegi mootorite juhtimise erinevus kaasa tuua suured muutused kogu liikumise trajektooris. LEGO Mindstorms EDU NXT robotiplatvorm on varustatud tagasisidega mootoritega, mille juhtimine on küllaltki lihtne ja mille täpsus on suhteliselt odava mootori kohta üllatavalt hea. Ülesanne 1 - Takistust eemaldav robot Sinu ülesandeks on ehitada robot, mis liigub ühe või kahe mootori abil otse ning suudab mootori abil eemaldada tema ees oleva takistuse, milleks on LEGO Mindstorms NXT baaskomplekti etikettpapp (vt joonist 1). Seina tuvastamiseks sobiliku anduri võite ise valida, kuid arvestage, et andur ei tohi vastu seina puutuda. Joonis 1. Sein. Lahendus 1. Kirjelda oma süsteemi, mis eemaldab takistuse. 2. Mille põhjal robot seina tuvastab? 3. Mis ideid sul veel oli, kuidas sein tuvastada ja takistus eemaldada? Kontrollküsimused 5. Milline selle ülesande osadest oli kõige keerulisem? 6. Kirjelda, miks valitud andur oli ülesande lahendamiseks kõige parem? Ülesanne 2 - Takistuse eemaldamine kahe anduriga Ülesandes 1 ehitasite roboti, mis eemaldas ühelt andurilt saadud andmete põhjal takistusi. Sinu teine ülesanne on sama seina eemaldamiseks kasutada sama robotit, kuid kahe anduriga. Tuvastamaks, kumba andurit kasutati, peab robot mängima iseloomulikku heli või tooni. Lahendus 1. Kirjelda oma uut süsteemi? 2. Mis on uues süsteemis paremat ja mis halvemat kui vanas? Kontrollküsimused 3. Kuidas mitme anduri kasutamine andis juurde või kahandas roboti funktsionaalsust? 11

Programmeerimisjuhtmete kasutamine NXT programmeerimiskeskkonna üheks võimsamaks vahendiks on programmeerimisjuhtmed (edaspidi lihtsalt juhtmed). Nende abil on võimalik koostada väga keerulisi ja huvitavaid programme. Lisaks võimaldavad juhtmed mõnda ülesannet ka palju lihtsamini lahendada. Juhtmete kasutamiseks tuleb programmeerimisplokil lahti teha andmetulp. Andmetulba saab hiirega avada ploki alumisest osast. Joonis 1. Suletud ja avatud andmetulbaga ekraaniplokk Kõikide plokkide andmetulpade vasak pool on sisendiks ja parem pool väljundiks. Mõned sisendid on esitatud ka väljundi poolel, sest mõnikord on programmis vaja kasutada samasid muutujaid ka hiljem. Juhtmed ühendavad andmetulpi ning nende abil on võimalik saata informatsiooni ühest plokist teise. Plokkide vahel liikuv informatsioon võib olla kolme tüüpi: number, tekst või loogikaväärtus. Loogikaväärtus on selline andmetüüp, mis saab omada kahte väärtust: tõene" või väär". Vastavalt andmetüübile on juhtmed erinevat värvi. Numbrijuhtmed on kollased, tekstijuhtmed punased ja loogikajuhtmed rohelised. Ühte sisendisse või väljundisse võid ühendada ka mitu juhet! Joonis 2. Kolme erinevat tüüpi juhtmed ühendatuna ekraaniploki sisenditesse. 12

Kuna plokkidel võib olla palju sisendeid ja väljundeid, siis pärast juhtmete ühendamist on soovitatav kasutamata sisendid/väljundid ära peita. Peitmiseks tuleb andmetulp lihtsalt sulgeda. Joonis 3. Suletud andmetulbaga ekraaniplokk Sarnaselt juhtmetele on ka sisendid ja väljundid kindlat tüüpi: number, tekst või loogikaväärtus. Omavahel saab ühendada vaid samat tüüpi sisendeid ja väljundeid. Kui sisendi ja väljundi vahel on punktiiriga tähistatud juhe, näitab see, et tegemist on valesti ühendatud juhtmega. Näiteks on loogikaväljund ühendatud tekstisisendiga. Joonis 4. Valesti ühendatud juhe. Numbriväljund on ühendatud tekstisisendiga. 13

III nädala ülesanded LEGO Mindstorms EDU NXT visuaalsed näidikud: lamp ja NXT ekraan Õpieesmärgid: õpilane oskab näidikuna kasutada NXT baaskomplektiga kaasas olevat lampi; õpilane oskab väljastada ekraanile pilti ja teksti, suudab selgitada NXT ekraanile kuvamise iseärasusi; õpilane oskab kasutada plokkide sisend-/väljundjuhtmeid. Sissejuhatus Kõige kiirem ja lihtsam viis robotilt visuaalset tagasisidet saada on kasutada näidikuid ja ekraane. Lihtsaimaks näidikuks LEGO Mindstorms roboti juures on baaskomplektiga kaasas olev lamp. Lambi erinevate värvidega mängides saame juba kaugelt anda visuaalset tagasisidet roboti kohta. Rohkema info edastamiseks kasutatakse NXT puhul ekraani. Ekraan on üks mugavamaid lahendusi robotiga suhtlemisel. Ekraanilt saame näha, millises NXT menüüs me hetkel asume või kust me oma programmi leiame. Ekraan on väga hea abimees ka erinevate andurite testimiseks, sest väga lihtsalt on võimalik andurilt saadud info kuvada NXT ekraanile. Selliselt saame kohe teada, kas andur üleüldse töötab ja, kui töötab, siis näeme ekraanilt, kas näiteks valitud mõõtmisala või keskkond on meile sobivad. Ülesanne 1. Lambid põlema Sinu esimeseks ülesandeks on tutvuda NXT baaskomplekti kuuluva lambiga. Tee selline robot, mis NXT juhtploki vasaku nupu vajutamisel süütab lambi ja, kui nuppu ei vajutata, siis lamp ei sütti. NB! Selleks, et lampi robotiga ühendada, on teil kasutada NXT komplektiga kaasas olev spetsiaalne kaabel. Mitme lambi olemasolul täiendage oma programmi selliselt, et kui vajutate juhtplokil vasakut nuppu, siis süttib roheline lamp, ja kui paremat nuppu, siis punane lamp. Oranzi nupu vajutamisel vilguvad mõlemad lambid 10 korda. (Vihjeks: Complete palette -> Action -> Lamp ja Common palette -> Switch). 1. Kirjelda programmi erinevate osade kasutust. 2. Millisesse porti on soovitav lamp ühendada, miks? 3. Kas lambi valgusintensiivsust on võimalik muuta? Ülesanne 2. Naeratav robot Sinu teiseks lihtsaks ülesandeks on ekraanile kuvada naerunägu, vt joonis 5. Joonis 5. Naerunägu NXT ekraanil. 1. Kirjelda, millist programmeerimise plokki kasutasid. Mitut plokki läheb vaja, et ülesanne lahendatud saaks? 2. Kui kasutada ainult ekraanile joonistamise plokki, siis miks me ekraanil midagi ei näe? 3. Milliseid erinevaid lahendusviise suutsite koos klassikaaslastega veel leida? 14

Ülesanne 3. Nime kuvav robot Järgmiseks ülesandeks on ekraani keskele kirjutada oma eesnimi, vt joonis 6 vasakul. Selle ülesande käigus õpid ekraani koordinaatteljestikust arusaamist. Kui oled eesnime ilusti ekraanile saanud, siis täienda oma programmi selliselt, et ekraani ülemisse ossa kirjutatakse Mina olen" ja keskele jääb sinu eesnimi, vt joonis 6 paremal. Meeles tuleb pidada, et NXT ei oska täpitähti kasutada! Joonis 6. Eesnime kuvamine NXT ekraanile vasakul ja erinevale kõrgusele kirjutamine paremal. 1. Kirjelda ekraaniploki parameetrite muutmist ja programmi ehitust. 2. Millisest nurgast hakatakse NXT ekraanil koordinaatteljestikku lugema (x = 0 ja y = 0)? 3. Erineval kõrgusel olevate kirjete tegemiseks ei piisa enam ühest ekraanile kirjutamise plokist. Millele tuleb tähelepanu pöörata, kui kasutada enam kui ühte ekraani plokki, et ekraanil saaks korraga olla kiri Mina olen" ja sinu eesnimi? Ülesanne 4*. Stopper Natuke suuremaks väljakutseks on NXT-ga stopperi tegemine (Vihjeks: Loop" -> Count" -> Counter"). Kõigepealt tuleks ekraanile kirjutada Stopperi k2ivitab NXT oranz nupp", vt joonis 7 vasakul. Pärast oranži nupu vajutamist, kuvatakse ekraanile sekundid, mis hakkavad kohe muutuma (st stopper käivitub), vaata joonis 7 paremal. Lisana võiksite oma stopperile lisada ka kirje NXT hall nupp l6petab stopperi". Joonis 7. NXT ekraanile kuvatud juhend vasakul ja töötav stopper paremal. Kui aega jääb üle, siis modifitseerige oma programmi selliselt, et stopper kuvaks ka minuteid, vt joonis 8. Eriti tublid võiksid proovida stopperi suvalisel ajal sulgemist nii, et viimane aeg jääks näiteks 5 sekundiks NXT ekraanile. Joonis 8. NXT stopper, mis kuvab ekraanile nii sekundid kui ka minutid. 1. Programm ootab sult nupuvajutust, kas peale NXT oranži nupu saab ka mingeid teisi nuppe kasutada? Kui saab, siis nimeta need? 2. Miks kõiki nelja NXT nuppu ei saa kasutada nupuvajutuse ootamiseks? 3. Milleks on meil vaja NUMBER to TEXT" plokki? 15

IV nädala ülesanded Õpieesmärgid: õpilane oskab LEGO Mindstorms robotiplatvormi baasmootoreid käsitseda ja suudab robotiga sujuvalt kiirendada ja pidurdada; õpilane oskab võtta lugemeid baasmootori sisseehitatud pöördeandurilt ja neid võimalikes lahendustes kasutada. Sissejuhatus Robot kasutab mootoreid nii oma asukoha muutmiseks (liikumiseks ruumis) kui ka mingite osade (andurid, käpad, mastid jne) liigutamiseks. Mootorite täpne juhtimine võib esmapilgul tunduda väga lihtsana, aga kokkuvõttes võib ka pisikenegi mootorite juhtimise erinevus kaasa tuua suured muutused kogu liikumise trajektooris. LEGO Mindstorms EDU NXT robotiplatvorm on varustatud tagasisidega mootoritega, mille juhtimine on küllaltki lihtne ja mille täpsus on suhteliselt odava mootori kohta üllatavalt hea. Ülesanne 1. Tutvumine mootoriga Sinu ülesandeks on tutvuda LEGO Mindstorms EDU NXT baasmootoriga. Selleks teeme läbi kõige lihtsamad toimingud, mida ühe mootoriga teha saab. Püüa oma baasrobotiga sõita otse 4 rattapööret, seejärel pööra sujuva kaarega paremale ja siis järsult vasakule. Seejärel uurige mootori liigutamise erinevaid võimalusi (Rotations, Seconds, Degrees, Unlimited). 1. Kuidas mõjutab Steering"-liuguri liigutamine roboti pöörderaadiust? 2. Kas rattapöördeid (rotations) on võimalik ka poolitada? Millist kirjavahemärki selle juures kasutati? 3. Kas mootori käigushoidmisel kasutatav Unlimited" laseb mootoril töötada senikaua, kuni aku tühjaks saab? Mis siis, kui robot on vooluvõrgus, st aku laeb? 4. Mida tähendab mootoriploki juures käsk Next Action" -> Brake" või -> Coast". Millises situatsioonis võiks ühte või teist vaja minna? 5. Mida tuleb selleks teha, et robot pööraks paremale täpselt 45, 90 ja 180. Millest reaalsete kraadide erinevus tingitud on? Ülesanne 2. Täpseim mootor Sinu ülesandeks on katse- ja eksitusmeetodi abil uurida baasmootori erinevate liigutamisvõimaluste täpsuseid. Selleks küsige õpetajalt mõõdulinti ja mõõtke ära teepikkus, kuhu robot mingi kindla pöörete arvu, kraadide arvu, sekundite arvu võrra jõuab. Katsete tegemiseks on kuskil 5 7 minutit. Seejärel annab õpetaja teile mingi stardipositsiooni ja paneb sealt paika mingi kindla mõõdu (cm) ning asetab sihtkohta LEGO mehikese. Teie ülesandeks on teha oma mõõtmistulemuste abil robot, mis suudab LEGO mehikesele võimalikult lähedale sõita. Võitjaks on meeskond, kelle robot suudab LEGO mehikesele kõige lähemale saada. NB! LEGO mehikesele otsa sõita ei tohi! 1. Kuidas jõudsite soovitud lahenduseni, milliseid arvutusi kasutasite? 2. Kas robot liigub alati kindla pöörete arvuga kindla vahemaa? Kui ei, siis millest see sõltub? Ülesanne 3. Kiirendav ja aeglustav robot Järgmise üleandena vaatleme baasmootori kiirendust ja aeglustust (Vihjeks: Complete palette" - > Action" -> Motor"). Sinu ülesandeks on programmeerida robot, mis kiirendab sujuvalt mootori täiskiiruseni ja siis aeglustab tagasi nulli ja seda nii, et roboti peale vabalt asetatud LEGO mehike ei kuku sõidu ajal maha. 1. Kirjelda programmi algoritmi, millist lähenemisviisi kasutasid? 2. Kas valikut Ramp Up/Ramp Down" kasutamata on ka võimalik antud ülesanne edukalt lahendada? Kui jah, siis kirjelda võimalust! Ülesanne 4*. Joonistusrobot Sinu ülesandeks on siduda töövihiku ekraanide peatükis omandatud teadmised mootorite peatükis õpituga ja valmistada robot, mille ekraanile on võimalik joonistada, kasutades kursori liigutamiseks baasroboti mootoreid (Vihjeks: Complete palette" -> Sensor" -> Rotation Sensor"). 1. Kirjelda lahenduskäiku, nimeta suuremad murekohad. 2. Kas pöörete lugejat on võimalik nullida, millisel juhul on seda vaja? 3. Kuidas on võimalik mootori liigutamisel kursori liigutamist täpsemaks/sujuvamaks muuta? 16

Muutujate kasutamine Enne ülesannete juurde asumist tutvume NXT-G programmeerimiskeskkonna uue plokiga, milleks on muutuja. Senini oleme koostanud programme, mis pole oma vahepealset tegevust meelde jätnud. Selleks, et robot suudaks oma vahepealset tegevust mäletada ning seda hiljem kasutada, uurime muutuja plokki (variable). Ploki leiame programmeerimiskeskkonnas alamjaotusest Data" ning see selle graafiline tähis on kohver. Muutuja plokis on võimalik valida kolme muutujatüübi vahel: tõeväärtus (logic), number (number) ja tekst (text). Lisaks sellele saab valida, kas me anname muutujale väärtuse (write) või küsime muutujalt tema olemasolevat väärtust (read). Meeles tuleb pidada asjaolu, et juhul kui muutuja ei ole eelnevalt väärtustatud, siis väljastatakse tõeväärtuse korral vaikimisi väär" (false), numbri puhul 0" ja teksti puhul tühi tekst. Omale sobiliku muutujanime valimiseks tuleb menüüst Edit" valida Define Variables" ning avanenud aknas vajutada nuppu Create", sisestada sobiv muutuja nimi (name) ja muutujatüüp (datatype). Joonis 1. Muutujate lisamise aken. Samas kohas on võimalik ka olemasolevaid mittevajalikke muutujaid kustutada. Vaatame nüüd programmi, mis arvutab tehte (a+b)x(c+a)-(a+d) väärtuse, kus a, b, c ja d on kasutaja poolt vabalt defineeritud naturaalarvud (näiteks 2, 3, 4 ja 1). Programmi lahendamiseks on kaks meetodit. Esimene meile tuttav meetod kasutab matemaatikaplokke, milles arvud a, b, c tuleb sisestada käsitsi õigete tehete juurde (joonis 2) Joonis 2. Programm, mis arvutab tehte (a+b)x(c+a)-(a+d) väärtuse, kui a, b, c ja d väärtused tuleb vastavatesse arvutsplokkidesse iga tehte puhul uuesti sisestada. Teine meetod on arvutamiseks defineerida muutujad ning arvutamisel neid kasutada. Muutujate defineerimise korral on programmi loomine küll algselt pisut ajakulukam, kuid hilisem haldamine ning muutujate vahetamine tunduvalt kiirem. Nt selle arvutuse korral tuleks eelmise näite puhul ära muuta 6 arvu, vaadeldava näite korral parajasti täpselt nii palju, kui on erinevaid muutujaid (hetkel 4). Programmi muutujate defineerimine ja esimese sulu (a+b) arvutus on näidatud joonisel 3, kogu programmi vaatamiseks tuleb see alla laadida ning oma arvutis käivitada. 17

Joonis 3. Muututujate a, b, c ja d defineerimine ning summa a+b arvutamine, kasutades eelnevalt defineeritud muutujaid. Programmi avades ja seda uurides võib tunduda, et programm on kohutavalt pikk ning selle tegemine võtab kaua aega. Juhul kui kasutada optimaalseid programmeerimise võtteid, saab programmi lahutada sarnasteks algosadeks ning siis kulub selle tegemiseks tunduvalt vähem aega. 18

V-VIII nädala ülesanded Õpieesmärgid: õpilane oskab ja teab, kuidas kasutada LEGO NXT analoog- ja digitaalandureid; oskab andureid omavahel kombineerida; oskab vastavalt ülesandele sobiva anduri valida; teab erinevate andurite eeliseid ja puudusi. Analoogandurid Lego NXT baaskomplektiga on kaasas kaks analoogandurit: heli- ja valguseandur. Helianduriga saab robot mõõta helitugevust. Helitugevuse mõõtühikuks on detsibell (db). NXT heliandur suudab mõõta kuni 90-detsibellist heli, mis on helitugevuselt võrreldav tänavaga, kus on tihe liiklus. Lisaks detsibellidele suudab NXT heliandur mõõta helitugevust ka kohandatud detsibellskaalas (dba). Antud mõõtühiku eeliseks on see, et andur on sellisel juhul kalibreeritud mõõtma samadel sagedustel, mida kuuleb inimkõrv. Tavalisel detsibellskaalal võib andur registreerida helisid, mida inimene ei kuule, teisisõnu helisid, mis on inimkõrva jaoks liiga kõrge või madala sagedusega. Kuna helide mõõtmine võib olla küllaltki keeruline protsess, siis NXT väljendab heliandur helitugevust protsentides. 4-5% vaikne elutuba 5-10% inimese kõne kauguses 10-30% tavaline kõne anduri läheduses 30-100% kõvahäälne rääkimine ja karjumine, vali muusika Valgusandur suudab mõõta nii pinnalt tagasipeegeldunud kui ka ruumis olevat valgushulka. Pinnalt tagasipeegeldunud valguse mõõtmiseks on andurile sisse ehitatud valgusallikas, millega andur pinda valgustab. Tagasipeegeldunud valgust mõõdetakse protsentides. Mida suurem on anduri näit, seda heledama pinnaga on tegemist. Näiteks tavalise A4 paberi korral võib anduri näit olla 70% ja musta paberi korral 30%. Kuna erinevad värvid peegeldavad valgust erinevalt, siis saab valgusandurit kasutada ka lihtsamate värvide tuvastamiseks. Samas on näiteks rohelise ja sinise värvi eristamine küllaltki raske, sest nendelt kahelt värvilt peegeldunud valguse hulk on võib erineda vaid paar protsenti. Selleks, et paremini aru saada, kuidas andurid töötavad ja millist informatsiooni välja annavad, on mõistlik koostada lihtne programm, mis anduri informatsiooni NXT ekraanil kuvab. Uuri toodud näidist ja katseta seda erinevate anduritega. Millise probleemi vältimiseks on programmis kasutatud 0,2 sekundi pikkust ooteaega? Ülesanne 1. Laua koristaja Ehita ja programmeeri robot, mis on võimeline puhastama erineva suurusega nelinurkse laua. Robot peab kõik laual olevad esemed laualt maha lükkama ilma ise laualt maha sõitmata. Laual asub must joon, mis on laua servast 5 cm kaugusel. Nõuded robotile: 1. Roboti mõõtmed ei tohi ületada A4 paberi mõõtmeid. 2. Robot alustab oma tööd ühest laua nurgast. Lisanõuded 1. Robot alustab ja lõpetab laua koristamise helianduri abil. 2. Robot naaseb pärast laua koristamist algpositsioonile, sinna laua nurka, kust koristamist alustati. Lahendus 19

1. Kasutades roboti View" menüüd, mõõda laua pinnalt ja joonelt tagasi peegeldunud valguse hulk. Laua pind: (%) Joon: (%) 2. Kirjelda roboti programmi algoritmi, nt sõidab otse, pöörab paremale, ootab 2 sekundit" jne. 3. Too välja roboti ja programmi tugevad ja nõrgad kohad. Kuidas oleks võimalik neid probleeme lahendada ja lahendust täiustada? Ülesanne 2. Joont jälgiv robot Ehita ja programmeeri robot jälgima musta ~2 cm laiust joont heledal pinnal. Robot peab liikuma joone järgi, nii et joon jääb igal ajahetkel roboti vedavate rataste vahele. Proovi ehitada ja programmeerida robot nii, et see läbiks joonega märgitud tee võimalikult väikese ajaga. Nõuded robotile 1. Roboti mõõtmed ei tohi ületada A4 paberi mõõtmeid. 2. Robot kasutab ühte valgusandurit. 3. Robot liigub mööda joont võimalikult kiiresti. Lisanõuded 1. Robot kasutab kahte või kolme valgusandurit. 2. Robot suudab jälgida joont, mis ristub teise joonega. Lahendus 1. Kasutades roboti View" menüüd, mõõda pinnalt ja joonelt tagasi peegeldunud valguse hulk. Heledam pind:... (%) Must joon:...(%) 2. Kirjelda roboti programmi algoritmi, näiteks sõidab otse, pöörab paremale, ootab 2 sekundit" jne. 3. Programmi käivitamise hetkel asus roboti valgusandur (võrreldes musta joonega) 4. Pane kirja järgmised programmis kasutatud väärtused. Tingimuslause (switch) võrdlusväärtus... Roboti mootorite töökiirus... 5. Proovi roboti mootorite töökiirust suurendada, milliseid probleeme see endaga kaasa toob? Ülesanne 3*. Alarm Programmeeri alarmisüsteem, mis valgus- ja helianduri abil jälgib ruumis toimuvat. Süsteem peab registreerima alarmi, kui valgus- või helitugevus ületab etteantud taseme, ja hiljem seda kasutajale näitama. Robot peab kasutajale näitama, mitu korda on nii etteantud helitaset kui ka valgustaset ületatud. Kasutajal peab olema võimalus alarmide arvu nullimiseks. Nõuded robotile 1. Kasutab vähemalt ühte valgus- ja ühte heliandurit. 2. Robot registreerib eraldi valgustaseme ja helitaseme alarmide arvu. 3. Kasutajal on võimalik alarmi tundlikkust ehk heli- ja valgustugevust, millele robot reageerib, muuta. (Vihje: NXT nupud) 4. Alarmi tundlikkuse muutmine peab olema tavakasutajale arusaadavalt teostatud. 5. Robot peab ekraanil kuvama, mitu korda on ületatud etteantud valgustaset ja mitu korda helitaset. Lisanõuded 1. Lisaks alarmi kordadele salvestab robot ka alarmide toimumise aja. (Vihje: Taimer) 2. Alarm käivitub automaatselt alates teatud kellaajast või piisava pimeduse korral. 3. Alarmi saab seadistada jälgima kas valguse, heli või siis mõlemat andurit. Lahendus 1. Pane kirja valitud valgus- ja helitase, mida ületades robot alarmi registreerib Valgus: Heli: 2. Põhjenda valitud väärtusi. 3. Kirjelda roboti programmi algoritmi, näiteks robot sõidab otse, pöörab paremale, ootab 2 sekundit" jne. 4. Kirjelda, mis tüüpi muutujaid kasutasid ja milleks? 20

Digitaalandurid Lego NXT baaskomplektiga on kaasas kaks digitaalandurit: puute- ja kaugusandur. Lisaks on kõikides NXT mootorites olemas pöörete andur, millega on võimalik mootoreid kraadi täpsusega juhtida. Lisaks mootorite juhtimisele saab pöörete andurite informatsiooni mootoritest eraldi välja lugeda ja vastavalt sellele sobivaid tegevusi teha. Pöörete andurit on võimalik ka sobival ajahetkel nullida. Puuteandur on oma ehituselt lihtne lüliti. Sellel on kaks olekut: nupp üleval ja nupp all. NXT-G keeles on võimalik tuvastada ka nupu vajutust ehk seda, kui nupp alla vajutatakse ja kohe ka lahti lastakse. Kaugusandur on NXT baasanduritest kõige keerukama ehitusega. Kaugusandur kasutab objekti kauguse määramiseks ultrahelisignaali. Andur saadab välja ultraheliimpulsi, mis ettejäänud objekti(de)lt tagasi anduri vastuvõtjasse peegeldub. Kuna heli liikumise kiirus õhus on teada ja samuti saab mõõta heliimpulsi liikumisaega saatjast vastuvõtjasse, siis kiiruse valemit kasutades on võimalik arvutada objekti kaugus andurist. Tööpõhimõttest lähtuvalt nimetatakse sellist tüüpi kaugusandurit ka ultrahelianduriks või sonariks. Andur suudab mõõta kaugusi kuni 2,5 meetri ulatuses. Samas ei ole tegemist väga täpse anduriga: selle mõõteviga võib olla kuni 3 cm. Ülesanne 4. Takistusega joone jälgimine Ehita ja programmeeri robot jälgima musta ~2 cm laiust joont heledal pinnal. Robot peab liikuma joone järgi, nii et joon jääb igal ajahetkel roboti vedavate rataste vahele. Lisaks peab robot mööduma joonel asuvatest (erineva suuruse ja kujuga) takistustest. Proovi ehitada ja programmeerida robot nii, et see läbiks joonega märgitud tee võimalikult väikese ajaga. Võimalusel täiusta analoogandurite 2. ülesandes valminud robotit. Nõuded robotile 1. Roboti mõõtmed ei tohi ületada A4 paberi mõõtmeid. 2. Robot kasutab ühte valgusandurit. 3. Liigub mööda joont ja möödub takistustest võimalikult kiiresti. 4. Robot kasutab takistuste tuvastamiseks sobivat andurit. Lisanõuded 1. Robot kasutab kahte või kolme valgusandurit. 2. Robot suudab jälgida joont, mis ristub teise joonega. Lahendus 1. Tee kindlaks, kui täpne on kaugusandur erinevate objektide tuvastamisel. Mõõda objekti kaugus kas joonlaua või mõõdulindiga ja seejärel kaugusanduriga. Koosta mõõdetud tulemustest vähemalt 5 reaga tabel, millel on veerud Objekt", Joonlauaga mõõdetud kaugus (cm)", Anduriga mõõdetud kaugus (cm)". (Vihje: roboti View" menüü) Näide tabelist: sein 20 18 koolikott 120 118 2. Võrdle saadud tulemusi naabermeeskonnaga. Milliseid järeldusi võid tulemuste põhjal teha? 3. Millise anduri valisite, et tuvastada joonel asetsevaid takistusi? Põhjendage oma valikut. 4. Kirjelda valminud lahendust. Kas mõne teise anduriga oleks antud probleemi lahendamine olnud lihtsam või keerulisem? Mida tuleks valminud lahenduse juures muuta, et robot jälgiks joont ja mööduks takistustest kiiremini? Proovi ülesanne lahendada selliselt, et robot täidaks ka ülesande alguses püstitatud lisanõuded. Ülesanne 5*. Tunnelit läbiv robot Ehita ja programmeeri robot, mis on võimeline läbima kindla laiusega tunnelit. Robot peab olema võimeline läbi minema tunnelist, mis võib pöörata kas paremale või vasakule. Tunnelis olevad pöörangud on kõik täisnurksed. Näited erineva kujuga tunnelitest on toodud järgnevatel joonistel. Joonis 4. Lihtsama kujuga tunnelid, mida robot peaks suutma läbida 21

Joonis 5. Keerukama kujuga tunnelid Nõuded robotile 1. Roboti peab olema etteantud tunneli jaoks sobivate mõõtmetega. 2. Robot peab tunneli võimalikult kiiresti läbima. 3. Robot peab tunneli sõltumata selle kujust läbida. Lisanõuded 1. Robot ei kasuta rohkem kui ühte kaugusandurit. 2. Robot suudab läbida tunnelit, mis ristub teise tunneliga. Lahendus 1. Kirjelda roboti andurite paigutust ja programmi algoritmi 2. Ülesande lahendamine eeldab väga täpset 3. Pane kirja järgmised programmis kasutatud väärtused. Roboti mootorite töökiirus otseliikumisel: Roboti mootorite töökiirus pööramisel: 4. Katsetage robotit erinevate mootori kiiruste juures ja püüdke leida optimaalne lahendus. Milliseid probleeme tekkis mootori kiiruste suurendamisel? 22

IX nädala ülesanded Õpieesmärgid: õpilane oskab ja teab arvestada probleemidega kiire roboti ehitamisel; oskab ja teab arvestada probleemidega roniva roboti ehitamisel. Sissejuhatus Liikumismehhanismid on robotite ühed olulisemad osad, sest need annavad robotile liikumisvõime. Sellepärast on tähtis valida õige sellele maastikule vastav liikumismehhanism, kus robot sõitma hakkab. Kujuta ette, et sulle esitati tellimus kahele robotile, mis peavad olema võimelised läbima erinevaid maastikke. Esimene maastik on künklik ja ebatasane, teine lauge ja sile, kus robot peab võimalikult kiiresti liikuma. Iga meeskond valib ühe roboti, mida ehitama hakata. Ülesanne 1. Kasti ületav robot Sinu ülesandeks on ehitada robot, mis suudaks liikuda ebatasastel maastikel. Robot peab suutma läbida testpolügoni, mis koosneb LEGO kastist ja kaantest, vt joonist 1. Robot peab sõitmist alustama aluspinnalt ning ilma abi ja ümber kukkumiseta üle kasti sõitma. Joonis 1. Polügon roboti testimiseks Lahendus 1. Kirjelda, millise roboti sa ehitad. Kus asub massikese, kas robot on rataste või roomikutega, kui suur on teljevahe ja kliirens (masina kere madalaim kõrgus aluspinnast). 2. Milline kastist ülesõitmine osa valmistas probleeme, laskumine või tõusmine? 3. Kui valisid roomiku, kas roomikut toetas kaks või enam velge? 4. Kuidas oli parem, kahe või enama toetusveljega? Ülesanne 2. Kiirelt sõitev robot Sinu ülesandeks on ehitada robot, mis sõidaks võimalikult kiiresti. Siinjuures ei piisa enam NXT mootori täiskiirusel pöörlemisest, vaid on vaja ehitada ülekanne mootorilt ratastele. Robot peab olema suuteline sõitma vähemalt kiirusega 0,5 m/s. Sul pole katsetamiseks aega. Arvuta ja ehita robot, mis kindlasti sellise kiirusega sõidab. Lahendus 1. Kirjelda järgnevalt, millise roboti sa ehitad. Milliseid hammasrattaid kasutad, kui suur on ülekanne? Kui suur on teoreetiline kiirus? 2. Mitu pööret teeb NXT mootor maksimaalse kiirusega ühe sekundi jooksul? 3. Kui pika maa läbib sinu poolt valitud ratastega robot ühe rattapöördega (cm)? 4. Arvestades ülekannet, mootori pöörlemiskiirust ja ratta läbimõõtu, on minu roboti teoreetiline kiirus (cm/s) Ehita see robot valmis ja proovi, kui kiiresti see sõidab. 5. Kui, siis miks erines roboti kiirus teoreetilisest kiirusest? 6. Kuhu kaob osa mootori jõust? 23

Ülesanne 3*. Etteantud punkti liikuv robot Nüüd oled valmis saanud kas kiire või roniva roboti. Proovi järgnevalt programmeerida robot sõitma valitud sihtpunkti xy-koordinaatteljestikus, kus mõlema telje üks ühik vastab ühele meetrile. Lihtsuse mõttes pole roboti teel takistusi ning robot on alati algpositsioonis x=0, y=0 x-telje suunal. Etteantud koordinaatide põhjal peab robot kas keerama õigesse suunda ja sõitma sinna otse või sõitma kõigepealt mööda x telge õige vahemaa, pöörama 90 vasakule ning sõitma edasi kuni sihtpunktini. Vihje: otse sihtpunkti sõitmiseks on vaja kasutada arkustangensi funktsiooni, mis leidub ainult NXC-s. Lahendus 1. Kirjelda järgnevalt, milliste arvutuste teel jõuab robot etteantud koordinaatide põhjal sihtpunkti. 2. Kui suure vahemaa läbib robot, kui mootorid pööravad 360? 3. Mitu kraadi peavad roboti mootorid üksteise suhtes vastasuunas keerama, et pöörata kohapeal 90? 4. Proovi oma programmi roboti peal. Enne seda valmista polügon, kus oleks x- ja y-telg ning võimalus vahemaad meetrites mõõta. 5. Kui suurel määral kõigub roboti täpsus? 6. Missugune peaks välja nägema roboti liikumise algoritm, kui teel oleks takistus? 24

X-XI nädala ülesanded Õpieesmärgid: õpilane teab manipulaatori ning teleroboti erinevusi ning tööpõhimõtteid; oskab koostada juhtimisalgoritme manipulaatorile ja telerobotile. Sissejuhatus Juhtmevaba kontroll on väga oluline mobiilsete manipulaatorite juhtimiseks. Tehases töötavad robotkäed võivad olla kontrollitavad juhtmete abil eemalt, sest need ei liigu paigalt. Samas peab olema võimalik juhtida pommirobotit juhtmevabalt. Pika juhtme kaasa vedamine oleks lisaraskus nii robotile, kui vähendaks võimalikku vahemaad juhi ja manipulaatori vahel. See tähendaks aga võimaliku plahvatuse korral ohtu kontrollijale. Rahvusvaheline Robootika Korporatsioon esitas sulle tellimuse manipulaatori ehitamiseks, mida oleks võimalik kasutada luurerobotina. Järgmine samm manipulaatorist on telerobot, mis kaotab teatud olukordades inimesel enda juhtimise üle kontrolli. Näiteks sõidab iseseisvalt takistusest mööda. Ülesanne 1. Puldiga auto Teie ülesandeks on ehitada kahest NXT kontrollerist koosnev süsteem. Selleks peate moodustama kahest meeskonnast koosneva rühma. Üks roboti ajudest on kontroller ning teine manipulaator. Kahe kontrolleri vahel toimub suhtlus sinihamba abil. Manipulaatori kõige lihtsam lahendus võib olla baasrobot. Samas võite ehitada ka näiteks kiirema või parema läbivusega roboti. Tellimuse nõude kohaselt peab manipulaatoriga olema võimalik teostada järgnevaid liikumistoiminguid: otse liikumine (vabalt valitud kiirusel); täielik STOPP (manipulaator seisab); pööramine 30 vasakule. Kui eelnev töötab, lisa tagasi liikumine (vabalt valitud kiirusel) ning pööramine 30 paremale. Ülesanne 2. Takistusi vältiv telerobot Teie ülesandeks on ehitada telerobot, mis oleks kontrollitav sarnaselt eelmises ülesandes kirjeldatud nõuetele. Lisavõimalusena peab telerobot olema suuteline iseseisvalt avastama takistusi ning neist mööda sõitma. Riistvaraline lahendus võib olla sarnane või sama eelmises ülesandes tehtud robotiga. Täiendage kahe roboti vahelist andmesidet ning lisage järgmised võimalused: 1. Juhtkontroller annab kasutajale teada (vilgutab tuld, teeb heli, näitab ekraanil teksti), kui manipulaator nägi takistust. 2. Juhtkontroller annab kasutajale teada, kui telerobot sõidab parasjagu takistusest mööda. 3. Juhtkontroller näitab teleroboti ja takistuse vahelist kaugust (telerobot mõõdab sonariga kaugust objektist ning edastab seda pidevalt kontrollerile). Lahendus 1. Kuidas lahendasite tarkvaraliselt selle, et telerobot sõidab iseseisvalt takistusest mööda? 2. Kuidas lahendasite tarkvaraliselt lisavõimalused 1, 2 ja 3? 25

Ülesanne 3*. Roboti andmesideprotokoll Lähtuvalt eelmisest ülesandest täiendage joonist 1. Lisage kahe roboti vaheline andmesideprotokoll. 2. Vedage kahe roboti vahele nooled. Noole suund näitab, millisele kontrollerile infot saadetakse. 3. Lisage noolele lühike tekst selle kohta, mis infot edastatakse (sõitmiskäsk, kaugus objektist vms). 26

XII-XIII nädala ülesanded Andmete kogumine Tavaliselt kulub õpetajal tunni algusest päris palju aega kohalolevate õpilaste kontrolliks. Oleks ju päris kurb, kui programm jääks poolikuks või roboti katsetamine jääb ära ainult seetõttu, et puudu jäi viis minutit ja seda sellepärast, et õpetaja kontrollis, kes on puuudu. Kuigi õpetajale öeldi, et robootika tunnist ei puudu kunagi keegi ja ka seekord ei ole kedagi puudu, vajab õpetaja ikkagi sellele kinnitust. Mis sa arvad, kas meil õnnestuks robot panna klassis olevaid õpilasi kontrollima? Ülesanne 1. Sisenejaid ja väljujaid loendava roboti planeerimine Mis sa arvad, kas meil õnnestuks panna robot klassis olevaid õpilasi kontrollima? Mõelge, milliseid andureid saaks kasutada klassis olevate õpilaste loendamiseks. Tooge iga anduri juures välja, kuidas seda saaks kasutada ja mis on selle plussid ja miinused. 1. Puuteandur: 2. Heliandur: 3. Valgusandur: 4. Kaugusandur: Kasutades kaugusandurit, planeerige lihtsa roboti ehitus. Robot peaks loendama uksest sisenevaid ja väljuvaid õpilasi. Vaadelge järgnevat joonist ning mõelge, millele ja miks tuleks roboti ehitusel ja selle klassi paigutamisel tähelepanu pöörata. 1. 2. 3. 27

Ülesanne 2. Inimesi loendav robot Kasutades ühte ultraheliandurit, ehitage robot ja koostage programm, mis suudab 10 minuti jooksul loendada, mitu inimest roboti eest möödus. Täiendage programmi järgmiselt: iga möödumise korral mängitakse helisignaali; ekraanil kuvatakse möödujate näit reaalajas. Ülesanne 3. Täpsem inimesi loendav robot Kasutades kahte ultraheliandurit, ehitage robot ja koostage programm, mis suudab 10 minuti jooksul loendada, mitu inimest ruumi sisenes. Täiendage programmi järgmiselt: ekraanil kuvatakse graafik, kus näidatakse jooksvalt 20-sekundilise intervalliga sisenejate arvu; programm loendab ka ruumist väljuvaid inimesi; ekraanil kuvatakse sisenejate ja väljujate graafik iga minuti kohta. 28

Ülesanne 4*. Sisenejaid ja väljujaid loendav robot Kasutades kahte ultraheliandurit, ehitage robot ja koostage programm, mis loendab 10 minuti jooksul ruumi sisenevaid ja väljuvaid inimesi ning salvestab tulemused faili. Täiendage programmi järgmiselt: mõõtetulemused salvestatakse faili ajaliselt (mõõtmist alustatakse ajahetkel 0:00). Kasutades tabelarvutusprogrammi, teostage järgmised ülesanded: Importige andmed robotist tabelarvutusprogrammi. Leidke, mitmendal minutil sisenes ruumi kõige rohkem inimesi, kui palju neid sisenes. Mitu inimest oli mõõtmistulemuse lõpus ruumis eeldusel, et mõõtmise alguses oli ruum tühi? Kas andmete põhjal saab kindlaks teha, kas ruumis oli algselt inimesi? Kui jah, siis kuidas? Koostage järgmised graafikud: ruumi sisenejate arv, ruumist väljujate arv, ruumis hetkel viibivate inimeste arv. Esitage lahendustega tabelarvutusprogrammi fail. Andmete töötlemine Lisaks andmete kogumisele on saadud andmetega vaja hiljem midagi ka peale hakata: neid töödelda. Andmete töötlemiseks sobivad nii erinevad tabelarvutusprogrammid (MS Excel, OO Calc jms) kui ka spetsiaalsed statistikaprogrammid (SAS, R jms). Ülesanne 5. Andmete töötlemine arvutiga Avage andmefail ja uurige, mis andmed ning millisel kujul failis on? Andmed on esitatud failis järgmiselt: aasta; kuu; päev; tunnid; minutid; sekundid; UV-indeksi toorväärtus. Toorväärtusest on võimalik UV-indeks arvutada, kui väärtusest lahutada 1 ning korrutada see 0,039-ga. Andmete tabeltöötlusprogrammi importimiseks oleks hea, kui algandmed on kõik samade eraldajatega, nt ','; '-'; ' '; 'TAB' või midagi muud taolist. Iga küsimuse juures esitage ka valem või seletus, kust ja kuidas vastus on saadud. 1. Impordi andmed failist 2007_juuli.txt tabelarvutusprogrammi. 2. Uuri, millise intervalliga on toimunud mõõtmine. 3. Kas mõned veerud võiks eemaldada? Kui jah, eemalda need? 4. Mitu rida andmeid tabelis on? 5. Mitu mõõtmist on ühe päeva jooksul tehtud? 6. Kui suur oli UV-indeks 8. juulil kell 13:45? NB! UV-indeksi arvutamiseks tuleb näidust lahutada 1 ning korrutada see 0,039-ga 7. Mis oli selle päeva maksimaalne UV-indeks? Mis kell see registreeriti? 8. Koostada 8. juuli kohta UV-indeksi visualiseerimiseks graafik. Tähelepanu tuleks pöörata järgmistele asjadele: milline graafik kuvamiseks valida ja milline peaks olema kuvamise intervall. 9. Leida iga päeva kohta keskmine UV-indeks, võttes arvesse UV-kiirgust ajavahemikust kella 8 kuni 20-ni. Miks ei ole mõtet kasutada öiseid andmeid? 10. Kasutades eelnevalt leitud andmeid, koostage UV-indeksi kohta kuu graafik. 11. Vormindage tabel selliselt, et juhul kui UV-indeks väärtus on üle 5, kuvatakse tabeli taust punaselt, vastasel juhul roheliselt. 29

XIV-XVII nädala ülesanded Ülesanne 1. Kirjelduse uurimine Ülesande püstitus Kaevandustes töötamine on ohtlik ja tervist kahjustav töö. Harvad ei ole varingud ja muud õnnetused, kus inimesed jäävad kaevandustesse lõksu või hukkuvad. Turvalisuse tõstmiseks on välja töötatud roboteid, mis aitavad inimesi ohtlikes olukordades. Ülesande kirjeldus Rahvusvaheline kaevandamistöödega tegelev korporatsioon (edaspidi RKTK) tellib teilt roboti, mis suudaks kaardistada varisemisohtlikke kaevandusi. Inimesi on sellistesse kohtadesse ohtlik saata. Robot teeb sama töö ära väiksemate kaotustega. Väljatöötatud lahendus peab vastama järgmistele nõuetele: Kaardistada on vaja kuni kahe kilomeetri pikkuseid sirgeid tunneleid, millel on kõrvalharud. Robot peab saatma informatsiooni traadita ühenduse kaudu väljaspool kaevandust asuvatele kaevuritele, sest kaevanduse varisedes ei saa roboti kogutud infot kasutada. Kaevurid peavad nägema kaarti tekkimist reaalajas, kui kaardistav robot sõidab. Info saatmine ja kaardi joonistamine peab toimuma roboti liikumise ajal tunneli põhja poole, mitte taganedes. Vahepeal võib toimuda varing. Robot peab sõitma sirge tunneli lõppu ja tulema tagasi, sest RKTK ei taha teha kulutusi ostmaks igaks kaardistamiseks uut robotit. Näidistunnel Maksumuse hindamine Kogu töö maksumuse hindamine toimub kokkulepitud ühikutes järgmiselt: Projektimeeskonna liikmete arv x töötunnid x 5 Roboti maksumus: Aju 5 Mootor -2 Andur 3 Muude detailide iga 50 grammi 1 Töökulu suureneb roboti maksumuse võrra, kui robot ei jõua tunnelist tagasi. Kui robot ei joonista õigesti kaarti, suureneb maksumus poole projektimeeskonna töökulu ning roboti maksumuse võrra. 30

Ülesanne 2. Tutvumine näpunäidetega Jaotage meeskond ülesannete järgi. Arvestage, et vajadusel peavad kõik üksteist aitama. Dokumenteerige kõik oma tegevused, et hiljem oleks lihtne koostada aruannet oma kaardiroboti kohta. Tehnilisi näpunäiteid Kuna kaart peab tekkima automaatselt, võite selleks kasutada teise roboti ekraani ning kuvada saadud pilt arvuti ekraanile või püüda luua otseühendust roboti ja arvuti vahel. Robot peab olema võimeline jälgima tunneli mõlemat seina korraga ning samal ajal sõitma otse. Kõige lihtsam on seda teha kahe sonari ja puuteanduriga. Testpolügon Ehitage LEGO kastidest või muudest käepärastest vahenditest tunnel koos kõrvaltunnelitega. Sulgege kõrvaltunnelite otsad kastidega. Keskmise tunneli pikkus peab olema proportsioonis roboti ekraani kõrgusega ja laius peaks olema robotist 10 cm laiem. Ülesanne 3. Teised lahendusvõimalused 1. Sama ülesande lahendamine keerava tunneli korral. 2. Polaarkoordinaatide kasutamine tunnelite joonistamisel. 3. Joonistav robot ei joonista kaarti enda ekraanile, vaid pliiatsiga paberile. 31