SADRŽAJ. strana 1. strana 2. Hadži Đerina 2, tel.011 / Cvijićeva 98, tel.011 / e mail:

Similar documents
Podešavanje za eduroam ios

Otpremanje video snimka na YouTube

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

Pravljenje Screenshota. 1. Korak

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

SAS On Demand. Video: Upute za registraciju:

Tutorijal za Štefice za upload slika na forum.

UNIVERZITET U KRAGUJEVCU MAŠINSKI FAKULTET KATEDRA ZA PRIMENJENU MEHANIKU I AUTOMATSKO UPRAVLJANJE. Lego robotika. Uputstvo i praktični primeri

Direktan link ka kursu:

za STB GO4TV in alliance with GSS media

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

Uvod u relacione baze podataka

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

Babylon - instalacija,aktivacija i rad sa njim

Upute za korištenje makronaredbi gml2dwg i gml2dgn

1. Instalacija programske podrške

Primer-1 Nacrtati deo lanca.

VEŽBA 4 TOOLS - RAD SA ALATIMA

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

Bušilice nove generacije. ImpactDrill

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

Poglavlje 1 POČETAK RADA SA MICROSOFT OFFICE-OM 2016

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

Pokretanje (startovanje) programa Microsoft Word

Programiranje za internet zimski semestar 2013/2014. Java kroz primjere (skripta je u fazi izradi)

Nejednakosti s faktorijelima

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

Upotreba selektora. June 04

Klasterizacija. NIKOLA MILIKIĆ URL:

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o.

Port Community System

3D GRAFIKA I ANIMACIJA

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

Mogudnosti za prilagođavanje

PROJEKTNI PRORAČUN 1

Sl.1.Razvojna ploča-interfejs

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

1. MODEL (Ulaz / Zadržavanje / Stanje)

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

LabVIEW-ZADACI. 1. Napisati program u LabVIEW-u koji računa zbir dva broja.

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

Windows Easy Transfer

Priprema podataka. NIKOLA MILIKIĆ URL:

- PRIRUČNIK ZA STUDENTE -

Uvod u MS Word. Nova znanja. Novi pojmovi

Primer izrade dinamičkog sajta

Kada otvorite glavni ekran (ili glavni meni) editora, najpre možete da uočite dva bitna podatka:

BENCHMARKING HOSTELA

Advertising on the Web

Naredba je uputa računalu za obavljanje određene operacije.

DC MILIAMPERSKA MERNA KLJESTA,Procesna merna kljesta KEW KYORITSU ELECTRICAL INSTRUMENTS WORKS, LTD. All rights reserved.

UPUTSTVO ZA INSTALACIJU I PODESAVANJE PROGRAMA ZA MONITORING RADA SOLARNE ELEKTRANE KOSTAL PIKO MASTER CONTROL (PMC) v.2

mdita Editor - Korisničko uputstvo -

KatzeView Uputstvo. verzija Novi Sad Josifa Marinkovića 44. Tel: +381 (0) Fax: +381 (0) Mob: +381 (0)

Office 365, upute za korištenje elektroničke pošte

Desna strana menija sadrži spisak nedavno otvaranih dokumenata.

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

''Serbia'' Serbia MATURSKI RAD. Učenik: Serbia Predmet: Informatika i Računarstvo Profesor: Serbia

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Uputstva za upotrebu štampača CITIZEN S310II

IZRADA TEHNIČKE DOKUMENTACIJE

EUnet dial-up konfigurator

AUTODESK INVENTOR SKRIPTA. Uradio: Prof. Saša Ilić

KORISNIČKO UPUTSTVO ZA SVR MANAGER SAMSUNG

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. Informatika 1. Word. Milica Ćirić

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

STRUČNA PRAKSA B-PRO TEMA 13

Kapitalizam i otpor u 21. veku

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

3. Dvostruki klik na mali pravougaonik i onda ga iskositi pomoću strelice na sredini desne ivice.

Automatske Maske za zavarivanje. Stella, black carbon. chain and skull. clown. blue carbon

PowerPoint deo Umetanje oblika (shapes)

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

MICROSOFT WORD. Word pokrećete iz START - PROGRAMS menija ili klikom na prečicu na desktopu. Ruler / Lenjir. Tekstualni kursor.

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

INFORMACIONI SISTEMI ZA PODRŠKU MENADŽMENTU

- Vežba 3 - UVOD U FLASH ANIMACIJA FRAME-BY-FRAME SHAPE TWEEN MOTION TWEEN

INFORMATIKA II AutoCAD 9. deo. Rudarsko-geološki fakultet Rudarski odsek

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

SKINUTO SA SAJTA Besplatan download radova

VODIČ ZA PISANJE SEMINARSKIH RADOVA U PROGRAMU MICROSOFT WORD 2007

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU

Informatika vežbe 2015

WEBE-Bankzapravnalica Uputstvo za upotrebu

Sound Bar zvučnik. Uputstvo za upotrebu HT-MT500/MT501

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

Uputstvo za konfigurisanje uređaja Roadstar

Asinhronizam: pojmovi sada i kasnije

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Transcription:

SADRŽAJ 1. Roboti i robotika...5 1.1 Na šta mislimo kada kažemo robot?...5 1.2 Šta je robot?...5 1.3 Dizajn robota...7 2. Delovi robota...7 2.1 Pokretni delovi i kretanje robota...8 2.2 Senzori...8 2.3 Mikroračunar...9 3. Programiranje robota...13 3.1 Pisanje programa...13 3.2 Blokovi za kretanje (move blocks)...19 3.3 Senzori...24 3.4 Wait blokovi...27 4. Zadaci...13 4.1 Uvodni primeri...31 4.2 Napredniji zadaci...34 4.3 Zadaci za samostalni rad...36 strana 1 strana 2

strana 3 strana 4

