Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Saida Deljac
Microsoft Robotics DeveloperStudio 2008
Visual Programming Language
http://www.microsoft.com/robotics/
Preuzimanje i instalacija programa
• Basic Activities – sadrži osnovne ikone koje se mogu povući na radnu površinu
• Services – sadrži servise. Svakoj hardverskoj komponenti robota (motoru ili senzoru) odgovara jedna servis
• Project – prikazuje dijagrame i konfiguracijske datoteke za servise projekta
• Properties – prikazuje svojstva trenutno izabranog grafičkog elementa na ranoj površini
Sučelje VPL programa
• Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji su međusobno povezani vezama putem kojih se prenose podaci.
• Aktivnosti predstavljaju osnovne elemente programa. Sadrže blokove za kreiranje, čuvanje i kontrolu tijeka podataka kao i blokove za grupiranje drugih aktivnosti.
• Servisi predstavljaju module koji sadrže skup funkcionalnosti za transformaciju ulaznih podataka u izlazne. Servisi imaju unutarnje stanje i sposobnost da informiraju druge servise o promjeni svoga stanja. U kontekstu programiranja robota svakom aktivnom hardverskom elementu robota (motori ili senzoru) odgovara po jedan servis.
Koncept vizualnog programiranja
Vježba 1: Računalo izgovara zadani tekst
Tipovi podataka
VPL Tip Opis
byte Neoznačeni cijeli broj koji zauzima 8-bita
sbyte Označeni cijeli broj koji zauzima 8-bita
ushort Neoznačeni cijeli broj koji zauzima 16-bita
short Označeni cijeli broj koji zauzima 16-bita
int Neoznačeni cijeli broj koji zauzima 32-bita
uint Označeni cijeli broj koji zauzima 32-bita
long Neoznačeni cijeli broj koji zauzima 64-bita
ulong Označeni cijeli broj koji zauzima 64-bita
Tip podatka može biti: cijeli ili realni broj ; znak ili niz znakova te logički tip.
Tipovi podataka
VPL Tip Opis Preciznost
float Realni broj koji
zauzima 32-bita
7 znamenaka
double Realni broj koji
zauzima 64-bita
15-16 znamenaka
decimal Realni broj koji
zauzima 128-bita
28-29 znamenaka
VPL Tip Opis
char Pojedinačni znak
bool Logična vrijednost: true,false
string Niz znakova (tekst)
Definiranje varijabli• Svaki podatak ima svoj tip i naziv te je smješten u
varijablu. Za definiranje varijabli, njihovo čitanje i promjenu koristi se aktivnost Variable. Prilikom dodjele imena varijablama treba se držati pravila:– Ime varijable treba početi
slovom– Osim imena svakoj varijabli
treba zadati i tip
Varijable
Rad s dijaloškim prozorima
Vrste dijaloških prozora:
1) Prompt
2) Alert
3) Confirmation
Vježba 2:Ispis imena u dijaloškom prozoru
• Za razliku od standardnog načina programiranja u VPL-u se podaci se upisuju u varijablu i čitaju iz nje, u odvojenim tokovima podataka
• Podaci se najčešće unose prilikom očitavanja senzora, a čitaju prilikom izvođenja određene operacije od strane robota.
Paralelno izvođenje naredbi u VPL-u
U primjeru na slici naredbe se izvode paralelno, ali kada se taj program izvede ništa se neće ispisati jer se upis i čitanje podataka iz varijable izvodi istovremeno
• Kako bi se postiglo da ispis iz varijable počne nešto malo kasnije nego što se napravi upis u istu koristi se naredba TIMER
Vježba 3: Paralelno izvođenje naredbi (uz primjenu naredbe TIMER)
• Izraz u VPL-u predstavlja niz operanda međusobno razdvojenih operatorima (+,-,*……)
• Za izračunavanje matematičkih izraza u VPL-u se koristi naredba Calculate.
• Operandi u VPL-u mogu biti podaci koji kroz tijek podataka ulaze u aktivnost Calculate (varijable ili konstante (numeričke, logičke, znakovne ili tekstualne)).
Matematički operatori
Izrazi i operatori
Oznaka Opis
+ Operator zbrajanja (binarni) ili operator plus (unarni)
- Operator oduzimanja (binarni) ili operator minus (unarni)
* Operator množenja
/ Operator dijeljenja
% Operator ostatka pri cjelobrojnom dijeljenju (mod)
Izrazi i operatori
Oznaka Opis
== ili = Operator jednako
!= ili <> Operator različito
< Operator manje
> Operator veće
<= Operator manje ili jednako
>= Operator veće ili jednako
Oznaka Opis
&& Operator konjunkcije (AND)
|| Operator disjunkcije (OR)
! Operator negacije (NOT)
Relacijski operatori
Logički operatori
Vježba 4: Zbrajanje (naredba Calculate)
BEZUVJETNO GRANANJE• je programski konstrukt gdje se jedan programski
tijek podataka razdvaja na dva ili više paralelnih tijekova
Grananja u programu
UVJETNO GRANANJE
• je programski konstrukt u kojem daljnje usmjeravanje programa ovisi o tome je li neki uvjet ispunjen ili ne
• Na taj način se može osigurati da program radi ovisno o vanjskim uvjetima koji se mogu mijenjati (na primjer stanje na senzorima).
Vježba 5: Bezuvjetno grananje
Vježba 6: Uvjetna naredba if
• Uvjetno grananje se može napraviti i pomoću Switchaktivnosti.
• Swicth aktivnost definira više vrijednosti sa kojima se uspoređuje podatak koji dolazi na ulaz.
• Uspoređivanje se vrši po redoslijedu odozgo prema dolje, sve dok se ne pronađe odgovarajuća vrijednost.
• Tada se podaci sa ulaza na Switch aktivnost prosljeđuju na odgovarajući izlaz.
• Ukoliko nijedna vrijednost s ulaza ne odgovara ponuđenim izlazima tada se ulaz prosljeđuje na Elseizlaz.
Naredba - Switch
ASINKRONO SPAJANJE (naredba Merge)• omogućuje spajanje više tijekova ; bezuvjetno prosljeđivanjem podataka s ulaza na izlaz.
SINKRONO SPAJANJE (naredba Join)• omogućuje spajanje više tijekova programa pri čemu
se spajanje vrši tek kada se prikupe podaci sa svih ulaznih tijekova.
Asinkrono i sinkrono spajanje
Vježba 7: Upravljanje (naredba Merge)
Vježba 8: Zbrajanje brojeva (naredba Join)
početak
Brojac=0
Brojac ==5
Brojac=Brojac+1
NE
DA
kraj
Brojac
• Ponavljanje je zasebna ciklička struktura u kojoj se određeni broj naredbi ponavlja zadani broj puta ili ovisno o ispunjenosti nekog uvjeta.
Ponavljanje naredbi
Vježba 9: Ponavljanje naredbi
• Čest je slučaj da je pojedine programske dijelove dobro staviti u zasebne module te po potrebi pozvati u programu.
• Takav program je jednostavniji za praćenje i izvršavanje, a zasebni moduli nam omogućuju lakše ispravljanje eventualnih pogrešaka.
• Da bismo mogli programirati na takav način potrebno je koristiti Aktivnosti (Activity).
Stvaranje programskih modula
Vježba 10: Programski modul za ponavljanje naredbi
PROGRAMSKI MODUL –ZBRAJANJE NAPRAVLJEN POMOĆU ACTIVITY
GLAVNIPROGRAM
• Robotics Studio ima gotove simulacije u kojima se mogu pokretati roboti za koje izradite dijagrame u VPL-u. U nastavku je vježba pokretanja simulacije za zadani dijagram za Lego MindStorms robota i iRobota.
Pokretanje simulacija u VPL-u
Vježba 11: Izvođenje simulacije
Zadaci i primjeri
Primjer: Pokretanje Lego NXT robota
Konfiguracija NXT Brick-a i UltraSonic senzora
Konfiguracija NXTDrive
Distance BetweenWheel=0.112WheelDiameter=0.055
1. Napravite program koji će za dva zadana broja izračunati i izgovoriti umnožak dva broja (napomena: koristiti naredbu Join)
2. Napravite program koji će od dva zadana broja u dijaloškom prozoru Alert ispisati veći (if naredba)
Zadaci
Saida Deljac
Hvala na pažnji