270 likes | 403 Views
Programiranje robota u Microsoft Robotics Studi o-u. Katarina Veljković. Programiranje robota u Microsoft Robotics Studi o-u. Uvod u Microsoft Robotics Studio.
E N D
Programiranje robotau Microsoft Robotics Studio-u Katarina Veljković
Programiranje robotau Microsoft Robotics Studio-u Uvod u Microsoft Robotics Studio • Microsoft Robotics Studio je razvojno okruženje namenjeno za edukaciju, zabavu i komercijalnu upotrebu koje omogućava jednostavno programiranje najrazličitijih vrsta robota. • Glavne prednosti korišćenja Microsoft Robotics Studio-a kao razvojnog okruženja su: • Microsoft Robotics Studio uključuje vizualni programerski alat. • Jednostavna servisno-orijentisana programska platforma. • Proširiva i prenosiva programska platforma.
Programiranje robotau Microsoft Robotics Studio-u • Za korišćenje Microsoft Robotics Studio-a potreban je sledeći hardware i software: • Microsoft Windows Vista ili Microsoft Windows XP SP2, • Microsoft Robotics Studio 1.0, ili novija verzija, • PC sa Pentium IV procesorom 1.7 GHz, • 512 MB RAM (1GB preporučeno), • Video kartica sa (1024 x 768 ili većom rezolucijom) i odgovarajući kolor monitor, • LEGO MINDSTORMS NXT robot (opciono se može koristiti simulirano okruženje ali je u tom slučaju neophodna veća količina RAM memorije i kvalitetna grafička kartica). • Da biste uspešno instalirali neophodan softver potreban je administratorski pristup računaru.
Programiranje robotau Microsoft Robotics Studio-u Visual Programming Language (VPL) Integrisan je u Microsoft Robotics Studio-u. Microsoft Visual Programming Language (VPL) je grafički programski jezik zasnovan na principu kontrole toka podataka (dataflow) umesto na kontroli toka programa što je uobičajno kod tradicionalnih programskih jezika. VPL je pogodan za razvoj distribuiranih aplikacija čiji se delovi istovremeno izvršavaju. Osnovu programa napisanog u VPL-u predstavlja dijagram kontrole toka podataka. Ovaj dijagram sastoji se od povezanog niza blokova aktivnosti i servisa predstavljenih blokovima sa ulaznim i izlaznim čvorovima. Veze između blokova predstavljaju poruke putem kojih oni razmenjuju podatke.
Programiranje robotau Microsoft Robotics Studio-u Startovanjem VPL-a dobijamo sledeći prozor:
Programiranje LEGO NXT robotau Microsoft Robotics Studio-u Linija menija i paleta sa alatkama funkcioniše isto kao u drugim Microsoft-ovim programima. Naravno komande su prilagođene razvoju distribuiranih servisno-orijentisanih aplikacija. Paleta Basic Activities sadrži osnovne komponente VPL-a, koje se mogu prevući na radnu površinu. Aktivnost sadrže blokove za kretanje, čuvanje i kontrolu toka podataka, kao i grupisanje drugih aktivnosti. Grafički prikazane aktivnost uvek sadrže ime aktivnosti i čvorove konekcije. Okvir Project prikazuje dijagrame i konfiguracijske fajlove za servise koji čine projekat. Okvir Properties prikazuje svojstvo trenutno izabranog grafičkog elementa na radnoj površini. Pomoću njega se mogu postaviti odgovarajuća podešavanja datog servisa ili aktivnosti. Radna površina je mesto na koje se dodaju grafički elementi VPL-a. Paleta Services sadrži servise koji predstavljaju module koji sadrže skup funkcionalnosti za transformaciju ulaznih podataka u izlazne. Svakoj hardware-skoj komponenti robota (motori ili senzori) prema servisno-orijentisanom programskom modelu odgovara jedan servis.
Programiranje robotau Microsoft Robotics Studio-u Kreiranje jednostavnog robotskog programa Primer 1:Kreirati aplikaciju koja na osnovu reakcije senzora, prikazujeporuku "Hello World". Primer 2:Drugi primer ilustruje pokretanje robota i izgovaranje poruke u zavisnosti od pravca kretanja robota
Programiranje robotau Microsoft Robotics Studio-u Glavni delovi robota LEGO NXT Procesor NXT je inteligentna, kompjuterski kontrolisana LEGO kockica i mozak MINDSTORMS robota Touch Sensor omogućava robotu da oseti i reaguje na predmete iz svog okruženja. Sound Sensor uređaj kojim robot čuje i reaguje na zvuk. Light Sensor omogućava robotu da detektuje svetlost i boju. Ultrasonic Sensor uređaj kojim robot vidi, meri rastojanje do nekog predmeta i reaguje na pokret. InteractiveServoMotors su motori koji omogućavaju preziciono kretanje robota.
Programiranje robotau Microsoft Robotics Studio-u Da bi robot radio ispravno, senzori i motori treba da budu povezani na odgovarajuće ulazne i izlazne portove. • Postoje sledeći portovi: • Ulazni portovi: • Port 1: Touch Sensor • Port 2: Sound Sensor • Port 3: Light Sensor • Port 4: Ultrasonic Sensor • Izlazni portovi: • Port A: Motor koji se koristi za dodatne funkcije • Port B: Motor za kretanje • Port C: Motor za kretanje
Primer 1 Sada je potrebno uspostaviti vezu između ove dve aktivnosti. Kada se uspostavi veza između aktivnosti vrši se izbor željenih aktivnosti iz liste, to jest servisa kojim će se ulazni podatak u našem slučaju tipa string transformisati u izlazni koji će biti prikazan na ekranu. Servis kojim se definišu i podešavaju opcije senzora je GenericContactSensor, koga prevlačimo iz liste Services. Data aktivnost omogućava definisanje konstantnog tipa podatka. Tip konstante datog tipa definiše se izborom iz padajuće liste, dok se vrednost konstante upisuje u polje za tekst. U polje za tekst se upisuje Hello World, a iz liste se izabere string kao tip podatka. Servis koji se koristi za prikazivanje poruke je Simple Dialog.
Primer 1 Pre startovanja aplikacije treba izabrati servis koji će se ulazni podaci transformisati u izlazni. Izgled dijagrama pre startovanja programa.
Primer 2 Uspostavlja se veza između ove dve aktivnosti. Servis pomoću koga se kontroliše kretanje robota je Direction Dialog. Ovaj servis predstavlja prikaz u obliku Windows dijalog prozora na kome su smeštena pet dugmeta za kontrolu pravca kretanja robota. Ovaj servis ima dva stanja: dugme je pritisnuti i dugme nije pritisnuto. Aktivnost Calculate registruje promenu imena dugmeta koje je pritisnuto.
Primer 2 Dodaje se aktivnost Switch i povezuje sa Calculate. U TextBox-u kontroli aktivnosti Switch upisuju se Stop, Forwards, Backwards, Left i Right. Uslovno grananje postižemo pomoću Switch aktivnosti. Switch aktivnost definiše više vrednosti sa kojima se poredi podatak koji dolazi na ulaz. Ovo poređenje vrši se po redosledu odozgo na dole, sve dok se ne pronađe odgovarajuća vrednost. Tada se podaci sa ulaza prosleđuju na izlaz koji odgovara ponuđenoj vrednosti. Ukoliko nijedna od vrednosti ne odgovara vrednosti ulaza podaci se sa ulaza prosleđuju na Else izlaz. U okviru ovog zadatka demonstriraće se korišćenje uslovnog grananja. Kod svih programskih jezika uslovno grananje predstavlja usmeravanje toka podataka u zavisnosti od toga da li je određeni logički izraz tačan ili ne. Na taj način se može obezbediti da ponašanje našeg programa zavisi od spoljašnjeg uslova koji se mogu menjati (očitavanje senzora).
Primer 2 Na osnovu svega toga, sada se dodaju Data aktivnosti kojima se definišu konstante Stop, koja je tipa string i koja će biti izgovorena i konstanta tipa double čija je vrednost 0.0, na osnovu koje se robot ne pomera. Definišu se konstante Forwards koja se izgovara i 0.8 na osnovu koje se pokreću motori, i definiše se konstanta Backwards i konstanta -0.8 na osnovu koje se robot kreće unazad. Generic Differential Drive je servis kojim će se registrovati stanje motora i to stanje motora biće prikazano odgovarajućom vrednošću od -1.0 do 1.0 tipa double. Servis TextToSpeechTTS je servis koji se koristi za izgovaranje željene poruke.
Primer 2 Da bi robot skrenuo levo ili desno potrebno je da se točkovi okreću u različitim smerovima. Definišu se konstante Left, -0.5L i 0.5R. Specifično je da se u ovom slučaju mora koristiti i naredba spajanja tokova podataka. Aktivnost sinhronizovanog spajanja Join omogućava spajanje više tokova pri čemu se spajanje vrši tek kada se prikupe podaci sa svih ulaznih tokova. Za svaki od ulaznih tokova definiše se lokalna promenljiva koja u sebi čuva podatke pristigle sa datog ulaznog toka.
Primer 2 Po startovanju programa pojavljuje se Windows dijalog prozor u kome su smeštena pet dugmeta na osnovu kojih je moguće kontrolisati kretanje robota. Izgled aplikacije kada su dodate i konstante kojima se definiše stanje motora prilikom skretanja
Nastavna tema Programiranje LEGO NXT robota u Microsoft Robotics Studiju obrađivana je u okviru nastavnog predmeta Računari i programiranje. Čas je održan u odeljenjima III razreda smera Mašinski tehničar za kompjutersko konstruisanje. Nastavna tema nastala je kao rezultat zapažanja nastavnika da je gradivo iz predmeta Računari i programiranje u III razredu suviše apstraktno i nedostupno učenicima. Jedan od razloga demonstriranja ove nastavne teme su stalna pitanja učenika koja je svrha učenja programskog jezika C. Ovom nastavnom temom učenici kroz igru i timski rad uz pomoć nastavnika na praktičan način primenjuju stečena znanja iz programiranja. Učenici kreiraju jednostavan robotski program u Microsoft Robotics Studio-u i testiraju izvršavanje kreiranog programa na LEGO NXT robotu. Cilj je da se učenici aktivno uključe u nastavni proces i pruže nastavniku mogućnost da više doprinesi individualnom razvoju učenika. Programiranje robotau Microsoft Robotics Studio-u
Dopalo im se: mnogo je zabavnije nego učenje iz knjige, podstiče učenike na samostalni rad, programiranje je postalo korisno (Ono što sam napisao radi: kreće se u krug, ide levo - desno, napred - nazad.), timski rad, zabavno je na času. Nije im se dopalo: potrebno predznanje iz programiranja, nemaju svi učenici računar i robota, ne znaju svi učenici dobro engleski jezik, jer je sva trenutno raspoloživa literatura na engleskom. Programiranje LEGO NXT robotau Microsoft Robotics Studio-u
Programiranje robotau Microsoft Robotics Studio-u Dileme: • najteže je bilo definisati zadatak koji treba rešiti jer je to uvek nastavnikov problem, • nedostatak vremena u okviru jednog školskog časa da se isprobaju sve varijante programa i robota. • da li naš robot može da leti? • da li u toku rada može da se transformiše u neki drugi oblik?
Innovative Teachers Forum 2007 - Pariz • Innovative Teachers Forum 2007 održan je u Parizu od 29 do 30. marta 2007. godine i deo je inicijative koju su usvojile Ujedinjene Nacije, a koja podržava rešavanje osam globalnih problema do 2015. godine (u oblasti zdravstva, obrazovanja, ekonomije, itd) gde su Microsoft i UNESCO zajednički podržali napore u približavanju informacionih tehnologija učenicima širom sveta. • Na međunarodnom Innovative Teachers Forum (ITF) 2007, koji su zajednički organizovali Microsoft i UNESCO, učestvovalo je 150 nastavnika iz 40 zemalja Evrope, Azije i Afrike.
Worldwide Innovative Teachers Forum 2007 - Finska Projekat je prezentovan na svetskom finalu ITF-a, od 27. do 31 oktobra u Helsinkiju, Finska.
Programiranje robotau Microsoft Robotics Studio-u • Osnovna ideja je osavremenjavanje nastavnog procesa korišćenjem novih software-skih (Microsoft Robotics Studio) i hardware-skih (LEGO NXT robot) alata dostupnih školi, i motivisanje nastavnika za primenu novih tehnologija u nastavi. • Namera nam je da se i ostale kolege iz naše i drugih škola podstaknu na osvremenjavanje nastave predmeta Računari i programiranje i njegovo približavanje učenicima.
H V A L A Katarina Veljković kaja76@gmail.com katarina.veljkovic@hotmail.com http://katarinaveljkovic.spaces.live.com