1. Roboti i robotika 1.1 Na šta mislimo kada kažemo robot? Postoje brojne definicije koje nam mogu dati ovaj odgovor. Može se reći, da je robot mehanički sklop čija je namena da oponaša neke ljudske sposobnosti. Ili, da je on mašina koja može funkcionisati sasvim nezavisno od ljudskog upravljanja. Zavisno od toga na koji način posmatramo robota, postoji ih i mnogo, mnogo više, i nema neke zvanične definicije. Za robote sa kojima ćemo mi raditi, možemo reći: previše fizički naporno da rade. Ova mašina je naučena kako treba da uhvati posudu sa rastopljenim metalom i da je prenese do kalupa, ali je naučena i da treba da stopira ceo proces ako analizom podataka iz okoline utvrdi da postoji neki rizik. Ono što razlikuje ovog robota od časovnika na navijanje je njegova veštačka inteligencija dok časovnik uvek okreće kazaljke na isti način, robot se ne ponaša uvek isto (kada je sve u redu robot će izliti užareni metal na predviženo mesto, ali ako se pojavi neki čovek na mestu izlivanja koji bi mogao da strada, robot će zaustaviti izlivanje). Robot je uređaj koji je sastavljen tako da izvršava različite aktivnosti i da se snalazi u svetu oko sebe, nezavisno od čoveka koji ga je sastavio. On treba da se sam pomera i reaguje na spoljašnji svet sasvim samostalno. Dakle, ako vi naređujete kada on ide levo, desno, kada da zviždi, kada da stane... onda on nije robot nego igračka sa daljincem, zar ne? Ali ako robot sam ispita sredinu gde se nalazi, pa ako naiđe na prepreke sam nađe način da ih pređe, ako dođe do zida okrene se i nastavi dalje da ide, ako on sam od gomile loptica uzme baš crvenu lopticu, i još stotinu drugih mogućnosti... bez pomoći i naredbe svog stvaraoca, onda on zaista jeste robot. Ono što robotom upravlja, što mu govori u kojem slučaju se kako ponaša, jeste algoritam. A stanje okoline u kojoj se robot našao, od koje će zavisiti njegovo kretanje i aktivnost, ono je promenljivo i ne možemo ga sasvim predvideti zato saopštavanjem algoritma robotu opisujemo kako on može rešiti zadati problem u zavisnosti od situacije u kojoj se nalazi. Kroz nastavu iz robotike, naučićemo kako da uz pomoć Lego Mindstorms NXT komponenti sastavimo sami svoje robote. Takav robot će moći da ima točkiće ili gusenicu za kretanje, kandže za hvatanje objekata, optičke senzore da bi video svet oko sebe... a da bismo ga naučili kako da se kreće i sam snalazi u prostoru, moraćemo da primenimo svo naše znanje iz algoritama, jer će samo tako on shvatiti šta mi želimo da radi! 1.2 Šta je robot? Robot je mašina koju je napravio čovek da bi radila ono što je naučena. Na neki način, može se reći da su roboti inteligentni, jer mogu da prate dešavanja u svojoj okolini i da na osnovu njih rade baš ono za šta su programirani sa obzirom na te prepreke. Primer je robot koji izgleda kao velika veštačka ruka, koji u fabrikama iz velikih peći vadi posude sa rastopljenim metalom i razliva ga u kalupe. Ovakav robot se koristi jer čovek ne može da podigne nešto te težine, može da se povredi, može da se umori... roboti se danas koriste tamo gde je za ljude strana 5 strana 6 Slika 1 1 Jednostavna konfiguracija LEGO Mindstorms NXT robota Da bi bio sposoban da radi složene poslove robot treba da ima: veštačku pamet (kao što je mozak kod ljudi i životinja) = mikroračunar čula kojima registruje dešavanja u okolini (kao što je čulo sluha ili vida životinja) = senzori delove koji se pokreću i pokreću alate i samog robota (kao što su ruke i noge kod životinja) izvor energije koji napaja sve ove delove. Roboti su danas elektromehanički mehaničke delove od metala i plastike pokreću električni delovi, a mozak robota je mali kompjuter koji je i sam električni sklop. Prvi roboti su napravljeni sedamdesetih godina XX veka, bili su prosti i bila im je potrebna asistencija čoveka u radu zato što nisu imali veštačka čula. Veštačka čula robota zovu se senzori. Osamdesetih godina XX veka pojavila se druga generacija robota koja je imala senzore i kompjutersku inteligenciju, a danas su roboti u svojoj trećoj fazi razvoja, mnogo napredniji i složeniji nego što su bili na početku razvoja ove grane tehnike. Nauka koja se bavi razvojem robota zove se robotika i čitava jedna grana tehnike se bavi proizvodnjom robota koji imaju sve širu primenu u industriji i svakodnevnom životu ljudi.

