34
Saida Deljac Microsoft Robotics Developer Studio 2008 Visual Programming Language

Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Saida Deljac

Microsoft Robotics DeveloperStudio 2008

Visual Programming Language

Page 2: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

http://www.microsoft.com/robotics/

Preuzimanje i instalacija programa

Page 3: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

• 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

Page 4: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

• 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

Page 5: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 1: Računalo izgovara zadani tekst

Page 6: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

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.

Page 7: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

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)

Page 8: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

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

Page 9: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Rad s dijaloškim prozorima

Vrste dijaloških prozora:

1) Prompt

2) Alert

3) Confirmation

Page 10: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 2:Ispis imena u dijaloškom prozoru

Page 11: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

• 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

Page 12: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

• 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)

Page 13: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

• 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)

Page 14: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

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

Page 15: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 4: Zbrajanje (naredba Calculate)

Page 16: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

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).

Page 17: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 5: Bezuvjetno grananje

Page 18: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 6: Uvjetna naredba if

Page 19: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

• 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

Page 20: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

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

Page 21: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 7: Upravljanje (naredba Merge)

Page 22: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 8: Zbrajanje brojeva (naredba Join)

Page 23: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

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

Page 24: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 9: Ponavljanje naredbi

Page 25: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

• Č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

Page 26: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 10: Programski modul za ponavljanje naredbi

PROGRAMSKI MODUL –ZBRAJANJE NAPRAVLJEN POMOĆU ACTIVITY

GLAVNIPROGRAM

Page 27: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

• 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

Page 28: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Vježba 11: Izvođenje simulacije

Page 29: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Zadaci i primjeri

Page 30: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Primjer: Pokretanje Lego NXT robota

Page 31: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Konfiguracija NXT Brick-a i UltraSonic senzora

Page 32: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Konfiguracija NXTDrive

Distance BetweenWheel=0.112WheelDiameter=0.055

Page 33: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

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

Page 34: Microsoft Robotics Developer Studio 2008...•Program je predstavljen u obliku dijagrama tijeka. Dijagram čini niz blokova aktivnosti i servisa sa ulaznim i izlaznim čvorovima koji

Saida Deljac

Hvala na pažnji