142
Rok Pučko BILATERALNO TELEOPERIRAN KOLESNI MOBILNI ROBOT Diplomsko delo Maribor, september 2011

BILATERALNO TELEOPERIRAN KOLESNI MOBILNI …Tako je mikrokrmilnik, pri krmilni palici, kar MSP430F2274 s komunikacijskega modula. Krmilna palica ima tri naloge. Ob neuporabi se mora

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Rok Pučko

BILATERALNO TELEOPERIRAN KOLESNI

MOBILNI ROBOT

Diplomsko delo

Maribor, september 2011

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

III

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

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.

Stran 102 Bilateralno teleoperiran kolesni mobilni robot

Slika 78: LabView prikaz rezultatov

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

Bilateralno teleoperiran kolesni mobilni robot Stran 117

Slika 92: Krmilnik krmilne palice

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

Stran 128 Bilateralno teleoperiran kolesni mobilni robot

Bilateralno teleoperiran kolesni mobilni robot Stran 129

Stran 130 Bilateralno teleoperiran kolesni mobilni robot