1.3 Dizajn robota U razvoju robota ljudi su često imitirali prirodu. Oblik ruke za neke industrijske robote jednostavna je kopija ruke čoveka ovi roboti imaju jedan zglob koji može da se savija kao lakat, imaju još jedan zglob koji baš kao članak čovekove ruke može da se kreće i savija u svim pravcima, a deo koji hvata predmet je u obliku šake sa jednim ili više prstiju (pogledajte animaciju rada ovakvog robota na Web strani http://electronics.howstuffworks.com/robot2.htm). 2.1 Pokretni delovi i kretanje robota Različiti roboti se mogu kretati na različite načine. Neki primeri kretanja su telo robota sa pokretnim delovima kojim robot može da puzi po zemlji kao zmija, roboti koji se kreću u skokovima kao žabe, roboti koji se kreću na dve ili više nogu poput škorpiona. Neki roboti mogu da lete kao insekti ili kao helikopter, mogu da plivaju i rone ili da čak hodaju po vodi. Svojim pokretnim delovima robot može, kao i čovek, da hvata predmete i prenosi ih na određeno mesto, gura ih, usisava, ali i uz odgovarajuće alate seče, vari, sklapa delove i još mnogo toga. I bez pokretnih delova, uz odgovarajuće predajnike, robot može da utiče na okolinu tako što emituje svetlost ili zvuk, greje ili hladi. Dakle, robot može da se kreće po svojoj okolini i da deluje na nju. Slika 1 2 Složena konfiguracija LEGO Mindstorms NXT robota Veliki san čoveka je da napravi robota koji će po izgledu i načinu rada biti poput čoveka android. Kreacija savršenog robota, koji izgleda kao čovek (android) ili je čak složeniji i moćniji od čoveka (kiborg), je jedna od najčešćih tema naučne fantastike. Naučna fantastika se bavi i moralnim aspektima kreacije robota koji treba da služi čoveku, jer ako stvaramo mašinu sa visokom inteligencijomi kompleksnim osećanjima on će stoga imati potrebu da bude priznat kao ravnopravno ili voljeno biće, ili može da postane neprijatelj čoveku u borbi za svoju nezavisnost i sopstvene interese. 2. Delovi robota Iako ne moraju da imaju čovekoliki oblik, mnogi delovi robota su osmišljeni po uzoru na neke delove čoveka. Tako, robot treba da ima mozak kojim će da razmišlja, čula pomoću kojih će da skuplja podatke o okolini, udove koji mu služe za kretanje, itd. U radu sa robotima, ove delove ćemo nazivati mikroračunar (mozak robota), senzori (čula robota), pokretljivi delovi (udovi). Svaki robot takođe mora imati i izvor energije koji će mu davati snagu za izvršavanje zadataka koje mu zadamo. Slika 1. LEGO Mindstorms NXT robot Na slici 1 vidimo jednu od mogućih konfiguracija LEGO Mindstorms NXT robota. Napravljen je tako da može da se kreće pomoću mehanizma sa točkovima i da može da pokreće hvataljke koje liče na udove raka ili škorpije. LEGO Mindstorms NXT robot ima 3 motora koji ga pokreću, koji će biti opisani kasnije. 2.2 Senzori Da bi znao u kom pravcu može da se kreće, a da ne udari o prepreku i ošteti se, robot mora da skupi podatke iz okoline i tako pronađe sve moguće prepreke. Složeni roboti mogu da čak sakupe podatke o sastavu i osobinama okoline u kojoj se nalaze (npr. temperaturu, pritisak i vlažnost vazduha, sastav zemljišta, itd.). Senzori robota su čula robota koja omogućavaju robotu strana 7 strana 8

Softver je srž mikroračunara, bez njega bi mikroračunar bio samo gomila metala i plastike. Softver čine operativni sistem i programi koje mi pišemo. Operativni sistem je skup programa koji omogućuju mikroračunaru da obavlja svoje osnovne funkcije, reaguje na pritiske tastera, prikazuje informacije na ekran, učitava informacije koje mu daju senzori, itd. ultrazvučni senzor optički senzor senzor dodira zvučni senzor Slika 2. Senzori LEGO Mindstorms NXT robota Postoji više različitih vrsta senzora. Tako, na primer, imamo zvučne senzore koji čuju zvuk (kao i čulo sluha kod čoveka). Postoje i ultrazvučni senzori koji čuju zvuk koji ljudi ne mogu, ali ga čuju neke životinje (npr. slepi miš), zatim senzori dodira koji su osetljivi na dodir sa bilo kojim predmetom. A senzori uz pomoć kojih robot vidi, zovu se optički (ili svetlosni) senzori. Postoji još mnogo drugih senzora, kao što su senzori osetljivi na promenu temperature, ili senzori koji određuju položaj robota, itd. LEGO Mindstorms NXT robot ima 4 senzora u osnovnom sklopu (optički senzor, zvučni senzor i ultrazvučni senzor, senzor dodira), koji su prikazani na slici 2, ali se mogu dodatno nabaviti još neki senzori npr. temperaturni senzor. 2.3 Mikroračunar Mikroračunar je mozak robota. On prima podatke koje dobija od senzora i na osnovu tih podataka i zadatka koji smo mu zadali, odlučuje šta će da uradi. Mikroračunar je električni sklop za koji možemo da pišemo programe. Kada programiramo robota, to znači da programiramo njegov mikroračunar. Na ovom.kursu naučićemo kako se programira NXT, mikroračunar koji se ugrađuje u LEGO robote. Hardver čine svi oni delovi mikroračunara (metalni i plastični) koje možemo opipati. Osnovne komponente hardvera su: Memorija Procesor Unutrašnji sat Tastatura Ekran Zvučnici Priključci (portovi) Procesor Memorija Unutrašnji sat Procesor ima ulogu da izvršava sve naredbe operativnog sistema (prikazivanje podataka na ekranu, pritisak tastera, itd.) i programa koje smo napisali. Unutar NXT mikroračunara, ali i svakog drugog računara, nalazi se memorija u koju se smeštaju operativni sistem i naši programi, odnosno softver mikroračunara. Memorija koju imamo nije neograničena i u nju se može smestiti samo konačan broj programa. Važan deo mikroračunara je njegov unutrašnji sat, koji pomaže procesoru da napravi raspored izvršavanja naredbi (naredbe naših programa ili operativnog sistema). Nama unutrašnji sat koristi za merenje vremena u programima koje ćemo nešto kasnije pisati. Na taj način možemo da ograničimo koliko dugo će neka naredba zadata robotu trajati. Mikroračunar se sastoji od dve glavne komponente: hardvera i softvera. strana 9 Slika 3. Mikroračunar LEGO Mindstorms NXT robota NXT mikroračunar Tastatura Ekran Zvučnik strana 10 Kod NXT mikroračunara se tastatura nalazi na samom računaru i sastoji se od četiri dugmeta (tastera): Enter/On uključuje NXT mikroračunar ako je on isključen, u suprotnom vrši ubacivanje našeg programa u memoriju mikroračunara (narandžasti taster u sredini) Back nam omogućava da se vratimo na prethodnu stavku menija i dva tastera trouglastog oblika koja nam služe za kretanje po (opcijama). Na ekranu možemo videti informacije vezane za NXT mikroračunar, kao i programe koje smo napisali a zatim i ubacili u memoriju. Omogućava računaru da emituje zvučne signale.

Priključci (portovi) Portovi su delovi mikroračunara na koji priključujemo ulazne i izlazne uređaje. Kod NXT mikroračunara, ulazne uređaje (uređaji od kojih mikroračunar prima podatke, odnosno senzori) priključujemo na portove označene brojevima 1, 2, 3, 4; dok izlazne uređaje (motori koji pokreću robota) priključujemo na portove označene slovima A, B i C. U okviru NXT mikroračunara postoji i USB port, koji nam služi da razmenjujemo podatke sa našim računarom, odnosno da programe za robota napisane na računaru, učitamo u memoriju NXT mikroračunara. NXT mikroračunar je novija verzija RCX mikroračunara koji se još uvek koristi. Većih razlika između ova dva mikroračunara nema. Kod starijeg, RCX mikroračunara, tastatura je malo izmenjena, kao i broj ulaznih portova za senzore, koji je manji nego kod NXT mikroračunara. U memoriju RCX mikroračunara možemo smestiti, pored operativnog sistema, još najviše pet programa za robota. strana 11 strana 12

3. Programiranje robota Do sada smo videli od kojih delova je sastavljen robot, i čemu služi svaki od tih delova. Videli smo i kakve sve oblike možemo da pravimo od Lego delova koji su na na raspolaganju. Ali mi sa tim robotima možemo u mnogo više! Možemo da mu kažemo šta da radi, kako da se kreće, šta da prikaže na ekranu, koji zvuk će da ispusti itd. To ćemo da radimo koristeći Lego Mindstorm NXT. Zato ćemo pre nego što zaista počnemo da pišemo programe u Lego Mindstorm u da se podsetimo pseudo koda koji smo pominjali kod algoritama. Pseudo kod je način da zapišemo naš algoritam, program, na govornom jeziku. Mi bukvalno pišemo kako će da se izvršava naš program. Setite se, kod algoritam je to izgledalo ovako za zbir dva broja: Učitaj jedan broj; Učitaj još jedan broj; Saberi ih i smesti u novu promenljivu; Ispiši tu promenljivu. Tako možemo da opišemo i nešto što će robot da radi. Idi pravo dok ne udariš u prepreku. Ispusti zvuk Vrati se nazad i okreni se za 90 na desno Idi pravo još 10cm i stani Ovo je samo način da olakšamo sebi kasniji rad u samom programu. Ako unapred smislimo šta ćemo da radimo i analiziramo to, biće nam mnogo lakše kasnije kada budemo zaista pisali program za robota. Ne morate svaki puta da pišete šta ćete da radite u svakom koraku, ali trebalo bi da svaki smislite u glavi kako biste mogli da rešite određeni zadatak. Probajte svaki put da dođete do više rešenja da biste mogli da izaberete najbolje i najefikasnije. Tradicija je da se u novom programskom jeziku koji učite napiše program Zdravo svete (Hello world) koji samo ispisuje na ekranu Zdravo svete! ( Hello world! ). Tako ćemo i mi početi učenje Lego Mindstorm a. Lego Mindstorm NXT je veoma zabavan i lagan za korišćenje, i nećete imati problema da ga naučite. Na slici iznad vidimo da imamo blokove koje ubacujemo na radnu površinu i pomoću kojih programiramo robota. A sada ćemo da probamo da napravimo neke zanimljive programe i da pokrenemo te robote! 3.1 Pisanje programa Pseudo kod za ovaj program je veoma jednostavan, potrebno je samo ispisati na displeju Zdravo svete!. Da bismo ovo prebacili u pravi program, koristićemo display blokove (blokove koje koristimo kada hoćemo da ispišemo neki tekst). Za početak napravićemo program koji se zove Zdravo svete. Iako vam ovo možda zvuči kao nešto komplikovano i veoma teško, uopšte nije tako. Već smo se sretali sa ovim kod algoritama. Pre svega, potrebno je stvoriti strukturu programa. To samo znači da ono što ćemo govoriti robotima da rade ima neku organizaciju, svoje uređenje. Od nas se i to i zahteva, pošto roboti nisu inteligenta stvorenja koja mogu da na osnovu nekog predosećaja, intuicije, odreaguju na pravi način. Njima je potrebno sve reći i na taj način kontrolisati njihovo ponašanje. strana 13 strana 14

Nakon klika na dugme Go>> dobijamo izgled programa kao na slici levo. Vidimo i gde se nalaze određeni blokovi koje ćemo koristiti pri pisanju našeg programa. Tamo gde piše Start treba da prevučete blok koji služi za ispis teksta. Kliknite mišem na blok za prikaz teksta i prevucite ga do mesta na radnoj površini gde piše Start. Trebalo bi da dobijete nešto ovako: U opciji Action vidimo da je izabrano Image. To znači da je podešavanje takvo da se na ekranu pojavljuje neka slika koja se nalazi u memoriji robota. Ali mi ne želimo da nacrtamo neku sliku na ekranu, nego hocemo da napišemo Zdravo svete! na robotovom ekranu. Zato ćemo kliknuti na padajući meni pored mesta gde piše Image i izabrati opciju Text. to znači da hoćemo da ispišemo određeni tekst na ekranu. Posle toga se pojavljuje u opcija gde možemo da upišemo tekst koji želimo da se pojavi na ekranu. Tu napišite Zdravo svete!. Štiklirana opcija Clear znači da sve što se do tada nalazilo na ekranu se briše. Videćemo kasnije kako možemo da iskoristimo ovu opciju. Svaki put kada ubacimo novi blok u naš program u donjem levom uglu se pojavljuje panel preko kojeg možemo da podešavamo taj blok tj. ono što će da se izvršava u tom trenutku. Tako možemo da podešavamo šta će da se ispiše na ekranu za display blokove. Ali ako izaberemo više blokova od jednom, panel za podešavanje se neće pojaviti pošto program neće znati koji blok želimo da podešavamo. Sada, kada smo obavili sve što je potrebno da bismo napisali naš prvi program 2 potrebno je taj program prebaciti u memoriju robota i pokrenuti ga. Dugme 1 služi da program prebacimo u memoriju robota i da taj isti program 1 3 pokrenemo. Dugme 4 samo šalje program u memoriju robota. Dugme 5 5 zaustavlja program koji se trenutno izvršava na robotu. Klikom na dugme 4 označeno sa 2 na slici možemo da vidimo koji su sve roboti povezani sa našim računarom, u slučaju kada imamo više robota, i možemo da vidimo šta se nalazi u memoriji robota. Pošto svaki od programa koji pišemo zauzme deo memorije u našem robotu, moraćemo ponekad da bismo stavili novi program da izbrišemo stari. To radimo tako što kliknemo na tab Memory (slika levo). Tu se nalazi spisak svih programa, pa možemo da izaberemo neki, i klikom na Delete ga brišemo. A sad pokrenimo više taj program. To radimo tako što kliknemo na dugme označeno sa 1 na slici desno. Kliknemo na dugme 1 i... tekst se pojavio na ekranu, i pisalo je Zdravo svete!, ali sve to je trajalo veoma kratko. Mi želimo da produžimo to. I zato ćemo u naš program da ubacimo blokove čekanja (wait blocks), i to blok čekanja koji kao uslov do kada da čeka ima vreme. Označen je crvenim krugom na sledećoj slici. strana 15 strana 16

Kliknemo na taj blok i stavimo ga posle display bloka. Pojavio nam se i panel za podešavanje wait bloka. Trebalo bi da je u opciji Control izabrano Time, a Seconds podešeno na 10. To znači da kada sledeći put kliknemo dugme 1 (play), robot će na ekranu da prikaže Zdravo svete!, i da zadrži to na ekranu 10 sekundi. Hajdemo još malo da se igramo sa ekranom, i da nacrtamo kvadrat na njemu. Hoćemo da se iscrta jedna stranica, pa da prođe 5 sekundi, pa da se iscrta sledeća, pa 5 sekundi, pa sledeća, pa još 5 sekundi čekamo, pa iscrtamo poslednju stranicu, i na kraju to prikazujemo 10 sekundi. Za početak moramo da ubacimo 4 display bloka i 4 wait bloka koji kao uslov imaju vreme. Videli smo u prethodnom primeru kako se to radi. Prva tri wait bloka su podešena da čekaju 5 sekundi, a poslednji da čeka 10 sekundi. Ispod imamo podešavanja za display blokove. Na slici ispod vidimo da je selektovan prvi blok, pa su se u panelu za podešavanje pojavila podešavanja za njega. Vidimo da je izabrana opcija Clear da bismo izbrisali sve što se nalazilo na ekranu, da je Action podešeno na Drawing pošto želimo da crtamo po ekranu, da je Type podešeno na Line jer u svakom koraku crtamo po jednu stranicu. Na beloj pozadini se pajavljuje linija kakva će se pojaviti i na ekranu. Tu podesimo X i Y kao što se nalazi na slici ispod. Prvi par X i Y je za podešavanje jednog kraja linije, a drugi za suprotni kraj. Probajte da upisujete različite vrednosti u ta polja i videćete kako se menja izgled linije. Sada kliknemo na dugme play i naš robot će početi da radi upravo ono što smo i hteli, da crta deo po deo kvadrata na svom ekranu. Ako vam ne izgleda baš da crta kvadrat, proverite da li ste dobro upisali X i Y u svoja podešavanja za blokove. Ispod imamo slike na kojima su podešavanja za drugi, treći i četvrti blok, tim redom. Sve to prepišite u podešavanja za vaše display blokove. strana 17 strana 18

3.2 Blokovi za kretanje (move blocks) strana 19 Za sad smo naučili kako da prikažemo nešto na ekranu. Ali hoćemo i da pokrenemo robota, pošto on ima i motore i točkove. To radimo pomoću move blokova. move block izabran i motor A, opcija Steering više nije aktivna. Na slici je označeno gde bi trebalo da kliknete ako želite da izaberete blok za kretanje. Sada ga samo prevučemo na radnu površinu. Odmah se pojavljuje i panle za podešavanja. Prvo imamo opciju Port. Tu biramo koje motore želimo da pokrenemo i oni su čekirani. Obično su B i C motori za točkove, a motor A za pokretnu ruku. Direction služi za kontrolu smera obrtanja motora. Steering opcija služi za balans snage motora, tako da ako je klizač skroz desno ili levo, robot će da se okreće u smeru kazaljke na satu u jednom mesto, ili obrnuto. Ali ako je Opcijom Power možemo da podesimo koja će biti snaga motora. Što je klizač više desno to će motor brže da se okreće. Duration služi da bismo robotu rekli koliko dugo želimo da obavlja operaciju kretanja. U okviru Duration imamo opcije Unlimited, Degrees, Rotations i Seconds. Ako je izabrano Unlimited, robot će da se kreće beskonačno dugo, ili dok ga nešto ne prekine. Pomoću Degrees opcije možemo da kažemo robotu koliko puta želimo da se motor okrene pri kretanju. Na primer, ako stavimo 90, motor će da se okrene četvrtinu kruga, ako stavimo 360 okrenuće se za ceo krug itd. Rotations služi da podesimo koliko obrtaja će da napravi motor. Njega možemo da podesimo na 2.4, 5.8, 50.1 itd. A ukoliko izabremo Seconds, možemo robota da programiramo da se kreće određeni broj sekundi, koji mu mi zadamo. U Next Action strana 20 opciji zadajemo šta će da se dogodi nakon što se izvrši move blok. Tako imamo opcije Break (robot odmah zaustavlja motore i koči) i opciju Coast (robot zaustavlja motore ali ne koči tako da može da nastavi kretanje još malo). U zavisnosti od toga šta želimo da postignemo trebaće nam različita podešavanja. Sad hajde da napišemo program zbog kojeg će robot da obiđe jedan ceo krug, i da se vrati odakle je počeo kretanje, da nakon toga ispiše na ekranu Kući sam! i taj ispis će da traje 10 sekundi. Šta će nam sve trebati tj. koji blokovi? Pa sigurno jedan move blok, jedan display blok i jedan wait blok koji može vremenski da se podešava. Pre svega treba da napravimo novi program, nazovite ga Kući sam, a nakon toga ubacite blokove onim redom kojim smo ih navodili u rečenici iznad. Trebalo bi da dobijete nešto ovako. A sad da vidimo kako je podešen svaki od blokova. Rekli smo, podešavanja za svaki blok nam se pojavljuju u donjem levom uglu, svaki put kad kliknemo na neki blok. Prvo, da podesimo move blok. Kliknemo na njega da nam se pojave podešavanja. Kod Steering opcije ćemo klizač da pomerimo malo udesno, da bi robot skretao na jednu stranu i kretao se u krug, a kao u Duration ćemo da izaberemo opciju Rotation da bismo podesili trajanje rada motora. I nakon toga želimo da robot zakoči u mestu, pa biramo opciju Break. Podešavanja su kao na slici ispod. Sad da podesimo display blok. Hoćemo da ispišemo na ekranu Kući sam!, tako da kliknemo na display blok, izabremo da prikazujemo tekst, i napišemo da želimo da se prikaže Kući sam!. Još nam je ostalo da podesimo wait blok. Potrebno je da klinemo na njega i da u polju Seconds upišemo 10. Na kraju trebalo bi da dobijemo ovo:

Sada samo kliknemo na dugem play i vidimo šta ustvari radi naš robot! Još malo da se igramo sa motorima. Hoćemo da se robot kreće u obliku latičnog slova S. Šta će nam sad trebati? Pošto S možemo da zamislimo kao dva polukruga (zamislite donji deo slova kao jedan, a gornji deo slova kao drugi polukrug), trebaće nam dva move bloka. Prvo će robot da se kreće po jednom polukrugu, a nakon toga po drugom. Pokrenite novi program, nazovite ga Slovo S, ubacite na radnu površinu dva move bloka. Koristimo i dalje samo motore B i C. Ponovo, moraćemo da podesimo Steering. Prov će robot da se kreće suprotno od kazaljke na satu opisujući donji deo slova S. Next action je podešen na Break, a kao uslov trajanja rada motora je izabrano Rotations. Time završavamo i ovaj program. Sad samo kliknite play i posmatrajte kako se robot pomera. Slobodno isprobavajte opciju Steering, u zavisnosti od toga kako pomerate klizač, robot će da pravi veće ili manje krugove. Ovaj robot može i da ispušta zvukove. Da bismo ga naterali to da uradi potrebno je da ubacimo sound blok (blok koji kontroliše zvuk). Podešavanja za drugi move blok su slična. Sve je isto osim smera kretanja robota. Potrebno je izabrati da je levi motor u Steering opciji C a desni B, a nakon toga klizač povući malo na levo. Sada će se robot kretati u smeru kazaljke na satu, opisujući gornji deo slova S. sound blok U Action imamo opcije Sound File i Tone. Ako je izabran Sound File, možemo da izaberemo neki zvuk iz memorije robota, a ako je izabran Tone, sa desne strane se pojavljuju klavijature, an kojima možemo da biramo ton koji želimo robot da odsvira. Repeat opcija služi da zvuk ponavljamo više puta, dok nas nešto ne prekine. Wait opcija služi za podešavanje toga da li želimo da robot odsvira sve ono što smo mu zadali pre nego što nastavi dalje izvršavanje programa. Ako je čekirana ta opcija robot će da odsvira sve što mu je zadato sound blokom pre nego što započne izvršavanje sledećeg bloka. Ali u suprotnom slučaju će da započne zadati zvuk i da produži dalje, na izvršavanje sledećeg bloka. Vi odlučujete šta želite robot da radi, tako da razmislite da li je potrebno da čekirate tu opciju ili ne. strana 21 strana 22

Da malo isprobamo i ovaj novi blok koji smo naučili. Hoćemo da se robot vrti u krug i da ispušta stalno jedan zvuk. Ok, kako ovo da uradimo? Sigurno će nam trebati move blok. I jedan sound blok. Naučili smo kako da programiramo robota da se kreće u krug. Ali kako da sve vreme dok se kreće u krug, ispušta stalno jedan te isti zvuk. Pa koristićemo opciju Repeat sound bloka, i nećemo čekirati opciju Wait to Completion. To znači da ćemo prvo ubaciti jedan sound blok, on će početi da se izvršava, ali neće čekati da prođe čitava zadata melodija, nego će odmah da produži na izvršavanje sledećeg bloka. 3.3 Senzori Koristili smo ekran, motore i zvučnik na našem robotu do sada. A videli smo da od svojih delova on ima još nešto što bi moglo da nam omogući da programiramo robota još zanimljivije nego do sada. Naravno, u Lego Mindstorm u postoje blokovi koji nam omogućavaju pristum ovim delovima robota. Za move blok ćemo podesiti Steering, pošto nam je potrebno da se kreće u krug, i to tako što klizač prevučemo skroz na jednu stranu. Podešavanja su kao na slici. Sad samo kliknite play! Na slici gore vidimo te blokove tj. odakle da ih ubacimo na radnu površinu, a na slici ispod te se nalaze ubačeni blokovi na radnu površinu. Prvi je senzor za dodir, pa senzor za zvuk, senzor za svetlo i ultrazvučni senzor. Svaki od blokova za senzore ima izlaz koji generiše. Naime, kada se dogodi neki događaj koji robot fizički može da detektuje pomoću svojih senzora, možemo tu informaciju da koristimo da bismo uradili sledeću akciju. Da bismo to programirali potrebno je da koristimo izlaze blokova za senzore. Izlazi su označeni na slici iznad. A sada ćemo obajsniti svaki od tih blokova. Za vežbu probajte da napišete programirate robota tako da ide napred 2 sekunde, zakoči, ispusti zvuk, ide napred jos 2 sekunde, zakoči, ispusti zvuk, ide napred još dve sekund, zakoči, ispusti zvku. Robot tek kada završi sa ispuštanjem zvuka nastavlja dalje. Dakle šta će biti razlika u odnosu na prethodni zadatak. Opcija Wait to Completion će biti štiklirana! izlazi U podešavanjima bloka senzora za dodir imamo podešavanje za port. To je ustvari port u koji je uključen senzor koji se zaista fizički nalazi na robotu. Obično je to port 1. Kao izlaz imamo logičku vrednost da li je senzor aktiviran ili nije tj. izlaz je samo da ili ne (true ili false). Izlaz se generiše na strana 23 strana 24

strana 25 osnovu Action podešavanja. Pressed znači da će se generisati true ako nešto dodirne senzor, Released ako je senzor bio pritisnut pa nakon toga pušten, a Bumped ako ga nešto brzo dodirne i pusti. Ako se ovo što smo malopre rekli ne dogodi, na izlazu će se generisati false. Kako blok za zvučni senzor izgleda vidimo na slici levo. Kao i kod senzora za dodir, imamo izbor porta. Tu je izabran port 2 pošto je obično na taj port konektovan zvučni senzor na robotu. Izlaz ovog bloka je ustvari vrednost između 0 i 100, koja se generiše na osnovu jačine zvuka (0 je najtiši, 100 je najglasniji). Postoje i drugi izlazi ovog bloka, na primer izlaz koji može da ima vrednost samo true ili false (da ili ne). Taj izlaz direktno zavisi od podešavanja opcije Compare. Tu možemo da postavljamo uslov koji želimo da se ispuni. Možemo da kažemo da je izlaz true ako je zvuk tiši od 50, ili ako je glasniji od 20, ili glasniji od 80 itd. Blok za senzor za svetlo izgleda kao na slici sa leve strane. Kao i kod senzora za dodir, imamo izbor porta. Izabran je port 3, pošto je to obično port na koji je konektovan senzor za svetlo. Kao i kod zvučnog senzora, imamo opciju Compare koja se veoma slično podešava. Jedina razlika je što sada podešavamo uslove za svetlo, a tamo smo podešavali za zvuk. Izlaz je broj od 0 do 100, a postoje i još neki izlazi. Jedan od njih je logički izlaz koji može da bude samo true ili false (da ili ne). Taj izlaz zavisi od podešavanja opcije Compare gde biramo kakav je uslov da bi izlaz bio true. Blok za ultrasonični senzor izgleda kao na slici sa leve strane. Kao i kod senzora za dodir, imamo izbor porta. Izabran je port 4, pošto je to obično port na koji je konektovan ultrasonični senzor. Imamo opciju Compare koja radi kao i kod senzora za zvuk i senzora za svetlo. Možemo da biramo da li ćemo da računamo razdaljinu u cm ili u inčima. Izlaz je broj između 0 i 100 ako su inči, i 0 i 255 ako su centimetri. Takođe, možemo da imamo još neke izlaze. Na primer, izlaz koji generiše samo true ili false (da ili ne), u zavisnosti od toga da li je ispunjen uslov koji smo zadali u opciji Compare. strana 26 Da primenimo ovo što smo malopre naučili. Hoćemo da napravimo program koji meri jačinu zvuka i to koristi kao vrednost za jačinu (Power u podešavanju za move blok) kojom će pokretati motor. Takođe, robot treba da koristi ultrasonični senzor i da ako je nešto bliže od 5 inča ide unazad, a ako nije da ide unapred. Motor se pokreće 10 obrtaja (10 Rotations). Vidimo iz teksta da su nam potrebni zvučni, ultrasonični i move blok. Tim redom ih i ubacujemo na radnu površinu. Trebalo bi da dobijete nešto kao na slici sa leve strane. Ove tračice ispod blokova dobijate kada kliknete u donji levi ugao bloka. A sad da objasnimo ove žičice koje se pojavljuju. Rekli smo da blok za zvuk i ultrasonični blok imaju neke izlaze. Kao što neki blokovi imaju izlaze na koje mogu da pošalju neke vrednosti ili da obaveste da se nešto desilo, tako imamo i ulaze na blokovima. Tako ovde, izlaz bloka za zvuk, koji ima vrednost između 0 i 100, vezujemo na ulaz move bloka. Ulaz na koji je vezana žičica na move bloku može da očita poslatu vrednost i ta vrednost će biti snaga (Power) kojom će se obrtati motor. Znači, blok za zvuk meri jačinu zvuka koji se stvara nege u sobi, to šalje na izlaz koji je ulaz za move blok, koji tu vrednost koristi kao vrednost za snagu obrataj motora. Kako spajamo izalz i ulaz. Prosto! Samo kliknite na izlaz, pojaviće se žičica koja će da prati pomeranje miša, a nakon toga kliknite na ulaz koji želite move bloka. Zapamtite, izlazi su sa desne strane, a ulazi sa leve. Možete sve ovo da zamislite kao tastaturu i monitor. Preko tastature kucamo neki tekst, i za nju je to izlaz. Ona to šalje dalje, do monitora, za koga je to ulaz, i posle prikazuje to što mi kucamo. Prosto, to je način za prenos podataka kroz sistem. A mi to upravo radimo za naš program, spajamo njegove delove, i jedan deo može da šalje informacije drugom delu, koji na osnovu toga reaguje na odgovarajući način. To je bila veza između sound bloka i move bloka. A hajde sada da vidimo kako su to povezani blok za ultrasonični senzor i move blok. Pre svega da vidimo kako je podešen ultrasonični blok. Compare je podešen da posmatra distancu koja veća od 5 inča. Ako je razdaljina do nekog predmeta veća od 5 inča, izlaz koji generiše samo vrednosti true ili false će generisati vrednost true (da), a ako nije generisaće false (ne). Upravo smo i taj izlaz povezali sa odgovarajućim ulazom move bloka. A sada, na koji smo ulaz move bloka vezali drugi kraj žičice? Vezali smo je na ulaz koji kontroliše smer

obrtanja motora (Direction u podešavanjima). Ako na izlazu bloka za ultrasonični senzor se generiše true, Direction će biti podešen na Forward (robot će ići unapred), a ako se generiše false Direction će biti podešen na Backward (robot će ići unazad). Podešavanja move bloka su na slici ispod. ponovo ide pravo sve dok ne dođe na 3 inča od zida, ponovo skrene levo, i ide pravo sve dok brzo ne pipnemo i pustimo senzor za dodir. Ok? Pa da pokušamo. Da li imate ideju šta da koristimo ako želimo da obavljamo jednu radnju sve do trenutka dok se nešto ne desi? Pa wait blokove, u kojima možemo da izaberemo kada će početi izvršavanje neke radnje. Tako da ćemo koristiti dve vrste wait blokova. Jedna će kao uslov imati Touch Sensor, a druga će imati Ultrasonic Sensor. Još jednom se vratimo na tekst zadatka, i vidimo koji nam blokovi trebaju. Probajte sami da dobro razmislite o tome. Rešenje je dole na slici. Naravno, ako dođete do drugog rešenja koje radi, sve je u redu. Objašnjenja za pojedinačne blokove su da ta u nastavku. Iako je Power podešeno na 30, ne mora da znači da će to biti jačina kojom će se okretati motor. Snaga obrtanja motora će zavisiti isključivo od jačine zvuka. Takođe, i Direction neće biti uvek unapred, zavisiće rezultat koji mu prosledi ultrasonični senzor. I sad, samo kliknite play! 3.4 Wait blokovi Koristili smo već wait blokove (blokove za čekanje). I to je bio način da kažemo robotu da čeka dok se nešto ne dogodi. Međutim, koristili smo samo mali deo mogućnosti ovih blokova. Kao uslov wait bloka smo koristili samo vreme izraženo u sekundama. Sećate se, kada smo ispisivali na ekranu Zdravo svete!, pa smo želeli da se to zadrži 10 sekundi. Ali mi možemo da stavimo i druge uslove na koje će naš robot da čeka. Umesto Time, u podešavanju wait bloka je dovoljno samo izabrati opciju Sensor. opisali. strana 27 Vidimo da se sada umeto opcije da ukucamo broj sekundi koji će robot da čeka na narednu akciju, pojavljuje opcija Sensor i možemo da biramo na koji će senzor robot da reaguje i da nastavi izvršavanje programa. U zavisnosti od toga koji senzor je izabran sa desne strane se pojavljuju podešavanja vezana za taj senzor. Ta podešavanja su ista kao kada ubacimo blokove koji kontrolišu svaki od četiri senzora koja smo do sada Pa da isprobamo ovo. Stavićemo robota negde u blizine ćoška sobe. Hoćemo da krene da ide pravo kad brzo pipnemo i pustimo senzor za dodir, dođe na 3 inča do zida, skrene levo, zatim senzor, nastaviće se izvršavanje programa. dugo. Ili dok ga nešto ne prekine! da program tu čeka dokle god robot ne priđe na bliže od 3 inča zidu. strana 28 Wait blok koji kao uslov ima Touch sensor, koji je podešen da reaguje na Bumped. Tek nakon što neko brzo pipne i pusti Prvi move blok. Duration je podešeno na Unlimited, što znači da će motor da se pokreće beskonačno Ono što će da prekine rad motora. Izabrali smo kao uslov wait bloka Ultrasonic sensor. I podesili smo ga tako Nakon što je prišao zidu na manje od 3 inča, potrebno je da skrenemo ulevo. Zato koristimo move blok, ali biramo samo da radi motor C, da bismo se okrenuli u mestu. Duration je podešen na Degrees i to na 390.

Ponovo idemo unapred i podeimo motor da radi beskonačno. Uslov prekida rada motora je isti kao i za prvi move blok. Nakon toga ponovo ubacimo blok koji če da kaže robotu da skrene ulevo (to smo već imali tako da su podešavanja ista), i ide unapred sa neogranično dugo upaljenim motorom. Ono što će da prekine rad motora je wait blok na kraju samog programa, koji je podešen da reaguje na brzo pritiskanje i pustanje senzora za dodir. Time se i završava naš program. Samo kliknite play i uživajte! strana 29 strana 30

4. Zadaci 4.1. Uvodni primeri Zadatak 1: Šetnja Isprogramirajte robota tako da ide napred 3 sekunde, okrene se i vrati se nazad odakle je krenuo. Rešenje: Za rešavanje ovog problema potrebna su nam 4 move bloka kao što je prikazano na slici. Treći blok podešavamo ovako: U opciji Port biramo samo motor B, za Direction biramo strelicu na dole, a za Duration iz padajućeg menija biramo Rotations i upisujemo 1 kao i za prethodni blok. Na kraju, četvrti blok podešavamo na isti način kao prvi. Sada nam preostaje da pokrenemo program i prošetamo našeg robota. Zadatak 2: Poslušni robot Želimo da aktiviramo robota zvukom, tako da kad mu svaki put kažemo nešto ili pljesnemo rukama, on krene unapred za jedan obrtaj točkova sve dok ne dođe do željenog cilja, kada treba da se zaustavi. Cilj će biti bela podloga. Ovaj problem rešavamo pomoću petlje, jer imamo dve radnje koje se stalno ponavljaju (pljesak ruku => robot ide unapred). Petlju biramo u panelu Common >Loop. Kada kliknete na petlju, u opciji Control umesto Forever izaberite Light sensor, da bi robot kada naiđe na belu podlogu stao, odnosno izašao iz petlje. Inače, u Control opciji možete da izaberete Count i da precizirate tačan broj iteracija koje želite da robot ponovi. U petlji nam trebaju 2 bloka, jedan za senzor za zvuk, a drugi za pokretanje robota, kao što je prikazano na slici: Sledeće što treba da uradimo jeste da podesimo svaki od blokova. Podešavanje vršimo tako što kliknemo na blok koji želimo da podesimo i u donjem levom ćošku nam se pojave opcije koje možemo da izaberemo. Za prvi blok podešavamo sledeće: U opciji Port biramo motore B i C, jer oni pokreću točkove robota. U opciji Direction izabraćemo strelicu na gore, jer želimo da ide unapred, a u opciji Duration iz padajućeg menija biramo Seconds i upisujemo 3, jer naš robot treba da se kreće 3 sekunde. U opciji Power možemo da podesimo brzinu robota, ali to u ovom primeru nećemo menjati. Sledeća 2 bloka nam služe da se robot okrene za 180, pa ćemo drugi blok da podesimo ovako: U opciji Port biramo samo motor C, za Direction biramo strelicu na gore, a za Duration iz padajućeg menija biramo Rotations i upisujemo 1. strana 31 strana 32

Podešavanje senzor za zvuk: U opciji Compare upišite Sound: > 40, da bi robot reagovao na određenu jačinu zvuka. Blok za pokret: Slično kao u prethodnom primeru, izaberite motor B i C, strelicu na gore i Duration >Rotations >1. Na kraju, izvan petlje stavite blok Stop, kako bi robot stao. Pokrenite program i recite robotu da krene! Zadatak 3: Napred nazad Napraviti program pomoću kog će robot da ide napred dok ne detektuje belu podlogu, zatim će da se okrene i ponovo krene napred dok se ne zaustavi kada vidi da se nalazi nešto ispred njega. Dodatak: isprogramirajte robota tako da krene tek kad mu date neki znak (uz pomoć Touch senzora, Timer a, Sound senzora i sl.) i da kad završi sa zadatkom na displeju iscrta smajlija. 4.2 Napredniji zadaci Zadatak 4: Pas ide po lopticu Napraviti program kojim će robot da ide do loptice koja se nalazi na podlozi bele boje, uzima lopticu, okreće se i donosi vam je nazad. Uputstvo za rad: U ovom primeru koristimo osobinu robota da moze da detektuje predmete koji se nalaze ispred njega pomoću senzora za daljinu. Program je prikazan na slici: Isprogramirajte robota tako da čeka da mu bude aktiviran senzor za dodir da bi krenuo. Drugi blok je move i tu treba samo da se aktivira motor A,kojim se pokreću ruke. Izaberite strelicu na dole i opciju Duration >Degrees >90,da bi robot otvorio ruke da zgrabi lopticu. Prvi blok je move blok, podesite ga tako da se pokreću oba točka i da robot ide u napred, a u opciji Duration izaberite Unlimited. Drugi blok se nalazi u opciji Wait i onda izaberite u podopciji Control > Sensor, a u opciji Sensor >Light sensor. Drugi način da izaberete ovaj blok jeste da odete u panelu sa leve strane na Complete blokove i tu izaberete Wait for Light sensor. Treći, četvrti i peti blok nam je već poznat tako da sami isprogramirajte robota da se okrene za 180. Pretposlednji blok je sličan drugom, samo što umesto Light sensor a izaberite Ultrasonic sensor i podesite željenu daljinu u centimetrima (npr. 30 cm). Poslednji blok je Stop. Pokrenite program! U trećem bloku treba aktivirati motore B i C da bi se kretao unapred. Sledeći korak je da se robot kreće sve dok ne dođe do papira,kad mu se aktivira senzor za svetlost. Koji blok ćemo ovde iskoristiti? Postavite Timer da čeka jednu sekundu pre nego što uhvati lopticu. Sledeće što treba da uradi jeste da sklopi ruke i uhvati lopticu. Za ovu radnju nam je potreban move blok, u kom treba aktivirati samo motor A. Sledeća 2 bloka služe da se robot okrene za 180 stepeni: Aktiviran samo motor C u move bloku, izabrati strelicu na gore i opciju Duration >Degrees >300 Aktiviran samo motor B u move bloku, izabrati strelicu na dole i opciju Duration >Degrees >300 (koji je drugi način da isprogramiramo da se robot okrene za 180 stepeni?) strana 33 strana 34

Sledeći blok nam služi za kretanje unapred. Robot se kreće dok mu se ne aktivira senzor za blizinu. Koji blok nam ovde treba? Poslednja 2 bloka su nam potrebna da isprogramiramo robota da stoji 2 sekunde posle aktivacije senzora za blizinu i da nas pozdravi kad nam donese lopticu, tako što će odsvirati melodiju ili nam nešto reći. Pokrenite program i pogledajte kako je nam je robot poslušan. U prvom slučaju, izaberite strelicu na gore kada je aktiviran motor C, a strelicu na dole kad je aktiviran motor B. U drugom slučaju izaberite obrnute opcije, da bi robot skrenuo levo, odnosno desno. Posle skretanja, postavite move blok kako bi se robot kretao napred još 3 sekunde. Izvan petlje nam je još potreban Stop blok. Pokrenite robota i postavite mu različite podloge da biste videli kako će da reaguje. Zadatak 5: Raskrsnica Napraviti program pomoću kog robot kreće napred kada mu aktivirate senzor dodira dok ne dođe do obojene podloge. U zavisnosti od boje podloge, robot treba da skrene levo ili desno i da nastavi sa kretanjem nekoliko sekundi. Uputstvo za rad: 4.3 Zadaci za samostalni rad Zadatak 6: Isprogramirajte robota da ide dok mu ne aktivirate senzor za blizinu, kada treba da stane na 2 sekunde, zatim skrene u desno, opet stane, javi vam se melodijom, okrene se i vrati se putem koji je došao. Zadatak 7: Isprogramirajte robota da krene na vaš znak (dodir ili zvuk), ide 2 sekunde, stane, skrene levo,ide još 2 sekunde, stane i nacrta smajlija na displeju. Pokrenite robota pomoću senzora za dodir (Wait blok) i podesite ga da ide napred 3 sekunde (move blok). Kada se zaustavi, treba da stoji u mestu 2 sekunde. Kako ćete to izvesti? Za sledeći korak nam je potrebna Switch petlja, jer u zavisnosti od boje podloge, robot ima dve opcije da li će skrenuti levo ili desno. Kao uslov petlje, podesite Light sensor. U okviru petlje su nam potrebni sledeći blokovi (pogledajte sliku): Sećate se kako smo isprogramirali robota da se okrene za 180 stepeni? Princip je isti i za 90 stepeni, samo što ćete u opciji Duration >Rotations u move bloku izabrati 0.5, a ne 1. strana 35 strana 36