bilateralno teleoperiran kolesni mobilni …tako je mikrokrmilnik, pri krmilni palici, kar...
TRANSCRIPT
II
Diplomsko delo univerzitetnega strokovnega študijskega programa
BILATERALNO TELEOPERIRAN KOLESNI MOBILNI ROBOT
Študent: Rok Pučko
Študijski program: UN ŠP Elektrotehnika
Smer: Avtomatika in robotika
Mentor: Dr. Aleš Hace
Maribor, september 2011
IV
ZAHVALA
Zahvaljujem se mentorju dr. Alešu Hacetu za
pomoč in vodenje pri opravljanju diplomskega
dela. Prav tako se zahvaljujem osebju
laboratorija za robotiko, za pomoč pri snovanju
diplomske naloge.
Hvala tudi Mihaeli za podporo pri študiju.
Posebna zahvala velja staršem, za vzpodbudo in
omogočanje študija.
V
BILATERALNO TELEOPERIRAN KOLESNI MOBILNI ROBOT
Ključne besede: bilateralna teleoperacija, impedančno vodenje, mobilna robotika,
haptika
UDK:
Povzetek
V diplomski nalogi je opisano bilateralno teleoperianje kolesnega mobilnega robota z
uporabo aktivne krmilne palice. Krmilna palica služi za daljinsko vodenje mobilnega
robota po hitrosti in kot haptični vmesnik. Krmilna palica reproducira silo dotika
mobilnega robota z objektom iz okolice. Pri tem ne gre za fizični dotik mobilnega
robota z okoljem. Na robotu merimo razdaljo od robota do objekta v okolici. Razdaljo
nato transformiramo v virtualno silo dotika. To informacijo krmilna palica posreduje
do operaterja. V nalogi je izpeljava robustnega impedančnega vodenja, ki je
uporabljena za vodenje mobilnega robota in krmilne palice. Opisan sistem smo tudi
preizkusili. V prilogo je dodan eksperiment .
VI
BILATERAL TELEOPERATED WHEELED MOBILE ROBOT
Key words: bilateral teleoperation, impedance control, mobile robotics, haptics
UDK:
Abstract
The thesis describes a bilateral teleoperated wheeled mobile robot using an active
joystick. The joystick is used to remote control the speed of the mobile robot and as the
haptic interface. When the mobile robot has contact with an object from his
environment, then the joystick reproduces the force of the contact. This is not a physical
contact of the mobile robot with an environment. On the robot we measure a distance
from the robot to the object in the surrounding area. This distance is then transformed
into a virtual contact force. This information is applied to the operator by the joystick.
The thesis also describes a robust impedance control scheme, which is used to control
the mobile robot and joystick. The described system has also been realized and tested.
The experiment was added to the annex.
VII
VSEBINA
1 UVOD ...................................................................................................................... 1
2 MODELIRANJE BILATERALNEGA TELEOPERIRANEGA SISTEMA ... 4
2.1 MODELIRANJE MOBILNEGA ROBOTA .................................................................. 4
2.2 MODELIRANJE KRMILNE PALICE ...................................................................... 11
2.3 MODELIRANJE VIRTUALNE REAKCIJSKE SILE ................................................... 13
3 VODENJE BILATERALNEGA TELEOPERIRANEGA SISTEMA ............ 15
3.1 IMPEDANČNO VODENJE .................................................................................... 15
3.2 IMPEDANČNO VODENJE MOBILNEGA ROBOTA .................................................. 18
3.3 IMPEDANČNO VODENJE KRMILNE PALICE ......................................................... 22
4 OPIS STROJNE OPREME ................................................................................. 25
4.1 MIKROKRMILNIK STELLARIS LM3S1968 IN RAZVOJNA PLOŠČA ..................... 25
4.2 MIKROKRMILNIK MSP430F2274 IN RAZVOJNA PLOŠČA ................................. 29
4.3 BREZŢIČNA POVEZAVA MED KRMILNO PALICO IN MOBILNIM ROBOTOM .......... 32
4.4 MEMS ŢIROSKOPSKI SENZOR .......................................................................... 35
4.5 CPLD .............................................................................................................. 42
4.6 SENZOR RAZDALJE ........................................................................................... 46
4.7 H MOSTIČ......................................................................................................... 49
4.8 SERIJSKA KOMUNIKACIJA ................................................................................ 52
4.8.1 UART .......................................................................................................... 52
4.8.2 SPI .............................................................................................................. 56
5 OPIS PROGRAMSKE OPREME ...................................................................... 61
5.1 IAR EMBEDDED WORKBECH IDE ................................................................... 61
5.2 XILINX ISE DESIGN SUITE 13.1 ....................................................................... 66
5.3 ALTIUM DESIGNER 9 ....................................................................................... 74
5.4 LABVIEW ........................................................................................................ 78
6 IMPLEMENTACIJA TELEOPERATORSKEGA SISTEMA ....................... 81
6.1 REGULACIJSKA SHEMA V MIKROKRMILNIKU .................................................... 81
6.1.1 Celoštevilska aritmetika ............................................................................. 85
VIII
6.1.2 Računanje z celoštevilsko aritmetiko v jeziku C ......................................... 88
6.1.3 IQMath knjižnica v jeziku C ....................................................................... 89
6.2 MERITEV KOTNE HITROSTI ............................................................................... 92
6.3 ZAŠČITA H MOSTIČA ........................................................................................ 93
6.4 MERITEV POLOŢAJA KRMILNE PALICE ............................................................. 98
6.5 SPREMLJANJE REZULTATOV V LABVIEW OKOLJU .......................................... 100
6.6 OPIS DELOVANJA MOBILNEGA ROBOTA ......................................................... 103
6.7 OPIS DELOVANJA KRMILNE PALICE ................................................................ 106
7 NAČRTOVANJE ELEKTRONSKIH SKLOPOV IN TISKANINE ............ 108
7.1 ELEKTRIČNO NAPAJANJE ............................................................................... 108
7.2 CPLD ZA ZAŠČITO H MOSTIČEV .................................................................... 110
7.3 ELEKTRONSKI ŢIROSKOP ................................................................................ 111
7.4 OPTIČNI SENZORJI .......................................................................................... 112
7.5 TISKANINA ZA KRMILNO PALICO .................................................................... 113
7.6 TISKANINA ZA MOBILNI ROBOT...................................................................... 114
8 EKSPRIMENTALNI REZULTATI ................................................................. 115
9 SKLEP ................................................................................................................. 118
9.1 NADALJNJE DELO ........................................................................................... 119
10 LITERATURA ................................................................................................... 120
11 PRILOGE ............................................................................................................ 122
11.1 SEZNAM SLIK ................................................................................................. 123
11.2 SEZNAM PREGLEDNIC .................................................................................... 126
11.3 NASLOV ŠTUDENTA ....................................................................................... 127
11.4 KRATEK ŢIVLJENJEPIS.................................................................................... 127
IX
UPORABLJENI SIMBOLI
KW - kinetična energija sistema
PW - potencialna energija sistema
WR - polmer kolesa
WJ - vztrajnost kolesa mobilnega robota
Ls - pot levega kolesa
Rs - pot desnega kolesa
L - kotna hitrost levega kolesa
R - kotna hitrost desnega kolesa
LF - sila levega kolesa
RF - sila desnega kolesa
L - kot levega kolesa
R - kot desnega kolesa
L - navor levega kolesa
R - navor desnega kolesa
b - dolţina mobilnega robota
v - hitrost mobilnega robota
F - krmilna sila mobilnega robota
- krmili navor mobilnega robota
distF - motnje
dist - motnje
J - vztrajnost mobilnega robota
m - masa mobilnega robota
X
- kot mobilnega robota
- kotna hitrost mobilnega robota
p - prestava reduktorja
motJ - vztrajnostni rotorja motorja
mot - kotna hitrost motorja
mb - mehansko dušenje motorja
ai - tok skozi motor
aR - upornost navitja motorja
*,mot mot - navor rotorja motorja
u - inducirana napetost
e - inducirana napetost
eK - električna konstanta motorja
mK - mehanska konstanta motorja
- prevajalno razmerje PŠM napetosti
NU - napajalna napetost motorja
L - induktivnost navitja motorja
,L MOT - navor levega motorja
,L MOT - navor desnega motorja
,L MOT - kotna hitrost levega motorja
,R MOT - kotna hitrost desnega motorja
,L MOTJ - vztrajnost rototja levega motorja
,R MOTJ - vztrajnost rotorja desnega motorja
XI
,L MOT - prevajalno razmerje napajalne napetosti levega motorja
,R MOT - prevajalno razmerje napajalne napetosti desnega motorja
,L MOTu - povprečna napetost na levem motorju
,R MOTu - povprečna napetost na desnem motorju
palica - navor krmilne ročice
pl - dolţina krmilne ročice
pF - sila na koncu krmilne ročice
xF - x komponenta sile krmilne ročice
yF - y komponenta sile krmilne ročice
,X MOT - prevajalno razmerje napajalne napetosti motorja X
,Y MOT - prevajalno razmerje napajalne napetosti motorja Y
dM - predpisana masa
dB - predpisano dušenje
dK - predpisana elastičnost
σ - odstopanje od predpisanega obnašanja sistema
x - dejanska pozicija
x - dejanska hitrost
ex - regulacijska napaka
VK - parameter regulatorja, ojačanje napake hitrosti
PK - parameter regulatorja, ojačanje napake pozicij
D - parameter regulatorja, hitrost konvergiranja k predpisanemu obnašanju
XII
UPORABLJENE KRATICE
PŠM – pulzno širinska modulacija
FIR – ang. Finite impulse response
MEMS – ang. Micro electro mechanical system
PLL – ang. Phase locked loop
SPI – ang. Serial pheripheral interface
ISM – ang. Industrial, Scientific, Medical
NVIC – ang. Nested vectored interrupt controller
MPU – ang. Memmory protection unit
USCI – ang. Universal serial communication interface
DTC – ang. Data transfer controller
I2C – ang. Inter intergrated circuit
CPLD – an. Complex programmable logic device
PLD – ang. Programmable logic device
PAL – ang. Programmable array logic
RAM – ang. Random access memmory
USB – ang. Universal serial bus
ARM – ang. Advanced RISC Machine
RISC – ang. Reduced instruction set machine
UART – ang. Universal asynchronous receiver – transmitter
OLED – ang. Organic light emitting diode
Ksps – ang. Kilo samples per second
Msps – ang. Mega samples per second
Bilateralno teleoperiran kolesni mobilni robot Stran 1
1 UVOD
Teleoperiranje mobilnih robotov je aktualno, ko gre za telerobotske aplikacije z relativno
velikim delovnim področjem, ki je na nek način nedostopno ali celo nevarno ljudem.
Področja kot so raziskovanje zemlje ali celo drugih planetov, delo v človeku nevarnih
okoljih, pregled zahtevnih in človeku nedostopnih konstrukcij, itd. Našteti primeri
ponujajo zelo raznoliko ponudbo nalog, ki bi jih mobilni roboti lahko opravljali. Mobilni
roboti so zelo dober pristop zgoraj naštetim problemom, če jih lahko upravlja človek. Za te
namene se ljudje posluţujejo tako imenovanih bilateralno teleoperiranih sistemov. Človek
je v vlogi operaterja. Kot operater vsiljuje, preko uporabniškega vmesnika, neko obnašanje
robotu, ki je navadno na fizično oddaljenem mestu. Uporabniškemu vmesniku in robotu
skupaj pravimo teleoperator. Robot je tako neke vrste manipulator s katerim upravlja
človek preko uporabniškega vmesnika. Do sedaj smo našteli lastnosti unilateralnega
opravljanja z robotom. Če dodamo moţnost, da robot posreduje informacije, ki so neke
posledice nahajanja ali dejanja robota v svojem okolju, nazaj k operaterju, potem to
imenujemo bilateralno teleoperiranje. Slednje smo predstavili na sliki 1. Uporabniškemu
vmesniku pravimo master naprava, robotu pa slave naprava.
Operater Master Slave Okoljeov ref
svmv mvsv ev
eFsFsFref
mFmFoF
Teleoperator
Slika 1: Splošna shema bilateralnega teleoperiranja
Slika 1 prikazuje tako imenovan informacijski tok. Ponazorili smo tok informacij od
operaterja do robota in od okolja nazaj do operaterja.
Osnovna ideja v tej nalogi je zgraditi sistem, ki bo omogočil bilateralno teleoperirano
vodenje mobilnega robota z uporabo krmilne palice, ki ima moţnost generiranja sile nazaj
na operaterja. Ideja je predstavljena na sliki 2 in je ţe bila predstavljena v [1], [2].
Konkretno to pomeni sistem, ki bo vključeval dvoosno krmilno palico v vlogi master
Stran 2 Bilateralno teleoperiran kolesni mobilni robot
naprave in mobilnega robota v vlogi slave naprave. S krmilno palico bomo lahko upravljali
z linearno hitrostjo pomika in kotno hitrostjo mobilnega robota, kot je nakazano na sliki 1.
Ovira
Mobilni robot
Krmilna palica
Povratna sila
Senzorji razdalje
Kolesa
Krmilna hitrost
Slika 2: Prikaz bilateralnega teleoperiranja mobilnega robota
Na mobilnem robotu lahko ustvarimo virtualni stik robota z okolico s pomočjo senzorjev
razdalje. Ne gre za fizični stik robota z okolico ampak za interpretiranje le tega na podlagi
informacije o bliţini objekta iz okolice mobilnega robota. Ustvarjeno virtualno silo
pošiljamo nazaj h krmilni palici po brezţični povezavi, kot je prikazano na sliki 1.
Virtualno silo uporabi krmilna palica za reproduciranje navideznega stika robota z okolico.
Ker pri tem izkoriščamo človekov čut za silo, to imenujemo bilateralno teleoperiranje z
haptično povratno vezavo.
Bilateralno teleoperiran kolesni mobilni robot Stran 3
Takšen mehanizem generiranja povratne sile bo tako predstavljal način opozarjanja
uporabnika pred trki z objekti iz okolice in posredoval uporabniku informacije o poloţaju
in oddaljenosti objekta v prostoru.
Bilateralno teleoperiranje predstavlja aktualen problem v robotiki. Pri mobilnih robotih,
kjer je delovno področje dokaj veliko, predstavljajo svojstven problem zakasnitve zaradi
komunikacije med uporabniškim vmesnikom in robotom [3], [4].
V nalogi so predstavljeni gradniki in izgradnja mobilnega robota, ki bo teleoperiran z
krmilno palico. Mobilni robot ima nameščene optične senzorje razdalje, s katerimi zaznava
oddaljenost do morebitnih ovir. Robota upravlja zmogljiv mikrokrmilnik LM3S1968 ARM
arhitekture, ki izvaja regulacijo kotne hitrosti mobilnega robota. Teleoperiranje smo
zagotovili z brezţično komunikacijo med robotom in krmilno palico. Uporabili smo
razvojna modula eZ430RF2500, na katerih je brezţični sprejemnik in oddajnik CC2500 ter
mikrokmilnik MSP430F2274. V celotnem sistemu so trije mikrokrmilniki in dva brezţična
sprejemnika in oddajnika.
Mobilni robot uporablja za pogon razmeroma enostavne modelarske enosmerne električne
motorje s planetnim reduktorjem. V primeru enostavnega krmiljenja motorjev zagotovo ne
bi morali zagotoviti ravne voţnje mobilnega robota, kadar bi tako ţeleli s krmilno palico.
Zaradi tega je bilo potrebno uvesti regulacijo kotne hitrosti mobilnega robota. Za ta namen
smo morali na mobilni robot namestit elektronski ţiroskopski senzor.
Motorji na mobilnem robotu so krmiljeni s PŠM modulirano napetostjo. PŠM napetost smo
lahko generirali s periferno enoto mikrokrmilnika LM3S1968. Ker sam mikrokrmilnik
nima tokovno dovolj zmogljivih izhodov, smo za pogon motorjev uporabili H mostični
vezji.
Krmilna palica ni tako zahtevna kot je mobilni robot, s stališča potrebne procesorske moči.
Tako je mikrokrmilnik, pri krmilni palici, kar MSP430F2274 s komunikacijskega modula.
Krmilna palica ima tri naloge. Ob neuporabi se mora vrniti v izhodiščni poloţaj. Kadar jo
uporabljamo in je mobilni robot v bliţini kakšne ovire, mora krmilna palica reproducirati
navidezno silo, ki je obratno sorazmerna razdalji od ovire do robota. Preko brezţične
povezave pošilja mobilnemu robotu ţeleno hitrost pomika in kotno hitrost. Mobilni robot
v aktivnem delovanju ves čas sprejema ţeleno hitrost in kotno hitrost, ki jima sledi.
Stran 4 Bilateralno teleoperiran kolesni mobilni robot
2 MODELIRANJE BILATERALNEGA TELEOPERIRANEGA
SISTEMA
Za realizacijo bilateralnega vodenja mobilnega robota in krmilne palice potrebujemo
matematični model robota in palice. Opis z matematičnimi enačbami potrebujemo za
načrtovanje vodenja krmilne palice in robota.
2.1 Modeliranje mobilnega robota
Mobilni robot kot pogonsko sredstvo uporablja električne enosmerne modelarske motorje s
planetnim reduktorjem. Ima dva motorja s pomočjo katerih izvaja tako imenovano
diferencialno krmiljenje. Z razliko med kotnima hitrostma med obema motorjema lahko
robot pelje v zavoj oziroma se pelje ravno.
Matematični model mobilnega robota potrebujemo za namen načrtovanja regulacijske
zanke na mobilnem robotu.
2 WR
2WR
2b
2b
l
v
v
sR
sL
R
R
L
L
Slika 3: Modeliranje mobilnega robota
Bilateralno teleoperiran kolesni mobilni robot Stran 5
Za sliko 3 lahko napišemo sledeče enačbe.
L W Ls l b R (2.1)
R W Rs l b R (2.2)
2
WL R
Rv (2.3)
2
WL R
R
b (2.4)
Za izgradnjo matematičnega dinamičnega modela robota potrebujemo tudi enačbe sil in
navorov.
2 WR
2b v
RF
LF
310
L
R
F
Slika 4: Prikaz sil in navorov mobilnega robota
Stran 6 Bilateralno teleoperiran kolesni mobilni robot
Za sliko 4 lahko zapišemo naslednje povezave.
1
L L
W
FR
(2.5)
1
R R
W
FR
(2.6)
1
L R
W
FR
(2.7)
L R
W
b
R (2.8)
Povezave med veličinami so v (2.9) in (2.10) predstavljene v matrični obliki, kjer smo
zraven upoštevali še prestavno razmerje planetnega reduktorja.
,
,
11
12
L MOT W
R MOT
b FR
bp b
(2.9)
,
,
1
1 12
L MOTW
R MOT
v b bR
p b
(2.10)
Da lahko uspešno izvedemo regulacijo mobilnega robota potrebujemo matematični opis
mobilnega robota z diferencialnimi enačbami. Matrični enačbi (2.9) in (2.10) sta tako
imenovani kinetični enačbi mobilnega robota in opisujeta zveze med notranjimi in
zunanjimi koordinatami mobilnega robota.
Bilateralno teleoperiran kolesni mobilni robot Stran 7
Z Lagrangeevim postopkom smo izračunali pripadajoče diferencialne enačbe.
2 2 2 21 1 1
2 2 2
0
K P
K W L R
P
L W W
W J mv J
W
(2.11)
R R R
R R
d L LD
dt
(2.12)
L L L
L L
d L LD
dt
(2.13)
V (2.12) in (2.13) smo odvajali L po kotni hitrosti kolesa in kotu kolesa, saj ti sestavljata
tako imenovane konservativne sile v sistemu. Na desni strani (2.12) in (2.13) so
nekonservativne sile in dovedena moč sistemu. Opomnili bi, da so povezave med kotnima
hitrostma koles L in R in hitrostjo robota v ter kotno hitrostjo podane z (2.1), (2.2),
(2.3) in (2.4).
Izračuna z Lagrangeevim postopkom tukaj ne bomo navajali. V nadaljevanju smo napisali
samo končni rezultat, celoten postopek je v [5].
Po končanem izračunu Lagrangeeve diferencialne enačbe, lahko zapišemo odvisnost med
pospeškom in kotnim pospeškom robota ter silo in navorom robota.
0
0
distV
dist
M v F F
J
(2.14)
, ,2
2 22
R MOT L MOTWV
W
J JJM m p
R R
(2.15)
22
, ,2
2 22
R MOT L MOT
W
W W
b J JbJ J J p
R R
(2.16)
Stran 8 Bilateralno teleoperiran kolesni mobilni robot
Enačbo (2.14) lahko zapišemo tudi v kompaktnejši obliki z (2.17).
dist Mx F F (2.17)
V (2.17) so
0
0
VM
J
M (2.18)
F
F (2.19)
dist
dist
dist
F
F (2.20)
v
x (2.21)
Na skrajni desni strani (2.14) je dodan člen, ki zajema vse ostale prispevke, ki jih nismo
zajeli v modeliranju, kot so razna trenja(med podlago in kolesom, trenje v leţajih,…).
Dalje nas zanima, kako so povezani navor in sila mobilnega robota z navorom obeh
motorjev, ter povezava med navorom motorja in PŠM modulirano napetostjo na motorju.
Mehanska in električna diferencialna enačba enosmernega motorja sta podani z (2.22) in
(2.24).
mot mot m mot mot
dJ b
dt (2.22)
mot a mi K (2.23)
a a a
dL i i R u e
dt (2.24)
e mote K (2.25)
Bilateralno teleoperiran kolesni mobilni robot Stran 9
Ob predpostavki, da je električna dinamika sistema bistveno hitrejša kot mehanska
dinamika lahko (2.24) poenostavimo in zapišemo (2.26).
Predpostavljamo, da se tok skozi motor izniha, še preden se spremeni kotna hitrost
motorja.
1
a mot e
a
i u KR
(2.26)
Dobljeni tok skozi motor nato vstavimo v (2.23) in dobimo povezavo med enosmerno
napetostjo na motorju in pripadajočim navorom motorja, kar smo zapisali z (2.27).
*
*
*
( )
m e mmot mot
a a
e mmot mot mot mot
a
mmot
a
amot
m
K K Ku
R R
K KdJ b
dt R
Ku
R
Ru
K
(2.27)
Iz izračunanega navora mobilnega robota lahko določimo navor levega in desnega motorja,
kar je podano v (2.9) in zapisano še enkrat z (2.28) in (2.29).
,
1
2L MOT
RbF
p b (2.28)
,
1
2r mot
RbF
p b (2.29)
Iz (2.28) in (2.29) lahko z uporabo (2.27) podamo povezavo med navorom in silo motorja
ter pripadajočo napetostjo na motorju. Povezava je podana z (2.30) in (2.31).
,
1
2
al mot
m
R Ru bF
K p b (2.30)
,
1
2
ar mot
m
R Ru bF
K p b (2.31)
Stran 10 Bilateralno teleoperiran kolesni mobilni robot
Povezavo med enosmerno napajalno napetostjo NU in povprečeno napetostjo čez periodo
T je znana in je podana z (2.32).
Nu U (2.32)
Obrazloţitev k (2.32) podaja slika 5.
ONt
T
NU
t
ONt
T
Slika 5: Povezava med napetostjo in PŠM
Z je označen prevajalno razmerje PŠM modulirane napetosti.
Z (2.33) in (2.34) smo podali povezavo med prevajalnim razmerjem PŠM modulirane
napetosti in pripadajočim navorom in silo mobilnega robota.
,
1 1
2
al mot
N m
RRbF
U p b K (2.33)
,
1 1
2
ar mot
N m
RRbF
U p b K (2.34)
Bilateralno teleoperiran kolesni mobilni robot Stran 11
2.2 Modeliranje krmilne palice
Bistvene sestavne elemente krmilne palice vidimo na sliki 6. Krmilna palica je aktivna, kar
pomeni, da ima vgrajena dva motorja, s katerima je mogoče s silo vplivati na uporabnika.
Vgrajene ima linearne potenciometre, s katerimi lahko določimo trenutno pozicijo krmilne
palice.
Motor 1
Motor 2Motor 1
Motor 2
Y os
X os
Y os
X osKrmilna ročica
Krmilna ročica
Slika 6: Oris krmilne palice
Kar nas pri krmilni palici zanima je povezava med napetostjo na motorju in pripadajočo
silo na koncu krmilne palice.
palica p pl F (2.35)
1
palica motp
(2.36)
mot p ppl F (2.37)
Stran 12 Bilateralno teleoperiran kolesni mobilni robot
Z (2.35) je podana odvisnost med navorom krmilne ročice in pripadajočo silo na koncu
ročice. (2.35) velja za silo in navor ročice po x in y koordinati. Dolţina ročice je označena
z pl .
Motorji so povezani s krmilno ročico preko zobniških prenosov. Povezavo med navorom
ročice in navorom motorja prikazuje (2.36). (2.36) velja za navor ročice po x in y. Pri tem
je p zobniška prestava.
Enačba (2.37) podaja povezavo med silo na koncu ročice in navorom motorja. Prav tako
velja za obe koordinati x in y.
Iz navora motorja izračunamo napetost na motorju.
Enačbe (2.22), (2.23), (2.24) in (2.25) opisujejo medel enosmernega električnega motorja.
Motorji so mehansko dokaj nedostopni in nismo morali prepoznati parametrov motorjev, ki
so vgrajeni v krmilno palico.
Enako, kot v primeru mobilnega robota, smo predpostavili bistveno hitrejšo električno
dinamiko od mehanske dinamike. Tako pridemo do enake zveze, podane z (2.27), kot v
primeru mobilnega robota. Z uporabo (2.27), (2.32) in (2.37), lahko podamo zvezo med
prevajalnim razmerjem PŠM napetosti in silo na koncu krmilne ročice z (2.38) in (2.39).
,
R1 aX MOT p x
N m
pl FU K
(2.38)
,
R1 aY MOT p y
N m
pl FU K
(2.39)
Pri (2.38) in (2.39) sta xF in yF sila na koncu krmilne ročice, skladno z sliko 6.
Bilateralno teleoperiran kolesni mobilni robot Stran 13
2.3 Modeliranje virtualne reakcijske sile
Kot smo ţe omenili v prejšnjih poglavjih mobilni robot s svojo okolico nima fizičnega
stika. Sila dotika z okolico je pridobljena iz senzorjev razdalje na mobilnem robotu. Bliţje
kot je robot nekemu objektu iz svoje okolico večja je virtualna sila dotika. Virtualno silo
dotika smo v prejšnjih poglavjih označevali z e
F . Kako izračunamo virtualno silo dotika
bomo razloţili s pomočjo slike 7.
Sens. A
Sens. CSen
s. B
AF A
CB
Rd
x
BF
y
BF
x
CF
y
CF
xF
F
180
Slika 7: Izračun virtualne sile
Na mobilnem robotu so nameščeni trije senzorji. Vsi trije senzorji merijo razdaljo, ki so v
sliki 7 označene z A , B in C . Iz teh razdalj izračunamo sile, ki so v sliki 7 označene z
Stran 14 Bilateralno teleoperiran kolesni mobilni robot
AF , x
BF , x
CF , y
BF in y
CF . Vektorja rezultante teh sil sta F in xF . Iz vseh treh senzorjev
določimo pripadajoče sile po enačbah (2.40), (2.41), (2.42), (2.43) in (2.44).
AA
A
kF
x a
(2.40)
cos
x BB
B
kF
x b
(2.41)
cos
x CC
C
kF
x c
(2.42)
sin
y BB
B
kF
x b
(2.43)
sin
y CC
C
kF
x c
(2.44)
Pri tem konstante Ak , Bk in Ck določajo povezavo med razdaljo in pripadajočo silo.
Silo F sestavljajo komponente AF , y
BF in y
CF . Silo xF sestavljajo komponente x
BF in x
CF .
Sila xF skupaj z razdaljo Rd tvori navor . Sila eF je določena z (2.45).
y y
A B C
x x
R B C
F F FF
d F F
eF (2.45)
Ker so sile virtualne, jim lahko določimo poljubno prijemališče. Določili smo skupno
prijemališče za silo F in xF , kakor je na sliki 7 označeno z rdečo točko.
Bilateralno teleoperiran kolesni mobilni robot Stran 15
3 VODENJE BILATERALNEGA TELEOPERIRANEGA SISTEMA
Izbrali smo si FV bilateralno shemo vodenja. FV pomeni, da sta sistema master in slave
med sabo povezana s hitrostjo in silo. Mobilni robot vodimo po hitrosti, medtem ko
povratno povezavo predstavlja sila dotika mobilnega robota z okolico, kar predstavlja slika
8.
Krmilna
palica
mx
myMobilni
robot
ref
sV
ref
s
sV
s
eFref
mFsFsF
eV
e
mx
myOperater
mF
ox
oy
oF
Okolje
Slika 8: Vodenje bilateralnega teleoperiranega sistema
Vodenje krmilnega sistema (palice) in mobilnega robota zasnujemo na principu
impedančnega vodenja. Pri impedančnem vodenju sistemu predpišemo ţeleno mehansko
impedanco [5], ki jo sistemu vsilimo z regulacijskim algoritmom. To pomeni, da tako
mobilnemu robotu kot krmilni palici pripišemo neko ţeleno maso, dušenje in elastičnost s
čimer določimo ţeleno obnašanje oz. odziv na zunanjo silo.
3.1 Impedančno vodenje
Sistem modeliramo z diferencialno enačbo drugega reda, katere koeficienti predstavljajo
predpisane mehanske lastnosti – mehansko impedanco. To opišemo z (3.1), ki je povzeta
po [5].
ed e d e d eM x +B x +K x = -F (3.1)
ref
ex = x - x (3.2)
V (3.1) je eF reakcijska sila.
Pri razlagi impedančnega vodenja se bomo osredotočili na mobilni robot. Tako je v (3.1)
eF sila, ki jo čuti mobilni robot, ko je v stiku z okoljem. V (3.2) je x trenutna pozicija
Stran 16 Bilateralno teleoperiran kolesni mobilni robot
mobilnega robota in refx ţelena pozicija robota. Enako velja za krmilno palico. Sila
eF je
sila dotika mobilnega robota z okoljem.
Ko robot ne bo zaznal nobene ovire, bo e
F nič. Iz (3.1) lahko povemo, da bo e
x
popolnoma definiran z refx . Mobilni robot tako sledi referenčnim veličinam, kot jih
narekuje krmilna palica.
Ko bo robot zaznal neko oviro, bo e
F različna od nič. Iz (3.1) lahko povemo, da bo e
x
takšen, da bo (3.1) enaka e
F . To pomeni, da mobilni robot še vedno sledi krmilni palici, a
bo hkrati vpliv reakcijske sile na pogrešek e
x vedno večji, čim bolj se robot pribliţuje
oviri.
Sistem se vedno trudi, da bi bil regulacijski pogrešek enak nič. Ko je e
F različen od nič,
sistem več ne uspe izničiti pogreška, ampak postavi ravnovesje med e
F in refx . Torej
mobilni robot več ne sledi hitrosti, ki jo narekuje krmilna palica, ampak neki hitrosti, ki je
odvisna od sile, ki jo čuti mobilni robot z okoljem in hitrosti od krmilne palice.
Regulacijo, ki to dopušča, imenujemo podajna regulacija. V našem primeru impedančna
podajna regulacija. Sistem se poda neki sili in ne sledi več popolnoma referenčni veličini.
Enačbo (3.1) lahko zapišemo tudi kot (3.3), kjer lahko z dM določamo vpliv e
F .
-1 -1 -1
e d d e d d e d ex +M B x +M K x = -M F (3.3)
-1
e V e P e d ex +K x +K x = -M F (3.4)
Načrtovali smo robustno vodenje po regulacijskem principu tako, da se sistem asimptotsko
pribliţuje k predpisanemu obnašanju (3.4).
-1
e V e P e d eσ = x + K x + K x + M F (3.5)
Dσ = - σ (3.6)
σ je mera odstopanja obnašanja sistema od predpisanega obnašanja. Z regulacijskim
algoritmom ţelimo doseči asimptotično stabilno konvergenco, kakor je to opisano z enačbo
(3.6).
Bilateralno teleoperiran kolesni mobilni robot Stran 17
Nadalje hočemo iz (3.5) poiskati takšen F , da se bo σ spreminjal po (3.6).
Asimptotično stabilni regulacijski algoritem navadno deluje z neko hitrostjo konvergence k
stacionarnem stanju, ko prehodni pojav izzveni. Z D nastavljamo hitrost konvergence k
predpisanemu obnašanju sistema.
Izpeljavo regulatorja lahko nadaljujemo z (3.7).
-1 ref
V e P e d e
dσ = x + K x + K x + M F - x
dt (3.7)
V (3.7) smo upoštevali (3.2). Če nadalje upoštevamo še (2.17) lahko zapišemo (3.8).
-1 dist -1 ref
V e P e d e
dσ = M F - F + K x + K x + M F - x
dt (3.8)
Uvedemo novo spremenljivko z (3.9).
c
ref -1
c V e p e d e
σ = x - x
x = x - K x - K x - M F (3.9)
Ob upoštevanju (3.9) v (3.8) lahko zapišemo (3.10)
Dd
dt-1 dist
cM F -F x = - σ (3.10)
Iz zadnje enačbe lahko izrazimo F in tako dobimo algoritem vodenja v (3.11).
D dtcF = M x - σ (3.11)
Če za σ upoštevamo (3.9), lahko zapišemo (3.12).
D dtc cF = M x + x - x (3.12)
Enačba (3.12) je predstavljena v grafični obliki na sliki 9, iz česar je lepo razviden vpliv
regulacijskih parametrov.
Stran 18 Bilateralno teleoperiran kolesni mobilni robot
refx x
PK
VK
refx
eF 1
d
M
D
M
x
F
Slika 9: Regulacijska shema
3.2 Impedančno vodenje mobilnega robota
Vodenje mobilnega robota bo tako imenovano robustno impedančno vodenje [5].
Ţelimo si takšno dinamiko robota, kot je podana z (3.13).
ed e d e d eM x +B x +K x = -F (3.13)
ref
ex = x - x (3.14)
Enačba (3.13) predstavlja sistem drugega reda in opisuje ţeleno oziroma predpisano
impedanco mehanskega sistema, ki je v našem primeru mobilni robot.
Pri mobilnem robotu ţelimo regulirati hitrost in kotno hitrost. To upodobimo s sliko 10.
Bilateralno teleoperiran kolesni mobilni robot Stran 19
Mobilni robotRegulator
F
τ
ev
eΘOkolje
refv
refΘ
eF
Slika 10: Prikaz regulacije mobilnega robota
Na tem mestu povejmo, da je sila e
F virtualna sila, ki jo generiramo s pomočjo senzorjev
razdalje na mobilnem robotu.
Ko mobilni robot ne zaznava okolice je e
F enaka nič. Napako e
x v popolnosti določa samo
refx , ki je v našem primeru ţelena kotna hitrost.
Ko robot zazna okolico je komponenta e
F različna od nič, kar pomeni, da napako e
x
določata e
F in refx in sistem ne uspe izničiti
ex .
Z regulacijo hočemo doseči, da ni stika robota z okolico, torej, da je komponenta eF enaka
nič in hkrati ţelimo sledenje robota ukazom krmilne palice. Zahtevamo, da (3.13) vedno
teţi k izničenju e
x , tako da z x vzpostavi ravnovesje med refx in
eF . Če je to izpolnjeno,
smo dosegli sledenje robota ukazom krmilne palice, hkrati pa dopuščamo, da na sistem
vpliva sila dotika z okolico.
Vse to smo razloţili ţe v prejšnjem poglavju. Nadaljevali bomo z razlago, zakaj smo
shemo na sliki 9 spremenili za mobilni robot.
Načrtovanje regulatorja je potekalo za kotno hitrost in hitrost robota. Za uspešno izvedeno
regulacijo je tako potrebno v sistemu meriti hitrost motorjev in kotno hitrost robota.
Meritev kotne hitrosti robota smo uspešno izvedli z elektronskim ţiroskopom. Meritev je
natančna in zelo hitra. Pri meritvi hitrosti električnih motorjev smo uporabili inkrementalni
dajalnik, ki je imel samo tri impulze na vrtljaj motorja. Za izvedbo regulacije je to
premajhno število impulzov, zato smo regulacijo hitrosti izpustili iz regulacijske sheme in
se odločili za vodenje hitrosti pomika mobilnega robota po krmilnem principu.
Stran 20 Bilateralno teleoperiran kolesni mobilni robot
Ker gre pri nalogi za izgradnjo mobilnega robota, hočemo, da se robot premika tako, kot to
narekuje krmilna palica. Ko sta referenčni veličini krmilne palice enaki nič, hočemo, da
robot miruje. Z zgoraj predstavljeno regulacijsko shemo to drţi v primeru, da robot ne
»čuti« svojega okolja. Kakor hitro robot zazna svoje okolje, se pojavi neka sila e
F . Kot
smo pojasnili na uvodu tega poglavja e
F in ref
x skupaj določata regulacijsko napako.
Sistem se vedno trudi, da je regulacijska napaka enaka nič. To posledično pomeni, da se bo
robot premaknil iz neke lege, ki smo jo določili s krmilno palico, kakor hitro bo operater
krmilno palico izpustil iz rok - ref
x bo nič.
Ker tega ne ţelimo, bomo iz regulacijske sheme na sliki 9 prešli na regulacijsko shemo na
sliki 12. To smo naredili tako, da smo spremenili parametre impedančnega vodenja.
Povečali smo ţeleno maso robota d
Μ , kar posledično pomeni, da sile iz okolja ne morejo
bistveno vplivati na kotno hitrost mobilnega robota. To vidimo na regulacijski shemi kot
mnoţenje virtualne sile z zelo majhno vrednostjo, saj dM nastopa z svojo inverzno
vrednostjo.
Slika 10 se tako spremeni. Virtualna sila iz okolja na mobilni robot več nima vpliva in
regulirana veličina je samo kotna hitrost, kar prikazuje slika 11.
Mobilni robotRegulatorτ
ev
eΘOkolje
ref
sv
ref
sΘ
Slika 11: Prikaz regulacije kotne hitrosti
Bilateralno teleoperiran kolesni mobilni robot Stran 21
Tako dobljen regulacijski algoritem je opisan z (3.15).
D -c cJ dt (3.15)
Pri čemer je
c V e P eK Θ K Θ (3.16)
ref
eΘ =Θ Θ (3.17)
Seveda to ni edini reţim delovanja, vendar je to reţim, ki se nam je zdel najprimernejši za
mobilnega robota.
VK
ref
D
J
Θ
τ
PK
ref
Slika 12: Regulacijska shema kotne hitrosti
Stran 22 Bilateralno teleoperiran kolesni mobilni robot
3.3 Impedančno vodenje krmilne palice
Kot smo zapisali v uvodu in prikazali na sliki 8, hočemo krmilno palico voditi po sili, ki jo
čuti mobilni robot.
Za izvedbo robustne regulacije bi tako morali na krmilni palici meriti silo. To bi lahko
naredili s primernim senzorjem ali pa z meritvijo toka skozi motorje. Prvi način ni
primeren zaradi zelo preproste mehanske zgradbe krmilne palice. Drugi način bi zahteval
uporabo kvalitetnih servomotorjev, ki pa jih krmilna palica nima.
Ţelimo, da krmilna palica reproducira silo, ki jo čuti mobilni robot. Zato enačbo (3.1)
priredimo in zapišemo enačbo, ki pripisuje impedanco krmilni palici.
d e d ee e oM x +B x = F -F (3.18)
eF predstavlja generirano silo mobilnega robota. oF je sila, s katero deluje operater na
krmilno ročico, ki je sicer ne merimo. e
x predstavlja hitrostni pogrešek krmilne palice.
refx je v tem primeru konstanta in predstavlja izhodiščni poloţaj krmilne palice.
Kadar palica miruje, preide enačba (3.18) v (3.20).
0e o
= F -F (3.19)
e oF = F (3.20)
Iz tega lahko sklepamo, da bo v stacionarnem stanju palice vzpostavljeno ravnoteţje med
silami: silo s katero deluje na palico operater in silo, ki jo čuti mobilni robot. Pri haptični
povratni vezavi si ţelimo, da se oddaljena reakcijska sila verno preslika v silo
teleoperacijskega uporabniškega vmesnika. V tem primeru sila mobilnega robota
odgovarja sili človeške roke in je tudi z njo določena.
(3.18) lahko zapišemo tudi tako, kot prikazuje (3.22).
-1 -1 -1
e d d ee d e d ox +M B x = M F -M F (3.21)
-1
e v ee d e ox +K x = M F -F (3.22)
Z (3.22) lahko ponovno napišemo algoritem vodenja podan z (3.12).
Bilateralno teleoperiran kolesni mobilni robot Stran 23
cF = Mx (3.23)
-1
V e p e d eF = M -K x -K x -M F (3.24)
Za parameter D smo pisali, da je nič. To je smiselno, saj, kot smo rekli na začetku, ne
moremo načrtovati robustne regulacije, če nimamo meritve sile.
Iz (3.24) lahko sestavimo shemo impedančnega vodenja, ki jo prikazuje slika 13.
VK
M
x
F
PK
refx x
eF -1
dM
Slika 13: Shema impedančnega vodenja krmilne palice
V regulacijsko shemo krmilne palice smo dodali pogrešek pozicije krmilne palice. Le ta je
potreben, saj ţelimo, da se krmilna palica vedno vrne v izhodiščno lego, ko jo operater ne
uporablja več.
Stran 24 Bilateralno teleoperiran kolesni mobilni robot
Ojačenje PK mora biti takšno, da je v primeru odstopanja krmilne ročice iz referenčne lege
sila, ki teţi proti referenčni legi konstantna. Karakteristika PK je prikazana na sliki 14.
e Px K
ex0
Slika 14: Karakteristika nelinearnega ojačenja KSP
Na koncu še zapišimo popolno enačbo vodenja krmilne palice z (3.25).
-1
V e P e d e oK x +K x = M F -F (3.25)
Bilateralno teleoperiran kolesni mobilni robot Stran 25
4 OPIS STROJNE OPREME
4.1 Mikrokrmilnik Stellaris LM3S1968 in razvojna plošča
LM3S1968 proizvajalca Stellaris je 32 bitni mikrokrmilnik ARM(Advanced RISC
Machine) M3 arhitekture. Proizvajalec ima na voljo urejeno dokumentacijo [6]. V osnovi
spada med energijsko varčne mikrokrmilnike, saj nudi dovolj podpore za različne načine
delovanja v nizki porabi. M3 ima tri načine delovanja v nizki porabi. Ima 256 kB
programskega pomnilnika in 64 kB podatkovnega pomnilnika.
Najvišja hitrost delovanja je z taktom ure 50 MHz. To doseţe z uporabo interne PLL(Phase
Locked Loop) zanke. Pri tej frekvenci in vklopljenih vseh perifernih enotah je poraba
mikrokrmilnka pribliţno 110 mA.
Ima moderen nabor ukazov Thumb-2, ki omogočajo izvajanje 32 bitnih ukazov kot 16
bitne ukaze, kar pripomore k manjši in gostejši programski kodi. M3 jedro ima Harvardsko
arhitekturo, katere značilnost sta ločeni vodili za programski in podatkovni pomnilnik.
Prekinitev ne upravlja procesor, temveč jih obvladuje NVIC(Nested Vectored Interrupt
Controller), ki predstavlja samostojno enoto zraven procesorja. Prekinitve so popolnoma
nastavljive s tremi registri, za vsako periferno enoto, kar vključuje omogočanje prekinitev
in njihove prioritete. NVIC skrajša čas, ki je potreben, da procesor začne izvajati
prekinitveno rutino, ki je za LM3S1968 med 6 in 12 strojnimi cikli.
Podporo kompleksnejšim programskim rešitvam predstavlja MPU(Memory Protection
Unit) enota, ki omogoča različne prioritete in onemogočanja dostopa do določenih delov
pomnilnika. Branje iz in pisanje v programski in podatkovni pomnilnik se zgodi v enem
urinem ciklu. Računsko moč mu zagotavlja 32 bitni strojni mnoţilnik, ki zmore mnoţenje
in deljenje dve števil(seveda celoštevilskih) v enem urinem ciklu.
Na sliki 15 vidimo blokovno shemo LM3S1968 mikroprocesorja in njegovih perifernih
enot.
Stran 26 Bilateralno teleoperiran kolesni mobilni robot
Slika 15: Blokovna shema LM3S1968
LM3S1968 vsebuje štiri časovnike. Vsak časovnik vsebuje dva 16 bitna registra, ki ju je
moţno zdruţiti v 32 bitni register. Z časovniki je moţno zajemati časovne intervale,
generirati natančne časovne intervale ter implementirati uro realnega časa.
Analogno digitalni pretvornik v LM3S1968 ima ločljivost 10 bitov. Omogoča vzorčenje
osmih analognih vhodov. Pretvornik je zelo prilagodljiv, saj je moţno nastaviti število
vzorčenih vhodov, vrstni red vzorčenja in hitrost vzorčenja.
Bilateralno teleoperiran kolesni mobilni robot Stran 27
Mikrokrmilnik ima veliko podpore za komunikacije. Vsebuje tri UART enote, dve SPI
enoti in dve I2C enoti.
Prav tako vsebuje tri PŠM krmilne enote in dva kvadraturna dekodirnika.
Proizvajalec ponuja razvojno ploščo z LM3S1968 mikrokrmilnikom in vsemi potrebni
perifernimi enotami za programiranje in razhroščevanje mikrokrmilnika in dokumentacijo
[7]. Razvojno ploščo vidimo na sliki 16.
Slika 16: LM3S1968 razvojna plošča
Najbolj uporabljana enota na razvojni plošči zraven samega mikrokrmilnika je USB
komunikacija, ki omogoča spremljanje vseh internih spremenljivk sistema ter OLED
zaslon za izpisovanje določenih dogodkov in napak.
Stran 28 Bilateralno teleoperiran kolesni mobilni robot
V Tabela 1 so predstavljeni priključki, ki smo jih porabili za razvoj naloge.
Tabela 1: Prikaz uporabljenih pinov na LM3S1968 razvojni plošči
Zaporedna številka
pina LM3S1968
Zaporedna številka pina
na razvojni plošči Ime pina Uporaba
1 6 clkInSlow Počasna ura za CPLD zaščitno vezje.
2 12 SSI1TX SPI oddajni pin. SPI komunikacija z
ADIS16256 ţiroskopom.
3 13 SSI1RX SPI sprejemni pin. SPI komunikacija z
ADIS16256 ţiroskopom.
4 14 SSI1FSS SPI omogočitveni pin. SPI komunikacija
z ADIS16256 ţiroskopom.
5 15 SSI1CLK SPI pin za urini pulze. SPI komunikacija z
ADIS16256 ţiroskopom.
6 18 Reset Reset ADIS16256 ţiroskopa.
7 22 clkInFast Hitra ura za CPLD zaščitno vezje.
8 26 PHB0 Vhod B0 kvadraturnega dekodirnika.
9 33 PHB1 Vhod B1 kvadraturnega dekodirnika.
10 34 PHA1 Vhod A1 kvadraturnega dekodirnika.
11 36 extReset Ponastavitev CPLD zaščitnega vezja.
12 37 errorDirB Javljanje CPLD napak. Prehitra menjava
smeri motorja B.
13 38 errorDirA Javljanje CPLD napak. Prehitra menjava
smeri motorja A.
14 39 errorPWMA Javljanje CPLD napak. Previsoka
frekvenca PŠM motorja A.
15 40 errorPWMB Javljanje CPLD napak. Previsoka
frekvenca PŠM motorja B.
16 41 U0RX Komunikacija UART0, sprejemanje.
Komunikacija z osebnim računalnikom.
17 42 U0TX Komunikacija UART0, oddajanje.
Komunikacija z osebnim računalnikom.
18 43 PHA0 Vhod A0 kvadraturnega dekodirnika.
19 49 PWM0 PŠM modulirana napetost za motor A
20 51 U1TX Komunikacija UART1, oddajanje.
Komunikacija z MSP430F2274.
21 52 DIRA Smer motorja A.
22 53 PWM1 PŠM modulirana napetost za motor B.
23 54 U1RX Komunikacija UART1, sprejemanje.
Komunikacija z MSP430F2274.
24 56 DIRB Smer motorja B.
25 59 ADC1 Analogno digitalna pretvorba za senzor
razdalje SHARP GP2.
26 60 ADC2 Analogno digitalna pretvorba za senzor
razdalje SHARP GP2.
27 62 ADC0 Analogno digitalna pretvorba za senzor
razdalje SHARP GP2.
Bilateralno teleoperiran kolesni mobilni robot Stran 29
4.2 Mikrokrmilnik MSP430F2274 in razvojna plošča
MSP430F2274 je 16 bitni mikrokrmilnik RISC(Reduced Instruction Set Computer)
arhitekture s von Neumanovo razporeditvijo pomnilnika od proizvajalca Texas
Instruments. Proizvajalec ima na voljo urejeno dokumentacijo [8], [9]. Najvišja frekvenca
delovanja je 16 MHz, pri čemer znaša čas izvajanja strojne inštrukcije 62,5 nS. Programski
pomnilnik znaša 32 kB, podatkovni pomnilnik znaša 1 kB.
Krmilnik iz druţine MSP430 spadajo v zelo energijsko učinkovite krmilnike. Zraven
normalnega delovanja imajo še dodatnih 5 načinov delovanja nizke porabe. Tokovna
poraba pri delovni frekvenci 1 MHz je 170 µA, v načinu nizke porabe pa tudi manj kot 1
µA.
Dva 16 bitna časovnika omogočata generiranje natančnih časovnih prekinitev, generiranje
PŠM modulirane napetosti in merjenje časovnih intervalov.
Univerzalni serijski komunikacijski vmesnik USCI(Universal serial communication
interface) omogoča komunikacijo preko protokolov UART, SPI in I2C. MSP430F2274
vsebuje dve USCI enoti. USCI A omogoča SPI in UART, I2C omogoča USCI B.
Analogno digitalni pretvornik, z ločljivostjo 10 bitov, omogoča hitrost vzorčenja do
200000 vzorcev v času ene sekunde(200 ksps). Ima 12 analognih vhodov. Pretvornik
vsebuje DTC(Data transfer controller), ki omogoča shranjevanje pretvorbe v podatkovni
pomnilnik brez prekinjanja procesorja. Modularno predstavitev mikrokrmilnika vidimo na
sliki 17.
Stran 30 Bilateralno teleoperiran kolesni mobilni robot
Slika 17: Predstavitev MSP430F2274 mikrokrmilnika
Mikrokrmilnik MSP430F2274 proizvajalec ponuja skupaj z razvojno ploščo
eZ430RF2500. Razvojna plošča vsebuje brezţično komunikacijsko enoto CC2500 ter vse
potrebne periferne enote za programiranje in razhroščevanje mikrokrmilnika ter
dokumentacijo [10] [11]. Plošča vsebuje tudi USB komunikacijo z osebnim računalnikom,
ki je bila koriščena pri izdelavi naloge.
Na sliki 18 vidimo eZ430RF2500 razvojni modul.
Slika 18: Razvojni modul eZ430RF2500
Bilateralno teleoperiran kolesni mobilni robot Stran 31
Razvojni modul ima 18 priključkov. V tabeli 2 smo navedli katere smo porabili in za
kakšen namen.
Tabela 2: Prikaz uporabljenih pinov na eZ430RF2500 razvojni plošči
Zaporedna
številka pina
Zaporedna številka pina
na razvojni plošči Ime pina Uporaba
1 3 ADC0 Analogno digitalna pretvorba za napetost
potenciometra.
2 4 ADC1 Analogno digitalna pretvorba za napetost
potenciometra.
3 5 errorDirA Javljanje CPLD napak. Prehitra menjava
smeri motorja A
4 6 errorDirB Javljanje CPLD napak. Prehitra menjava
smeri motorja B.
5 7 errorPWMA Javljanje CPLD napak. Previsoka
frekvenca PŠM motorja A.
6 8 errorPWMB Javljanje CPLD napak. Previsoka
frekvenca PŠM motorja B.
7 9 extReset Ponastavitev CPLD zaščitnega vezja..
8 13 PWMA PŠM modulirana napetost za motor A
9 14 PWMB PŠM modulirana napetost za motor B
10 15 clkInSlow Počasna ura za CPLD zaščitno vezje.
11 17 DIRA Smer motorja A.
12 18 DIRB Smer motorja B.
Stran 32 Bilateralno teleoperiran kolesni mobilni robot
4.3 Brezžična povezava med krmilno palico in mobilnim robotom
Brezţična povezava je bila realizirana z sprejemno oddajnim integriranim vezjem(v
nadaljevanju radio) CC2500 proizvajalca Chipcon. Proizvajalec ponuja dokumentacijo
[11]. Deluje v 2400 – 2483,5 MHz območju, kateremu na kratko rečejo tudi
ISM(Industrial, Scientific, Medicine). Radio je vgrajeni v razvojni modul eZ430-RF2500
proizvajalca Texas Instruments, na katerem je prav tako uporabljen mikrokrmilnik
MSP430F2274. Tako se nam ni bilo potrebno ukvarjati z načrtovanjem tiskanine za radio,
ki je lahko zelo zahtevno načrtovalsko opravilo.
Slika 19: Razvojni modul eZ430RF2500
Radio omogoča podatkovne hitrosti do 500 kBits
, je paketno usmerjen in ima veliko strojne
podpore za izvajanje operacije pošiljanja in sprejemanja podatkov preko elektromagnetnih
valov. Tako s stališča uporabnika radia preostane samo, da pri inicializaciji nastavi registre
radia, ki določajo vse lastnosti brezţične povezave(razne modulacije, kako radio prehaja iz
posameznih stanj delovanja, hitrosti…), ter nato preko SPI vodila pošiljamo in sprejemamo
podatkovne pakete.
Bilateralno teleoperiran kolesni mobilni robot Stran 33
Delovanje radia bomo orisali s pomočjo sheme na sliki 20:
Interni 8 bitni( globine 64 ) pomnilnik, posebej za sprejem in oddajanje
Po določenem časovnem intervalu(inicializacija), lahko pričnemo z konfiguracijo radia
Proces konfiguracije:- nastavitve GDO priključkov- definiramo dolžino podatkovnega paketa¸- definiramo kako naj radio dela z paketi( CRC, filtriranje naslovov, medpomnilniki,...)- nastavitve modema- nastavitve frekvenčnega sintetizatorja- samodejna nastavitev ojačenja
Stanje oddajanjaStanje omogočenega prejemanja
1…..2…..3…..4…..5…....64….
Mikrokrmilnik
MSP430
1…..2…..3…..4…..5…....64….
Po končani konfiguraciji, se radio postavi v naprej
definirano stanje( v našem primeru je to stanje
omogočenega prejemanja).
Stanja lahko kadar koli menjamo v stanje
oddajanja.
Konec konfiguracije
Sprememba stanja iz sprejemanja v oddajanje
Sprememba stanja iz oddajanja v sprejemanje
Sam
od
ejn
o p
oši
ljan
je p
od
atko
v iz
m
edp
om
niln
ika
za
od
daj
anje
Samodejno pošiljanje podatkov v sprejemni medpomnilnik
SPI komunikacijski vmesnik
Izklopljeno stanje
Vklop radia
Slika 20: Digram delovanja radia cc2500
Kot je razvidno iz slike 20, moramo po vklopu radia počakati nekaj milisekund, da se radio
inicializira(predvsem stabiliziranje internega oscilatorja). V procesu inicializacije se
kontrolni registri radia nastavijo na neke definirane vednosti. Po končani inicializaciji
lahko začnemo z nastavljanjem lastnosti radia. Nastavitvenih registrov je veliko, zato nam
proizvajalec ponuja program SmartRF, s katerim lahko z dokaj malo poznavanja notranje
arhitekture radia določimo in izvozimo vrednosti za nastavitvene registre v delovno okolje
(torej programsko orodje s katerim programiramo mikrokrmilnik MSP) v obliki
vključitvene datoteke(kar je v našem primeru .h datoteka, saj programiramo v C jeziku).
Stran 34 Bilateralno teleoperiran kolesni mobilni robot
Slika 21: Prikaz SPI signalov za komunikacijo z CC2500
Do vseh registrov radia dostopamo preko SPI vodila. SPI vodilo je v celoti definirano s
sliko 21. Vidimo, da mikrokrmilnik in radio komunicirata z 8 bitnim SPI vodilom(kar
pomeni, da ima en komunikacijski okvir 8 bitov). Kadar mikrokrmilnik pošlje zahtevo za
branje določenega registra, pošlje najprej naslov registra. Naslov registra je dolţine 6
bitov. Preostala bita določata ali gre za pisanje v register ali branje iz registra in ali se
pošilja več podatkov ali samo en. V naslednjem ciklu pisanja oz. branja, radio poda na SPI
vodilo vrednost registra, katerega naslov smo določili v predhodnem ciklu pisanja oz.
branja. SPI povezava ima časovne omejitve in omejitev hitrosti delovanja.
Po končanem nastavljanju radia, ga lahko začnemo uporabljati. Način uporabe je dokaj
preprost. V osnovi se radio nahaja v stanju prejemanja. Če ţelimo kaj poslati po radijskih
frekvencah, pošljemo po SPI vodilu podatke h radiu. Te podatke radio shranjuje v interni
pomnilnik. Ko smo shranili vse podatke v radio, pošljemo ukaz za pošiljanje. Ko je radio
začel pošiljati podatke nam to signalizira preko GDO priključkov. Enako stori kadar je
končal s pošiljanjem. Ko radio sprejme veljavne podatke po radijskih frekvencah, to
signalizira preko GDO priključkov in mikrokrmilnik lahko prebere sprejete podatke.
GDO priključki so splošno namenski pini na radiu, katerim lahko delovanje po potrebi
spreminjamo. Radio ima tri GDO priključke.To so GDO0, GDO1 in GDO2. V našem
primeru uporabljamo samo GDO0. GDO0 je nastavljen tako, da spremeni logični nivo
vedno kadar radio sprejme paket oz. ga odda. Ta signal smo izkoristili za proţenje
prekinitev v MSP krmilniku.
Bilateralno teleoperiran kolesni mobilni robot Stran 35
Proizvajalec je ponudil knjiţnico v C jeziku za delo z radiem. Tako imamo na koncu samo
funkcijo za pošiljanje podatkov in za sprejem podatkov. Za vse ostalo(konfiguracija,
pošiljanje po SPI, razpoznavanje pomena GDO priključkov, spreminjanje stanja radia,…)
skrbi knjiţnica.
4.4 MEMS žiroskopski senzor
Meritev kotne hitrosti mobilnega robota v prostoru je potrebno predvsem za regulacijski
algoritem. Uporabljen je bil ţiroskop ADIS16265, proizvajalca Analog Devices, ki deluje
po principu vibrirajoče mase. Je v MEMS izvedbi in je sposoben meriti kotno hitrost in kot
zasuka okoli ene osi. Proizvajalec ima urejeno dokumentacijo [12].
Slika 22: ADIS16260 MEMS ţiroskop
Uporabljen MEMS senzor meri kotno hitrost na podlagi zaznavanja Coriolisove sile oz.
pospeška. Coriolisov pospešek bomo razloţili s pomočjo slike 23 . Razlaga je povzeta po
[13]. Masa M se nahaja na vrteči se plošči na oddaljenosti 1r od središča vrtenja. Plošča se
Stran 36 Bilateralno teleoperiran kolesni mobilni robot
vrti s kotno hitrostjo Ω , masa M ima obodno hitrost 1v . Hitrost 1v je podana z enačbo
(4.1).
1 1v r (4.1)
Masa M se pomika proti zunanjemu robu plošče s hitrostjo v . Ko doseţe masa polmer 2r
je njena hitrost podana z (4.2).
2 2v r (4.2)
Iz (4.1) in (4.2) lahko sklepamo, da se z radialno hitrostjo mase M spreminja tangencialna
hitrost M . Spreminjanje tangencialne hitrosti pomeni nek pospešek, ki ga lahko izrazimo z
enačbo (4.3).
1ca v (4.3)
(4.3) predstavlja ravno polovico Coriolisovega pospeška. Drugo polovico predstavlja
vrtenje vektorja radialne hitrosti v , ki je podan z enačbo (4.4)
2ca v (4.4)
Coriolisov pospešek dobimo kot vsoto (4.3) in (4.4). Zaradi Coriolisovega pospeška mase
M deluje vrteča se plošča na maso M s Coriolisovo silo, ki jo izrazimo z enačbo (4.6).
1 2 Mk c cF a a (4.5)
2 MkF v (4.6)
Bilateralno teleoperiran kolesni mobilni robot Stran 37
M
M
2v
1v
1r
2r
v
v
v
kFkF
Slika 23: Ponazoritev Coriolisovega pospeška
MEMS senzor, ki smo ga uporabili, vsebuje majhno maso, ki je s pomočjo električnega
polja vzbujana tako, da niha z resonančno frekvenco [12]. Lastnost vibrirajoče mase je
njena vztrajnost, da vibrira v enaki prostorski orientaciji, če se njena podlaga začne vrteti.
Fizikalni vzroki temu so v prej opisanem Coriolisovem pojavu. Ko se podlaga, ki nudi
vibracijo, vrti, lahko odziv mase opišemo z komponentami Coriolisove sile.
v
2kF m v
m
Slika 24: Prikaz Coriolisove sile
Stran 38 Bilateralno teleoperiran kolesni mobilni robot
Ko se masa m na sliki 24 giba v smeri vektorja hitrosti v in se pojavi kotna hitrost , na
maso deluje Coriolisova komponenta hitrosti CF . Coriolisova sila povzroči premik mase
m.
Uporabljen ţiroskopski senzor vsebuje dve masni telesi. Coriolisova sila povzroča
medsebojni premik obeh mas, kar lahko merimo s spremembo kapacitivnosti med obema
masama. Tako je izničen vpliv translacijske hitrosti na ţiroskopski sistem. Princip lahko
vidimo na sliki 25.
v
kF
v
kF
mm
Slika 25: Princip delovanja MEMS ţiroskopa
Obe masni telesi vibrirata tako, da se vedno oddaljujeta oziroma pribliţujeta, torej nihata v
nasprotni fazi. Ko se pojavi kotna hitrost , sta tako komponenti Coriolisove sile na obeh
masnih telesi nasprotno orientirani, kar povzroči spremembo kapacitivnosti med telesoma.
Če se pojavi translacijska hitrost, bo ta enaka za obe masni telesi, kar pomeni enako
orientiranost Coriolisovih sil in tako ni spremembe kapacitivnosti med telesoma.
Med delovanjem MEMS senzorja nastane veliko šuma. Senzor ima vgrajen digitalni FIR
filter, s katerim lahko zmanjšamo šum, vendar s tem omejimo občutljivost.
Bilateralno teleoperiran kolesni mobilni robot Stran 39
Sam MEMS senzor nudi informacijo kotne hitrosti na podlagi kapacitivnosti, ki se
spreminja v odvisnosti od kotne hitrosti. Spremembo kapacitivnosti lahko, s
prilagoditvenim vezjem, spremenimo v enosmerni nivo napetosti, ki je odvisen od kotne
hitrosti. Zaradi principa delovanja senzor generira veliko šuma, hkrati pa meritev ni
linearna, zaradi česar je potrebna nadaljnja signalna obdelava. ADIS vsebuje signalno
obdelavo, ki izvaja ojačenje, linearizacijo meritve in filtriranje meritve.
ADIS16265 nudi moţnost nastavljanja digitalnega filtra. Tako lahko z izbiro mejne
frekvence filtra omejimo šum. Pri tem moramo paziti na potrebno dinamiko senzorja. V
senzorju sta dva digitalna FIR filtra, povezana eden za drugim, kot prikazuje slika 27.
Koeficienti se določajo interno v senzorju z Bartletovim oknom. Nastavimo samo stopnjo
FIR filtra, mejna frekvenca je podana z grafom na sliki 26.
Slika 26: Frekvenčna karakteristika FIR filtra
Slika 27: Filtriranje v ADIS16265
Stran 40 Bilateralno teleoperiran kolesni mobilni robot
Zraven digitalnega filtra ima senzor, preden se naredi analogno digitalna pretvorba
vgrajena še dva analogna filtra. Z slike 27 vidimo, da lahko nastavljamo pasovno širino
prvega filtra. Drugi filter ima določeno pasovno širino. Pasovno širino prvega filtra
izbiramo z vpisom določene vrednosti v za to namenjen register. Tako lahko prvemu filtru
določimo pasovno širino 50 Hz ali 330 Hz.
Ţiroskopu lahko nastavimo tri stopnje občutljivost. To storimo z vpisom določene
vrednosti v za to namenjen register. Moţne nastavitve so 320sek , 160
sek in 80
sek .
MEMS senzor v osnovi meri samo kotno hitrost. Signalna obdelava vsebuje tudi digitalni
integrator, ki integrira kotno hitrost in tako nudi informacijo o kotu zasuka.
Dostop do podatka kotne hitrosti in kota zasuka je moţen preko digitalnega SPI vodila ali
preko analognega izhoda.
Slika 28: Povezava senzorja preko SPI
ADIS16265 začne delovati takoj po priklopu napajanja. Interni digitalni sistem ima neke
privzete vrednosti za registre, ki določajo nastavitvene parametre. Tako lahko začnemo
brati vrednosti kota zasuka in kotne hitrosti preko SPI vodila takoj po priklopu napajanja.
Ţiroskop ima zaradi nihanja temperature in drugih dejavnikov neko določeno odstopanje.
To odstopanje najbolje opazimo kot neko vrednost kotne hitrosti, čeprav senzor miruje.
Bilateralno teleoperiran kolesni mobilni robot Stran 41
Proizvajalec je v podatkovnem listu ponudil način, kako se znebiti odstopanja [12]. Gre za
meritev odstopanja in odštevanje meritve od izhodnega signala senzorja.
Na sliki 29 lahko vidimo blokovno shemo, ki ponazarja notranjost ADIS16265. Z desne
proti levi lahko vidimo SPI komunikacijski krmilnik, nato registri, preko katerih
nastavljamo določene parametre. Sledijo sam krmilnik ţiroskopa, filtri, urini impulzi, itd.
Čisto na levi vidimo MEMS ţiroskopski senzor.
Slika 29: Shema ADIS16265 internega procesiranja
SPI vodilo ima 16 bitni okvir, ki je prikazan na sliki 30. V okvirju mora biti najprej bit, ki
ga logika v ţiroskopu razume kot pisanje v ali branje iz ţiroskopa. Nato sledi 7 bitni naslov
registra v katerega ţelimo pisati oziroma iz njega brati. V primeru pisanja v register potek
okvirja dopolnimo z 8 bitno vrednostjo, ki jo bo logika v ţiroskopu zapisala v naslovljen
register. V primeru branja iz registra je vseeno kakšni so biti od D7 do D0. Vrednost
registra, ki ga ţelimo brati, bo ţiroskop poslal na SPI vodilo v naslednjem
bralnem/pisalnem ciklu.
Slika 30: SPI komunikacija med ARM krmilnikom in MEMS ţiroskopom
Stran 42 Bilateralno teleoperiran kolesni mobilni robot
4.5 CPLD
Uporabili smo CPLD(Complex programmable logic device) CoolRunner2 proizvajalca
Xilinx. Proizvajalec nudi urejeno dokumentacijo izdelka [14]. CPLD spada v
programirljiva logična vezja. Programirljiva logična vezja so digitalna integrirana vezja,
katerim je moţno programsko določiti povezave med internimi gradniki in določiti njihovo
konfiguracijo, kar na kratko zajamemo z besedno zvezo »programiranje CPLD
vezja«.Predhodniki CPLD vezji so preprostejša PAL vezja.
PAL so sposobna med svojimi vhodi in izhodi tvoriti neko poljubno kombinacijsko logično
funkcijo. Na vhodu imajo programirljivo polje logičnih IN vrat, na izhodu pa imajo
programirljivo polje logičnih ALI vrat, kot lahko vidimo na sliki 31.
Slika 31: Struktura PAL vezja
CPLD vezja so sestavljena iz tako imenovanih funkcijskih blokov in povezovalne matrike.
Funkcijski bloki so zgrajeni iz PLD, ki je v našem primeru PAL(Programmable array
logic) in makrocelice. Uporabljen CPLD je sestavljen iz štirih funkcijskih blokov. V
vsakem bloku je 16 makrocelic. Interna zgradba uporabljenega CPLD je ponazorjena na
sliki 32.
Bilateralno teleoperiran kolesni mobilni robot Stran 43
Slika 32: Interna struktura CoolRunner2 CPLD
Na sliki 32 je predstavljena notranja struktura CPLD, ki smo ga uporabili pri nalogi. Ima
štiri funkcijske bloke. Vsak je sestavljen iz 16 makrocelic. Makrocelico vidimo na sliki 33.
Z makrocelicami se v CPLD ustvarja logika. PLA lahko med sabo povezuje vse
makrocelice in z različnimi kombinacijami jih lahko povezuje v disjunktivne ali
konjuktivne logične člene. Funkcijski bloki so povezani z povezovalno matriko.
Povezovalna matrika navadno povezuje vhodno logiko z izhodno logiko, lahko pa se
uporabi tudi za realizacijo kompleksnejše logike.
Povezovalna matrika AIM je sposobna vsak izhod oz. vhod funkcijskega bloka povezati z
drugim vhodom oz. izhodom funkcijskega bloka.
PAL zagotavlja kombinacijsko logiko in povezovanje med ostalimi makrocelicami. Sama
makrocelica je sestavljena iz nekaj logičnih vrat, globalnih linij za urine pulze,
ponastavitev, itd. Izhod makrocelice predstavlja nek flip-flop. V našem primeru je to D
flip-flop. Z dodanim spominskim elementom lahko sestavljamo tudi sekvenčna vezja in
registre. Slika 33 ponazarja makrocelico v izbranem CPLD vezju.
Stran 44 Bilateralno teleoperiran kolesni mobilni robot
Slika 33: Makrocelica CPLD
Glede kompleksnosti logičnih funkcij, ki jih CPLD vezja lahko izvajajo, spadajo med PAL
vezja in FPGA vezja in imajo značilnosti obojih. PAL vezja so sestavljena iz nekaj 100 do
nekaj 1000 logičnih vrat. CPLD vezja so sestavljena iz nekaj 10.000 logičnih vrat. FPGA
vezja so sestavljena nekaj milijonov logičnih vrat.
Ko CPLD sprogramiramo, logične povezave med makrocelicami in povezovalna matrika
ostanejo nespremenjeni tudi po ponovnem priklopu napajanja. To ne velja za FPGA, kjer
se mora programiranje izvesti vedno po ponovni priključitvi napajanja.
CPLD programiramo z VHDL jezikom. Z VHDL opišemo delovanje vezja, dokaj podobno
kot pišemo program v jeziku C, vendar med obema načinoma je zelo veliko razlik. Ko
pišemo program v VHDL v bistvu opisujemo, kako se bodo posamezne makrocelice med
sabo z povezovalno matriko povezale in skupaj z PLA bodo izvajale takšno funkcijo, ki
smo jo opisali z VHDL.
Bilateralno teleoperiran kolesni mobilni robot Stran 45
Uporabljen CPLD zahteva napajanje 1,8 V in ker je v zelo majhnem ohišju, smo raje kot
sam CPLD izbrali majhno razvojno ploščo, na kateri je nameščen CPLD in ima urejeno
napajanje in JTAG programirni vmesnik. Vsi priključni pini CPLD so izpeljani na
dostopnejše priključne pine. Razvojno ploščo C-Mod z CoolRunner2 CPLD ponuja
proizvajalec Digilent.Razvojno ploščo C-Mod vidimo na sliki 34.
Slika 34: CMod CoolRunner2
Električno shemo C-Mod razvojne plošče vidimo na sliki 35.
Slika 35: Električna shema C-Mod
Stran 46 Bilateralno teleoperiran kolesni mobilni robot
4.6 Senzor razdalje
Za merjenje razdalje mobilnega robota do objektov v okolico robota, smo uporabili optične
senzorje v infrardečem sevalnem področju(v nadaljevanju IR senzor). Obstaja veliko vrst
IR senzorjev, od preprostih s samo IR oddajno diodo in IR občutljivim
stikalom(tranzistorjem), do kompleksnejših IR senzorjev z raznimi modulacijami in
elektronskimi obdelavami signalov. Izbrali smo IR senzor proizvajalca SHARP z imenom
GP2Y0A41SK0F. Dokumentacija v [15].
Slika 36: SHARP IR senzor
SHARP IR senzor deluje tako, da pošilja IR pulze vsako milisekundo in meri vpadni kot v
katerem se svetlobni pulz vrne. Sprejemnik ima vgrajeno optično lečo, ki sprejeti IR
impulz lomi tako, da pade na IR občutljiv detektor. Iz kota sprejetega IR impulza senzor
izlušči informacijo o razdalji objekta, ki je IR impulz odbil.
Vgrajeno ima tudi obdelavo sprejetega signala, zaradi česar je senzor dokaj neobčutljiv na
reflektivnost odbojne podlage, kar je hiba vseh IR senzorjev brez obdelave signala. Senzor
je nekoliko občutljiv na dnevno svetlobo, ki pade neposredno na lečo sprejemnika.
Informacijo o razdalji dobimo na analognem izhodu iz senzorja. Senzor razdalje ima zelo
nelinearno odvisnost med razdaljo in analognim izhodom, ki jo lahko vidimo spodaj na
sliki 37.
Bilateralno teleoperiran kolesni mobilni robot Stran 47
Slika 37: Karakteristika senzorja razdalje – odvisnost analogne napetosti od razdalje
Iz prikazane odvisnosti smo ustvarili tabelo podatkov, po katerih lahko z mikrokrmilnikom
določimo koliko je razdalja med senzorjem in nekim objektom. Tabelo smo ustvarili tako,
da smo iz prikazane odvisnosti izluščili nekaj točk, jih nato vnesli v programski paket
Matlab in tam naredili linearno interpolacijo med posameznimi točkami z natančnostjo
interpoliranja 1 milimeter.
Iz senzorja uhaja veliko šuma na napajalne in tudi signalno linijo. Ko smo senzorje
priklopili na AD pretvornike nam je šum povzročal teţave, dokler nismo le tega filtrirali
(na napajalne priključke smo dodali kondenzator vezan proti masi, prav tako na signalno
linijo).
Stran 48 Bilateralno teleoperiran kolesni mobilni robot
Pravilneje bi bilo senzor povezati zaporedno s stikalom, kot je prikazano na sliki 38.
Stikalo bi vključili takrat, ko bi potrebovali meritev razdalje. Tako lahko zmanjšamo
porabo senzorjev, ki znaša med 10 in 20 mA.
.
Slika 38: Izboljšava senzorskega vezja
Senzor ima točko, kjer je napetost na izhodu največja, nato pa začne upadati, ne glede na to
če senzor pribliţamo ali oddaljimo od ovire( glej sliko 37). Tako po zagonu mobilnega
robota ne vemo točno kje se nahajamo(pred točko maksimuma ali za njim). Ker nas ne
zanima natančno določevanje pozicije robota, smo sklenili kompromis in zanemarili
karakteristiko, kjer je razdalja med objektom in senzorjem manjša kot 4 cm, kar pa
zahteva, da se mobilni robot ob vklopu ne nahaja blizu nekega objekta.
Bilateralno teleoperiran kolesni mobilni robot Stran 49
4.7 H mostič
H mostič je zbirka najmanj štirih stikal, vezanih med sabo v obliki črke H. Shemo H
mostiča z bremenom, ki predstavlja električni motor, vidimo na sliki 39.
M
S3
S4S2
S1
Pozitivno napajanje
Negativno napajanje
Slika 39: H mostič
H mostič omogoča, da skozi breme teče tok v eno ali drugo smer. H mostiči se največ
uporabljajo za pogone električnih motorjev in razsmernike. Pri enosmernem električnem
motorju lahko s spremembo smeri toka spremenimo smer vrtenja ali pa povzročimo
zaviranje motorja.
Druga prednost H mostiča je, da omogoča krmiljenje električnega motorja z
mikrokrmilnikom. Mikrokrmilnik ima tokovno zmogljivost enega pina navadno pribliţno
20 mA. Z H mostičem lahko krmilimo bremena, katerih krmilni tok je veliko večji.
H mostič navadno uporabimo kar v kombinaciji s PŠM modulirano napetostjo. Tako lahko
s prevajalnim razmerjem PŠM modulirane napetosti, določamo koliko časa je katera veja
H mostiča odprta in omogoča da tok teče skozi breme.
Preklapljati moramo vedno stikala, ki leţijo na diagonali. V mostiču ne sme nikoli v enem
trenutku biti vključenih več kot dve stikali in nikoli ne smeta biti hkrati vključeni stikali S1
Stran 50 Bilateralno teleoperiran kolesni mobilni robot
in S2 ali S3 in S4, saj v nasprotnem primeru povzročimo kratek stik. Pravilno delovanje
mostiča prikazuje slika 40. Razlika med slikama je v smeri toka skozi motor.
M
S1
S2
S3
S4
Negativno napajanje
Pozitivno napajanje
M
S3
S4S2
S1
Pozitivno napajanje
Negativno napajanje
Slika 40: Pravilno delovanje H mostiča
H mostič se navadno zgradi s tranzistorskimi stikali. Slika 41 prikazuje H mostič, kateremu
stikala predstavljajo štirje bipolarni tranzistorji.
M
S1
S2
S3
S4
Negativno napajanje
Pozitivno napajanje
Slika 41: H mostič z bipolarnimi tranzistorji
Bilateralno teleoperiran kolesni mobilni robot Stran 51
Mostič obratuje popolnoma enako kot prej opisan mostič. Mostič na sliki 41 ima dodane
polprevodniške diode. Diode vedno niso potrebne in so odvisne od bremena, ki ga poganja
H mostič in kako ga poganja. V našem primeru breme predstavlja enosmerni električni
motor, ki ga poganjamo s PŠM napetostjo. PŠM napetost krmili mostič tako, da je znotraj
periode PŠM, motor nekaj časa priklopljen na napetost in nekaj časa ne. Ker se v
induktivnosti motorja nakopiči energija v času, ko je bil motor priklopljen na napetost, se
mora le ta, ko so tranzistorji izključeni, nekje porabiti. Diode omogočajo, da se energija
lahko porabi nekje zunaj mostiča.
Omejitev H mostiča predstavljajo uporabljeni tranzistorji. Ti rabijo nekaj časa, da se
popolnoma odprejo oziroma zaprejo. Vedno, kadar preklopimo smer mostiča, moramo
počakati toliko časa, da se tranzistorja v prejšnji diagonali popolnoma zapreta. V
nasprotnem primeru lahko s prehitrim vklopom naslednje diagonale povzročimo kratek
stik.
V nalogi smo uporabili ţe zgrajen H mostič PmodHB5 proizvajalca Digilent [16]. Mostič
je zgrajen za tokove do 2 A in napetosti do 12 V. Sliko in shematski prikaz lahko vidimo
na sliki 42.
Slika 42: H mostič PmodHB5
Stran 52 Bilateralno teleoperiran kolesni mobilni robot
Na sliki 43 vidimo električno shemo uporabljenega H mostiča.
Slika 43: PModHB5 H mostič električna shema
Mostič vsebuje štiri MOSFET tranzistorje in nekaj digitalne logike. Napajanje digitalne
logike je z napetostjo od 2,3 V do 5 V. Tranzistorje mostiča krmilimo s signaloma DIR in
EN. Z signalom DIR določamo katera diagonala H mostiča je trenutno krmiljena. Z EN
vklopimo oz. izklopimo diagonalno vejo, določeno z DIR signalom. DIR signal vedno
vklopi enega od zgornjih dveh tranzistorjev(glej sliko 43). EN signal krmili enega od
spodnjih dveh tranzistorjev.
4.8 Serijska komunikacija
4.8.1 UART
UART v osnovi opravlja sprejem paralelnih bajtov podatkov in jih pretvori v niz bitov. Ta
niz nato pošlje po nekem prenosnem mediju. Oddane serijske podatke je na drugi strani
komunikacijskega medija sposoben sprejeti enak UART, ki naredi obratno pretvorbo, torej
iz serijsko prejetih informacij pretvori v paralelne informacije in jih posreduje dalje.
Serijski prenos podatkov je prenos, pri katerem se podatkovni in kontrolni biti prenašajo po
eni podatkovni liniji, bit za bitom.
Bilateralno teleoperiran kolesni mobilni robot Stran 53
UART omogoča v osnovi half duplex povezavo in full duplex. Half duplex pomeni, da
lahko sprejemnik in oddajnik komunicirata med sabo, vendar ne hkrati( ko oddajnik
oddaja, mora sprejemnik počakati na prosto linijo in nato začeti z oddajanjem). Full duplex
pomeni, da lahko oddajnik in sprejemnik komunicirata med sabo hkratno.
UART ne določa fizičnega prenosnega medija in električnih karakteristik prenosnega
medija. Ker nima definirane fizične plasti tudi nima vgrajenih prilagoditvenih vezij, ki bi
interne signale prilagodile prenosnemu protokolu fizičnega medija. Zato je potrebno
UART-u dodati primerne vmesnike. Lahko ga implementiramo na RS232, RS485, parico,
ipd. Največkrat najdemo UART v kombinaciji z RS-232 vmesnikom. V zadnjem času se
veliko uporabljajo tudi vmesniki med UART in USB.
Princip serijske komunikacije z UART podaja slika 44.
Sprejemni FIFO
Oddajni FIFO
UART krmilnik
PISO
SIPO
FIFO
Medpomnilnik
Medpomnilnik
RX
TX
CLK
k p
odat
kovnem
u v
odil
uod p
odat
kovneg
a vodil
a
Mikrokrmilnik Komunikacijski
medij
Naprava z
UART
Naprava
Slika 44: Princip komunikacije z UART
Na sliki 44 je predstavljen princip komunikacije med mikrokrmilnikom in neko napravo z
UART modulom, kar je lahko drug mikrokrmilnik, osebni računalnik ali kakšna druga
naprava z UART.
Stran 54 Bilateralno teleoperiran kolesni mobilni robot
Z slike 44 vidimo, da ima UART tri komunikacijske linije. Na RX liniji mikrokrmilnk
sprejema podatke od naprave, na TX liniji pošilja podatke k napravi. Po CLK linji se
prenašajo urini pulzi.
Podatki prispejo do UART preko paralelnega podatkovnega vodila znotraj mikrokrmilnika.
UART krmili sprejemni medpomnilnik, katerega globina je odvisna od izvedbe. Ko je
oddajni FIFO prost, UART krmilnik pretvori sprejet bajt v niz bitov in ga pomakne v
oddajni pomikalni register. Ta podatkovne bite v skladu z UART protokolom pomika na
TX linijo.
Ko naprava ţeli posredovati podatke mikrokrmilniku, jih pošlje kot niz znakov po RX
liniji. Sprejemni FIFO shranjuje vse prejete znake. Ko je sprejel celoten podatek ga UART
krmilnik pomakne v SIPO medpomnilnik in običajno generira prekinitev mikroprocesorju.
Ta se nato odloči, kaj bo storil s sprejetim podatkom.
Pri serijskem prenosu mora biti za uspešno komunikacijo med oddajnikom in
sprejemnikom sinhronizacija. Sinhronizacija pomeni časovno uskladitev sprejemnika z
oddajnikom.
Tako serijsko komunikacijo ločimo na sinhrono in asinhrono komunikacijo. UART
omogoča samo asinhrono komunikacijo, medtem ko USART omogoča asinhrono in
sinhrono.
Pri sinhroni komunikaciji se zraven podatkov od oddajnika do sprejemnika pošilja tudi urin
takt. Urin takt skrbi za sinhronizacijo med oddajnikom in sprejemnikom.
Pri asinhroni komunikaciji se pošiljajo samo podatki, brez urinega takta. Tako nastopi
problem kako sinhronizirat oddajnik in sprejemnik. Pri asinhroni komunikaciji moramo
zagotoviti nek sinhronizacijski trenutek in zagotoviti, da parametre komunikacije poznata
tako oddajnika kot sprejemnik.
Sprejemnik mora znati izluščiti začetek prenosa podatkov. To je en bit informacije in se
imenuje start bit. Start bit je definiran kot prehod podatkovne linije iz dogovorjenega
mirovnega stanja in povzroči sinhronizacijo med oddajnikom in sprejemnikom.
Parametri komunikacije so definirani z formatom podatkovnega okvirja. Podatkovni okvir
določa število podatkovnih bitov, število start in stop bitov in pariteto. Sem spada tudi
hitrost komunikacije.
Bilateralno teleoperiran kolesni mobilni robot Stran 55
Če te parametre sprejemnik in oddajnik poznata, lahko opišemo potek asinhrone
komunikacije z UART.
Na sliki 45 vidimo primer podatkovnega okvirja in pripadajoče signalne predstavitve.
Start 0 1 2 3 4 5 6 7 Pariteta Stop Stop
8 Podatkovnih bitov + (opcijsko) pariteta1 start bit 1 ali 2 stop bita
Signalni prikaz
Slika 45: Format podatkovnega okvirja in pripadajoč signalni prikaz
Mikrokrmilnik začne komunikacijo tako, da v UART naloţi podatke. UART pretvori
podatke v serijski niz bitov in na TX linijo signalizira začetek prenosa podatkov s start
bitom. Start bit povzroči sinhronizacijo ure med sprejemnikom in oddajnikom. V skladu z
definirano hitrostjo začne UART po vrsti na TX linijo pošiljati podatkovne bite. Vsak bit
traja točno določen čas. V tem času ga sprejemnik prečita. Po prenešenem dogovorjenem
številu podatkovnih bitov mora slediti en ali dva stop bita.
Sprejemni UART je sposoben ugotoviti napake med prenosom. V osnovi ima vsak UART
moţnost ugotoviti ali je prišlo do napake okvirja ali pa do prevelikega števila oddanih
bitov. Napaka okvirja nastane takrat kadar sta hitrost delovanja UART modula pri
sprejemniku in oddajniku različna.
UART nudi zelo enostavno zaščitno kodiranje, ki se imenuje pariteta. K osmim
podatkovnim bitom doda paritetni bit. Paritetni bit ima vrednost logično ena, če je število
logičnih enic v podatkovnih bitih liho in obratno. Če je med prenosom prišlo do
spremembe podatkovnih bitov, lahko to sprejemnik ugotovi tako, da izračuna pariteto in jo
primerja s prejeto. Seveda je tak način preverjanja napake zelo preprost in hitro se lahko
zgodi, da se napake med prenosom ne odkrije.
UART sprejemnik in oddajnik vedno delujeta s frekvenco, ki je nekajkrat višja, kot je
uporabljena frekvenca komunikacijske ure. Vzrok temu leţi v vzorčenju sprejetih
Stran 56 Bilateralno teleoperiran kolesni mobilni robot
podatkov. Ko UART sprejemnik sprejme nek bit podatka ga vzorči tako, da večkrat
pogleda vrednost tega bita. Na koncu vzorčenja vrednost sprejetega bita določa večinska
vzorčena vrednost. Tako v veliki meri zmanjša moţnost napake pri komunikaciji zaradi
zunanjih vplivov( inducirane napetosti v prenosnem mediju).
UART moduli implementirani v mikrokrmilnikih imajo navadno moţnosti za generiranje
prekinitev, kadar je UART prejel podatek, končal z prenosom, napolnil medpomnilnik, itd.
Podatkovne prenosne hitrosti segajo od nekaj 100 kbps do 5 Mbps.
4.8.2 SPI
SPI je preprosto štiri ţično sinhrono komunikacijsko podatkovno vodilo. Razvilo ga je
podjetje Motorola. SPI ni bil nikoli patentiran, zato ga najdemo vsepovsod, kjer je potreba
po komunikaciji z nizkimi podatkovnimi hitrostmi. Je full duplex komunikacijsko vodilo,
kar pomeni, da lahko podatki tečejo v obe smeri hkrati. Naprave povezane v SPI vodilo so
vedno v razmerju gospodar in suţenj. Gospodar vedno upravlja z začetkom in koncem
komunikacije in krmili urine pulze. Vsak suţenj ima signal za omogočitev, ki ga krmili
gospodar. Hitrosti dosegajo vrednosti do nekaj 10 Mbps. Namenjen je komuniciranju med
posameznimi integriranimi vezji. Za večje razdalje ni primeren zaradi relativno velike
komunikacijske hitrosti. Po navadi je SPI uporabljen za komunikacijo med
mikroprocesorjem in zunanjo enoto npr. analogno digitalni pretvornik, EPROM, razni
senzorji…
Za SPI ni bil ustvarjen komunikacijski protokol, tako kot npr. za USB. Proizvajalci SPI
komunikacije v podatkovnih listih z nekaj preprostimi skicami in obrazloţitvami pokaţejo
kakšen je protokol komuniciranja z napravo. SPI v mikrokrmilnikih je vedno bolj ali manj
prilagodljiv, tako da se lahko prilagodi komunikacijskemu protokolu naprave, s katero bo
potekala komunikacija.
Na istem vodilu se navadno nahaja en gospodar in en ali več suţnjev. Moţno je na istem
vodilu imeti več gospodarjev, vendar v tem primeru postane vodilo zapleteno, saj mora
imeti vsak gospodar signal za omogočitev suţnja, hkrati pa moramo uvesti tudi nek
protokol, ki preprečuje hkraten dostop do vodila več kot enemu gospodarju. Z tega stališča
postane SPI skoraj neuporaben v primerjavi z drugimi komunikacijskimi protokoli.
Bilateralno teleoperiran kolesni mobilni robot Stran 57
SPI vodilo sestavljajo štiri komunikacijske linije.
MOSI (Master out slave in). MOSI signal so informacije, ki jih pošilja gospodar in
sprejema suţenj.
MISO (Master in slave out). MISO signal so informacije, ki jih pošilja in sprejema
gospodar.
CLK (Serial clock« ). CLK signal so urini pulzi in jih vedno generira gospodar.
SS (Slave select). SS signal generira gospodar in omogoča ali onemogoča suţnja za
komunikacijo.
Od teh štirih signalov sta MISO in MOSI podatkovna, CLK in SS pa kontrolna.
Če sta na vodilu povezana en gospodar in en suţenj, potem medsebojno povezavo kaţe
slika 46.
MISOMOSI
CLK
SS
MISOMOSI
CLK
SS
SPI MASTER SPI SLAVE
Slika 46: Povezava gospodar – suţenj
Stran 58 Bilateralno teleoperiran kolesni mobilni robot
SPI omogoča tudi povezavo več suţnjev z enim gospodarjem, kar vidimo na sliki 47.
MISOMOSI
CLK
SS 1
MISOMOSI
CLK
SS
SPI MASTER SPI SLAVE 1
MISOMOSI
CLK
SS
SPI SLAVE 2
MISOMOSI
CLK
SS
SPI SLAVE 3
SS 2
SS 3
Slika 47: Povezava gospodar - suţnji
Parametri SPI povezave so frekvenca urinih pulzov na CLK liniji, širina okvirja (navadno
od 4 do 16 bitov) ter CPOL in CPHA.
CPHA določa pri kakšnem prehodu urinega pulza se podatki na MISO in MOSI vodilu
osveţujejo in vzorčijo. CPOL določa kakšen logični nivo zaseda CLK linija, ko ne poteka
komuniciranje. CPOL in CPHA vplivata na to kako so podatki vzorčeni in osveţevani. Ta
dva parametra omogočata štiri različne kombinacije vzorčenja in osveţevanja. Vse štiri
kombinacije so med sabo nezdruţljive.
Prikaz SPI signalov pri komunikaciji za CPOL = 0 in CPHA = 1 prikazuje slika 48. Ura je
v neaktivnem stanju nizka, podatki na MISO in MOSI liniji pa se vzorčijo s pozitivnim
prehodom urinega pulza.
Bilateralno teleoperiran kolesni mobilni robot Stran 59
Slika 48: Primer SPI komunikacije CPOL = 0 in CPHA = 1
Dolţina podatkovnega okvirja je omejena s pomikalnim registrom znotraj SPI modula.
Kolikor bitni je pomikalni register, toliko bitov lahko pošljemo v enem okvirju. Vedno
kadar urin impulz naredi prehod iz visokega v nizko stanje, se na MISO in MOSI linijah
pojavi nova vrednost bita. SPI navadno pošilja bite od tistega z največjo uteţjo, do tistega z
najmanjšo, vendar tudi to ni definirano z SPI. Na sliki 49 lahko vidimo princip
komunikacije s stališča pomikalnih registrov.
0
1
2
3
4
.
.
n
MISO registerMOSI register
0
1
2
3
4
.
.
n
0
1
2
3
4
.
.
n
MISO register MOSI register
0
1
2
3
4
.
.
n
SPI GOSPODAR SPI SUŢENJ
CLK pulzi
Slika 49: MISO in MOSI pomikalni registri
Po navadi se začne komunikacija tako, da gospodar s SS signalom omogoči suţnja. Nato v
skladu s parametri komunikacije gospodar začne generirati urine pulze z neko določeno
frekvenco.
Stran 60 Bilateralno teleoperiran kolesni mobilni robot
Ker SPI ne definira komunikacijskega protokola, je le ta odvisen od posamezne naprave.
Po navadi komuniciramo z napravo, iz katere ţelimo prebrati nek točno določen register.
Za ta namen moramo najprej suţnju posredovati naslov registra, ki ga ţelimo prečitati.
Ko je gospodar posredoval celoten naslov registra, ki nas zanima, signalizira konec
prenosa, ki je spet odvisen od naprave s katero komuniciramo. Po navadi je to kratek pulz z
SS signalom. Ko je suţenj spet omogočen pričakujemo na MISO liniji vrednosti registra,
ki smo ga zahtevali v prejšnjem komunikacijskem okvirju. Ker gospodar krmili urine
pulze, mora tako na CLK linijo pošiljati urine pulze. Ti povzročijo, da suţenj začne na
MISO linijo zaporedoma pošiljati bite registra, ki je bil naslovljen v prejšnjem
komunikacijskem okvirju.
Bilateralno teleoperiran kolesni mobilni robot Stran 61
5 OPIS PROGRAMSKE OPREME
5.1 IAR Embedded Workbech IDE
IAR Embedded Workbench® IDE je računalniška programska oprema, ki vključuje vse
potrebno za razvoj vgrajenih sistemov. IAR tako vsebuje naslednja orodja:
● MSP430 IAR C/C++ prevajalnik
● MSP430 IAR prevajalnik strojni jezik
● IAR XLINK Linker
● Urejevalnik kode
● Projektni menedţer
● IAR C-SPY™ razhroščevalnik
Prikaz urejevalnika IAR IDE lahko vidimo na Slika 50.
Stran 62 Bilateralno teleoperiran kolesni mobilni robot
Slika 50: IAR IDE urejevalnik kode
V nalogi smo uporabili IAR IDE Embedded Workbench 5.4 KickStart. KickStart označuje,
da gre za študentsko verzijo programa. Slednjo lahko snamemo s proizvajalčeve spletne
strani. KickStart verzije imajo omejitev velikost kode na 4 kB.
IAR IDE obstaja tudi kot plačniška verzija.
IAR IDE lahko uporabimo tudi za programiranje mikrokrmilnikov drugih proizvajalcev. V
naši nalogi smo z IAR IDE napisali program za dva različna krmilnika proizvajalca Texas
Instruments. Z IAR IDE je moţno programirati tudi Atmel , Microchip, Renesas,
Samsung in STMicroelectronics mikrokrmilnike.
Po namestitvi in zagonu IAR okolja izberemo novi projekt(kliknemo »Project« in nato
»Create New Project«). Nato se moramo odločiti kateri prevajalnik in programski jezik
bomo uporabljali. Na voljo imamo strojni jezik, C ali C++ prevajalnik(glej sliko 51). Za
mikrokrmilnike se navadno odločimo za programiranje v jeziku C. Z pritiskom na »OK«
moramo izbrati lokacijo, kjer ţelimo, da se projekt ustvari.
Bilateralno teleoperiran kolesni mobilni robot Stran 63
Slika 51: Izbira programskega jezika
Ko smo naredili novi projekt, moramo projekt tudi primerno nastaviti. Med najvaţnejšimi
nastavitvami je določitev mikrokrmilnika, ki ga bomo uporabili. Desni klik na ime projekta
in nato na »Options«. Odpre se nam okno, kjer nastavimo vse v zvezi z projektom,
prevajanjem programa, knjiţnice, nalaganjem programa v pomnilnik mikrokrmilnika, itd.
Na desni izberemo kategorijo »General Options« in v okvirčku »Device« določimo
mikrokrmilnik, za katerega pišemo program(glej sliko 52).
Stran 64 Bilateralno teleoperiran kolesni mobilni robot
Slika 52: Izbira mikrokrmilnika
Naslednja pomembna nastavitev je, da bomo napisani program naloţili v pomnilnik
mikrokrmilnika in programa ne bomo simulirali. Desni klik na ime projekta in nato na
»Options«. Kliknemo na kategorijo »Debugger« in v okvirčku »Drive« izberemo »FET
Debugger«.
Bilateralno teleoperiran kolesni mobilni robot Stran 65
Slika 53: Izbira razhroščevalnik ali simulator
Po ustvarjenem projektu lahko začnemo z urejevalnikom pisati program.
Ena od dobrih lastnosti IAR programskega okolja je, da lahko delamo v enem IAR okolju
hkrati z večimi različnimi programi, ki pa morajo biti za enak mikrokrmilnik. Tako nam ni
potrebno imeti za vsak program zagnan en IAR IDE, ampak lahko znotraj enega okolja
hitro menjavamo programe med sabo. To storimo tako, da si za vsak program naredimo
delovno okolje. Delovno okolje(»Workspace«) dodamo tako, da kliknemo na »Project« in
izberemo »Edit Configurations«. Tukaj lahko izberemo imena za uporabljena delovna
okolja. Na začetku sta vedno izbran »Debug« in »Release«(glej sliko 54).
Slika 54: Imena delovnih okolji
Za vsako vključeno datoteko lahko določimo v katerem delovnem okolju bo veljavna. Če
se nahajamo v delovnem okolju »Debug« lahko z desnim klikom na vključeno datoteko
izberemo »Options«. V odprtem oknu, imamo v zgornjem desnem kotu moţnost obkljukati
Stran 66 Bilateralno teleoperiran kolesni mobilni robot
»Exclude from build«. Če obkljukamo, smo datoteko izključili iz trenutnega delovnega
okolja. Tako datoteka ne bo vključena v proces prevajanja programa. Prednost tega je tudi
manj kompleksen projekt, če imamo več programov, ki si med sabo delijo vključitvene
datotek.
5.2 Xilinx ISE Design Suite 13.1
Xilinx ISE WebPACK je programski paket za simulacijo in sintezo programirljivih
logičnih vezij, kot so CPLD in FPGA. Namenjen je samo za programiranje programirljivih
logičnih vezij proizvajalca Xilinx. V tem poglavju bomo na kratko opisali kako ustvarimo
novi projekt, razporedimo vhodne in izhodne pine logičnega vezja in generiramo .bit
datoteko, ki jo lahko uporabimo pri programiranju programirljivih logičnih vezij.
ISE smo uporabili za programiranje CPLD logičnega programirljivega vezja proizvajalca
Xilinx.
Xilinx ISE WebPACK lahko brezplačno snamemo z proizvajalčeve spletne strani.
Pri naši nalogi smo uporabili Xilinx ISE WebPACK 13.1.
Po namestitvi in zagonu Xilinx ISE Design Suite moramo najprej ustvariti novi projekt.
Kliknemo na »File« in »New Project«(glej sliko 55).
Bilateralno teleoperiran kolesni mobilni robot Stran 67
Slika 55: Ustvarjanje novega projekta v ISE Design Suite
Vnesemo ime projekta in pot, kjer ţelimo da se projekt ustvari.
Kliknemo »Next« in ISE zahteva, da vnesemo podatke o druţini logično programirljivih
vezij(glej sliko 56).
Stran 68 Bilateralno teleoperiran kolesni mobilni robot
Slika 56: Lastnosti uporabljenega programirljivega vezja
Ko vnesemo vse podatke, ki jih ISE zahteva kliknemo »Next« in ustvari se prazen projekt,
ki je prikazan na sliki 57.
Bilateralno teleoperiran kolesni mobilni robot Stran 69
Slika 57: Prazen projekt v ISE
V oknu oštevilčenim z 1 in imenovanim »Design«, se nahajajo vse izvorne datoteke
povezane s trenutnim projektom in vsi procesi, ki jih lahko izvaja ISE.
Okno označeno s številko 2 je urejevalnik kode. V njem pišemo in urejamo izvorne
datoteke.
Okno označeno s številko 3 je uporabljeno za izpis informacij o sintezi, kot so napake in
opozorila.
Stran 70 Bilateralno teleoperiran kolesni mobilni robot
Ko smo ustvarili prazen projekt dodamo novo izvorno datoteko, v kateri lahko z HDL
jezikom opišemo ţeleno logično vezje. To naredimo z desnim klikom na ime projekta v
Design oknu in izberemo »New Source«(glej sliko 58).
Slika 58: Dodajanje nove izvorne datoteke
Za novo izvorno datoteko moramo izbrati v katerem HDL jeziku bomo opisali digitalno
vezje. Izbrali smo VHDL in jo poimenovali Izvorna_VHDL ( glej sliko 59).
Bilateralno teleoperiran kolesni mobilni robot Stran 71
Slika 59: Izbira HDL jezika nove izvorne datoteke
Kliknemo na Next in v naslednjem oknu si moramo izbrati vhode in izhode modula, ki ga
bomo programirali. Na modul lahko gledamo kot na neko zaključeno digitalno vezje(npr.
seštevalnik). Izberemo si lahko vhode in izhode modula.
ISE nam nato ustvari novo izvorno datoteko in v njo doda definicijo prej izbranega
modula.
Od tukaj naprej z izbranim HDL jezikom opišemo notranjost modula.
Ko smo zaključili z HDL opisom, moramo določiti kateri vhodi in izhodi v modul so
fizični vhodni in izhodni pini uporabljenega programirljivega logičnega vezja. V oknu, kjer
so prikazani procesi, odpremo »User Constraints« in dvakrat kliknemo na »Floorplan IO«.
Odpre se nam urejevalnik PACE., kjer lahko vhode in izhode modula priredimo fizičnim
vhodom in izhodom programirljivega vezja(glej sliko 60).
Stran 72 Bilateralno teleoperiran kolesni mobilni robot
Slika 60: ISE PACE urejevalnik fizičnih vhodov in izhodov programirljivega vezja
Ko imamo opis v HDL in UCF datoteko, lahko poţenemo sintezo, ki nam generira .bit
datoteko, ki jo lahko uporabimo za programiranje programirljivega vezja.
Bilateralno teleoperiran kolesni mobilni robot Stran 73
Slika 61: Sinteza v ISE
V našem primeru smo za programiranje CPLD vezja uporabili programsko opremo Adept,
proizvajalca Digilent. Adept je brezplačno snemljiv z proizvajalčeve spletne strani. Za
programiranje CPLD naprave Adept zahteva datoteko z .bit končnico, ki jo generira ISE po
sintezi. Z Adeptom izberemo to datoteko in jo naloţimo v CPLD napravo.
Stran 74 Bilateralno teleoperiran kolesni mobilni robot
5.3 Altium Designer 9
Altium Designer je programski paket za izdelovanje tiskanih vezij, programiranje FPGA
vezij in načrtovanje programskih rešitev v vgrajenih sistemih.
Po inštalaciji in zagonu Altiuma moramo najprej ustvari prazen projekt. To storimo kot
prikazuje slika 62.
Slika 62: Novi projekt v Altium-u
Ustvarjen projekt je prazen. Načrtovanje tiskanine navadno začnemo z električno shemo.
Prazno shemo dodamo z desnim klikom na ustvarjen projekt, nato kliknemo »Add New to
Project« in nadalje »Schematic«( glej sliko 62).
Bilateralno teleoperiran kolesni mobilni robot Stran 75
Slika 63: Dodajanje prazne sheme
V prazno shemo lahko dodajamo komponente in jih poveţemo v ţeleno vezje. Altium ima
na volja bogato zbirko knjiţnic z komponentami različnih proizvajalcev. Če ţelimo
poiskati kako komponento jo poiščemo z iskalnikom. V desnem zgornjem kotu se nahaja
zavihek »Libraries«. Ko kliknemo na »Libraries« se pojavi novo okno v katerem imamo
moţnost iskanja po bazi komponent(glej sliko 64).
Stran 76 Bilateralno teleoperiran kolesni mobilni robot
Slika 64: Iskanje po knjiţnici komponent Altium-a
Ko najdemo ţeleno komponento jo lahko ponesemo v shemo. Ko smo dokončali električno
shemo ţelenega vezja lahko začnemo načrtovati tiskanino.
Bilateralno teleoperiran kolesni mobilni robot Stran 77
K projektu moramo dodati še prazno tiskanino. Tiskanino dodamo enako kot shemo, le da
namesto »Schematic« izberemo »PCB«(glej sliko 65).
Slika 65: Dodajanje tiskanine v projekt
Pojavi se prazna tiskanina. Nadaljnji korak je, da vse komponente uporabljene v shemi
dodamo v tiskanino. To storimo tako, da v shemi(torej nahajati se moramo v urejevalniku
sheme) kliknemo na »Design« in nato »Update PCB document«. Pojavi se seznam vseh
komponent, ki se bodo pojavile v tiskanini. Potrdimo seznam in v tiskanini se pojavijo vse
komponente, ki smo jih načrtovali v shemi. Vse komponente so med sabo povezane z
ravnimi belimi črtami, kar olajša gradnjo tiskanine. Z Altium-om lahko brez teţav
načrtamo dvostransko ali tudi večplastno tiskanino.
Stran 78 Bilateralno teleoperiran kolesni mobilni robot
5.4 LabView
LabView je grafično okolje za programiranje in nadzor aplikacij za zajem in prikazovanje
merilnih rezultatov, nadzor merilne opreme in nudi veliko podpore obdelovanju podatkov.
Razvilo ga je podjetje National Instruments. Komunikacijski protokoli do merilne
instrumentacije so standardizirani, zato lahko z LabView uporabljamo široko paleto
merilnih instrumentov različnih proizvajalcev. Sestavljen program v LabView je mogoče
razhroščevati s postavljanjem prekinitvenih točk.
Med prednostmi LabView je predvsem skrajšanje časa razvoja določenega izdelka, saj se
razvoj programske opreme bistveno poenostavi. Za pisanje programov v LabView tako ni
potrebno poznati sintakse programskega jezika, kar je potrebno pri tekstovno usmerjenih
programskih jeziki. Programiranje z LabView je tudi hitrejše. Za programiranje v LabView
je navadno dovolj, da pregledamo pripadajoča navodila, ki jih ponudi National Instruments
in lahko kaj hitro začnemo sestavljati programe. Tako se nam ni treba ukvarjati z problemi,
ki tako ali drugače niso povezani z problemom, ki ga rešujemo( npr. komunikacije).
Programi v LabView se imenuje virtualni instrumenti oz. VI, ker sta njihova uporaba in
izgled zelo podobno realni instrumentacijski opremi.
VI ustvarjamo v dveh oknih. Ena se imenuje čelna plošča, druga blokovni diagram.
Čelno ploščo lahko primerjamo z čelno ploščo fizičnega instrumenta. Z čelno ploščo lahko
krmilimo aplikacijo, ki smo jo ustvarili z LabView. Na čelni plošči so različni gumbi,
vrtljivi gumbi, prikazovalniki, itd. Z njimi je moţno spremljati rezultate in npr. določiti
začetek neke meritve.
Bilateralno teleoperiran kolesni mobilni robot Stran 79
Primer čelne plošče vidimo na sliki 66.
Slika 66: Primer čelne plošče v LabView
V blokovnem diagramu ustvarimo LabView program v grafični kodi. Vse kar je na čelni
plošči, je prisotno tudi v blokovnem diagramu. Lahko bi rekli, de je blokovni diagram
izvorna koda za čelno ploščo.
V blokovnem diagramu tako dodamo na primer blok za serijske komunikacije, v čelni
plošči pa imamo moţnost spreminjanja parametrov komunikacije.
Primer LabView blokovnega diagrama vidimo na sliki 67.
Stran 80 Bilateralno teleoperiran kolesni mobilni robot
Slika 67: Primer blokovnega diagrama v LabView
LabView je mišljen za tako imenovano modularno programiranje. V LabView sestavljamo
programe iz podprogramov. Z podprogrami poskušamo dani problem reševati tako, da nek
postopek razdelimo na enostavne pod postopke, kar predstavlja podprograme. V VI imamo
lahko veliko podprogramov. Te gradimo dokler ne postanejo posamezni podprogrami zelo
enostavni.
Bilateralno teleoperiran kolesni mobilni robot Stran 81
6 IMPLEMENTACIJA TELEOPERATORSKEGA SISTEMA
6.1 Regulacijska shema v mikrokrmilniku
Regulacijska shema predstavljena v poglavju 3.2 se bo izvajala v diskretni obliki na
mikrokrmilniku Stellaris LM3S1968. V tem podpoglavju bomo na kratko predstavili kako
poteka izračun regulacijskega algoritma.
Na sliki 68 lahko vidimo računsko shemo, ki je popolnoma enaka prej predstavljeni
regulacijski shemi, le da v ospredje postavi vrstni red računanja, ki ga izvaja
mikrokrmilnik.
Stran 82 Bilateralno teleoperiran kolesni mobilni robot
4368
4368
re
f4368
4368
2co
s
42
2co
s4
2
senzo
r_x
F
0
72
4 1
DM
D
0 -
1.7
78
rad
erro
r
Xd
320
π
436
81
80
Dro
bM
J
A
A-B
BA
B
A B
AB
AB
A AB B
A
B-A
B
80
π
500
180
0 -
1.7
78
rad
ref
0 -
1.7
78
rad
VK
A
AB
B
A
B-A
B
A
AB
B
A
AB
B
A
AB
BR
OB
OT
J
senzo
r_le
vo
F0
-
10
24
senzo
r_des
no
F0
-
10
24
senzo
r_le
vo
_y
F
0 -
724
senzo
r_des
no_y
F
0 -
724
AB
A B
AB
A B
Določanje razdalje do
ovire
Določanje razdalje do
ovire
AB
A B
AB
A B
razd
alja
_le
vo
F
0 -
400
razd
alja
_des
no
F
0 -
400
VZ
ME
TK
VZ
ME
TK
τ
A-B
A B
X
Slika 68: Izračun krmilnega navora
Bilateralno teleoperiran kolesni mobilni robot Stran 83
senzo
r_le
vo
F0
-
102
4
2si
n
4
2
senzo
r_des
no
F0
-
10
24
2si
n
42
sen
zor_
levo
_y
F
0 -
724
senzo
r_des
no_y
F
0 -
724
senzo
r_sp
redaj
F0
-
10
24
AB
A B
AB
A B
A-B
A B
Določanje razdalje do
ovire
Določanje razdalje do
ovire
Določanje razdalje do
ovire
AB
A B
AB
A B
AB
A B
razd
alja
_le
vo
F0
-
40
0
razd
alja
_des
no
F0
-
400
razd
alja
_sp
redaj
F0
-
400
VZ
ME
TK
VZ
ME
TK
VZ
ME
TK
levo
F
des
no
F spre
daj
F
A B C
A+
B+
CXF
ref
F0
-
50
0
A-B
A BV
ZM
ET
,RE
FK
X,R
EF
F
F
Slika 69: Izračun krmilne sile
Stran 84 Bilateralno teleoperiran kolesni mobilni robot
b
aN
m
R1 RU
p 2b K
L
R
A+B
A
B
A-B
A
B
A B
A
B
A B
A
B
A B
A
B
F
τ
Slika 70: Izračun PŠM
Bilateralno teleoperiran kolesni mobilni robot Stran 85
6.1.1 Celoštevilska aritmetika
Uporabljen mikrokrmilnik lahko računa samo z celimi števili. Zaradi tega moramo
računanje z racionalnimi števili nadomestiti s primernim računskim algoritmom ali pa
priredimo računanje z celoštevilsko aritmetiko(nasprotno bi bilo računanje s plavajočo
vejico).
Celoštevilska aritmetika se uporablja tam, kjer hočemo računati z racionalnimi števili z
mikroprocesorji, ki nimajo aritmetične enote s plavajočo vejico.
Način uporabe celoštevilčne aritmetike je sledeč:
- racionalno število pretvorimo v celoštevilčno število
- opravimo potrebne računske operacije
- pretvorimo število nazaj v racionalno število
Racionalno število lahko z celimi števili v dvojiškem sistemu zapišemo z (6.1).
Q 2 e
e m (6.1)
V (6.1) je e eksponent in m je mantisa. Mantisa je število v formatu eQ , ki je shranjeno v
registru mikrokrmilnika. Eksponent nosi informacijo o formatu mantise in ga
mikrokrmilnik ne pozna. Za eksponent mora skrbeti programer.
Stran 86 Bilateralno teleoperiran kolesni mobilni robot
V tabela 3 vidimo zapis različnih racionalnih števil, ki imajo enako mantiso.
Tabela 3: Pretvorba iz celoštevilčnega števila v racionalno število
Mantisa -
binarno
Mantisa -
desetiško Eksponent Binarno število
Desetiško
število
01100100 100 0 01100100. 100
01100100 100 1 0110010.0 50
01100100 100 2 011001.00 25
01100100 100 3 01100.100 12,5
01100100 100 4 0110.0100 6,25
01100100 100 5 011.00100 3,125
01100100 100 -1 011001000. 200
01100100 100 -2 0110010000. 400
Število 25 je zapisano v formatu 2Q . V tem formatu zapisujemo racionalna števila, za
katera je dovolj, da so zapisana z natančnostjo 2 12 0,25
4
. Za tako natančnost pri 8
bitnem dvojiškem številu porabimo dva bita. Ko smo določili natančnost števila, smo
hkrati tudi omejili velikost števila, ki ga lahko zapišemo v takšnem formatu. Največje
število, ki ga tako lahko zapišemo v 2Q z osmimi biti je zapisano v (6.2).
255
255 0,25 63,754
(6.2)
Število 3,125 je zapisano v 5Q formatu. Ta format ima natančnost kot je zapisano z (6.3).
5 12 0,03125
32
(6.3)
Za zapis števila v omenjenem formatu z osmimi biti porabimo 5 bitov za natančnost in 3
bite za velikost števila. Tako je največje število, ki ga lahko zapišemo v 5Q prikazano v
(6.4).
Bilateralno teleoperiran kolesni mobilni robot Stran 87
255
7,9687532
(6.4)
Pri zapisu racionalnega števila imamo na voljo več moţnosti. Isto število lahko zapišemo v
več različnih formatih. Kateri format uporabimo je odvisno od potrebne natančnosti in
velikosti števil.
V tabela 3 smo videli kako iz mantise v določenem formatu izračunamo racionalno število.
Enako pomembna je pretvorba iz racionalnega števila v celoštevilčno število.
Število 103,594 zapišimo v 5Q z šestnajstimi biti. Pretvorba iz celoštevilčnega števila v
racionalno število pomeni v binarnem zapisu premik vejice v levo za e mest, oziroma
mnoţenje desetiškega števila z 2e . Če pretvarjamo iz racionalnega števila v celoštevilčno
število premaknemo vejico v desno za določeno število mest. Število mest določa ţeleni
format celoštevilčnega števila.
Zapis števila 103,594 v binarnem številskem sistemu je v (6.5).
10 2
103.594 1100111.1001 (6.5)
Binarnemu številu v (6.5) sedaj premaknemo vejico za 5 mest v desno, kot je to prikazano
v (6.6).
1100111.1001 5 110011110010 (6.6)
Zaradi končne natančnosti celoštevilčnih števil vedno kadar pretvarjamo iz racionalnih v
celoštevilčna števila naredimo napako zaradi pretvorbe. Če binarno število v (6.6)
pretvorimo nazaj v racionalno, lahko vidimo napako, ki smo jo naredili pri pretvorbi.
5Q
6 5 2 1 0 1 4
2
0000110011110010 5 00001100111.10010
00001100111.10010 2 2 2 2 2 2 2 103.5625
Če obe števili med sabo odštejemo vidimo, da je razlika med njima manjša kot je
natančnost formata zapisa celoštevilskega števila
103.594 103.5625 0.0315
Z vsemi mantisami mikrokrmilnik izvaja aritmetiko na enak način. Tako je za
mikrokrmilnik popolnoma vseeno, če med sabo sešteva dva različna formata števil. Naloga
Stran 88 Bilateralno teleoperiran kolesni mobilni robot
programerja je, da pazi na računske operacije in na koncu število pravilno pretvori nazaj v
racionalno število.
Na kratko bomo razloţili na kaj je potrebno paziti pri osnovnih aritmetičnih operacijah, če
jih izvajamo v nQ formatu.
Seštevamo in odštevamo lahko samo tista števila, ki so v enakem številskem formatu.
Q 2 n
n x in
Q 2 m
m y lahko med sabo seštejemo le, če sta eksponenta m in n med sabo
enaka.
n mQ Q 2 2 2 ; n m nx y x y n m (6.7)
Mnoţimo lahko števila, ki so v različnih formatih.
n mQ Q 2 2 2n m n mx y x y (6.8)
Enačba (6.8) pove, da pri zmnoţku dveh števil v nQ formatu dobimo rezultat v 2nQ
formatu. Pri pretvorbi racionalnega števila v celo število smo opozorili na največje število,
ki ga lahko zapišemo pri določenem formatu števila in pri določenem številu bitov. Tako
se pri mnoţenju pojavi nevarnost, da med sabo zmnoţimo dve števili, katerih rezultat je
prevelik za določeno število bitov. Preden mnoţimo med sabo števila, moramo poznati
njihove največje vrednosti in temu primerno prirediti celoštevilski format števil.
6.1.2 Računanje z celoštevilsko aritmetiko v jeziku C
Za posluţevanje celoštevilske aritmetike v jeziku C uporabljamo predvsem bitne operacije
(premik bitov za določeno število), mnoţenje in spreminjanje podatkovnega tipa.
Sledi primer kode v programskem jeziku C, ki ponazarja pretvorbo nekega števila v Q18
format, mnoţenje v Q18 formatu in pretvorbo nazaj v Q0 format.
unsigned float d1 = 0.0324; // Racionalno število
unsigned float d2 = 2.0345; // Racionalno število
unsigned long long c1,c2,u;
c1 = (unsigned int)(d1*8192 ); // Pretvorba v Q18
Bilateralno teleoperiran kolesni mobilni robot Stran 89
c2 = (unsigned int)(d2*8192 ); // Pretvorba v Q18
// Najprej d1, d2 pretvorimo v Q18. Po množenju je še vedno
// racionalno število( torej tipa float ). Z predpono
// (unsigned int) pretvorimo zmnožek v celoštevilčno
število.
u = ( ( c1 * c2 ) >> 18 )
// V tem primeru mikrokrmilnik množi dve celoštevilski
števili
// kar pomeni, da se množenje izvede v enem strojnem ciklu.
// Po množenju dobimo število v formatu Q36, zato spremenimo
// format v Q18 z bitnim operatorjem pomika.
u = ( u>>18 )
// Na koncu računskih operacij pretvorimo število nazaj v Q0
Z mnoţenjem z vrednostjo 8129 smo spremenil d1 in d2 v potreben format, vendar
mikrokrmilnik je števili še vedno dojemal kot števili z plavajočo vejico. Z spremembo
formata števila v int, dobimo celoštevilsko število v ţelenem formatu.
Na koncu je rezultat, shranjen v u enak 0. Zmnoţek števil d1 in d2 je manjši kot 1. V Q0
formatu je najmanjše število, ki ga lahko zapišemo enako 1.
6.1.3 IQMath knjiţnica v jeziku C
IQMath je programska rešitev celoštevilčne aritmetike na Stellaris ARM M3
mikrokrmilnikih. Knjiţnica je napisana za uporabo v programskem jeziku C ali v strojnem
jeziku ARM. Z IQMath lahko pretvarjamo racionalna števila v celoštevilčna števila
različnih formatov in izvajamo celoštevilske računske operacije. IQMath knjiţnica je
napisana z namenom, da snovalcu programske rešitve ponudi laţje in predvsem
preglednejše računanje z celoštevilsko aritmetiko. Tako mora programer načeloma določiti
format števila na podlagi poznane natančnosti in dinamičnega razpona števil.
Vse spremenljivke, ki jih uporabljamo s knjiţnico so 32 bitna predznačena števila. Različni
formati, ki jih lahko uporabljamo s knjiţnico so predstavljeni v tabeli 4.
Stran 90 Bilateralno teleoperiran kolesni mobilni robot
Tabela 4: Moţni formati števil v IQMath knjiţnici
Format
Število bitov za
racionalni in celi
del
Razpon določenega formata števila
Ločljivost
Celi
del
Racionalni
del
Najmanjše
število
Največje
število
_iq30 2 30 -2 1,999999999 0,000000001
_iq29 3 29 -4 3,999999998 0,000000002
_iq28 4 28 -8 7,999999996 0,000000004
_iq27 5 27 -16 15,999999993 0,000000007
_iq26 6 26 -32 31,999999985 0,000000015
_iq25 7 25 -64 63,999999970 0,000000030
_iq24 8 24 -128 127,999999940 0,000000060
_iq23 9 23 -256 255,999999881 0,000000119
_iq22 10 22 -512 511,999999762 0,000000238
_iq21 11 21 -1,024 1.023,999999523 0,000000477
_iq20 12 20 -2,048 2.047,999999046 0,000000954
_iq19 13 19 -4,096 4.095,999998093 0,000001907
_iq18 14 18 -8,192 8.191,999996185 0,000003815
_iq17 15 17 -16,384 16.383,999992371 0,000007629
_iq16 16 16 -32,768 32.767,999984741 0,000015259
_iq15 17 15 -65,536 65.535,999969483 0,000030518
_iq14 18 14 -131,072 131.071,999938965 0,000061035
_iq13 19 13 -262,144 262.143,999877930 0,000122070
_iq12 20 12 -524,288 524.287,999755859 0,000244141
_iq11 21 11 -1.048,576 1.048.575,999511720 0,000488281
_iq10 22 10 -2.097,152 2.097.151,999023440 0,000976563
_iq9 23 9 -4.194,304 4.194.303,998046880 0,001953125
_iq8 24 8 -8.388,608 8.388.607,996093750 0,003906250
_iq7 25 7 -16.777,216 16.777.215,992187500 0,007812500
_iq6 26 6 -33.554,432 33.554.431,984375000 0,015625000
_iq5 27 5 -67.108,864 67.108.863,968750000 0,031250000
_iq4 28 4 -134.217,728 134.217.727,937500000 0,062500000
_iq3 29 3 -268.435,456 268.435.455,875000000 0,125000000
_iq2 30 2 -536.870,912 536.870.911,750000000 0,250000000
_iq1 31 1 -
1.073.741,824 1.073.741.823,500000000 0,500000000
Bilateralno teleoperiran kolesni mobilni robot Stran 91
Sledi primer uporabe knjiţnice v programskem jeziku C.
_iq18 a; // Definicija spremenljivke a
_iq18 b; // Definicija spremenljivke b
_iq18 c; // Definicija spremenljivke b
a = _IQ18( 0.0324 ); // pretvorba racionalnega števila v
// celoštevilčno število formata Q18
b = _IQ18( 2.0345 ); // pretvorba racionalnega števila v
// celoštevilčno število formata Q18 c = _IQ18mpy( a, b ); // Med sabo zmnožimo a in b. c je v
// formatu _iq18
c = ( c >> 18 ); // Tako dobimo celoštevilčni del
// zmnožka, ki je v tem primeru enak 0
Za pretvorbe med različnimi formati ima IQMath veliko podpore. Tako je moţno med sabo
mnoţiti tudi različne formate števil, računanje trigonometričnih in eksponentnih funkcij,
pretvorbe v ASCII znake,… Določene funkcije zaznajo zmnoţek prevelikih števil.
Stran 92 Bilateralno teleoperiran kolesni mobilni robot
6.2 Meritev kotne hitrosti
Kotno hitrost merimo z elektronskim ţiroskopom. Ţiroskop vsebuje vso potrebno signalno
obdelavo integrirano v enem samem ohišju. Tako mikrokrmilnik preko digitalnega vodila
SPI prečita trenutno vrednost kotne hitrosti. V tabeli 5 vidimo kaj ţiroskop shrani v svoje
interne registre ob določeni kotni hitrosti.
Tabela 5: Izhod elektronskega ţiroskopa
Kotna hitrost s
Digitalna vrednost shranjena v
16 bitnem registru
+320
+4368 LSB
+0.07326 +1 LSB
0 0 LSB
−0.07326 −1 LSB
−320 −4368 LSB
Zaradi laţje izvedbe regulacijske sheme, v sami regulacijski zanki in v mikrokrmilniku
računamo z fizikalnimi enotami. Zato moramo vrednost, ki jo dobimo od ţiroskopa
pretvoriti v rad
s
. To naredimo z enačbo (6.9).
ţiro
360
180 4368
rad
s
(6.9)
Bilateralno teleoperiran kolesni mobilni robot Stran 93
6.3 Zaščita H mostiča
Za pogon motorjev na mobilnem robotu in prav tako za pogon motorjev za generiranje
povratne sile na krmilni palici smo uporabili H mostič, ki je opisan v 4.7.
Slabost mostičev se izkaţe takrat kadar ţelimo zamenjati smer vrtenja na motorju. To
zahteva, da moramo preklopiti stikala po diagonali. Stikalni elementi so polprevodniški
tranzistorji, ki ob izklopu potrebujejo nekaj časa da ugasnejo. Sicer so v glavnih vejah
uporabljenega mostiča vgrajeni MOSFET tranzistorji, katerih preklopne karakteristike so v
področju nekaj 10 nS, vendar so za krmiljenje teh tranzistorjev uporabljeni bipolarni
tranzistorji, ki so relativno počasni. Če bi mostič preklopili prehitro, lahko pride do
kratkega stika, saj sta nekaj časa vklopljena dva tranzistorja v eni izmed vej H mostiča, kar
bi poškodovalo oziroma uničilo tranzistorje. Ta zakasnitev se mora zgoditi vedno kadar se
preklopi smer motorja. Tako smo za varnejše delovanje mostiča zgradili krmilnik, ki ob
prehitri spremembi smeri vrtenja motorja javi napako mikrokrmilniku LM3S1968, ki
ustavi generiranje PŠM napetosti.
Smer vrtenja
PWM signal
Smer vrtenja
PWM signal
Izhod iz ARMVhod v CPLD
Izhod iz CPLDVhod v H mostič
Čas
ΔT ΔT
ΔT - potrebna zakasnitev
Slika 71: Zaščita H mostiča, smeri vrtenja motorja
Stran 94 Bilateralno teleoperiran kolesni mobilni robot
Slika 71 nam prikazuje časovni diagram delovanja zaščitnega vezja za H mostič. Zgornja
dva signala sta vhoda v CPLD. To sta PŠM signal, ki določa napetost na motorju in signal
za smer vrtenja motorja. Spodnja dva signala predstavljata izhoda iz CPLD vezja. Kot
vidimo signal za smer vrtenja motorja potuje brez sprememb skozi CPLD. PŠM signal
prav tako, dokler signal za spremembo smeri vrtenja motorja upošteva čas zakasnitve, ki je
na sliki v tretjem preklopu ni upošteval.
Vezje, ki smo ga sestavili v CPLD je predstavljeno s spodnjim diagramom prehajanja stanj
na sliki 72. Takoj po vklopu se nahajamo v stanju 1. Tukaj je PŠM izhod omogočen in je
enak PŠM vhodu. Vezje ima dva detektorja prehoda signala. Ko se spremeni signal za
smer vrtenja motorja iz logične 1 v logično 0(ali obratno), to zazna eden od detektorjev.
Takoj potem se vezje prestavi v stanje 2(ali stanje 3) ter začne odštevati potrebno
zakasnitev signala za spremembo smeri motorja. Če se pojavi ponovna sprememba signala
za smer vrtenja motorja preden je potekla potrebna zakasnitev, CPLD onemogoči PŠM
izhodu in mikrokrmilniku signalizira napako. Če do napake ni prišlo, se vezje brez pogoja
postavi v stanje 1, v primeru napake pa ostane v stanju 5, dokler ga mikrokrmilnik ne
ponastavi.
Bilateralno teleoperiran kolesni mobilni robot Stran 95
Stanje 1Izhod za PWM signal omogočen. Signal na
PWM vhodu se preslika na izhod.
CPLD izklopljen
Vklop CPLD
Stanje 2Začetek odmerjanja
potrebne zakasnitve.
Stanje 3Začetek odmerjanja
potrebne zakasnitve.
CPLD integrirano
vezje
Vhod za PWM signal
Izhod za PWM signal
Vhod za smer vrtenja motorja
Izhod za smer vrtenja motorja
Prehod signala za smer vrtenja iz logično 1 v logično 0
Prehod signala za smer vrtenja iz logično 0 v logično 1
Potrebna zakasnitev je potekla
Potrebna zakasnitev je potekla
Sprememba smeri vrtenja. Sprememba smeri vrtenja.
Stanje 5Izhod za PWM signal
onemogočen in vezan na maso.
Javi napako.
Eksterni resetali
reset od ARM
Slika 72: Diagram prehajanja stanj zaščite H mostiča
Enako zaščito, kot smo jo izvedli za spreminjanje smeri motorja, smo izvedli tudi za
delovni cikel PWM signala. PWM pulzi ne smejo biti prekratki, saj imajo MOSFET
tranzistorji tudi določene preklopne omejitve. MOSFET-i na uporabljenem H mostiču
imajo preklopne karakteristike nekaj 10 nS, kar je prikazano v sliki 73. Iz tega sledi, da
mora biti PŠM pulz na konstantnem nivoju za vsaj tak čas. Če skrajšamo ta čas, se
preklopne izgube na tranzistorjih povečajo, kar lahko privede do termičnega uničenja
tranzistorjev.
Stran 96 Bilateralno teleoperiran kolesni mobilni robot
Slika 73: Preklopne karakteristike MOSFET tranzistorjev
Vedno kadar se spremeni nivo PŠM signala, mora ta nivo ostati nespremenjen za čas
preklopne dinamike tranzistorja. To velja za spremembo signala iz logične 0 na logično 1
in obratno. Če teh kriterijev na ARM-u generiran PWM signal ne izpolnjuje, CPLD
zaščitno vezje onemogoči PWM izhod.
PWM signal
PWM signal
Izhod iz ARMVhod v CPLD
Izhod iz CPLDVhod v H mostič
Čas
ΔT ΔT ΔT
ΔT - potrebna zakasnitev
Slika 74: Zaščita mostiča, PŠM dolţina pulza
Tudi zaščita v okviru prevajalnega razmerja PŠM signala je na sliki 75 predstavljena z
diagramom prehajanja stanj.
Bilateralno teleoperiran kolesni mobilni robot Stran 97
Stanje 1Izhod za PWM signal omogočen. Signal na
PWM vhodu se preslika na izhod.
CPLD izklopljen
Vklop CPLD
Stanje 2Začetek odmerjanja
potrebne zakasnitve.
Stanje 2Začetek odmerjanja
potrebne zakasnitve.
CPLD integrirano
vezje
Vhod za PWM signal
Izhod za PWM signal
Vhod za smer vrtenja motorja
Izhod za smer vrtenja motorja
Prehod PWM signala iz logično 1 v logično 0
Prehod PWM signala iz logično 0 v logično 1
Števec je dosegel neko določene vrednost
Števec je dosegel neko določene vrednost
Sprememba nivoja PWM signala. Sprememba nivoja PWM signala.Stanje 5
Izhod za PWM signala se onemogoči in veže na maso. Javi napako.
Eksterni resetali
reset od ARM kmilnika
Slika 75: Diagram prehajanja stanj zaščite H mostiča
Stran 98 Bilateralno teleoperiran kolesni mobilni robot
6.4 Meritev položaja krmilne palice
Projektna naloga zahteva uporabo krmilne palice, ki ima moţnost generiranja povratne sile
na uporabnika, kar posledično pomeni, da mora imeti krmilna palica vgrajene motorje. Da
lahko z motorji proizvajamo potrebno silo, moramo neprestano poznati pozicijo krmilne
palice.
Mehanizem krmilne palice je zgrajen tako, da omogoča določanje poloţaja krmilne palice
s pomočjo vrtljivih potenciometrov. Krmilna palica ima tri vrtljive potenciometre, z
katerimi lahko natančno določimo pozicijo in zasuk krmilne palice.
Člen, ki neprestano odčitava pozicijo krmilne palice, predstavlja mikrokrmilnik
MSP430F2274, ki izhaja iz druţine 16 bitnih mikrokrmilnikov proizvajalca Texas
Instruments.
AD pretvornik v MSP430F2274(v nadaljevanju MSP) ima 10 bitno sukcesivno-
aproksimativno pretvorbeno jedro, katero lahko zaporedoma vzorči 13 analognih vhodov
na MSP. Pretvornik lahko deluje v kombinaciji z DTC(Data Transfer Controller) enoto. Z
DTC enoto lahko rezultat analogno digitalne pretvorbe shranimo na določeno mesto v
RAM pomnilnik MSP-ja, ne da bi pri tem potrebovali procesor MSP-ja, kar je pri v tem
primeru zelo prikladno, saj nam meritev poloţaja krmilne palice ne vzame nič procesorske
računske moči. AD lahko deluje v štirih načinih delovanja. Ti načini delovanja določajo,
kateri analogni vhodi bodo vzorčeni oz. sekvenco korakov vzorčenja analognih vhodov na
določenih priključkih MSP-ja.
Za potrebe projektne teme je bila izbrana konfiguracija s sekvenco korakov vzorčenja
analognih vhodov v kombinaciji z DTC enoto. Pregled delovanja nudi slika 76.
Bilateralno teleoperiran kolesni mobilni robot Stran 99
Slika 76: Pregled delovanja analogno digitalnega pretvornika
Po nastavitvi AD pretvornika ta začne delovati neodvisno od procesorja MSP-ja. Vzorči
zaporedoma dva analogna vhoda, ki predstavljata vrednost napetosti na vrtljivih
potenciometrih iz katerih lahko določimo pozicijo krmilne palice. Po končani konverziji,
logika v AD pretvorniku shrani rezultat v interni register. Od tukaj naprej prevzame
vrednost iz tega registra DTC enota, ki vrednost AD pretvorbe shrani na določeno mesto v
RAM pomnilnik MSP-ja. Nato lahko s procesorjem dostopamo do pomnilniške lokacije,
kjer je shranjena vrednost. Obe vrednosti nato zapakiramo v paket in pošljemo preko radija
do mobilnega robota.
Z (6.10) je podana odvisnost med analogno digitalno pretvorbo in trenutnim poloţajem
krmilne palice.
max
2ADC n
P
(6.10)
Stran 100 Bilateralno teleoperiran kolesni mobilni robot
V (6.10) je pretvorba širine n bitov, rezultat pretvorbe je ADCP , hod krmilne ročice je
max
in njen trenutni poloţaj je .
6.5 Spremljanje rezultatov v LabView okolju
Po izgradnji mobilnega robota in krmilne palice je bilo potrebno preizkusiti če potekajo
vse meritve v skladu z pričakovanji in če regulacijska zanka deluje sprejemljivo pri
mobilnem robotu in krmilni palici. Tukaj se pojavi več moţnosti za spremljanje stanj, ki so
dostopna v samem mikrokrmilniku.
Na osebnem računalniku smo s programskim paketom LabView zgradili preprost
uporabniški vmesnik za spremljanje določenih spremenljivk in nastavljanje določenih
parametrov robota in regulatorja. LabView je grafično okolju za programiranje v
operacijskem sistemu Windows. Zaradi grafičnega programiranja in obširne podpore za
komunikacijske protokole smo razmero hitro sestavili aplikacijo, ki sprejema podatke iz
serijskih vrat osebnega računalnika in jih prikazuje v grafični obliki.
LM3S1968 in MSP430 imata vsak na voljo prost UART modul za serijsko komunikacijo z
osebnim računalnikom.
Bilateralno teleoperiran kolesni mobilni robot Stran 101
Slika 77: LabView čelna plošča
Razvojna plošča LM3S1968 ima na voljo prost USB komunikacijski kanal. Tako lahko z
UART modulom pošiljamo podatke preko USB protokola na osebni računalnik. Na
osebnem računalniku namenski gonilnik pretvori prejete USB pakete v niz znakov. V
okolju LabView je za serijske komunikacije zelo veliko podpore. LabView v osnovi samo
čaka, da na določen serijski komunikacijski kanal prispejo podatki. Ker hkrati spremljamo
več spremenljivk sistema, so podatki med sabo ločeni z dogovorjenimi znaki. Tako
LabView loči med različnimi podatki in vsakega posebej izpisuje na določen graf.
Popolnoma enako je pri MSP430. Razlika je samo v hitrosti obeh komunikacij. MSP430 je
omejen s hitrostjo pošiljanja podatkov 9600 kbps, medtem ko LM3S1968 dosega 115200
kbps.
Bilateralno teleoperiran kolesni mobilni robot Stran 103
6.6 Opis delovanja mobilnega robota
Tukaj bomo opisali kako deluje realiziran mobilni robot.
Takoj po vklopu napajanja se robot nahaja v stanju pripravljenosti. V tem stanju je moţno
z LabView aplikacijo nastavljati regulacijske parametri( PK , VK in D ) in druge parametre
sistema(dM ):
Mobilni robot lahko preklopimo v aktivno stanje z LabView aplikacijo ali s krmilno palico.
Kakor hitro mobilni robot preide v aktivno stanje, začne z regulacijo kotne hitrosti in
sledenjem kotne hitrosti in hitrosti pomika krmilni palici. Na sliki 79 lahko vidimo preprost
diagram prehajanja stanj, pod njim pa tabelo, kjer so na kratko opisane dejavnosti v
določenem stanju.
Stanje pripravljenosti
- čakamo sprejem paketa z
zahtevkom za spremembo
stanja
- podpora LabView aplikaciji
Stanje aktivnosti
MOBILNI ROBOT
Stanje
pripravljenosti
Regulacijska
zanka
Pošiljanje
simulirane
sile
Stanje
aktivnosti
5 m
S
Uspešno prejet paket
Paket krmilne palice LabView ukaz za ali
za prehod == 1 prehod stanja
Regulacijska zanka
- meritev kotne hitrosti z ţiroskopom
- analogno digitalna pretvorba izhodnega
signala senzorjev
- sledenje hitrosti in kotni hitrosti
Pošiljanje simulirane sile
- pošiljanje simulirane sile iz
optičnih senzorjev
Paket krmilne palice
za prehod == 1
ali
LabView ukaz za
prehod stanja
Slika 79: Diagram stanj mobilnega robota
Stran 104 Bilateralno teleoperiran kolesni mobilni robot
Regulacija kotne hitrosti in sledenje kotni hitrosti krmilne palice, se izvaja v rednih
časovnih intervalih z presledkom 5 mS. V vsakem intervalu se izvede meritev trenutne
kotne hitrosti in meritev senzorjev. Tako so podatki razdalje mobilnega robota do neke
ovire, osveţeni vsakih 5 mS.
Kadar dobi mobilni robot podatek o ţeleni kotni hitrosti in ţeleni hitrosti pomika, tudi
odgovori na sprejeto sporočilo z podatkom oddaljenosti. Mobilni robot je povezan z
krmilno palico preko brezţične povezave. Brezţično povezavo omogoča radio CC2500. Ta
je povezan preko SPI do mikrokrmilnika MSP430F2274. MSP430F2274 je pri mobilnem
robotu samo kot vmesni člen med CC2500 in LM3S1968. Vzrok temu je opisan v 4.3.
MSP430F2274 in LM3S1968 sta povezana preko UART vodila. Mobilni robot posreduje
krmilni palici dva podatka. To sta razdalja do ovire naravnost pred robotom in oddaljenost
stranske ovire. Ta dva rezultata pošljemo po UART povezavi do MSP430F2274. Le ta jih
pravilno zapakira v paket, ki ga razume CC2500 in mu ga po SPI povezavi pošlje.
Meritev kotne hitrosti se dogaja v rednih časovnih intervalih. LM3S1968 prečita kotno
hitrost kot digitalno vrednost iz ţiroskopa, preko SPI vodila.
Meritev oddaljenosti se izvaja v rednih časovnih intervali in je izvedena z analogno
digitalnim pretvornikom. Virtualna sila predstavlja kar razdaljo od mobilnega robota do
ovire v okolju. Izračun virtualne sile je v 6.4.
Če je programsko omogočeno LM3S1968 vsakih 250 mS pošlje stanje vseh pomembnih
spremenljivk po UART povezavi do LabView aplikacije na osebnem računalniku, ki vse
spremenljivke izrisuje na grafe.
Na sliki 80 vidimo blokovno shemo, kjer je ponazorjeno delovanj mobilnega robota.
Bilateralno teleoperiran kolesni mobilni robot Stran 105
CC2500SPI
UARTSPI
Program:
- komunikacija
H mostič B Motor B
Motor AH mostič A
eZ430RF2500
MSP430RF2500
Reakcijska sila
Kotna hitrost
Hitrost pomika
UART
Program:
- reg. zanka
- meritev
- komunikacija
LM3S1968
PŠM
PŠM
Senzor
desno
Senzor
spredaj
Senzor
levo
A/DSPI
Ţiroskop
UART
LabView
SPI
USB
UART
Mobilni robot
Slika 80: Pregled delovanja mobilnega robota
Stran 106 Bilateralno teleoperiran kolesni mobilni robot
6.7 Opis delovanja krmilne palice
Tukaj bomo opisali kako deluje realizirana krmilna palica.
Takoj po vklopu napajanja se krmilna palica nahaja v stanju pripravljenosti. V tem stanju
je moţno z LabView aplikacijo nastavljati regulacijske parametri( PK , VK ) in druge
parametre sistema(masa,dušenje).
Krmilno palico lahko preklopimo v aktivno stanje z LabView aplikacijo ali s pritiskom na
tipko na razvojnem modulu eZ430RF2500.
Kakor hitro krmilna palica preide v aktivno stanje, začne z regulacijo pozicije krmilne
ročice in reproduciranjem reakcijske sile od mobilnega robota. Na sliki 81 lahko vidimo
preprost diagram prehajanja stanj, pod njim pa tabelo, kjer so na kratko opisane dejavnosti
krmilne palice v določenem stanju.
Stanje pripravljenosti
- čakamo pritisk tipke
- podpora LabView
aplikaciji
Stanje aktivnosti
KRMILNA PALICA
Stanje
pripravljenosti
Meritev poloţaja
in regulacija
Pošiljanje
pozicije Stanje
aktivnosti
TIPKA
5 m
S
Uspešno prejet paket
ali
100 mS
Meritev poloţaja in regulacija
- analogno digitalna pretvorba
napetostnega nivoja na
potenciometrih
- pozicijska regulacija krmilne
ročice
- reprodukcija sile iz optičnih
senzorjev mobilnega robota
Pošiljanje pozicije
- pošiljanje stanja obeh
potenciometrov
- v primeru prehoda iz stanja
pripravljenosti v stanje aktivnosti
(ali obratno) pošljemo paket z
zahtevkom za preklop
TIPKA
Slika 81: Diagram stanj krmilne palice
Bilateralno teleoperiran kolesni mobilni robot Stran 107
CC2500SPI
PŠMSPI
eZ430RF2500MSP430RF2500
Reakcijska sila
Kotna hitrost
Hitrost pomika
LabView
PŠM
Program:
- reg. zanka
- komunikacija
- meritev
H mostič B Motor B
Motor A
Senzor
desno
Senzor
spredaj
PŠMUART
H mostič A
Krmilna palica
Slika 82: Pregled delovanja krmilne palice
Regulacija lege krmilne palice in reproduciranje reakcijske sile mobilnega robota se izvaja
v rednih časovnih intervalih z presledkom 5 mS. V vsakem intervalu se izvede meritev
trenutnega poloţaja.
Ko krmilna palica preide iz stanja pripravljenosti v aktivno stanje, pošlje ukaz za prehod
stanja k mobilnemu robotu. Enako velja za prehod iz aktivnega stanja v stanje
pripravljenosti.
Krmilna palica pošlje podatke pozicije krmilne ročice vsakih 200 mS ali takoj po sprejemu
veljavnega paketa od mobilnega robota(glej 4.3).
Kadar dobi krmilna palica podatek o referenčni reakcijski sili, le to začne upoštevati v
naslednjem regulacijskem intervalu. Krmilna palica je povezana z mobilnim robotom
preko brezţične povezave. Brezţično povezavo omogoča radio CC2500. Ta je povezan
preko SPI do mikrokrmilnika MSP430F2274.
Meritev lege krmilne ročice se dogaja v rednih časovnih intervalih. MSP430F2274 določi
pozicijo krmilne palice z analogno digitalno pretvorbo napetosti na potenciometru v
krmilni palici. Na sliki 82 vidimo blokovno shemo, kjer je ponazorjeno delovanje krmilne
palice.
Stran 108 Bilateralno teleoperiran kolesni mobilni robot
7 NAČRTOVANJE ELEKTRONSKIH SKLOPOV IN TISKANINE
7.1 Električno napajanje
Pri krmilni palici potrebujemo dva različna izvora napajalne napetosti. V tabeli 6 so
podane zahteve za napajanje.
Tabela 6: Opis napajalnih zahtev krmilne palice
Izvor napetosti Enota Opis
3,3 V MSP430F2274 16 bitni RISC
mikrokrmilnik
CoolRunner2 CPLD CPLD integrirano vezje
PmodHB5 H mostič, krmilna logika
12 MHz oscilator Hitra ura za CPLD vezje
12 V Motor A Motor A v krmilni palici
12 V Motor B Motor B v krmilni palici
Bilateralno teleoperiran kolesni mobilni robot Stran 109
Mobilni robot potrebuje tri različne izvore napajalne napetosti. V tabeli 7 so podane
zahteve za napajanje.
Tabela 7: Opis napajalnih zahtev mobilnega robota
Izvor napetosti Enota Opis
3,3 V MSP430F2274 16 bitni RISC
mikrokrmilnik
CoolRunner2 CPLD CPLD integrirano vezje
PmodHB5 A H mostič, krmilna logika
PmodHB5 B H mostič, krmilna logika
5 V
ADIS16256 Elektronski ţiroskop
SHARP GP2 Optični senzor
SHARP GP2 Optični senzor
SHARP GP2 Optični senzor
LM3S1968 Razvojna plošča za ARM
6 V Motor A Motor A v krmilni palici
6 V Motor B Motor B v krmilni palici
Mobilni robot za svojo avtonomnost potrebuje baterijsko napajanje. Mobilni robot je
tokovno zelo zahteven za baterijsko napajanje. V stanju pripravljenosti znaša poraba
pribliţno 150 mA v aktivnem stanju pa tudi do 1,5 A. Baterije z primernimi dimenzijami,
visoko napetostjo in veliko kapaciteto so cenovno neugodne, zato smo se odločili za več
manjših, zaporedno vezanih baterijskih celic. Ena celica ima napetost 1,2 V in kapaciteto
1,2 Ah. Zaporedno smo vezali deset baterijskih celic in tako dobili 12 V napetostni izvor.
Za vsako vrsto napajanja smo izbrali nastavljivi napetostni regulator LM317. Tokovna
zmogljivost teh regulatorjev je 1,5A. Slabost je padec napetosti na samem regulatorju, kar
povzroča izgube in gretje regulatorja, vendar so cenovno zelo ugodni elementi.
Stran 110 Bilateralno teleoperiran kolesni mobilni robot
Na sliki 83 vidimo električno shemo za napetostni regulator. Enaka shema je bila
uporabljena pri krmilni palici in mobilnem robotu za vse omenjene izvore napetosti.
Slika 83: Napajalno vezje z LM317
7.2 CPLD za zaščito H mostičev
CPLD CoolRunner2 je napaja z 3,3 V. Kot zaščitni element je vstavljen med PŠM
generatorjem in H mostičem. V obeh vezjih lahko z stikali obidemo CPLD in tako gredo
signali iz mikrokrmilnika neposredno na H mostič. CPLD potrebuje za svoje delovanje dva
urini takta. Počasnejša ura je frekvence 10 kHz, hitrejša pa 12 MHz.
CPLD je zelo hitro digitalno integrirano vezje. Zaradi hitrih preklopov internih stanj CPLD
ustvarja veliko električnega šuma. Šum moramo s primernimi siti izluščiti. Tako je na
vsako uporabljeno signalno linijo dodan kondenzator kapacitivnosti nekaj nF.
Na sliki 84 vidimo električno shemo vezave konektorja za CPLD vezje.
Bilateralno teleoperiran kolesni mobilni robot Stran 111
Slika 84: Konektor za CPLD integrirano vezje
7.3 Elektronski žiroskop
Elektronski ţiroskop ADIS16256 sluţi za meritev zasuka in kotne hitrosti. Je zaključena
enota in za svoje delovanje potrebuje samo 5 V napajalne napetosti. Ima digitalne in
analogne izhode. Zaradi večje robustnosti smo izbrali digitalne izhode. Digitalni izhodi
predstavljajo SPI vodilo in signal za ponastavitev.
Na sliki 85 vidimo električno shemo konektorja elektronskega ţiroskopa.
Slika 85: ADIS 16265 konektor
Stran 112 Bilateralno teleoperiran kolesni mobilni robot
7.4 Optični senzorji
Optični senzorji SHARP GP2 so napajani z napetostjo 5 V. Zaradi načina delovanja
potrebujejo na napajanju kondenzator nekaj 10 µF in kondenzator za dušenje motenj nekaj
100 nF. Motnje zaradi delovanja se pojavljajo tudi na signalnem izhodu, kjer smo zaradi
slednjega dodali kondenzator 100 nF.
Na sliki 86 vidimo električno shemo optičnih senzorjev.
Slika 86: Shema optičnega senzorja
Bilateralno teleoperiran kolesni mobilni robot Stran 113
7.5 Tiskanina za krmilno palico
Tiskanina za krmilno palico je bila načrtovana v programskem paketu Altium Designer 09.
Tiskanina vključuje napetostne regulatorje, priključno letvico za mikrokrmilnik
MSP430F2274, CPLD zaščitno vezje, priključne letvice za H mostiče in potenciometre.
Na sliki 87 vidimo tiskanino krmilne palice zgornjega sloja. V prilogi je dodana projektna
datoteka v Altium Designer-ju, kjer lahko najdemo preostanek tiskanine za krmilno palico.
Slika 87: Zgornji sloj tiskanine za krmilno palico
Stran 114 Bilateralno teleoperiran kolesni mobilni robot
7.6 Tiskanina za mobilni robot
Tiskanina za mobilni robot je bila načrtovana v programskem paketu Altium Designer 09.
Tiskanina vključuje napetostne regulatorje, priključno letvico za mikrokrmilnik
MSP430F2274, CPLD zaščitno vezje, priključno letvico za LM3S1968 razvojno ploščo,
priključne letvice za H mostiče, priključno letvico za elektronski ţiroskop in priključne
sponke za optična senzorje.
Na sliki 88 vidimo tiskanino mobilnega robota zgornjega sloja. V prilogi je dodana
projektna datoteka v Altium Designer-ju, kjer lahko najdemo preostanek tiskanine za
mobilni robot.
Slika 88: Zgornji sloj tiskanine mobilnega robota
Bilateralno teleoperiran kolesni mobilni robot Stran 115
8 EKSPRIMENTALNI REZULTATI
Eksperimentalni rezultati so v prilogi. Prikazana je regulacija kotne hitrosti, krmiljenje
mobilnega robota z krmilno palico, ter prikaz povratne sile na krmilni palici.
Sledi nekaj slik dokončanega mobilnega robota in krmilne palice.
Slika 89: Mobilni robot, pogled od zgoraj
Stran 116 Bilateralno teleoperiran kolesni mobilni robot
Slika 90: Mobilni robot, pogled od strani
Slika 91: Krmilna palica in krmilnik
Stran 118 Bilateralno teleoperiran kolesni mobilni robot
9 SKLEP
V nalogi smo si zadali cilj zgraditi mobilni robot s haptično povratno vezavo in vodenjem
preko krmilne palice. Baterijsko napajan mobilni robot smo povezali z krmilno palico
preko brezţične povezave, preko katere smo izvedli tudi haptično povratno povezavo, kar
je opisano v prejšnjih poglavjih. Vodenje robota z regulacijo kotne hitrosti in sledenjem
kotni hitrosti ter hitrosti pomika smo izvedli uspešno, kar smo pokazali z
eksperimentalnimi rezultati.
Zadane cilje smo torej izpolnili in potrdili tehnično izvedljivost zadane naloge. Seveda
naloga ni izvedena brez napak in neidealnosti. Nastali mobilni robot in krmilna palica sta
prototipna izdelka na katerih, bi se dalo veliko stvari izboljšati.
Ob gradnji naloge smo naleteli na teţave iz katerih smo se veliko naučili. Prve teţave so
nastopile pri brezţični povezavi. Proizvajalec komunikacijskih modulov je zraven izdelka
ponudil tudi programsko opremo, ki pa ni najbolje pristajala diplomski nalogi. Ponujena
oprema je bil namenjena izgradnji brezţičnih omreţij z protokolom SimpliciTI, ki delujejo
razmeroma počasi. Potrebovali smo hitro povezavo, ki je s ponujeno programsko opremo
nismo morali doseči. Tako smo uporabili od proizvajalca ponujene knjiţnice, v katerih pa
smo naleteli na napako, ki nas je stala kar nekaj časa.
Druge večje teţave so bile pri CPLD integriranem vezju in VHDL programskem jeziku. To
je bilo naše prvo srečanje z CPLD vezji in prav tako z VHDL jezikom. Na začetku je bilo
veliko teţav z samim programiranjem. VHDL sluţi kot simulacijski jezik, kjer lahko
simuliramo od enostavnih logičnih funkcij do kompleksnih digitalnih sistemov, hkrati pa je
to tudi načrtovalski jezik. Z VHDL lahko načrtujemo delovanje nekega digitalnega vezja in
ga nato realiziramo znotraj nekega PLD vezja(v našem primeru CPLD).
Z ţiroskopskim senzorjem ni bilo teţav, dokler nismo mobilnega robota sestavili in začeli
testiranje. Regulacija kotne hitrosti je povzročala veliko teţav. Kot smo omenili v poglavju
o ţiroskopu ima le ta vgrajene digitalne filtre, ki v veliki meri zmanjšajo šum na izhodu.
Ker smo seveda ţeleli šum zmanjšati smo nastavili lomno frekvenco digitalnega filtra na
nekaj Hz. Pri regulacijski zanki kotne hitrosti je ravno to predstavljalo vzrok nestabilnost.
Ko smo filter izpustili je regulacija kotne hitrosti začela delovati.
Bilateralno teleoperiran kolesni mobilni robot Stran 119
Navkljub teţavam na katere smo naleteli in iz katerih smo dobili veliko izkušenj, je naloga
prinesla pozitivne izkušnje in hkrati veliko potenciala za izboljšanje in nadaljnje delo.
Na prvem mestu bi lahko izboljšali haptični vmesnik. Trenutni haptični vmesnik je krmilna
palica, namenja za računalniške simulacije letenja. Mehanizem v krmilni palici ima nekaj
zračnosti in relativno majhen hod. Motorji, ki so vgrajeni v krmilno palico so modelarski
motorji, ki jih nismo uspeli identificirati(so dokaj nedostopni). Z boljšim mehanizmom in
boljšimi motorji, bi lahko izboljšali haptično izkušnjo.
Naslednja izboljšava zadeva pogonske motorje mobilnega robota. Trenutno so nameščeni
majhni enosmerni modelarski motorji. Motorje je treba vzbujati z dokaj velikim tokom, da
doseţemo navor primeren za premikanje robota. Prav tako v nalogi nismo uporabili
tokovnega regulatorja in smo motorja vzbujali preprosto z napetostjo. Ob uporabi
servomotorjev in tokovnega regulatorja, bi lahko zmanjšali porabo motorja in tako
povečali izkoristek sistema. Z tem bi bili sila, ki jo reproducira motor in sila, ki jo v danem
trenutku hoče doseči mikrokrmilnik, veliko bliţje kot sta sedaj. Uporabljeni motorji imajo
nameščen inkrementalni dajalnik, ki daje samo tri pulze na obrat motorja. To število je
premajhno za izvedbo regulacije. Tako bi med izboljšavami navedli tudi inkrementalni
dajalnik, ki ima več pulzov na obrat motorja.
9.1 Nadaljnje delo
Zraven moţnih izboljšav, ki smo jih navedli v prejšnjem razdelku, bi bil zanimiv dodatek
mobilnemu robotu digitalna kamera. Tako bi prišel haptični vmesnik veliko bolj do izraza
kakor sedaj, ko robota še vedno vodimo v glavnem na podlagi informacij iz očes. Velik
izziv pri kameri bi bil prenos podatkov, saj slika zahteva veliko večjo prenosno hitrost, v
primerjavi z zdajšnjo, in veliko procesorske računske moči.
Stran 120 Bilateralno teleoperiran kolesni mobilni robot
10 LITERATURA
[1] Ildar Farkhatdinov, Jee-Hwan Ryu, and Jinung An, "A Preliminary Experimental
Study on Haptic Teleoperation of Mobile Robot with Variable Force Feedback Gain,"
IEEE Haptics Symposium, p. 6, 2010.
[2] E. Slawinski, V. Mut, and J.F. Postigo, "Teleoperation of Mobile Robots," Latin
American Applied Research, 2006.
[3] Dongjun Lee, Oscar Martinez-Palafox, and Mark W. Spong, "Bilateral Teleoperation
of a Wheeled Mobile Robot over Delayed Communication Network," IEEE
International Conference on Robotics and Automation, May 2006.
[4] Rober J. Anderson and Mark W. Spong, "Bilateral Control of Teleoperators with
Time Delay," IEEE Transactions on Automatic Control, May 1989.
[5] Aleš Hace, Mobilni robot, Junij 2011.
[6] Texas Instrumets. Stellaris® LM3S1968 Microcontroller. Podatkovni list.
[7] Texas Instruments. Stellaris® LM3S1968 Evaluation Board. Podatkovni list.
[8] Texas Instruments, MSP430x2xx Family, Uporabniška navodila za MSP430.
[9] Texas Instruments, MSP430 IAR C/C++ Compiler, Opis C prevajalnika IAR za
MSP430.
[10] Texas Instruments, eZ430-RF2500 Development Tool, Uporabniška navodila.
[11] Texas Instruments, CC2500, Podatkovni list.
[12] Analo Devices. Programmable Digital Gyroscope Sensor ADIS16265. Podatkovni
list.
[13] Cypress Semiconductor Corp. How to Use Programmable Analog to Measure MEMS
Gyroscopes.
[14] Xilinx, CoolRunner-II CPLD Family, Podatkovni list.
Bilateralno teleoperiran kolesni mobilni robot Stran 121
[15] SHARP, GP2Y0A41SKOF, Podatkovni list.
[16] Digilent. Digilent PmodHB 2A H-Bridge Reference Manual. Podatkovni list.
[17] Texas Instruments, ARM® IAR C/C++ Compiler, Opis C prevajalnika IAR za ARM.
[18] Advanced RISC Machines Ltd, Fixed Point Arithmetic on the ARM, Uporaba
celoštevilske aritmetike, Uporabniška navodila.
[19] Texas Instruments, Stellaris® IQmath Library, Uporabniška navodila.
[20] Digilent, Xilinx® IISE WebPACK™ VHDL Tutorial, Uporabniška navodila.
[21] Thoma Braunl, Mobile Robot Design and Applications with Embedded Systems.:
Springer, 2006.
Stran 122 Bilateralno teleoperiran kolesni mobilni robot
11 PRILOGE
K diplomski nalogi je priloţena zgoščenka, na kateri se nahaja elektronska različica tukaj
napisane diplomske naloge ter še ostale zadeve, ki so del diplomska naloge, in jih je laţje
priloţiti v elektronski obliki in so naštete spodaj.
Priloţena je projektna datoteka za IAR Embeded Workbench, v katerem smo programirali
LM3S1968 in MSP430F2274 mikrokrmilnika. V datoteki »C koda« sta projektni datoteki
za krmilno palico in mobilni robot, v katerem je celotni program za LM3S1968 in oba
programa za oba MSP430 mikrokrmilnika.
CPLD smo programirali v Xilinx ISE Design Suite. V datoteki »CPLD« je priloţena
projektna datoteka s programom za CPLD v VHDL jeziku.
V datoteki »Tiskanine« so priloţene projektne datoteke programskega paketa Altium
Designer , v katerih so izrisane sheme in tiskanine za mobilni robot, krmilno palici,
ţiroskop, optične senzorje in CPLD.
V datoteki »LabView« je projektna datotek v kateri je LabView aplikacija za zajem
podatkov in nastavljanje parametrov mobilnega robota in krmilne palice.
V datoteki »Rezultati« so priloţene slike izdelka in nekaj kratkih video posnetkov, ki
prikazujejo delovanje izdelka.
Bilateralno teleoperiran kolesni mobilni robot Stran 123
11.1 Seznam slik
Slika 1: Splošna shema bilateralnega teleoperiranja ............................................................. 1
Slika 2: Prikaz bilateralnega teleoperiranja mobilnega robota .............................................. 2
Slika 3: Modeliranje mobilnega robota ................................................................................. 4
Slika 4: Prikaz sil in navorov mobilnega robota ................................................................... 5
Slika 5: Povezava med napetostjo in PŠM .......................................................................... 10
Slika 6: Oris krmilne palice ................................................................................................. 11
Slika 7: Izračun virtualne sile .............................................................................................. 13
Slika 8: Vodenje bilateralnega teleoperiranega sistema ...................................................... 15
Slika 9: Regulacijska shema ................................................................................................ 18
Slika 10: Prikaz regulacije mobilnega robota ..................................................................... 19
Slika 11: Prikaz regulacije kotne hitrosti ............................................................................ 20
Slika 12: Regulacijska shema kotne hitrosti ....................................................................... 21
Slika 13: Shema impedančnega vodenja krmilne palice ..................................................... 23
Slika 14: Karakteristika nelinearnega ojačenja KSP ............................................................ 24
Slika 15: Blokovna shema LM3S1968 ................................................................................ 26
Slika 16: LM3S1968 razvojna plošča ................................................................................. 27
Slika 17: Predstavitev MSP430F2274 mikrokrmilnika ...................................................... 30
Slika 18: Razvojni modul eZ430RF2500 ............................................................................ 30
Slika 19: Razvojni modul eZ430RF2500 ............................................................................ 32
Slika 20: Digram delovanja radia cc2500 ........................................................................... 33
Slika 21: Prikaz SPI signalov za komunikacijo z CC2500 ................................................. 34
Slika 22: ADIS16260 MEMS ţiroskop ............................................................................... 35
Slika 23: Ponazoritev Coriolisovega pospeška ................................................................... 37
Slika 24: Prikaz Coriolisove sile ......................................................................................... 37
Stran 124 Bilateralno teleoperiran kolesni mobilni robot
Slika 25: Princip delovanja MEMS ţiroskopa .................................................................... 38
Slika 26: Frekvenčna karakteristika FIR filtra .................................................................... 39
Slika 27: Filtriranje v ADIS16265 ...................................................................................... 39
Slika 28: Povezava senzorja preko SPI ............................................................................... 40
Slika 29: Shema ADIS16265 internega procesiranja .......................................................... 41
Slika 30: SPI komunikacija med ARM krmilnikom in MEMS ţiroskopom ....................... 41
Slika 31: Struktura PAL vezja ............................................................................................. 42
Slika 32: Interna struktura CoolRunner2 CPLD ................................................................. 43
Slika 33: Makrocelica CPLD ............................................................................................... 44
Slika 34: CMod CoolRunner2 ............................................................................................. 45
Slika 35: Električna shema C-Mod ...................................................................................... 45
Slika 36: SHARP IR senzor ................................................................................................ 46
Slika 37: Karakteristika senzorja razdalje – odvisnost analogne napetosti od razdalje ...... 47
Slika 38: Izboljšava senzorskega vezja ............................................................................... 48
Slika 39: H mostič ............................................................................................................... 49
Slika 40: Pravilno delovanje H mostiča .............................................................................. 50
Slika 41: H mostič z bipolarnimi tranzistorji....................................................................... 50
Slika 42: H mostič PmodHB5 ............................................................................................. 51
Slika 43: PModHB5 H mostič električna shema ................................................................. 52
Slika 44: Princip komunikacije z UART ............................................................................. 53
Slika 45: Format podatkovnega okvirja in pripadajoč signalni prikaz ................................ 55
Slika 46: Povezava gospodar – suţenj ................................................................................. 57
Slika 47: Povezava gospodar - suţnji .................................................................................. 58
Slika 48: Primer SPI komunikacije CPOL = 0 in CPHA = 1 .............................................. 59
Slika 49: MISO in MOSI pomikalni registri ....................................................................... 59
Bilateralno teleoperiran kolesni mobilni robot Stran 125
Slika 50: IAR IDE urejevalnik kode ................................................................................... 62
Slika 51: Izbira programskega jezika .................................................................................. 63
Slika 52: Izbira mikrokrmilnika .......................................................................................... 64
Slika 53: Izbira razhroščevalnik ali simulator ..................................................................... 65
Slika 54: Imena delovnih okolji .......................................................................................... 65
Slika 55: Ustvarjanje novega projekta v ISE Design Suite ................................................. 67
Slika 56: Lastnosti uporabljenega programirljivega vezja .................................................. 68
Slika 57: Prazen projekt v ISE ............................................................................................ 69
Slika 58: Dodajanje nove izvorne datoteke ......................................................................... 70
Slika 59: Izbira HDL jezika nove izvorne datoteke ............................................................ 71
Slika 60: ISE PACE urejevalnik fizičnih vhodov in izhodov programirljivega vezja ........ 72
Slika 61: Sinteza v ISE ........................................................................................................ 73
Slika 62: Novi projekt v Altium-u....................................................................................... 74
Slika 63: Dodajanje prazne sheme ...................................................................................... 75
Slika 64: Iskanje po knjiţnici komponent Altium-a ............................................................ 76
Slika 65: Dodajanje tiskanine v projekt .............................................................................. 77
Slika 66: Primer čelne plošče v LabView ........................................................................... 79
Slika 67: Primer blokovnega diagrama v LabView ............................................................ 80
Slika 68: Izračun krmilnega navora .................................................................................... 82
Slika 69: Izračun krmilne sile .............................................................................................. 83
Slika 70: Izračun PŠM ......................................................................................................... 84
Slika 71: Zaščita H mostiča, smeri vrtenja motorja ............................................................ 93
Slika 72: Diagram prehajanja stanj zaščite H mostiča ........................................................ 95
Slika 73: Preklopne karakteristike MOSFET tranzistorjev ................................................. 96
Slika 74: Zaščita mostiča, PŠM dolţina pulza .................................................................... 96
Stran 126 Bilateralno teleoperiran kolesni mobilni robot
Slika 75: Diagram prehajanja stanj zaščite H mostiča ........................................................ 97
Slika 76: Pregled delovanja analogno digitalnega pretvornika ........................................... 99
Slika 77: LabView čelna plošča ........................................................................................ 101
Slika 78: LabView prikaz rezultatov ................................................................................. 102
Slika 79: Diagram stanj mobilnega robota ........................................................................ 103
Slika 80: Pregled delovanja mobilnega robota .................................................................. 105
Slika 81: Diagram stanj krmilne palice ............................................................................. 106
Slika 82: Pregled delovanja krmilne palice ....................................................................... 107
Slika 83: Napajalno vezje z LM317 .................................................................................. 110
Slika 84: Konektor za CPLD integrirano vezje ................................................................. 111
Slika 85: ADIS 16265 konektor ........................................................................................ 111
Slika 86: Shema optičnega senzorja .................................................................................. 112
Slika 87: Zgornji sloj tiskanine za krmilno palico ............................................................. 113
Slika 88: Zgornji sloj tiskanine mobilnega robota............................................................. 114
Slika 89: Mobilni robot, pogled od zgoraj ......................................................................... 115
Slika 90: Mobilni robot, pogled od strani .......................................................................... 116
Slika 91: Krmilna palica in krmilnik ................................................................................. 116
Slika 92: Krmilnik krmilne palice ..................................................................................... 117
11.2 Seznam preglednic
Tabela 1: Prikaz uporabljenih pinov na LM3S1968 razvojni plošči ................................... 28
Tabela 2: Prikaz uporabljenih pinov na eZ430RF2500 razvojni plošči .............................. 31
Tabela 3: Pretvorba iz celoštevilčnega števila v racionalno število .................................... 86
Tabela 4: Moţni formati števil v IQMath knjiţnici ............................................................. 90
Bilateralno teleoperiran kolesni mobilni robot Stran 127
Tabela 5: Izhod elektronskega ţiroskopa ............................................................................ 92
Tabela 6: Opis napajalnih zahtev krmilne palice .............................................................. 108
Tabela 7: Opis napajalnih zahtev mobilnega robota ......................................................... 109
11.3 Naslov študenta
Rok Pučko
Juršinci 78/A
2256 Juršinci
Tel. 031 890 254
Elektronska pošta: [email protected]
11.4 Kratek življenjepis
Rojen: 9.2.1989 v Mariboru
Šolanje:
- 1996 vpisan v prvi razred 8 letne osnovne šole OŠ Juršinci
- 2004 vpisan v prvi letnik srednje strokovne šole Srednja in tehniška elektro šola
Ptuj
- 2008 vpisan v prvi letnik univerzitetnega izobraţevanja Fakultete za elektrotehniko,
računalništvo in informatiko v Mariboru