Teachmover Software
Post on 08-Mar-2016
7 Views
Preview:
DESCRIPTION
Transcript
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 1/23
23
4. UPUTE ZA RAD S UPRAVLJAČKOM APLIKACIJOM
4.1 Sučelje upravljačke aplikacije
Sučelje je direktna komunikacijska veza između čovjeka i računala, stoga mora bitiosmišljena tako da na što jednostavniji i logičan način pruži svu potrebnu kontrolu nad
računalom.
Sučelje upravljačke aplikacije je veza između operatera robotske ruke i same robotske
ruke posredstvom računala koje prima instrukcije od čovjeka, obrađuje ih, te ih dalje
prosljeđuje robotskoj ruci u formatu razumljivom upravljačkoj jedinici robotske ruke.
Pokretanjem upravljačke aplikacije robotske ruke TeachMover vrši se duplim klikom
na ikonu TeachMover.exe (Slika 4.1).
Slika 4.1 Prikaz ikone za pokretanje aplikacije TeachMover
Nakon što je upravljačka aplikacija pokrenuta pojavljuje se početni prozor u kojem se
u kratkim crtama daju uputstva za rad s upravljačkom aplikacijom (slika 4.2).
Slika 4.2 Poč etni prozor aplikacije TeachMover
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 3/23
25
4.2.2 Uspostavljanje i prekidanje komunikacije računala s robotskom rukom
U poglavlju 4.2.1 je opisano namještanje parametara, te uspostavljanje komunikacije
računala i robotske ruke. U ovom poglavlju prikazat će se slučajevi koji se mogu dogoditi
prilikom otvaranja ili zatvaranja komunikacije.
Nakon što smo postavili parametre komunikacije, komunikaciju uspostavljamo
pritiskom na tipku Start (slika 4.2). Ako su postavke uredno namještene, i ako su serijski
portovi na računalu i mikrokontroleru ispravni, komunikacija je uspješno uspostavljena i rad s
aplikacijom može započeti. Uspješnost uspostavljenosti komunikacije možete vidjeti pod
oznakom Status, gdje će biti navedeno „Port Otvoren“ (slika 4.4). Pri tom se oznaka tipke iz
Start mijenja u Završi, i postaje tipka kojom se prekida komunikacija.
Slika 4.4 Komunikacijski dio suč elja prilikom uspješno uspostavljene veze
Ukoliko aplikacija iz nekog razloga ne može uspješno otvoriti konekciju, pod
oznakom Status će biti navedeno „Greška u komunikaciji“ (slika 4.5).
Slika 4.5 Komunikacijski dio suč elja u sluč aju greške
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 4/23
26
Greška u komunikaciju može nastati iz nekoliko razloga, koje možemo svrstati u dvije
grupe: greške prouzročene neispravnostima na računalu, te greške prouzročene
neispravnostima izvan računala.
Upravljačka aplikacija će sama prepoznati o kojoj grupi uzročnika se radi i dati preporuku kako otkloniti nastali problem (slika 4.6).
U slučaju neispravnosti na računalu, biti će prikazani sljedeći mogući uzroci:
• pogrešan broj serijskog porta,
• zauzetost serijskog porta od strane neke druge aplikacije na računalu,
• neispravno sklopovlje serijskog porta na računalu.
U slučaju neispravnosti izvan računalu, biti će prikazani sljedeći mogući uzroci:
• isključen izvor napajanja robotske ruke,
• neispravan RS-232 kabel,
• neispravan neki od elektroničkih elemenata na sklopovlju ruke.
Slika 4.6 Prikazi ekrana upravljač ke aplikacije u sluč aju neispravnosti
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 5/23
27
4.3 Upravljanje robotskom rukom pomoću upravljačkih alata
Robotska ruka TeachMover sastavljena je od 5 segmenata, pogonjenih sa šest koračnih
elektro motora.
Koristeći ovu upravljačku aplikaciju, TeachMover robotskom rukom možemo
upravljati na više načina, koje određujemo pomoću kontrola prikazanih na slici 4.7.
Slika 4.7 Kontrole za odabir nač ina rada
Upravljački dio aplikacije omogućava nam odabir načina upravljanja, te kontrolu
pokreta robotske ruke preko ponuđenih upravljačkih tipki (slika 4.8).
Slika 4.8 Upravljač ki dio suč elja prilikom kontrole segmenata
Možemo odabrati dva načina upravljanja nad robotskom rukom: kontrola segmenata
robotske ruke, te kontrola svakog motora pojedinačno. Slika 4.8 prikazuje upravljačke tipke
prilikom kontrole segmenata, a slika 4.9 prikazuje tipke prilikom kontrole pojedinačnih
motora.
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 6/23
28
Slika 4.9 Upravljač ki dio suč elja prilikom kontrole pojedinač nih motora
Pritiskom na neku od upravljačkih tipaka generira se upravljačka varijabla, koja se
robotskoj ruci šalje ovisno o odabiru načina zadavanja upravljačke varijable. Ponuđena su dva
nač
ina:
• kontinuirano – dok je god aktivna neka od upravljačkih tipki, upravljačka
varijabla se kontinuirano šalje robotskoj ruci,
• korak po korak – svaki pritisak na upravljačku tipku šalje robotskoj ruci samo
jednom zadanu upravljačku varijablu.
4.3.1 Korištenje upravljačkih tipaka za upravljanje robotskom rukom
Nakon što smo odabrali način upravljanja, robotsku ruku pokrećemo pritiskom na
neku od upravljačkih tipki. Za demonstraciju, pretpostavit ćemo da smo odabrali kontrolu
segmenata kao način upravljanja te kontinuirano slanje upravljačke varijable, pa upravljačke
tipke izgledaju kao što je prikazano na slici 4.10.
Slika 4.10 Upravljač ke tipke – kontrola segmenata
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 7/23
29
Pritiskom na neku od upravljačkih tipaka aktiviramo odabrani segment robotske ruke,
npr. rotaciju baze u desno, podizanje lakta prema gore, te pitch šake prema gore. Aktiviranjem
upravljačke tipke mijenja se njena slika s ciljem obilježavanja aktivnosti upravljačke tipke
(slika 4.11). Ponovnim pritiskom na aktiviranu tipku, prestaje djelovanje upravljačke tipke i
njena slika se vraća u prvobitno stanje. Neki od pokreta robotske ruke su povezani, na primjer
prilikom podizanja lakta dolazi do stiskanja šake, pa je istovremeno potrebno pokrenuti i
motor šake kako bismo stisak šake održali nepromijenjen. Iz tog su razloga upravljačke tipke
lakta i stiska šake povezane na način da nije moguće istovremeno pokrenuti upravljačku tipku
promjene položaja lakta i razine stiska šake. Pokretanjem upravljačke tipke za promjenu
pozicije lakta dok je aktivna promjena stiska šake, isključuje se upravljačka tipka stiska šake i
uključuje se upravljačka tipka za promjenu položaja lakta. U tablici 4.1 je prikazan
međusobni odnos upravljačkih tipaka.
Slika 4.11 Upravljač ke tipke tijekom aktivacije
Tablica 4.1 Međ usobni odnos upravljač kih tipaka
SEGMENT KOJI SE ŽELI AKTIVIRATI
Segmenti ruke Baza Rame Lakat Šaka – pitch Šaka – roll Stisak šake
A K T I V I R A N I S E G M E N T
Baza ■ ■ ■ ■ ■ ■
Rame ■ ■ ■ ■ ■ ■
Lakat ■ ■ ■ ■ ■ □
Šaka– pitch ■ ■ ■ ■ □ ■
Šaka – roll ■ ■ ■ □ ■ ■
Stisak šake ■ ■ □ ■ ■ ■
■ - odabir ne utjeće na aktivirani segment; □ - odabir gasi aktivirani segment i aktivira željeni
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 8/23
30
Potpuno isti principi rukovanja s upravljačkim tipkama vrijede i kad se kao način
upravljanja odabere mod kontrole nad pojedinačnim motorima robotske ruke, samo uz
različito obilježene upravljačke tipke i bez ograničenja prilikom odabira upravljačkih tipki
(slika 4.12).
Slika 4.12 Upravljač ke tipke - kontrola pojedinač nih motora
Ova faza razvoja upravljačke aplikacije ne obuhvaća upravljanje pomoću koordinata,
već direktno upravljanje pogonskim motorima, stoga nije moguće pratiti poziciju segmenata
robotske ruke u koordinatnom sustavu. Iz tog razloga potreban je oprez prilikom upravljanja
jer pozicija nekih segmenata može otići izvan ograničenja slobodnog kretanja segmenata, i
tada će pogonski motori vrtjeti u prazno i može doći do pregrijavanja motora ili oštećenja
nekih mehaničkih dijelova robotske ruke. Navedena moguća oštećenja neće nastati trenutno
ili puštanjem rada motora nekoliko sekundi izvan ograničenja, već će nastati ako ostavimo
motore da rade izvan ograničenja duže vrijeme, a rizik se povećava radom pri većim snagama
motora tj. radom pri većim vrijednostima delay-a komunikacijske veze.
4.3.2 Prikaz pokrenutih motora
Upravljačka aplikacija sadrži i ekran gdje je moguće pratiti trenutačnu aktivnost
pojedinih pogonskih motora (slika 4.13). Aktivnost motora je okretanje pogonske osovine, a
ona se može okretati u smjeru kazaljke na satu ili u smjeru obrnutom od kazaljke na satu.
Osim okretanja motor može biti u stanju mirovanja. Ovisno o trenutačnoj aktivnosti motora,
svaki motor je prikazan jednom od tri moguća simbola koja su s objašnjenjima prikazana na
slici 4.14.
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 9/23
ruke.
(slika 4
i što je
klizača,
s cilje
4.3.3 Ko
Ovaj dio a
z stupanj
.15), važan
položaj kl
stisak je ja
larm lim
da detekti
stanje
mirovanj
Sli
Slika 4.1
trola para
likacije z
otvorenosti
parametar
izača pom
či.
ta stiska s
a ostvaren
lika 4.15
ka 4.14 Si
3 Dio suč e
etara prihv
dužen je z
šake, koji
e i snaga s
knutiji ude
uži za prik
st stiska ro
io suč elja
okreta
kazal
boli namij
31
ja za prika
atnice
a kontrolu
se regulir
tiska šake.
sno, tj. bli
az stanja
botske šak
a kontrolu
je u smjer
ke na satu
njeni prik
z pokrenuti
parametar
upravljač
Snagu stis
ži crvenoj
ikroprekid
.
parametar
okr
zu aktivno
h motora
prihvatni
kim tipka
a namješta
zoni prika
ča ugrađe
prihvatni
tanje u sm
od kazaljk
ti motora
e tj. šake
a oznake
mo pomoć
anoj na sli
og u robot
e
eru obrnut
e na satu
obotske
„Stisak“
klizača
ci ispod
ku ruku
m
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 10/23
32
4.3.4 Alati za snimanje i reprodukciju sekvenci
Prikazani dio sučelja upravljačke aplikacije (slika 4.16) sadrži alate koji omogućuju
snimanje te pohranjivanje sekvenci pod odabranim imenom i reprodukciju istih. Imena
snimljenih sekvenci prikazana su u okviru i pritiskom na tipku Delete mogu se izbrisati.
Slika 4.16 Alati za snimanje i reprodukciju sekvenci
Snimanje željene sekvence započinje pritiskom na tipku „Record“ i u tom trenutku se
otvara pomoćni prozor čić u koji upisujemo ime pod kojim ćemo pohraniti sekvencu i
određujemo parametar povratka u početnu poziciju (slika 4.17).
Slika 4.17 Alati za snimanje i reprodukciju sekvenci
Parametar povratka je važan kad nakon snimanja sekvence želimo vratiti robotsku
ruku u položaj u kojem se nalazila u trenutku započinjanja snimanja. Nakon što se upiše
željeno ime sekvence, pritiskom na tipku „U redu“ započinjemo snimanje i sve dok traje
snimanje sekvence, tipka „Record“ je označena crvenom bojom (slika 4.18).
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 11/23
33
Slika 4.18 Alati za snimanje i reprodukciju sekvenci
Dok traje snimanje sekvence i dok je aktivan neki od pogonskih motora robotske ruke,
nije moguće prekinuti snimanje. Da bismo prekinuli snimanje potrebno je preko upravljačkih
tipaka prekinuti sve aktivnosti motora i tek tada se pritiskom na tipku „Record“ može
prekinuti snimanje. Sve sekvence su pohranjene na disku računala u datoteci „sekvence.dat“,
koja se nalazi u istom direktoriju kao i sama upravljačka aplikacija.
Kada se želi reproducirati pohranjena sekvenca, potrebno je kliknuti na jedno od
ponuđenih imena na listi pohranjenih sekvenci i kliknuti na tipku „Play“ i tada započinje
reprodukcija sekvence. Prilikom reprodukcije sekvence, tipki „Play“ se promijenila oznaka u
„Dovrši sekvencu“ i pritiskom na navedenu tipsku nastavlja se reprodukcija do trenutka kada
stanje reprodukcije dođe u početno stanje i tada se reprodukcija prekida. Osim na taj način,
reprodukcija se može prekinuti i tipkom „Stop“ koja istog trenutka prekida reprodukciju.
Trenutno stanje sekvence je moguće pratiti preko klizača smještenog ispod liste s imenima
sekvenci.
4.3.5 Tipka za povratak u početnu poziciju
Pritiskom na ovu tipku aplikacija pokreće robotsku ruku s ciljem da je vrati u početno
stanje u kojem je bila u trenutku pokretanja aplikacije.
Slika 4.19 Tipka za povratak u poč etnu poziciju
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 12/23
34
5. METODE RADA UPRAVLJAČKIH APLIKACIJA TEACHMOVER
ROBOTSKE RUKE
Robotska ruka TeachMover sastoji se od elektroničkog i mehaničkog sklopovlja.
Elektronički dio je sastavljen od dvije cjeline, komunikacijske i cjeline s pojačalima, koje su
povezane i kontrolirane mikrokontrolerom ATMEGA 16. Navedeni mikrokontroler je
upravljačka jedinica robotske ruke i zadatak mu je primiti upravljačke naredbe preko
komunikacijskog dijela, obraditi ih te ih dalje u obliku upravljačkih impulsa proslijediti cjelini
s pojačalima koja ih dalje prenosi pogonskim motorima robotske ruke.
Mikrokontroler prima upravljačke naredbe preko komunikacijskog dijela, čija je
ulazno-izlazna jedinica RS-232 port. Bilo koji uređaj koji posjeduje RS-232 port i aplikaciju
koja radi po standardu komunikacije, može upravljati robotskom rukom. Pod pojmom
standard komunikacije smatra se poznavanje skupa upravljačkih naredbi koje razumije
upravljački program upisan u memoriju mikrokontrolera.
PC osobno računalo je primjer uređaja koji ima ulogu posrednika između čovjeka koji
želi upravljati robotskom rukom i same robotske ruke. PC ima zadaću primiti informacije od
čovjeka, tj. operatera robotske ruke, obraditi ih i kreirati upravljačke naredbe prema standardu
komunikacije, te ih naposljetku preko komunikacijskog kanala poslati robotskoj ruci.
U sljedećim poglavljima opisat će se komunikacijski standard, nužan za komunikaciju
sučelja operatera robotske ruke i upravljačkog mikrokontrolera robotske ruke, programsko
rješenje upravljačkog programa za mikrokontroler robotske ruke, te programsko rješenje
windows upravljačke aplikacije koja ima zadaću primiti upravljačke naredbe od strane
operatera.
5.1 Standard komunikacije
Komunikacija između uređaja, koji šalje upravljačke naredbe robotskoj ruci, i robotske
ruke temelji se na primopredaji 8-bitnih kodnih riječi. Radi jednostavnosti opisa
komunikacije, uređaj ćemo pisati kao PC, a robotsku ruku ćemo predstaviti njezinom
upravljačkom jedinicom - mikrokontrolerom.
Komunikacija se odvija prema jednostavnom principu, prvu kodnu riječ šalje PC,
mikrokontroler ju prima, prepozna i na osnovi nje šalje PC-u novu kodnu riječ, koja nosi
informaciju tj. opis sljedeće kodne riječi koja je potrebna mikrokontroleru.
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 13/23
35
Na taj način, upravljačka aplikacija na PC-u uvijek zna koju kodnu riječ treba poslati
mikrokontroleru da bi se postiglo ispravno djelovanje robotske ruke.
Kodne riječi koje propisuje standard komunikacije, njihov opis te njihova imena koja
se koriste u upravljačkim programima i aplikacijama, prikazane su u tablici 5.1.
Tablica 5.1 Kratak pregled konstanti komunikacijskog standarda
Ime konstante Binarni Dekadski Opis
tcEmptyTask 00000001 1Prazna naredba, šalje se tijekomtestiranja dostupnosti ili brzine veze
tcSetDelay1 00010000* 16* Naredba za namještanje jedinica kod postavljanja vrijednosti delaya
tcSetDelay10 00100000* 32* Naredba za namještanje desetica kod
postavljanja vrijednosti delaya
tcSetDelay100 00110000* 48* Naredba za namještanje stotica kod
postavljanja vrijednosti delaya
tcCWBase 11000000* 192*Predstavlja osnovu za upravljačkunaredbu za CW okret motora robotske
ruke
tcCCWBase 10000000* 128*Predstavlja osnovu za upravljačkunaredbu za CCW okret motorarobotske ruke
tcSignalForCCW 00000001 1 Naredba kojom mikrokontroler tražiCCW upravljačku varijablu od PC-a
tcSignalForCW 00000011 3 Naredba kojom mikrokontroler tražiCW upravljačku varijablu od PC-a
tcHLAlarmAndWaitingForCW 00000111 7 Naredba kojom mikrokontroler tražiCCW upravljačku varijablu od PC-a iobavještava PC aplikaciju o stanjumikroprekidača stiska šake
tcAnswerOnEmptyTask 00001111 15Odgovor mikrokontrolera na praznunaredbu
* - navedeni broj je osnova, završni broj se mijenja ovisno o podatkovnom dijelu broja
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 14/23
36
5.1.1 Konstante komunikacijskog standarda
tcEmptyTask
Konstanta tcEmptyTask je prazna naredba koju PC šalje mikrokontroleru prilikom
testiranja dostupnosti ili brzine komunikacijske veze. Odgovor mikrokontrolera na ovu
naredbu je slanje konstante tcAnswerOnEmptyTask .
Slika 5.1 Konstanta tcEmptyTask
tcSetDelay1,
tcSetDelay10,
tcSetDelay100
Konstante tcSetDelayX čine skupinu tri konstante, koje određuje delay
komunikacijske veze. Oznaka X označava broj 1, 10 ili 100 tj. definira stupanj, tj. brojčanu
vrijednost delay-a u jedinicama, deseticama i stoticama. Sama vrijednost konstante prenosi
informaciju 0 tj. postavlja vremenski delay određenog stupnja u 0, pa je samoj konstanti
potrebno pribrojiti i određenu brojčanu vrijednost.
Npr. ako želimo delay komunikacijske veze postaviti u vrijednost 14 ms:
1. PC mikrokontroleru šalje vrijednost (tcSetDelay1 + 4), tj. 00010100,
2. nakon primitka navedene kodne riječi, mikrokontroler šalje tcSetDelay10 kao
zahtjev da mu se pošalje vrijednost desetica,
3. PC mikrokontroleru šalje vrijednost (tcSetDelay10 + 1), tj. 00100001,
4. nakon primitka navedene kodne riječi, mikrokontroler šalje tcSetDelay100 kao
zahtjev da mu se pošalje vrijednost stotica,
5. PC mikrokontroleru šalje vrijednost (tcSetDelay100 + 0), tj. 00110000.
I tako je delay komunikacijske veze potpuno definiran.
Slika 5.2 Konstanta tcSetDelay1
Slika 5.3 Konstanta tcSetDelay10
01234567
10000000
01234567
00001000
01234567
00000100
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 15/23
37
Slika 5.4 Konstanta tcSetDelay100
tcCWBase
Konstanta tcCWBase je osnova za kreiranje upravljačke naredbe koju PC šalje
mikrokontroleru kada želi okrenuti određene pogonske motore u smjeru kretanja kazaljke na
satu (CW). Sama vrijednost konstante ne aktivira nijedan od pogonskih motora, pa je prije
slanja potrebno definirati bitove unutar kodne riječi kao što je prikazano na slici 5.5. Svi
aktivni motora označavaju se bitom 1 u kodnoj riječi na mjestu koje im pripada, a neaktivni
motori s bitom vrijednosti 0.
Slika 5.5 Konstanta tcCWBase s prikazom rasporeda motora
tcCCWBase
Konstanta tcCCWBase je osnova za kreiranje upravljačke naredbe koju PC šalje
mikrokontroleru kada želi okrenuti određene pogonske motore u smjeru suprotnom od
kretanja kazaljke na satu (CCW). Sama vrijednost konstante ne aktivira nijedan od pogonskih
motora, pa je prije slanja potrebno definirati bitove unutar kodne riječi kao što je prikazano na
slici 5.6. Svi aktivni motora označavaju se bitom 1 u kodnoj riječi na mjestu koje im pripada,
a neaktivni motori s bitom vrijednosti 0.
Slika 5.6 Konstanta tcCCWBase s prikazom rasporeda motora
tcSignalForCCW , tcSignalForCW , tcHLAlarmAndWaitingForCW
Konstante tcSignalForCCW , tcSignalForCW i tcHLAlarmAndWaitingForCW su
signali koje mikrokontroler šalje PC-u, tj. upravljačkoj aplikaciji s namjerom da mu pošalje
novu upravljačku naredbu, CW ili CCW ovisno, koju je konstantu PC primio.
01234567
00001100
01234567
M1M5M3M6M4M201
01234567
M1M5M3M6M4M211
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 16/23
38
Konstanta tcHLAlarmAndWaitingForCW ima istu funkciju kao i tcSignalForCW ,
samo što uz funkciju signala za CW naredbu, šalje i signal koji javlja da je pritisnut
mikroprekidač na robotskoj ruci, tj. detektor stiska šake.
tcAnswerOnEmptyTask
Konstanta tcAnswerOnEmptyTask je signal koji šalje mikrokontroler robotskoj ruci
kao potvrdu da je primio konstantu tcEmptyTask.
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 17/23
39
5.2 Model komunikacije između računala i robotske ruke
Model komunikacije između računala i robotske ruke prikazan je blok shemom na slici
5.7. Upravljačka aplikacija odvija se na računalu (PC) i prima naredbe od strane čovjeka –
operatera robotske ruke. Algoritmi upravljačke aplikacije kreiraju upravljačku naredbu
prilikom direktnog upravljanja pomoću upravljačkih tipki aplikacije ili je uzimaju iz datoteke
spremljenih sekvenci.
Upravljačka naredba se prosljeđuje RS-232 sklopovlju na računalu, koji preko
komunikacijskog kanala prenosi naredbu do komunikacijske cjeline na robotskoj ruci.
Komunikacijska cjelina naredbu prosljeđuje mikrokontroleru, čiji je upravljački program
obradi na način koji će biti opisan poglavlju 5.3, te naposljetku šalje upravljačke impulse
pogonskim motorima.
Slika 5.7 Model komunikacije izmeđ u rač unala i robotske ruke
OTVARANJE RS‐232
KOMUNIKACIJE
ALGORITMI
KREIRANJA UPRAVLJAČKE
NAREDBE
RS‐232
SKLOPOVLJE
KOMUNIKACIJSKA
CJELINA
RS‐232 MODUL
CJELINA S
POJAČALIMA
POGONSKI
MOTORI
DIREKTNO
UPRAVLJANJE
SPREMLJENE
SEKVENCE
BaudRate, Port
Delay
ROBOTSKA RUKA
MCU
UPRAVLJAČKA APLIKACIJA
MIKROKONTROLER
UPRAVLJAČKI
PROGRAM
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 18/23
40
5.3 Upravljački program mikrokontrolera TeachMover robotske ruke
Mikrokontroler je upravljačka jedinica robotske ruke i zadatak mu je primiti
upravljačke naredbe preko komunikacijskog dijela, obraditi ih, te ih dalje u obliku
upravljačkih impulsa proslijediti cjelini s pojačalima, koja ih dalje prenosi pogonskim
motorima robotske ruke.
Proces obrade upravljačke naredbe obavlja program upisan u memoriju
mikrokontrolera. Program je pisan u AVR Studiu, programskoj platformi za izradu programa
namijenjenim ATMEL mikrokontrolerima, koristeći AVR-GCC kompajler.
5.3.1 Metoda rada upravljačkog programa mikrokontrolera
Metoda rada upravljačkog programa mikrokontrolera prikazana je na slici 5.8.
Nakon što je dovedeno napajanje robotskoj ruci, mikrokontroler se pali i započinje s
izvođenjem upravljačkog programa zapisanog u memoriji. Deklariraju se sve potrebne
varijable i nizovi, te se određuje karakteristika portova tj. određuje se je li port ulazni ili
izlazni. Zatim slijedi iniciranje RS-232 komunikacije kako bi se mogla ostvariti komunikacija
između računala i mikrokontrolera. Važna je i deklaracija varijable TaskExecute, čija je
vrijednost 0 sve dok mikrokontroler ne primi i CW i CCW upravljačku naredbu.
Nakon početnog dijela deklaracija, slijedi ulazak u radnu petlju. Radna petlja počinje
primanjem upravljačke naredbe s RS-232 porta, koju program sprema u varijablu cTask .
Primljenu upravljačku naredbu možemo razlikovati kao aktuatorsku upravljačku
naredbu, koja nosi informaciju o pokretima pogonskih motora, i na sistemsku upravljačku
naredbu, koja mijenja sistemske postavke u programu mikrokontrolera. Ako primljena
naredba ima strukturu 0×××××××, tj. MSB bit postavljen u 0, naredba je sistemska, ako
naredba ima strukturu 1×××××××, tj. MSB bit postavljen u 1, naredba je upravljačka.
Aktuatorska naredba može biti CW upravljačka naredba, koja nosi informaciju koje je
pogonske motore potrebno pokrenuti u smjeru kazaljke na satu, a CCW upravljačka naredba
nosi informaciju koje je pogonske motore potrebno pokrenuti u smjeru suprotnom od kretanja
kazaljke na satu.
Ako je primljena CW upravljačka naredba, mikrokontroler šalje PC-u konstantu
tcSignalForCCW kao znak da mu pošalje CCW upravljačku naredbu, zatim se na temelju CW
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 19/23
41
upravljačke naredbe ažuriraju registri stanja motora. Nakon toga se provjerava stanje varijable
TaskExecute, a kako ona ima još vrijednost 0, program se vraća na početak petlje.
Ako je primljena CCW upravljačka naredba, mikrokontroler provjerava stanje
mikroprekidača stiska šake i ako je mikroprekidač pritisnut, mikrokontroler šalje PC-ukonstantu tcHLAlarmAndWaitingForCW kao obavijest da je pritisnut mikroprekidač i kao
znak da mu pošalje CW upravljačku naredbu. Ukoliko mikroprekidač nije aktiviran, konstanta
tcSignalForCW se šalje PC-u. Zatim se vrijednost varijable TaskExecute postavlja u
vrijednost 1, te se na temelju CCW upravljačke naredbe ažuriraju registri stanja motora.
Nakon toga se provjerava stanje varijable TaskExecute, a kako je ona postavljena u
vrijednost 1, program ažurira stanje izlaznih portova i na taj način pokreće motore na temelju
prethodnog ciklusa naredbi tj. na temelju CW i CCW naredbe zajedno. Nakon ažuriranjastanja izlaznih portova, varijabla TaskExecute se postavlja u vrijednost 0.
Slika 5.8 Metoda rada upravljač kog programa mikrokontrolera
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 20/23
42
Ukoliko je primljena sistemska upravljačka naredba, program ju obrađuje na način
prikazan blok shemom na slici 5.9.
Najosnovnija sistemska naredba je tcEmptyTask, koja nema neko konkretno značenje,
već služi testiranje brzine komunikacijske veze PC – mikrokontroler. Nakon što je primljenanaredba tcEmptyTask, mikrokontroler šalje PC-u konstantu tcAnswerOnEmptyTask kao
odgovor da je uspješno primio naredbu tcEmptyTask.
Najvažnija grupa sistemskih naredbi su naredbe za postavljanje delay-a komunikacijske veze.
Ako želimo delay komunikacijske veze postaviti u vrijednost 14 ms:
1. PC mikrokontroleru šalje vrijednost (tcSetDelay1 + 4), tj. 00010100.
2. Nakon primitka navedene kodne riječi, mikrokontroler šalje tcSetDelay10 kaozahtjev da mu se pošalje vrijednost desetica, te ažurira delay varijablu po principu
„delay = 4“.
3. PC mikrokontroleru šalje vrijednost (tcSetDelay10 + 1), tj. 00100001.
4. Nakon primitka navedene kodne riječi, mikrokontroler šalje tcSetDelay100 kao
zahtjev da mu se pošalje vrijednost stotica, te ažurira delay varijablu po principu
„delay = delay + 1×10“.
5. PC mikrokontroleru šalje vrijednost (tcSetDelay100 + 0), tj. 00110000.
6. Nakon primitka navedene kodne riječi, mikrokontroler šalje tcEmptyTask kao
obavijest da je primio informaciju, te ažurira delay varijablu po principu
„delay = delay + 0×100“.
Slika 5.9 Blok shema procesiranja sistemske naredbe
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 21/23
43
5.4 Windows upravljačka aplikacija TeachMover robotske ruke
U poglavlju 4. objašnjeno je kako se rukuje s upravljačkom aplikacijom TeachMover
robotske ruke. U ovom poglavlju objasnit će se osnovni princip rada te aplikacije. Sama
aplikacija sadrži skup osnovnih alata za upravljanje robotskom rukom i kao takva predstavlja
osnovu za daljnji razvoj aplikacija namijenjenih TeachMover robotskoj ruci.
Nakon što su unesene vrijednosti baud ratea, broj porta, te delay, aplikacija otvara
RS-232 port na računalu i omogućava primanje i slanje informacija. Ako je komunikacija
uspješno ostvarena, aplikacija postavlja delay tj. period komunikacijske veze preko već ranije,
u poglavlju 5.3.1, opisane procedure. Kad je uspješno izvršeno postavljanje delay-a, tad može
započeti izmjena naredbi između računala i mikrokontrolera.
Prvi korak u komunikaciji čini računalo, slanjem konstante tcCWBase
mikrokontroleru, a nakon primitka te naredbe, mikrokontroler šalje računalu konstantu
tcSignalForCCW. Prije no što računalo primi tu naredbu, ulazi u radnu petlju, te u njoj prvo
prođe kroz proceduru DoEvents, kojoj je zadatak ustanoviti je li pritisnuta tipka za kraj
komunikacije. U slučaju da je tipka uistinu pritisnuta, pokreće se procedura zatvaranja
komunikacije i varijabla CommunicationEnd postavlja se u vrijednost True.
Zatim slijedi provjera stanja varijable CommunicationEnd i ako je vrijednost varijable
True, napušta se radna petlja i aplikacija ulazi u stanje mirovanja. U slučaju da je vrijednost
varijable False, tok programa nastavlja svoj put dalje kroz radnu petlju.
Nakon te provjere, slijedi procedura gdje se izvršava primanje naredbe sa RS-232
porta i njeno pohranjivanje i varijablu PortInput. Tada slijedi još jedna provjera, ovaj put
provjera vrijednosti varijable PortInput. U slučaju da je vrijednost varijable jednaka konstanti
vbEmpty tj. vrijednosti 0, tok programa se vraća na početak radne petlje.
U slučaju da je vrijednost varijable PortInput različita od vbEmpty, tok programanastavlja svoj put kroz radnu petlju i radi grananje ovisno o vrijednosti varijable PortInput.
Ako je vrijednost varijable jednaka konstanti tcSignalForCCW, tcSignalForCW ili
tcHLAlarmAndSignalForCW, tok programa ulazi jednu od dvije moguće grane. Prije
grananja tok programa ulazi u proceduru HandLimitCheck, kojoj je zadatak ustanoviti stanje
mikroprekidača stiska robotske šake i na temelju postavke o jačini stiska donijeti odluku o
eventualnom gašenju pogonskog motora koji kontrolira stisak šake.
7/21/2019 Teachmover Software
http://slidepdf.com/reader/full/teachmover-software 22/23
44
Ovisno je li riječ o signalu za CW ili CCW naredbu, programski tok ulazi jednu od
dvije grane. Obe grane su ekvivalente, jedina razlika je u tome što procedure unutar grana
šalju različite parametre kao svoje argumente. Vrijednost parametara je direktno povezana sa
vrstom signalne naredbe. Kako se u obe grane radi o istim procedurama, opis jedne grane
vrijedi i za drugu.
Spomenute grane sadrže tri procedure: PrepareTask, CountSteps i SendTaskToMCU.
PrepareTask kreira aktuatorsku upravljačku naredbu. Kreiranje se vrši na jedan od tri
moguća načina ovisno o odabranom načinu rada:
5. Kontrola segmenata ili pojedinačna kontrola motora
Upravljačka naredba kreira se direktno pomoću upravljačkih tipki, kao što je
opisano u poglavlju 4.3.1.
6. Reproduciranje snimljenih sekvenci
Upravljačka naredba kreira se uzimanjem naredbi iz datoteke koja sadrži
snimljene sekvence.
7. Vraćanje u početni položaj
Pritiskom na dugme „Vrati na početni položaj“, upravljačka aplikacija kreira
naredbe s ciljem da je vrati u početno stanje (početne pozicije segmenata) u kojem je
bila u trenutku pokretanja aplikacije.
CountSteps procedura broji pomake pogonskih motora od trenutka pokretanja
aplikacije kako bi aplikacija imala informaciju o otklonu od početnog stanja.
Procedura SendTaskToMCU šalje upravljačku naredbu serijskom portu, koji ju dalje
preko komunikacijskog kanala prosljeđuje mikrokontroleru.
Nakon izlaska iz grane, tok programa ulazi u proceduru ShowMotorActivites koja na
ekranu prikazuje trenutačnu aktivnost pogonskih motora.
Naposljetku tok programa ponovno ulazi na početak radne petlje i cijeli postupak se
ponavlja.
top related