102
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO David Bricman VGRAJENI SISTEM ROBOTA ROBOSAPIEN Diplomska naloga Maribor, maj 2008

VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO,

RAČUNALNIŠTVO IN INFORMATIKO

David Bricman

VGRAJENI SISTEM ROBOTA ROBOSAPIEN

Diplomska naloga

Maribor, maj 2008

Page 2: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

I

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO 2000 Maribor, Smetanova ul. 17

Diplomska naloga univerzitetnega študijskega programa

VGRAJENI SISTEM ROBOTA ROBOSAPIEN

Študent: David BRICMAN

Študijski program: univerzitetni, Elektrotehnika

Smer: Elektronika

Mentor: doc. dr. Mitja SOLAR

Somentor: doc. dr. Iztok KRAMBERGER

Maribor, maj 2008

Page 3: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

II

Page 4: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

III

ZAHVALA Zahvaljujem se mentorju doc. dr. Mitju Solarju in somentorju doc. dr. Iztoku Krambergerju za pomoč in vodenje pri opravljanju diplomske naloge. Posebna zahvala velja staršem, ki so mi omogočili študij.

Page 5: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

IV

VGRAJENI SISTEM ROBOTA ROBOSAPIEN Klju čne besede: elektronika, vgrajeni sistem, mikrokrmilnik, ra čunalniške komunikacije, senzorji UDK: 621.3:681.51(043.2) Povzetek

Diplomska naloga obravnava in podaja pregled nad številnimi področji, ki so potrebna

za gradnjo vgrajenih sistemov. Opisuje tudi praktično predelavo vgrajenega sistema

komercialnega robota Robosapien. Predelava zajema analizo obstoječega sistema in

razvoj novega sistema, ki je zgrajen iz Atmelovih mikrokrmilnikov z AVR jedrom. Za

brezžično komunikacijo z drugimi napravami in računalnikom pa uporablja Bluetooth

različico 1.1. Sistem ima možnost nadgradnje z dodatnimi priključki in dovolj prostora v

programskem pomnilniku za obsežnejši program. Možno ga je programirati preko

brezžične povezave. Predstavljeni so tudi problemi krmiljenja in gibanja takšnega sistema.

Page 6: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

V

EMBEDDED SYSTEM OF THE ROBOT ROBOSAPIEN

Key words: electronics, embedded system, microcontroller, computer communications, sensors UDK: 621.3:681.51(043.2) Abstract

This diploma work discusses many fields, which are necessary for the construction of

the embedded systems. It also describes the practical modification of the commercial robot

Robosapien. The modification includes the analysis of the existent system and the

development of the new system, which is built from the Atmel’s microcontrollers with the

AVR core. It uses the Bluetooth version 1.1 for the wireless communication with the other

devices and the computer. The system has a possibility of the upgrade with the additional

pins and enough storage capacity for the more extensive programme. It is possible to

programme it over the wireless connection. The problems of controlling and movement of

such system are also introduced.

Page 7: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

VI

KAZALO VSEBINE 1 UVOD 1

2 SPLOŠNO O VGRAJENIH SISTEMIH 4

2.1 Mikrorocesorji, mikrokrmilniki 4

2.2 Pomnilniki 9

2.3 Periferne naprave 11

2.4 Komunikacije in protokoli 15

2.5 Senzorji 23

2.6 Motorji in kontrola motorjev 27

3 ANALIZA SISTEMA 32

3.1 Senzorji 32

3.2 Motorji in kontrola motorjev 35

3.3 Napajanje 36

3.4 Komunikacija 36

3.5 Krmiljenje 37

4 ZGRADBA STROJNE OPREME 39

4.1 Napajanje 40

4.2 Mikrokrmilnik 41

4.3 Komunikacijski vmesnik 41

4.4 Tipanje baterije 43

4.5 Indikacija z LED 44

4.6 Oscilatorsko vezje 45

4.7 Reset vezje 46

4.8 Tiskano vezje 46

5 PROGRAMSKA OPREMA IN PROTOKOL 49

5.1 Zaganjalnik 49

5.2 Glavni program prvega mikrokrmilnika 51

5.3 Glavni program drugega mikrokrmilnika 52

5.4 Protokol 56

6 REZULTATI IN MERITVE 60

6.1 Tiskana vezja 60

Page 8: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

VII

6.2 Senzorji 61

6.3 Gibanje robota 66

7 SKLEP 70

8 LITERATURA 72

9 PRILOGE 74

Page 9: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

VIII

SEZNAM SLIK

Slika 1.1: Primeri naprav z vgrajenim sistemom - CNC stroj, video snemalnik, GPS

navigacijska oprema, MP3 predvajalnik 1

Slika 1.2: Robosapien V2 2

Slika 1.3: Blokovna shema sistema 3

Slika 2.1: Arhitektura računalnika (mikrokrmilnika) – Harvard / Von Neuman 6

Slika 2.2: PWM signal 13

Slika 2.3: Razporeditev slojev protokola po referenčnem modelu OSI in TCP/IP 15

Slika 2.4: Primer povezave računalnikov na dostopno točko ali ad-hoc 18

Slika 2.5: Prikaz povezave dveh piconet omrežji 19

Slika 2.6: Bluetooth - struktura slojev protokola 20

Slika 2.7: Binarni senzor izveden z stikalom 23

Slika 2.8: Rotacijski kodirnik – opitčna izvedba in postavitev polj v Grey-evi kodi za

absolutno zaznavanje položaja 24

Slika 2.9: Primer nelinearne karakteristike IR senzorja Sharp GP2D120. 26

Slika 2.10: Delovanje koračnega motorja - krmilni signali za navitja 28

Slika 2.11: Krmiljenje servo motorja z PW signalom 29

Slika 2.12: Delovanje krmilnega H-mostiščnega vezja 30

Slika 2.13: Uporaba ojačevalnikov pri krmiljenju motorja 31

Slika 3.1: Prikaz lokacij zunanjih senzorjev 33

Slika 3.2: Prikaz lokacij notranjih senzorjev 34

Slika 3.3: Vezje za kontrolo motorjev 36

Slika 3.4: Razporeditev priključkov glavnega vezja 38

Slika 4.1: Blokovna shema novega glavnega vezja 40

Slika 4.2: Vezje za stabilizacijo napetosti 40

Slika 4.3: Bluetooth komunikacijski vmesnik Promi ESD02 42

Slika 4.4: Priključitev Bluetooth vmesnika 43

Slika 4.5: Uporovni delilnik za tipanje baterije 44

Slika 4.6: Priključitev LED indikatorjev na mikrokrmilnik 45

Slika 4.7: Oscilatorsko vezje 46

Slika 4.8: Reset vezje 46

Page 10: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

IX

Slika 4.9: Model glavnega tiskanega vezja - zgoraj 48

Slika 4.10: Model glavnega tiskanega vezja - spodaj 48

Slika 5.1: Diagram poteka zaganjalnega programa 50

Slika 5.2: Diagram poteka glavnega programa prvega mikrokrmilnika 52

Slika 5.3: Diagram poteka glavnega programa drugega mikrokrmilnika 54

Slika 5.4: Avtomat za hojo robota 55

Slika 5.5: Poljuben okvir protokola 56

Slika 6.1: Glavno tiskano vezje - zgoraj 60

Slika 6.2: Končna priključitev vezja za kontrolo motorjev na glavno vezje 61

Slika 6.3: Ojačevalnik tonskega signala iz dlančnika 61

Slika 6.4: Prenosna karakteristika leve rame 62

Slika 6.5: Prenosna karakteristika desne rame 63

Slika 6.6: Prenosna karakteristika pasu ( naprej / nazaj ) 63

Slika 6.7: Prenosna karakteristika pasu ( levo / desno ) 64

Slika 6.8: Prenosna karakteristika pri merjenju baterije 65

Slika 6.9: Osciloskopski posnetek vklopa motorja leve rame 68

Slika 6.10: Osciloskopski posnetek vklopa motorja leve noge (naprej) 68

Slika 6.11: Osciloskopski posnetek večkratnega vklopa motorja (oscilacije) 69

Page 11: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

X

SEZNAM TABEL Tabela 2.1: Prikaz različnih tehnologij Etherneta 17

Tabela 2.2: Različice WLAN tehnologije 18

Tabela 2.3: Močnostni razredi Bluetooth naprav 19

Tabela 2.4: Bluetooth profili aplikacij 21

Tabela 3.1: Možna bitna stanja kodirnih senzorjev 34

Tabela 3.2: Motorji v robotu in sistem detekcije položaja 35

Tabela 4.1: Načini delovanja Bluetooth vmesnika Promi ESD02 42

Tabela 4.2: Možne nastavitve zaporedne komunikacije Bluetooth vmesnika Promi ESD02

43

Tabela 5.1: Sestava glave podatkovnega okvirja 57

Tabela 5.2: Ukazne skupine protokola 57

Tabela 5.3: Vsi ukazi v sistemu 58

Tabela 6.1: Preslikava stanj kodirnikov 66

Tabela 6.2: Časi premikanja sklepov 66

Tabela 6.3: Končne vrednosti stanj in časovnikov 67

Tabela 6.4: Tolerance pri regulaciji motorjev z zveznim zajemanjem položaja 69

Page 12: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

XI

UPORABLJENE KRATICE IN SIMBOLI AD - Analogno-Digitalno

ARM - Arhitektura mikroprocesorjev (ang. Acorn RISC Machine)

ASIC - Namensko integrirano vezje (ang. Apilication Specific Integrated Circuit)

AVR - Arhitektura mikrokrmilnikov

CMOS - Tehnologija izdelave integriranih vezij (ang. Complementary Metal-Oxide

Semiconductor)

DA - Digitalno-Analogno

DRAM - Dinamični RAM (ang. Dynamic Random Access Memory)

EEPROM - Električno programirljiv in izbrisljiv bralni pomnilnik (ang. Electrically

Erasable Programmable Read-Only Memory)

EPROM - Električno programirljiv bralni pomnilnik (ang. Erasable Programmable

Read-Only Memory)

FAX - Tehnologija za pošiljanje kopij dokumentov

FPGA - Programirljivo logično vezje (ang. Field-Programmable Gate Array)

FPSLIC - Mikrokrmilnik in FPGA v enem integriranem vezju (ang. Field-

Programmable System Level Integrated Circuit)

I2C - Zaporedno vodilo z možnostjo več gospodarjev (ang. Inter-Integrated Circuit)

IEEE - Inštitut inženirjev elektrotehnike in elektronike (ang. Institute of Electrical

and Electronics Engineers)

IP - Internetni protokol (ang. Internet Protocol)

IR - Infrardeče (ang. Infrared)

ISDN - Tehnologija digitalne žične telefonije (ang Integrated Services Digital

Network)

ISP - Vgrajeno programiranje (ang. In-System Programming)

LAN - Lokalno omrežje (ang. Local Area Network)

LCD - Zaslon na tekoče kristale (ang. Liquid Crystal Display)

LED - Svetleča dioda (ang. Light-Emitting Diode)

LLC - Protokol za nadzor povezave (ang. Logical Link Control)

LSB - Najmanj utežen bit (ang. Least Significant Bit)

MAC - Komunikacijski protokol (ang . Media Access Control)

Page 13: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

XII

MP3 - Digitalni kodirni način za zvok

MSB - Najbolj utežen bit (ang. Most Significant Bit)

NAND - Boolova operacija NE-IN (ang. Not-AND)

NMOS - Tehnologija izdelave integriranih vezij (ang. N-type Metal-Oxide

Semiconductor)

NOR - Boolova operacija NE-ALI (ang. Not-OR)

OSI - Standard za mrežne komunikacije (ang. Open Systems Interconnection)

OTP - Vrsta programirljivega pomnilnika za enkratno programiranje (ang. One Time

Programmeble)

PAN - Osebno omrežje (ang. Personal Area Network)

PIC - Arhitektura mikrokrmilnikov (ang. Programmable Intelligent Computer)

PW - Pulzno-širinski krmilni signal za določanje pozicije servomotorjev

PWM - Pulzno-širinska modulacija (ang. Pulse-width Modulation)

RAM - Pomnilnik z naključnim dostopom (ang. Random Access Memory)

RISC - Vrsta arhitekture procesorskega jedra (ang. Reduced Instruction Set

Computing)

ROM - Bralni pomnilnik (ang. Read Only Memory)

SIG - Interesna skupina (ang. Special Interest Group)

SIM - Modul za identifikacijo ponudnika (ang. Subscriber Identity Module)

SRAM - Statični RAM (ang. Static Random Access Memory)

TCP - Transportni protokol (ang. Transmission Control Protocol)

USB - Univerzalni zaporedni vmesnik (ang. Universal Serial Bus)

UTP - Električni vodnik za omrežja - sukana parica (ang. Unshielded Twisted Pair)

UV - Ultravijolično (ang. Ultra-Violet)

UWB - Tehnologija radijske komunikacije (ang. Ultra-Wide Band)

WAP - Protokol za brezžične naprave (ang. Wireless Application Protocol)

WLAN - Brezžično lokalno omrežje (ang. Wireless Local Area Network)

Page 14: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 1

1 UVOD

Prvi znani vgrajeni sistem je bil Apollov navigacijski računalnik, ki je bil razvit, da bi

zmanjšali težo in velikost navigacijske opreme pri vesoljskih poletih. Prva masovna

proizvodnja naprave z vgrajenim sistemom je bila vojaška raketa Minuteman, ki je

vsebovala navigacijski računalnik zgrajen iz tranzistorske logike in trdega diska za glavni

spomin. Z razvojem prvih mikroračunalnikov v sedemdesetih letih, je vgrajeni sistem

postal dostopen tudi industriji. Ob vse močnejših računalnikih in ob vedno večji

minimizaciji integriranih komponent so vgrajeni sistemi postajali vedno cenejši in vedno

bolj prodorni na komercialnem tržišču. Danes jih srečujemo pravzaprav na vsakem koraku.

Za boljše razumevanje pa moramo razložiti, kaj vgrajeni sistem v bistvu je [2].

To je specializiran računalniški sistem, ki je del večjega sistema ali stroja. Vgrajeni

sistem je ponavadi mikroprocesorska tiskanina s programom shranjenim v ROM

pomnilniku. Praktično vse naprave (Slika 1.1), ki imajo vgrajeni digitalni vmesnik

vsebujejo vgrajeni sistem. Nekateri vgrajeni sistemi vsebujejo celo operacijski sistem,

ampak večinoma je tako specialnih, da je vsa logika izdelana v enem samem programu [3].

Slika 1.1: Primeri naprav z vgrajenim sistemom - CNC stroj, video snemalnik, GPS navigacijska

oprema, MP3 predvajalnik

Page 15: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 2

Robosapien (Slika 1.2) je igrača v obliki humanoidnega robota. V diplomski nalogi ga

bomo uporabili kot strojno opremo za naš vgrajeni sistem, saj bi za izdelavo le-te porabili

preveč časa. Tako se bomo najprej lotili analize obstoječega sistema. V analizi bomo

opisali, kaj je ta robot znal, kako je sestavljen in kakšni so krmilni signali, ki jih uporablja

pri delovanju. Predvsem bo pomembna analiza signalov, saj bomo le tako lahko na že

obstoječo platformo dodali nov vgrajen sistem.

Slika 1.2: Robosapien V2

V naslednjem poglavju diplomske naloge bomo zgradili strojno opremo vgrajenega

sistema. Upoštevati bomo morali podatke pridobljene iz analize sistema. Najprej bomo

odstranili del sistema, ki je originalno vgrajen v robota. Odstranili bomo samo tiskano

vezje, ki je namenjeno procesiranju in ga zamenjali z novim. Strojna oprema bo morala

delovati na obstoječe baterijsko napajanje robota. Potrebno bo prilagoditi napetostne nivoje

na nazivne napajalne napetosti uporabljenih integriranih vezij in drugih komponent. Paziti

bomo morali tudi na pravilno priključitev in uporabo senzorskih signalov ter signalov za

krmiljenje motorjev. Novo tiskano vezje bo moralo biti specialnih dimenzij, da se bo

prilegalo na enako mesto, kot se je staro. V novi sistem (Slika 1.3) se bodo vgradile

osnovne in dodatne funkcionalnosti. Pod osnovne spadajo odčitavanje senzorjev,

krmiljenje motorjev in komunikacija preko brezžičnega komunikacijskega vmesnika. Pod

dodatne pa merjenje kapacitete energije v baterijah, svetlobni indikatorji in dodatne

razširitvene možnosti.

Page 16: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 3

Signali senzorjev

Kontrola motorjev

Sistem

Komunikacija z zunanjim svetom

KomunikacijaMerjenje baterije

Priključki za nadgrajevanje sistema

Brezžični komunikacijski

vmesnik

Svetlobna indikacija

Slika 1.3: Blokovna shema sistema

V petem poglavju bomo razložili delovanje protokola, ki je potreben pri komunikaciji

robota z zunanjimi napravami s pomočjo brezžičnega komunikacijskega vmesnika.

Zunanje naprave so v tem primeru računalnik, dlančnik, mobilni telefon in podobno.

Tukaj bomo tudi opisali izdelavo programske opreme vgrajenega sistema. Programska

oprema naj bi omogočala programiranje kar preko komunikacijskega vmesnika, zato bomo

morali program prilagoditi tako, da bo to omogočal. Program mora biti sposoben hkrati

krmiliti robota in komunicirati z zunanjim svetom. Tako moramo poiskati rešitev, ki bo

sposobna takega delovanja.

V zadnjih dveh poglavjih bomo prikazali in opisali pridobljene rezultate med izdelavo

diplomske naloge in jih komentirali. Dodali bomo tudi nekaj napotkov za dodajanje

razširitev k sistemu.

Page 17: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 4

2 SPLOŠNO O VGRAJENIH SISTEMIH

Že v uvodu smo zapisali definicijo vgrajenega sistema, ker pa je to zelo širok pojem

bomo v tem poglavju povedali nekaj o najbolj značilnih gradnikih vgrajenih sistemov.

Nekateri gradniki so nujno potrebni, da lahko sistem sploh poimenujemo vgrajeni sistem.

To so predvsem gradniki, ki sestavljajo mikroračunalnik. Pod te gradnike uvrščamo

procesorje, pomnilnike ter periferne naprave. Opisali pa bomo tudi nekaj gradnikov, ki

niso nujno gradniki vgrajenega sistema, ampak jih uporabljamo v našem sistemu. Tukaj bo

beseda tekla o senzorjih in motorjih ter krmilnih vezjih za le-te.

2.1 Mikroprocesorji, mikrokrmilniki

Mikroprocesor je digitalna elektronska komponenta, ki združuje funkcije centralno

procesne enote v enem samem integriranem polprevodniškem vezju. Centralno procesna

enota je sposobna izračunavati logične in aritmetične operacije. Zaporedje operacij, ki jih

mikroprocesor izvaja, imenujemo računalniški program. Dolžina besede (ang. word) v

bitih pogojuje, s koliko bitnim mikroprocesorjem delamo. Z dolžino besede je tudi

pogojeno, koliko operacij lahko ima mikroprocesor v naboru in kako velik pomnilnik je

zmožen naslavljati. Točne vrednosti nabora operacij in dolžine naslavljanja so odvisne od

arhitekture posameznega mikroprocesorja [10,11].

ARM je družina mikroprocesorjev, ki se zelo pogosto uporablja v vgrajenih sistemih.

Razvilo jo je podjetje ARM Limited, s kupljeno licenco pa mikroprocesorje na tej

arhitekturi izdeluje še veliko drugih podjetij. Ti mikroprocesorji se najpogosteje

uporabljajo v mobilnih napravah, kot so mobilni telefoni, dlančniki, ročne igralne konzole

in podobno. Takšno široko uporabo so dosegli zaradi energijske učinkovitosti arhitekture,

kar je ključno pri gradnji vgrajenih sistemov, ki se napajajo iz baterije. Družina ARM ima

32-bitno RISC arhitekturo, po kateri je tudi dobila ime (ARM – ang. Advanced RISC

Machine). Družina je razdeljena na veliko poddružin, kjer se arhitekture malenkostno

razlikujejo, predvsem pa so nastale zaradi nenehnega posodabljanja arhitekture in različnih

proizvajalcev procesorjev. Tako si verzije različnih arhitektur sledijo od ARMv1 do

Page 18: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 5

ARMv7. Delovne ure teh procesorjev dosežejo vse do 1GHz, kar zagotavlja dovolj

procesne moči, da lahko na njem poganjamo operacijski sistem in zahtevnejše aplikacije,

kot so procesiranje večpredstavnostnih vsebin [16].

Mikrokrmilnik je računalnik v enem samem integriranem vezju. Je rahlo nasprotje

mikroprocesorja, kjer želimo doseči čim večjo računsko moč centralno procesne enote. Pri

mikrokrmilniku pa želimo doseči čim večjo integracijo samega računalnika. S tem

zmanjšamo ceno, kompleksnost tiskanih vezij ter povečamo energijsko učinkovitost. V

mikrokrmilnik so integrirane vse enote, ki spadajo v računalnik. To so centralno procesna

enota, delovni pomnilnik, pomnilnik za dolgoročnejšo hrambo podatkov in vhodno-

izhodne naprave. Poleg tega je v mikrokrmilnik integrirano še veliko drugih perifernih

naprav, kot so AD pretvorniki, časovniki, PWM modulatorji, zaporedni vmesniki in

podobno. Tako je mikrokrmilnik idealna komponenta za grajenje vgrajenega sistema.

Mikrokrmilniki imajo še dodatne značilnosti, kot so programirljivi priključki, kar pomeni

da lahko programsko izbiramo ali je posamezen priključek vhod ali izhod. Nekateri

vsebujejo oscilator za delovno uro, ali pa samo del oscilatorja, tako da lahko zunaj

priključimo samo kremenčev kristal in kondenzatorje [12].

Poznamo več vrst arhitektur mikrokrmilnikov. Prva je arhitektura Von Neuman,

poimenovana po matematiku, ki jo je prvi uporabil. Ta arhitektura ima samo eno

podatkovno vodilo, po katerem se pretakajo podatki. Dobra lastnost takšne arhitekture je,

da ima enostavno zgradbo, slaba pa, da je okrnjena hitrost prenosa programa in podatkov v

mikroprocesor, saj jih prenašamo po istem vodilu. To lastnost odpravi arhitektura Harvard,

kjer imamo ločeno vodilo programskega in podatkovnega pomnilnika (vhodno-izhodnih

naprav). Pri tej arhitekturi mikroprocesor program nemoteno bere in hkrati bere ali piše po

podatkovnem vodilu in s tem izboljša delovanje mikrokrmilnika. Tudi dolžini besed

podatkovnega in programskega pomnilnika sta lahko različni. Poznamo tudi modificirano

Harvard arhitekturo. Ta arhitektura odpravlja težavo dostopa do programskega

pomnilnika. Če imamo v programskem pomnilniku zapisane kakšne podatke, ki jih

potrebujemo pri procesiranju, lahko do njih dostopamo direktno, ne da bi jih bilo potrebno

prelagati v podatkovnega. Večina mikrokrmilnikov, ki ima navedeno Harvard arhitekturo,

ima v resnici modificirano Harvard arhitekturo [14,18].

Page 19: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 6

Slika 2.1: Arhitektura ra čunalnika (mikrokrmilnika) – Harvard / Von Neuman

Če na tržišču mikroprocesorjev za namizne računalnike bolj ali manj kraljuje nekaj

podjetij, je na tržišču mikrokrmilnikov popolnoma drugačna slika. Najdemo najrazličnejše

mikrokrmilnike v najrazličnejših ohišjih. Nekatera podjetja izdelujejo namenske

mikrokrmilnike za uporabo v lastnih aplikacijah in so tako še bolj prilagojeni napravam,

kjer so uporabljeni. Na primer: mikrokrmilnik za MP3 predvajalnik ima integrirano

posebno enoto za dekodiranje glasbe v MP3 obliki. Zaradi splošne uporabnosti

mikrokrmilnikov v vgrajenih sistemih si bomo pogledali nekaj najpopularnejših družin

mikrokrmilnikov.

Mikroprocesor 8051 je razvilo podjetje Intel v začetku osemdesetih let. Njegov

predhodnik je bil mikroprocesor 8048. Ta je prvi mikroprocesor, ki je bil izdelan in

prodajan v večjih količinah. 8051 je mikroprocesor z obliko arhitekture Harvard, tako kot

vsi drugi mikroprocesorji in mikrokrmilniki podjetja Intel. Najpopularnejši je bil v

osemdesetih in v začetku devetdesetih let. Prvi so bili izdelani v NMOS tehnologiji, danes

pa mikrokrmilnike, ki temeljijo na jedru 8051, izdeluje v CMOS tehnologiji preko dvajset

podjetij. Mikrokrmilnik odlikuje predvsem možnost učinkovitega računanja na bitnem

nivoju, kar ga je pripeljalo do številčnega uporabljanja v industrijskih nadzornih

aplikacijah. Druga značilnost za mikrokrmilnik je, da ima štiri ločena polja registrov, kar

zelo pospeši delovanje ob sprožitvi prekinitve. Saj namesto, da bi v primeru prekinitve

vsebino registrov zložil na sklad, se samo prestavi na drugo polje registrov [13].

PIC je družina mikrokrmilnikov, ki jih proizvaja podjetje Microchip Technology Inc.

So trenutno eni najpopularnejših mikrokrmilnikov na tržišču, uporabljeni v komercialnih in

Page 20: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 7

industrijskih aplikacijah. Letno se jih proda okoli 120 milijonov. Arhitektura

mikrokrmilnikov PIC bazira na prilagojeni Harvard RISC arhitekturi, ki je prilagodljiva za

najrazličnejše tipe mikrokrmilnikov z 6 do 80 priključki in z 384 B do 128 kB

programskega spomina. Tako obsega družina mikrokrmilnikov PIC čez sto najrazličnejših

modelov, ki se razlikujejo po številu priključnih nogic, tipih in velikostih različnih

pomnilnikov, ki obsegajo delovni pomnilnik in pomnilnik za shranjevanje programa ter

najrazličnejših vhodno izhodnih naprav in komunikacijskih vmesnikov. V osnovi lahko

družino razdelimo na tri skupine mikrokrmilnikov glede na dolžino ukazne (instrukcijske)

besede. Obstajajo 12-,14- in 16-bitne dolžine ukaznih besed. Skupina mikrokrmilnikov z

12-bitno dolžino ukazne besede je moč zelo enostavno uporabiti za najenostavnejše

aplikacije, saj mikrokrmilnik podpira samo 33 ukazov, ki se jih je lahko naučiti. Daljša kot

je ukazna beseda, večje je število ukazov. Tako lahko gradimo kompleksnejše programe za

zahtevnejše aplikacije [14].

Družino mikrokrmilnikov AVR izdeluje podjetje Atmel. Arhitektura mikrokrmilnika je

zasnovana na 8-bitni Harvard arhitekturi. Mikrokrmilniki iz te družine imajo popolnoma

ločen pomnilnik za program in podatke. Pomnilnik za program je Flash pomnilnik,

medtem ko se za shranjevanje podatkov uporablja EEPROM pomnilnik. Prve

mikrokrmilnike je podjetje razvilo leta 1996. Kot prvi so za shranjevanje programa

uporabljali Flash pomnilnik, medtem ko so drugi uporabljali ROM, EPROM in EEPROM.

V osnovi se mikrokrmilniki AVR delijo na tri osnovne družine. In sicer na tinyAVR,

megaAVR in na namenske AVR mikrokrmilnike. TinyAVR se uporabljajo za

najenostavnejše aplikacije imajo od 1 do 8 kB spomina. Ti mikrokrmilniki se nahajajo v

ohišjih z od 8 do 32 nožicami in imajo zelo skrčeno število perifernih naprav. MegaAVR se

uporablja za zahtevnejše aplikacije. Velikost pomnilnika obsega od 4 kB do 256 kB in se

nahajajo v ohišjih z od 28 do 100 nožicami. Ti mikrokrmilniki imajo razširjen nabor

ukazov, ki so namenjeni hitrejšemu izvajanju, na primer ukaz za množenje, ali pa za

izvajanje dodatnih funkcionalnosti, ki jih mikrokrmilnik premore, kot so upravljanje s

pomnilnikom. Mikrokrmilniki iz te družine imajo tudi velik nabor perifernih naprav. Tako

je lahko v enem samem mikrokrmilniku več perifernih naprav s popolnoma enakim

delovanjem, recimo več AD pretvornikov. V družino namenskih AVR mikrokrmilnikov

uvrstimo mikrokrmilnike s specifičnim naborom perifernih naprav, ki so vnaprej

Page 21: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 8

predvidene za točno določeno aplikacijo. Uporabljeni so kot krmilniki za LCD zaslone,

USB komunikacijo in podobno. V tej skupini so tudi mikrokrmilniki, ki so pravzaprav

kombinacija mikrokrmilnika in FPGA vezja. Podjetje Atmel jih imenuje FPSLIC vezja

(ang. Field Programmable System Level Integrated Circuit). Vezja so namenjena časovno

kritičnim aplikacijam, kjer imamo poleg FPGA vezja vgrajeno še AVR jedro in spremenjen

pomnilnik. Program je zapisan v SRAM-u. Tako lahko FPSLIC deluje pri urah do 50MHz

[15].

FPGA (ang. Field Programmeble Gate Array) je programirljivo logično vezje, pri

katerem programiramo logiko digitalnega vezja v smislu povezav digitalnih vrat. FPGA

vsebuje programirljive logične bloke, ki so lahko enostavni pomnilni elementi, kot flip-

flopi, različni tipi digitalnih vrat, ali pa kot kompleksnejše strukture, kot so števci, registri

in podobno. FPGA vezja so še vedno počasnejša od namensko izdelanih integriranih vezjih

(ASIC), ampak v specifičnih aplikacijah delujejo hitreje, kot procesor s programsko

opremo. V primerjavi z namenskimi integriranimi vezji je FPGA počasnejši in porabi več

energije. V dobrobit mu lahko štejemo enostavnejše načrtovanje, možnost hitrega razvoja

in možnost reprogramiranja ter odpravljanja napak. Nekatera FPGA vezja imajo možnost

programiranja samo dela vezja, med tem ko drugo vezje v napravi normalno deluje. FPGA

vezja se uporabljajo v najrazličnejše namene, predvsem tam, kjer obdelujemo podatke s

specifičnimi časovno zahtevnimi operacijami. Uporabljajo se za digitalno procesiranje

signalov, za digitalne modulacije pri distribuciji digitalne televizije, pri razpoznavanju

govora, zvoka in slike. Uporabljajo se tudi za samo načrtovanje integriranih vezij.

Nekatera FPGA vezja imajo dodatno vgrajeno mikroprocesorsko jedro, ali pa kar samo

FPGA vezje programiramo tako, da deluje kot mikroprocesor. To da neomejene možnosti

za uporabo, saj lahko sami zgradimo logiko in različne periferne naprave okoli

mikroprocesorskega jedra [17].

Page 22: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 9

2.2 Pomnilniki

Vsak računalnik za svoje delovanje potrebuje pomnilnik, saj bi brez njega vse podatke

praktično pozabil. Poznamo veliko različnih tipov pomnilnikov, ki jih lahko ločimo po

načinu delovanja in njihove naloge v sistemu. Opisali bomo nekaj najpogostejših tipov

pomnilnikov, ki se uporabljajo v enostavnejših sistemih in so večinoma kar integrirani v

mikrokrmilnik.

RAM (ang. Random Access Memory) je pomnilnik z naključnim dostopom, kar

pomeni, da porabimo enak čas za dostopanje naključnega naslova v pomnilniku. Uporablja

se za shranjevanje trenutnih podatkov, ki jih mikroprocesor procesira. Ob izklopu

napajanja pomnilnik pozabi vse podatke. Ima zelo hiter dostop do podatkov v primerjavi z

drugimi pomnilniki, ki po izklopu napajanja obdržijo podatke. Ločimo ga na statični RAM

(SRAM) in dinamični RAM (DRAM). Statični RAM je s kompleksnejšimi pomnilnimi

elementi (flip-flopi) hitrejši in ne potrebuje osveževanja. Je pa zato dražji in ga ne dobimo

v velikih kapacitetah. Dinamični RAM ima enostavnejše pomnilne elemente, ki so

sestavljeni iz tranzistorja in kondenzatorja, ima lahko veliko kapaciteto, potrebuje pa

posebno vezje za nadzor pomnilnika, ki ga nenehno osvežuje. Uporablja se predvsem pri

močnejših računalnikih, kjer je potrebna velika kapaciteta pomnilnika. Vsak mikrokrmilnik

ima integriran RAM pomnilnik, saj bi brez njega težko deloval. Za pomnilniško zahtevne

aplikacije imajo boljši mikrokrmilniki priključne nožice, na katerega lahko priključimo

dodatni RAM pomnilnik [14].

ROM (ang. Read Only Memory) je pomnilnik, s katerega lahko samo beremo podatke.

Podatki so vneseni že pri sami izdelavi pomnilnika, in jih je naknadno nemogoče

spreminjati. Uporabljen je za izdelavo velike serije dokončno razvitega programa, ker s

tem močno zmanjšamo strošek izdelave, ki bi ga imeli pri uporabi drugega tipa pomnilnika

[14].

EPROM (ang. Erasable Programmeble Read Only Memory) pomnilnik ima možnost

večkratnega programiranja in brisanja podatkov. Podatke pobrišemo s pomočjo UV

svetlobe. Pobrišemo jih tako, da odstranimo zaščito na zgornji strani ohišja integriranega

Page 23: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 10

vezja, kjer se nahaja majhno okence. Skozi to okence osvetlimo integrirano vezje za

določen čas, le-to je tako pripravljeno za ponovno programiranje. EPROM je uporaben pri

razvoju programa, ki ga želimo naložiti v pomnilnik, saj lahko program večkrat

popravljamo in preizkušamo. Obstajajo tudi verzije pomnilnika EPROM, znane kot OTP

(ang. One Time Programmeble). Te pomnilnike lahko programiramo samo enkrat (z enako

napravo kot pomnilnike EPROM), samo da podatkov ni mogoče več zbrisati. Uporabni so

za programiranje končne verzije programa v majhnih serijah in imajo nižjo ceno, kot

normalni EPROM pomnilniki [14].

EEPROM (ang. Electrically Erasable Programmeble Read Only Memory) pomnilnik

odpravlja slabost EPROM pomnilnika, saj ga lahko izbrišemo s pomočjo napetostnega

impulza. Ni ga potrebno jemati iz naprave in osvetljevati z UV svetlobo. Večina

modernejših mikrokrmilnikov ima EEPROM kar integriran zraven drugih enot. Omogoča

možnost programiranja krmilnika v samem sistemu. EEPROM pomnilniki so načeloma

počasna vrsta pomnilnika. Omogočajo končno število prepisov podatkov. Število možnih

prepisov je pri novejših pomnilnikih sicer od 105 do 106, čeprav bi ga pri zelo pogosti

uporabi hitreje uničili [14].

Flash pomnilnik je druga vrsta EEPROM pomnilnika, ki deluje na drugačnih

fizikalnih osnovah kot običajen EEPROM pomnilnik. Flash je načeloma zelo hiter

pomnilnik, tako da v določenih aplikacijah nadomešča sam RAM. Pri prvih primerkih je

bilo pri ponovnem programiranju potrebno pobrisati celoten pomnilnik. Danes pa poznamo

dve različni tehnologiji izdelave Flash pomnilnika. NOR Flash in NAND Flash.

Pomnilnik tipa NOR ima daljše čase za zapis in izbris podatkov, omogoča pa naključen

dostop, medtem ko je pomnilnik tipa NAND hitrejši, do podatkov pa ne moremo dostopati

po besedah ampak po celotnih blokih in ga ne moremo preprosto zamenjali z navadnim

EEPROM pomnilnikom. Pri branju in izvajanju programa večina mikrokrmilnikov zahteva

besedni dostop, zato se v njih najpogosteje uporablja Flash pomnilnik tipa NOR.

Pomnilnik tipa NAND porabi manj površine v integriranem vezju in je cenejši, zato se

veliko uporablja kot sekundarni pomnilnik, kot so USB ključi, in razne pomnilniške kartice

za mobilne naprave. Danes so na trgu že RAM diski s kapaciteto nekaj GB in so vgradljivi

Page 24: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 11

v osebni računalnik, najpogosteje pa v prenosnike, saj so takšni diski manj občutljivi na

tresljaje, praktično neslišni in porabijo manj energije [19].

2.3 Periferne naprave

Periferne naprave so nameščene okoli mikroprocesorskega jedra in vsaka od njih

opravlja specifično nalogo. Pri mikrokrmilnikih so periferne naprave, ki se najpogosteje

uporabljajo, kar integrirane zraven samega mikroprocesorskega jedra. Tako nam ob

nezahtevnih aplikacijah praktično ni potrebno dodajati od zunaj nobene dodatne naprave.

Na kakšen način komunicirajo z mikroprocesorskim jedrom, je odvisno od arhitekture

mikrokrmilnika. V nadaljevanju bomo opisali nekaj izmed perifernih naprav, ki se

uporabljajo najpogosteje.

AD pretvornik je naprava, ki pretvarja analogno vrednost napetosti v digitalno

vrednost. AD pretvornik najprej odtipa vrednost iz zveznega analognega signala s pomočjo

vzorčevalno-zadrževalnega vezja (ang. Sample-Hold) v enakomernih časovnih intervalih.

To odtipano analogno vrednost kvantizira in jo pretvori v digitalno obliko. Poznamo več

vrst AD pretvornikov, ki jih lahko delimo glede na princip delovanja, ki posledično

doprinesejo različne hitrosti pretvorbe [1].

Števni AD pretvornik primerja vhodni signal z referenčnim s pomočjo stopničaste

referenčne napetosti. Na začetku začne pretvornik dvigovati referenčno napetost od nič po

en kvantizacijski korak in jo primerjati z vhodno napetostjo. Ko referenčna napetost

preseže vhodno napetost se dvigovanje referenčne napetosti ustavi. Rezultat je število

kvantizacijskih korakov, ki jih AD pretvornik poda na izhodu v binarni obliki [1].

Števni AD pretvornik z dvojno strmino je zelo počasen - a natančen in se pretežno

uporablja v digitalnih instrumentih. Ta pretvornik digitalizira vhodno analogno vrednost

napetosti s pomočjo integracije. Najprej integrira vhodno napetost v določenem časovnem

intervalu. Nato preklopi na referenčno napetost in s pomočjo negativne vrednosti integrira

v negativni smeri do izpraznitve kondenzatorja v integratorju (do napetosti nič). Medtem

števec šteje čas izpraznitve z referenčno napetostjo, ki ima vrednost vhodne napetosti [1].

Page 25: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 12

Sledilno-števni AD pretvornik deluje podobno kot števni pretvornik, le da se

referenčna vrednost iz DA pretvornika ne postavi na nič, ampak se od prejšnje vrednosti

bliža novi. To pripomore k hitrejšemu času pretvorbe [1].

AD pretvornik s postopnim približevanjem vhodno zadržano napetost primerja z

referenčnim signalom najbolj utežnega bita – MSB. Pri tem si zapiše ali je referenčna

vrednost MSB presegla vhodno napetost ali ne. Če jo je presegla, potem zapiše MSB kot

logično 0, če je ni, pa kot logično 1. Nato primerjamo z referenčno napetostjo naslednjega

bita, ki je odvisna od prejšnjega rezultata. Tako primerjamo vhodno vrednost vse do

zadnjega, najmanj utežnega bita – LSB. Ti pretvorniki se uporabljajo pri srednjih

frekvencah vzorčenja od 50kHz do 1MHz [1].

AD pretvornik z neposredno pretvorbo je najhitrejši med AD pretvorniki. Ta pretvori

vhodno analogno napetost s pomočjo vzporedne postavitve primerjalnikov in uporovne

lestvice, ki je izvor referenčne napetosti za primerjalnike. Izhodi primerjalnikov so

povezani v kodirno logično vezje, ki iz posamezne primerjalne vrednosti združi

informacijo v n-bitno besedo. Celotna zakasnitev pretvornika je odvisna od primerjalnikov

in kodirno logičnega vezja. Slabost teh pretvornikov je veliko število uporabljenih

primerjalnikov, saj jih za 8-bitni pretvornik potrebujemo 255. Pretvorniki se izdelujejo do

10-bitne besedne dolžine. Večjo dolžino besede lahko pridobimo z vezavo dveh

pretvornikov in hitrega ojačevalnika [1].

DA pretvornik je naprava, ki vhodno digitalno vrednost pretvori v izhodni analogni

signal. Pretvorniki se razlikujejo po dolžini vhodne besede in hitrosti pretvorbe, ki je

podana v vzorcih na sekundo. Razlikujejo se tudi po načinu vpisa besede, ki je pri hitrih

pretvornikih vzporedna, pri počasnejših pa lahko izbiramo med vzporednim in zaporednim

vpisom besede. Vezje DA pretvornika je sestavljeno iz uporovnih lestvičnih vezij, ki ga

sestavljajo sami enaki upori ali pa R-2R členi. Redko srečamo DA pretvornik, ki je

sestavljen iz utežno naraščajočih uporov in seštevalnika [1].

Page 26: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 13

PWM, pulzno širinska modulacija (ang. Pulse Width Modulation) je modulacija, ki se

uporablja pri močnostnem krmiljenju elektromotorjev. Ta metoda se izogne uporabi

močnostnega analognega vezja za krmiljenje motorjev. Temelji na dejstvu, da je odzivni

čas elektromehanskih strojev velik. Namesto da bi za krmiljenje uporabljali analogno

izhodno napetost, lahko uporabimo množico pulzov med napetostjo nič in napajalno

napetostjo. Pulzi so generirani s konstantno frekvenco, navadno nad slišnim območjem

(20kHz). Spreminjanje širine pulzov v programski kodi je ekvivalentno spreminjanju

efektivne napetosti na motorju, kar uporabimo pri krmiljenju hitrosti motorja. Lahko bi

dejali, da se elektromotorji obnašajo kot integrator pulznih signalov v večjem časovnem

okvirju. Zavedati se moramo tudi, da hitrost motorja ni linearna glede na širino pulzov,

zato moramo za točnejše nastavljanje hitrosti motorja najprej izmeriti karakteristiko in ga

umeriti. Seveda se hitrost spreminja tudi glede na obremenitev motorja, kar lahko

odpravimo z ustrezno regulacijo vrtljajev s pomočjo senzorja hitrosti vrtenja [20].

U

t

U

t

Ueff

Ueff

Nizka hitrost vrtenja motorja

Visoka hitrost vrtenja motorja

Slika 2.2: PWM signal

Števniki in časovniki so pomembni del mikrokrmilnikov, saj lahko z njimi merimo

čas med dogodki, ali pa dogodke štejemo. Ponavadi so 8- ali 16-bitni, večje besedne širine

pa lahko dosežemo, če ima mikrokrmilnik več števnikov-časovnikov in jih kaskadno

povežemo. Števnik je poseben register v mikrokrmilniku, ki je sposoben beležiti dogodke,

na primer spremembe stanj na vhodni nožici, ki je programsko določena. Števnik lahko

programsko nastavimo, in s tem določimo število dogodkov, ki jih želimo beležiti. Ko

Page 27: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 14

števnik doseže nastavljeno število dogodkov, se ponavadi sproži prekinitev, ki prekine

glavni program in izvede prekinitveni podprogram, ki je napisan posebej za ta dogodek. Če

štetje dogodkov števnika povežemo z notranjo uro, dobimo časovnik. Časovnik je možno

programsko pognati in ustaviti, lahko tudi nastavimo, po kolikih urinih taktih se sproži

prekinitev. Uporaben je pri aplikacijah, kjer želimo imeti časovno krmiljenje operacije

znotraj mikrokrmilnika. Nekateri mikrokrmilniki omogočajo tudi povezovanje časovnikov

z zunanjimi dogodki in ob sprožitvi prekinitve odčitajo vrednost časovnika. [14].

Veliko mikrokrmilnikov ima tudi namenske časovnike, ki so pripravljeni za

opravljanje specifične naloge. Eden izmed takšnih časovnikov je časovnik ure realnega

časa, ki neprestano daje podatek o uri in datumu in je uporaben v aplikacijah, kjer

potrebujemo točen čas. Ura realnega časa je lahko vgrajena v mikrokrmilnik ali je dodana

kot zunanja enota; lahko pa napišemo kar program, ki uro simulira. Za večjo točnost je

priporočljiva uporaba oscilatorjev s kremenčevim kristalom. V nekaterih mikrokrmilnikih

je oscilator ure realnega časa ločen od oscilatorja delovne ure. Drugi tak časovnik je

časovnik za ugotavljanje napak, angleško imenovan »watchdog timer«. Časovnik

spremlja izvajanje programa in to tako, da mu vrednost v zanki glavnega programa

neprestano osvežujemo. Če pride do izpada ali neskončnega zankanja katere izmed zank v

programu, se »watchdog« časovnik izteče in resetira mikrokrmilnik, tako da se program na

novo zažene. S tem dosežemo, da tudi ob napaki aplikacija ne zataji popolnoma [14].

Analogni primerjalnik je uporaben pri primerjanju dveh analognih napetosti, podatek

pa je programsko dostopen znotraj mikrokrmilnika. To periferno vezje je ponavadi

vgrajeno samo v zmogljivejše mikrokrmilnike [14].

»Brown-out« detektor je detektor padca napajalne napetosti. Spodnji nivo napetosti je

lahko fiksno določen ali pa programsko nastavljiv, odvisno od vrste mikrokrmilnika. Ko

pade napajalna napetost pod mejno vrednost, se mikrokrmilnik preprosto ugasne; to stori

zaradi zaščite, da se pri nizki napajalni napetosti ne bi izvajale kakšne naključne

programske operacije [14].

Page 28: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 15

2.4 Komunikacije in protokoli

Komunikacije so ključni element računalniškega sistema. S pomočjo njih računalnik

pridobiva podatke v obdelavo. To so lahko podatki, ki jih mora procesirati, ali pa podatki,

ki ga krmilijo. Seveda govorimo o digitalnih komunikacijah, kjer je informacija že

predstavljena v digitalni obliki, in jo lahko računalnik obdeluje brez uporabe pretvornikov.

Velikokrat govorimo tudi o digitalnih telekomunikacijah, ki prenašajo informacije v

digitalni obliki na daljavo po različnih prenosnih medijih. Dolžino prenosa lahko merimo

od nekaj metrov do nekaj tisoč kilometrov. Prenosni mediji so lahko žični ali brezžični,

vedno pa imajo za osnovo elektromagnetno valovanje. Pri žičnih medijih je povezava

izvedena s pomočjo kovinskega ali svetlobnega voda, vzdolž katerega potuje informacija

od oddajnika do sprejemnika. Brezžični medij pa je prazen prostor, kjer nimamo vodov za

prenos informacije, ampak se elektromagnetno valovanje širi po prostoru [21].

Protokol je skupek pravil, ki opisuje delovanje točno določenega komunikacijskega

sistema. Zaradi lažje obravnave komunikacij se protokol razdeli v več slojev, kjer protokol

sloja »n« opisuje delovanje komunikacije v »n«-tem sloju. Po OSI (ang. Open System

Interconnection) referenčnem modelu ima tipičen komunikacijski protokol sedem slojev,

kjer vsak sloj opravlja svojo nalogo. Seveda ima lahko določen protokol svojevrstno

razporejene sloje, tako na primer TCP/IP protokol uporablja samo štiri sloje [22].

Aplikacijski sloj

Prezentacijski sloj

Sejni sloj

Transportni sloj

Omrežni sloj

Sloj podatkovne povezave

Fizični sloj

7

1

2

3

4

5

6

Gost do omrežja

Internet

Transportni sloj

Aplikacijski sloj

OSI TCP/IP

Slika 2.3: Razporeditev slojev protokola po referenčnem modelu OSI in TCP/IP

Page 29: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 16

V nadaljevanju bomo opisali nekaj najpogostejših komunikacijskih standardov, ki se

uporabljajo danes. Osredotočili se bomo predvsem na tehnologije, ki se nanašajo na žično

ali brezžično povezovanje računalnikov in na za vgrajene sisteme zanimivejše

mikrokrmilnike. Nekatere izmed teh tehnologij smo uporabili tudi pri našem vgrajenem

sistemu: za povezovanje mikrokrmilnikov med seboj in za povezovanje celotnega sistema

z zunanjo okolico (dlančnikom ali računalnikom).

Ethernet imenovan tudi IEEE 802.3 je komunikacijski standard za povezovanje

računalnikov v računalniška omrežja LAN (ang. Local Area Network), ki bazirajo na

različnih vrstah vodnikov in tehnologij prenosa. Ethernet omrežje se sporazumeva s

pomočjo prenašanja okvirjev, ki so lahko zaradi raznovrstnih tehnologij različni po dolžini

in zgradbi. Na fizičnem nivoju lahko Ethernet komunicira preko koaksialnega vodnika,

optičnega vodnika ali UTP vodnika (vodnik sestavljen iz sukanih paric). Slednji se

dandanes uporablja najpogosteje, saj je najcenejši in za uporabo najenostavnejši. V

starejših tehnologijah so računalniki med seboj tekmovali za vodilo, tako da je posamezen

računalnik poslušal vodnik in čakal, če ga je uporabljal že kateri drugi. Če ni, je sam oddal

okvir. Tukaj so bili možni trki, ki jih je morala tehnologija reševati s ponovno oddajo

okvirjev. Obstajale so tudi tehnologije, kjer ni bilo trkov. To so bila tako imenovana

omrežja z žetonom, kjer je vsak računalnik, ki je hotel oddajati okvir moral počakati, da je

prejel okvir z imenom žeton, ki mu je dovoljeval oddajanje v omrežje. Po končanem

oddajanju, ga je posredoval naslednjemu računalniku. Takšne tehnologije so se večinoma

uporabljale pri prvi različici Etherneta, danes imenovanega klasični Ethernet, ki je imel

hitrost prenosa 10Mbit/s. Zaradi vse večjih obremenitev omrežja, ki ga je prinesel razvoj

večpredstavnosti, so za povezovanje več UTP vodnikov namesto zvezdišč (ang. hub), ki

enostavno povežejo vodnike skupaj, uporabljamo preklopnike (ang. switcher) in

usmerjevalnike (ang. router), ki so sposobni na podlagi tabel razvrščati pakete. Novejša

različica Etherneta (802.3u) ima ime hitri Ethernet, in se danes najpogosteje uporablja,

doseže hitrosti do 100Mbit/s. Pri tej različici ni več dovoljena uporaba koaksialnih kablov,

temveč samo sukane parice in optični vodnik. Ta različica je združljiva s starejšo različico,

saj so pri razvoju ohranili enako strukturo okvirjev. Danes pa že prihaja na tržišče gigabitni

Ethernet (802.3z) z možno hitrostjo prenosa do 1Gbit/s. Tukaj so zaradi velikih hitrosti

prenosa še strožja pravila glede povezovanja naprav med seboj, tako da lahko z enim

Page 30: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 17

vodnikom povežemo samo dva računalnika (zvezdišča, preklopnika). Vse možne

tehnologije so prikazane v tabeli 2.1 [22].

Tabela 2.1: Prikaz različnih tehnologij Etherneta

Ime Vodnik Max. dolžina segmenta

Max. Priklju čkov na segment

Opis

10Base5 Debeli koaksialni 500 m 100 Ni več v uporabi

10Base2 Tanek koaksialni 185 m 30 Ne potrebujemo vozlišča

10Base-T Sukana parica 100 m 1024 Najcenejši sistem

10Base-F Optični 2000 m 1024 Za povezavo med stavbami

100Base-T4 Sukana parica 100 m - Uporablja 3 kategorijo UTP

100Base-TX Sukana parica 100 m - Full duplex 100Mb/s - UTP kat 5

100Base-FX Optični 2000 m - Full duplex 100Mb/s;

1000Base-SX Optični 550 m - Optika - 50, 62,5 mikronov

1000Base-LX Optični 5000 m - 10 mikronov ali 50, 62,5 mikronov

1000Base-CX 2 para od UTP 25 m - Zaščitena sukana parica

1000Base-T 4 pari od UTP 100 m - Standardni UTP kategorije 5

Wireless LAN (WLAN) je podoben standard kot Ethernet, samo da se uporablja za

povezovanje računalnikov v brezžičnem omrežju. Označen je kot IEEE 802.11 in ima

popularno ime WiFi. Standard se je začel razvijat z razvojem prvih prenosnikov, saj so

želeli le-te na kratkih razdaljah med seboj brezžično povezat. Omrežje lahko deluje v

različnih načinih. Tako lahko povežemo računalnike s pomočjo dostopne točke, s pomočjo

več dostopnih točk, ali kar med sabo brez dostopne točke (ad-hoc). Pri povezovanju

računalnika brez dostopne točke ni nujno, da računalnik s svojo radijsko povezavo pokriva

vse računalnike. Vzpostaviti mora povezavo samo z enim, ki se lahko obnaša kot most do

želenega računalnika. Obstaja več različic tega standarda, ki so nastale tekom razvoja.

Razlikujejo se predvsem v delovanju povezave v fizičnem sloju in maksimalni hitrosti

prenosa. Različice so prikazane v tabeli 2.2. Standard je v višjih slojih združljiv z

Ethernetom, tako da z napravo, ki se imenuje most, lahko med seboj združimo žični LAN

in brezžični WLAN [22].

Page 31: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 18

Tabela 2.2: Različice WLAN tehnologije

Označba Frekvenca Max. prenos Max. domet Modulacijska tehnika

802.11a 2,4 GHz 54 Mb/s 120 m OFDM

802.11b 5 GHz 11 Mb/s 140 m DSSS

802.11g 2,4 GHz 54 Mb/s 140 m OFDM

802.11n 2,4 GHz; 5 GHz 248 Mb/s 250 m -

Slika 2.4: Primer povezave računalnikov na dostopno točko ali ad-hoc

Bluetooth je komunikacijski standard za povezovanje naprav v PAN (ang. Personal

Area Network) omrežja. Namenjen je predvsem za brezžično povezovanje mobilnih

naprav in računalniške periferije z računalnikom. Osnovna enota Bluetooth sistema je

piconet, ki ima eno napravo določeno kot gospodarja, nanj pa je priklopljenih do sedem

naprav v načinu suženj, ki so oddaljene do 10m od gospodarja. Več piconetov povezanih v

istem prostoru pa se povezuje v scatternet, kjer ima ena od suženjskih naprav vlogo mosta

med obema piconetoma.. V enoti piconet ima glavno vlogo gospodar, ki narekuje vsem

drugim napravam (sužnjem), kdaj naj oddajajo; medtem lahko sužnji čakajo v posebnem

načinu brez oddajanja in varčujejo z energijo ter čakajo na gospodarjev ukaz za ponovno

oddajo. Vse naprave se povezujejo samo z gospodarjem, povezava med dvema sužnjema ni

mogoča [22].

Page 32: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 19

Slika 2.5: Prikaz povezave dveh piconet omrežji

Bluetooth je bil razvit predvsem za povezovanje naprav z izredno malo porabljene

energije. Naprave Bluetooth so razdeljene na tri močnostne razrede, s katerimi je določen

tudi domet komunikacije, le-ta obsega razdaljo od 1m do 100m. Ti načini so prikazani v

tabeli 2.3. Obstajajo tudi različne različice Bluetootha, ki so se uveljavile tekom razvoja.

Prva različica je bila zaradi množice napak praktično neuporabna. V naslednjih so napake

odpravili in dodali različne funkcionalnosti. V standardizaciji protokola nastaja manjša

zmeda, saj za način delovanja odgovarjata dve instituciji, katerih standardi se ne ujemajo

popolnoma. Prva je IEEE, ki je Bluetooth standard prvič potrdila leta 2002 z imenom IEEE

802.15.1-2002 (Različica 1.1). Druga institucija pa je Bluetooth SIG (ang. Special Interest

Group) s podporo številnih podjetij, ki se zanimajo za to tehnologijo. SIG je tudi prvi, ki je

začel razvijati protokol leta 1998. Danes se ponekod že uporablja različica Bluetootha 2.0,

ki ima za razliko od različice 1.2 višje hitrosti prenosa (do 3Mbit/s), ni pa podprta iz strani

IEEE. Zato jo večinoma uporabljajo podjetja članice SIG. Trenutni razvoj strmi k višjim

hitrostim povezave. Tako lahko v prihodnosti pričakujemo hiter Bluetooth, ki bo

komuniciral v UWB frekvenčnem pasu in omogočal hitrosti do 480Mbit/s [24].

Tabela 2.3: Močnostni razredi Bluetooth naprav

Razred Maksimalna dovoljena moč Domet (približek)

Razred 1 100mW (20dBm) 100 m

Razred 2 2,5mW (4dBm) 10 m

Razred 3 1mW (0dBm) 1 m

Page 33: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 20

Bluetooth standard ima množico različnih protokolov razvrščenih po slojih. Standard

ne upošteva OSI, TCP/IP ali katerega drugega znanega referenčnega modela, ampak ima

čisto svojo strukturo slojev. Institucija IEEE je standard zelo prilagodila modelu 802.

Slika 2.6 prikazuje prilagojeno arhitekturo Bluetooth protokola [22].

Slika 2.6: Bluetooth - struktura slojev protokola

Najnižji sloj je fizični, ki predstavlja radijsko komunikacijo med napravami. Ukvarja

se z radijsko oddajo in modulacijskimi tehnikami. Mnogo podjetij je poskušalo narediti

čim cenejši radijski sistem, da so ga lahko masovno proizvajali. Sloj osnovnega pasa (ang.

baseband) je sloj, ki nekako posnema delovanje podsloja MAC pri Ethernetu, samo da še

vedno opravlja določene funkcije na fizičnem nivoju. Ta sloj upravlja s časovnimi režami

in jih združuje v podatkovne okvirje. Naslednji sloj združuje več protokolov, ki so med

seboj povezani ali pa ne. Upravljalec povezave (ang. link manager) vzpostavlja logične

kanale med napravami, skrbi za energijsko učinkovitost, avtorizacijo in kvaliteto. Protokol

logične povezave (ang. Logical Link Adaptation Protocol), imenovan s kratico L2CAP,

prilagaja podatke za uporabo z višjimi sloji in s tem ščiti podrobnosti o prenosu. Protokola

za zvok in krmiljenje (ang. audio; control) sta neposredno povezana s protokolom

osnovnega pasa. Sledi sloj vmesnih aplikacij (ang. middleware), kjer najdemo množico

raznih protokolov. Protokol 802 LLC je bil vstavljen zaradi kompatibilnosti z drugimi

protokoli v 802 standardu. RFcomm (ang. Radio Frequency Communication) je protokol,

ki emulira zaporedno povezavo. Ta se uporablja pri perifernih napravah za osebni

računalnik, kot sta tipkovnica, miška in podobno. Protokol za telefonijo je namenjen za

komunikacije v realnem času, ki prenašajo glas. Z njim lahko upravljamo tudi z

nastavitvijo in prekinitvijo klicev. Protokol za raziskovanje storitev (ang. service

discovery) se uporablja za iskanje servisov znotraj omrežja. V najvišjem sloju pa se

Page 34: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 21

nahajajo aplikacijski protokoli, ki jih pogosteje imenujemo profili. Ti komunicirajo s

protokoli v nižjih slojih po njihovi potrebi. Ponavadi naprava vsebuje samo tiste protokole,

ki jih potrebuje za uspešno komunikacijo. S pomočjo profila se naprava nekako tudi

identificira in pove katero izmed možnih storitev ponuja. V tabeli 2.4 imamo seznam

storitev s krajšimi opisi [22,26].

Tabela 2.4: Bluetooth profili aplikacij

Kratica Ime profila (v angleščini) Kratek opis

A2DP Advanced Audio Distribution Profile Prenašanje visoko kvalitetnega avdio/video toka.

AVRCP Audio/Video Remote Control Profile Vmesnik za kontrolo TV in Hi-Fi naprav.

BIP Basic Imaging Profile Pošiljanje slik med napravami.

BPP Basic Printing Profile Tiskanje neposredno iz mobilnih naprav

CIP Common ISDN Access Profile Dostop do podatkov in signalizacije ISDN.

CTP Cordless Telephony Profile Za uporabo naprave kot brezžični telefon.

DID Device ID Profile Identifikacija naprave.

DUN Dial-up Networking Profile Klicni dostop do interneta.

FAX Fax Profile Za upravljanje FAX povezave.

FTP File Transfer Profile Dostop do datotečnega sistema druge naprave.

GAVDP General Audio/Video Distribution Profile Osnovni profil za A2DP in VDP profila.

GAP Generic Access Profile Osnova za druge profile.

GOEP Generic Object Exchange Profile Osnova za podatkovne profile – OBEX.

HCRP Hard Copy Cable Replacement Profile Enostavna povezava med tiskalnikom in napravo.

HFP Hands-Free Profile Prostoročno telefoniranje.

HID Human Interface Device Profile Profil za priključevanje mišk, tipkovnic, ipd.

HSP Headset Profile Povezovanje naprave z slušalkami.

ICP Intercom Profile Zvočno povezovanje naprav med sabo.

LAP LAN Access Profile Za dostop do LAN-a preko druge naprave.

OPP Object Push Profile Pošiljanje objektov med napravami.

PAN Personal Area Networking Profile Vzpostavljanje PAN omrežja.

PBAP Phone Book Access Profile Izmenjevanje telefonskih imenikov.

SPP Serial Port Profile Enostavna emulacija serijske povezave.

SDP Service Discovery Profile Ugotavljanje servisov druge naprave.

SAP, SIM SIM Access Profile Povezovanje SIM kartic iz druge naprave.

SYNCH Synchronisation Profile Sinhronizacija podatkov.

VDP Video Distribution Profile Za transportiranje video toka.

WAPB Wireless Application Protocol Bearer Prenašanje WAP protokola čez Bluetooth.

Page 35: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 22

CAN (ang. Controller Area Network) je omrežni komunikacijski protokol za

povezovanje mikrokrmilnikov med seboj brez uporabe računalnika. Protokol se pogosto

uporablja v avtomobilski industriji, kjer se med sabo povezujejo senzorji in mikrokrmilnik

za kontrolo delovanja motorja na notranje izgorevanje. Protokol je zasnovan na OSI

referenčnem modelu opisuje pa samo najnižja sloja, to sta fizični in podatkovni sloj.

Vodilo CAN deluje na principu diferencialnega zaporednega vodila, kjer lahko vsaka

priključena naprava oddaja ali sprejema vsa sporočila, ki so na vodilu. Vodilo omogoča

hitrosti prenosa do 1Mbit/s, če je povezava krajša od 40m. Pri daljših povezavah pa se

hitrost prenosa zmanjša, tako lahko, na primer, pri povezavi dolgi 500m še vedno

prenašamo podatke z hitrostjo 128kbit/s. Danes poznamo dve izpeljanki CAN vodila: z

11-bitnim in 29-bitnim naslavljanjem. Sporočilo je sestavljeno iz identifikacijske besede,

ki opredeli tip in prejemnika sporočila. Sledi še do največ osem besed. Ker je vodilo

večinoma namenjeno povezovanju senzorjev, kontrolnih naprav in podobno, mora vsaka

priključena naprava vsebovati gostiteljski procesor (mikrokrmilnik). Nobena naprava ni

neposredno priključena na vodilo. Vsaka naprava lahko oddaja, če je vodilo prosto, v

primeru trkov dveh sporočil prevlada tisto z dominantnejšo identifikacijsko besedo (ima

dominantnejše bite). Po tej arbitraži vse priključene naprave dobijo sporočilo z

dominantnejšo identifikacijsko besedo. Na takšen način vodilo omogoča, da nanj

priključimo več gospodarjev [1,23].

I2C (ang. Inter-Integrated Circuit) je vodilo, ki so ga razvili pri podjetju Philips leta

1980. Namenjeno je povezovanju integriranih vezij med seboj. Deluje lahko v treh

hitrostnih razredih. Prvi je standardni način S (ang. Standard mode), ki omogoča hitrosti do

100 kbit/s. Drugi je hiter način F (ang. Fast mode) s hitrostmi do 400 kbit/s, in tretji,

najnovejši, zelo hiter način s hitrostmi do 3,4 Mbit/s Hs (ang. High Speed mode). Tipična

napetostna nivoja sta 5V za S in F način, ter 3,3V za Hs način. Vezja, ki delujejo v Hs

načinu, podpirajo tudi S in F načina. Vodilo deluje s pomočjo dveh aktivnih linij in mase.

Prva je podatkovna SDA (ang. Serial Data) in druga urina SCL (ang. Serial Clock).

Povezavi sta na naprave povezani preko dvižnih uporov. Vsaka naprava, povezana na I2C

vodilo, ima svoj naslov. Nadzor nad vodilom ima gospodar (ang. master). To je naprava, ki

generira urni signal na SCL liniji. Ponavadi je ta naprava mikroprocesor ali mikrokrmilnik.

Vodilo lahko deluje tudi z več gospodarji vodila [1].

Page 36: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 23

2.5 Senzorji

Senzorji so naprave, ki pretvarjajo eno fizikalno veličino v drugo. V elektrotehniki pa

se uporabljajo senzorji, ki pretvorijo katerokoli fizikalno veličino v električno. V kakšni

električni veličini bo senzor predstavil svojo vrednost je odvisno od njegovega vmesnika.

Izhodno vrednost lahko poda v analogni obliki z nivojem toka, napetosti ali s pomočjo

PWM signala. Pri vgrajenih sistemih pa raje uporabljamo senzorje, ki že imajo vgrajen

digitalni vmesnik, saj tako ni potrebno pretvarjati dobljene vrednosti v digitalno obliko in

ga je lažje priključiti na mikrokrmilnik. Takšen senzor lahko poda informacijo v obliki

enega bita ali celotne besede, ki se lahko prenese zaporedno ali vzporedno, odvisno od

vmesnika, ki ga ima senzor. V nadaljevanju bomo opisali senzorje za zaznavanje okolice,

ki se uporabljajo pri mobilnih napravah.

Binarni senzor je najenostavnejši tip senzorja. Vrne samo en bit digitalne informacije:

logično 0 ali 1. Tipični primer je stikalo končnega položaja robotske roke. Zelo enostavno

ga je priključiti na mikrokrmilnik. Priključimo ga neposredno na digitalni vhod ali preko

zadrževalnika. Stikalo priklopimo preko dvižnega upora, da ob sklenitvi ne povzročimo

kratkega stika. Večina mikrokrmilnikov že ima vgrajen dvižni upor, tako da lahko

priključimo stikalo neposredno med digitalnim vhodom mikrokrmilnika in maso [20].

Slika 2.7: Binarni senzor izveden z stikalom

Rotacijski kodirnik se uporablja kot senzor za pridobivanje povratne informacije o

vrtenju motorja. S tem omogoča regulacijo vrtljajev. Najpogosteje se uporabljajo kodirniki,

ki temeljijo na magnetnem ali optičnem odčitavanju položaja. Magnetni kodirnik uporablja

Hallovo sondo za zaznavanje magnetnega polja in vrteči se disk z več magneti pritrjenimi

Page 37: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 24

na robu diska. Če je na primer magnetov 16, se na izhodu Hallove sonde pri enem obratu

motorja pojavi 16 impulzov. Pri optičnem kodirniku uporabimo disk, ki je razdeljen na

črna in bela polja, ter LED diodo v kombinaciji s fototranzistorjem. Tako se v primeru 16

poljnega kodirnika na izhodu fototranzistorja pojavi 16 impulzov za en obrat motorja.

Kodirnik je po navadi montiran neposredno na gred motorja pred reduktorjem, da lahko

podaja popolno resolucijo obratov motorja. Kodirnik s samo enim senzorjem lahko samo

šteje segmente, ne more pa podati absolutne pozicije gredi. To lahko rešimo z diskom, ki

ima postavljene črno-bele segmente v obliki Greyeve kode, in z več svetlobnimi senzorji.

Ti kodirniki se uporabljajo tudi pri mobilnih robotih za ugotavljanje pozicije in orientacije

[20].

Slika 2.8: Rotacijski kodirnik – optična izvedba in postavitev polj v Greyevi kodi za absolutno zaznavanje položaja

Senzor oddaljenosti je eden najpomembnejših senzorjev pri gradnji mobilnih robotov.

S tem senzorjem lahko zaznavamo, če je v bližini senzorja kakšen predmet in koliko je

oddaljen ter nato na podlagi teh podatkov vodimo mobilnega robota mimo ovire. Poznamo

več tehnik merjenja oddaljenosti, najbolj izstopajoči so senzorji na podlagi ultrazvoka,

infrardeče svetlobe in laserske svetlobe. Ultrazvočni senzorji delujejo tako da oddajo

zvočni signal in pri sprejemu odbitega signala na podlagi časa potovanja izračunajo

dolžino oddaljenosti od predmeta. Delujejo pri frekvencah od 50kHz do 250 kHz in

ponavadi podajajo meritev 20 krat v sekundi. Največja slabost ultrazvočnih senzorjev so

odboji in interferenca signala. Ko je akustični signal odbit pod določenim kotom, se zdi, da

Page 38: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 25

je ovira bolj oddaljena. Do interference pride pri uporabi več senzorjev hkrati. Takrat lahko

en senzor zazna akustični odboj drugega signala in tako dobi napačen podatek o

oddaljenosti od ovire. Interferenco preprečujemo tako, da oddani signal zakodiramo s

pseudo-naključnimi števili. Danes namesto ultrazvočnih senzorjev raje uporabljamo

laserske, ki so zelo natančni. Tako lahko mobilna naprava z več senzorji meri okolico in

dobi pravo dvodimenzionalno mapo iz svoje točke pogleda, ali celo popolno

tridimenzionalno. Na žalost so ti senzorji preveliki in pretežki za uporabo na majhnih

mobilnih napravah in še vedno precej dragi. Naslednja možnost za uporabo so infrardeči

senzorji, ki delujejo na malo drugačnem principu kot ultrazvočni. Zaradi hitrosti svetlobe

oddaljenosti ne moremo meriti neposredno. Ti senzorji ponavadi uporabljajo infrardečo

LED diodo, ki utripa z frekvenco 40kHz. Na drugi strani pa imamo infrardečo zaznavno

polje, ki na podlagi kota odboja pridobi oddaljenost od ovire. Valovna dolžina svetlobe je

ponavadi 880nm in ni vidna s prostim očesom. Senzorje lahko dobimo z analognim ali

digitalnim vmesnikom. Analogni vmesnik podaja oddaljenost v napetosti, digitalni pa

podaja 8-bitno besedo po zaporedni povezavi. Senzor se nelinearno odziva na oddaljenost.

Tako so vrednosti, ki jo da ob določeni oddaljenosti, podane v diagramu. Pri digitalnih

vrednostih problem najlažje rešimo s pomočjo tabele vrednosti, ki je zapisana v

pomnilniku mikrokrmilnika in s programom izračunavamo oddaljenost. Vsaka izmed 256

vrednosti (8 bitov) je vpisana v tabelo. Drugi problem teh senzorjev je, da senzor ne more

meriti daljin bližjih od 6cm, saj pade izven merilnega območja in tako zaradi narave

delovanja kaže večjo oddaljenost. Ta problem rešujemo s pomočjo več ukrepov. V

programu lahko sledimo vrednostim senzorja in tako ugotovimo, ali se je naprava

približevala oviri ali oddaljevala, preden je padla čez merilno območje. Lahko enostavno

senzor mehansko pritrdimo tako, da daljina manjša od 6cm ni mogoča, ali pa dodamo

dodatne infrardeče stikalne senzorje, ki so sposobni zaznavat večjo bližino. Ti so

enostavnejši od infrardečih senzorjev oddaljenosti. Infrardeči stikalni senzorji podajajo

binarno vrednost. Zaznavajo ali je ovira v bližini 1cm do 2cm ali ne. Ti senzorji lahko

nadomestijo običajne stikalne senzorje, saj so boljši, ker ne vsebujejo premičnih delov

[20].

Page 39: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 26

Slika 2.9: Primer nelinearne karakteristike IR senzorja Sharp GP2D120.

Kompas je senzor, ki poda absoluten kot glede na zemeljsko magnetno polje.

Uporablja se predvsem za orientacijo avtonomnih mobilnih naprav. Ponavadi se uporabi

pri ponovni začetni nastavitvi orientacije, ki smo jo izgubili s kakšnim drugim senzorjem.

Najenostavnejši primerki senzorjev podajajo rezultat v osmih smereh, ki jo predstavijo z

različnimi izhodnimi napetostmi. Boljši kompasi pa imajo digitalen serijski vmesnik. Ti

kompasi so kompleksnejši in lahko merijo kote do 2° natančno ter delujejo tudi v zaprtih

prostorih [20].

Senzorji pospeška so enostavni senzorji, ki pa imajo težave z zaznavanjem tresljajev,

zato se po navadi dobljene vrednosti filtrirajo. Senzorji so lahko v različnih izvedbah,

razlikujemo jih pa predvsem po merilnem območju merjenja, koliko smeri meri in kakšen

vmesnik ima za posredovanje izmerjenih vrednosti. Obstajajo senzorji, ki lahko merijo

pospešek v eni, dveh ali vseh treh smereh. Podatke pa posredujejo analogno, ali v obliki

Page 40: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 27

PWM signala. Ti senzorji so občutljivi na »pozicijski šum« (na primer: zaznavajo šum ob

delovanju motorjev). Te šume ponavadi filtriramo z nizkoprepustnim filtrom, če gre za

analogni izhodni signal, ali pa z digitalnim filtriranjem - v primeru uporabe senzorja z

digitalnim vmesnikom [20].

Giroskop je senzor za merjenje spremembe orientacije mobilne naprave. Večji in

boljši senzorji delujejo na principu vrtečega se diska, ki ima lastnosti, da ohranja absolutno

orientacijo ne glede na spremembo orientacije naprave. Takšni senzorji so veliki in se

uporabljajo predvsem za orientacijo plovil v aeronavtiki. V majhnih mobilnih napravah pa

se uporabljajo giroskopi, ki delujejo na principu piezoelektričnih pojavov. Ti ne morejo

meriti absolutne orientacije, lahko pa merijo spremembo orientacije. Orientacijo merijo v

eni osi in rezultat po navadi podajajo z PWM signalom. Slabost tega senzorja je, da z

zaznavanjem sprememb orientacije neprestano delamo napako. To lahko odpravimo z

ponovno začetno nastavitvijo senzorja [20].

Inklinacijski kompas je senzor nagiba. Deluje na podlagi gravitacije in se pretežno

uporablja v aeronavtiki. Ceneni senzorji, ki jih dobimo za grajenje majhnih mobilnih

naprav imajo analogni ali PWM izhod. Merijo absoluten kot nagiba, zato imajo iz tega

stališča boljše lastnosti kot giroskop, saj se pri njih napaka ne povečuje. Podobno kot

senzorji pospeška so občutljivi na »pozicijski šum«, tresljaje, ki jih povzroča elektromotor.

Potrebujejo tudi veliko časa za odčitavanje meritve, tako niso uporabni pri hitrih

regulacijah naprave. Če potrebujemo točne in hitre meritve, je idealna kombinacija več

senzorjev za orientacijo, na primer inklinacijskega kompasa in giroskopa [20].

2.6 Motorji in kontrola motorjev

Enosmerni motorji se zelo pogosto uporabljajo za gonilne elemente pri mobilnih

robotih, pa tudi v robotskih sistemih, kjer ni potrebe po veliki točnosti. Ti motorji delujejo

s pomočjo komutacije magnetnega polja. Polje komutira zaradi spreminjanja smeri toka

skozi navitja. Smer električnega toka spreminjamo s pomočjo drsnih obročev, ki se

nahajajo na osi rotorja motorja. Ti motorji so poceni in večinoma nadomestijo potrebe po

gonilnih elementih v robotih. Nadomestijo tudi potrebe po pnevmatičnih elementih, ki so

Page 41: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 28

pri mobilnih robotih prej izjema kot pravilo. Pnevmatični sistemi se uporabljajo takrat, ko

imamo potrebo po velikih navorih, še vedno pa črpalko poganja elektromotor. Dobre

lastnosti teh motorjev so njihova cena v primerjavi z ostalimi vrstami motorjev ter

enostavno krmiljenje, ki je napetostno in je lahko zaradi mehanske vztrajnosti samega

motorja izvedeno kar z PWM signalom brez dodatnih filtrov. Slabe lastnosti pa so, da

zaradi krtačk in drsnih kontaktnih obročev nimajo najvišjega izkoristka, povzročajo šum,

za točnejše krmiljenje obratov in navora pa moramo uporabiti povratno informacijo, ki jo

pridobimo s pomočjo rotacijskih kodirnikov. Na tržišču obstajajo tudi motorji, ki imajo

rotacijske kodirnike že vgrajene. Tako za standardne aplikacije ne rabimo sami izdelovati

rotacijskih kodirnikov, ki so v komercialnih izvedbah izvedeni na svetlobni ali magnetni

tehnologiji in primerno zaščiteni pred zunanjimi vplivi: pri svetlobnih rotacijskih

kodirnikih se, na primer, omejuje neposreden dostop zunanje svetlobe na senzor kodirnika

[20].

Koračni motorji se precej razlikujejo od navadnih enosmernih motorjev v tem, da

imajo dve neodvisni tuljavi, ki sta lahko neodvisno krmiljeni. To daje tem motorjem

možnost, da se lahko zavrtijo točno za en korak naprej ali nazaj, namesto da bi se vrteli

prosto kot enosmerni motorji. Tipično število korakov na en obrat je 200, kar pomeni, da

se pri enem koraku motor zavrti za 1,8°. Nekateri koračni motorji so izvedeni tako, da

omogočajo polovični korak, kar še poveča natančnost vrtenja. Hitrost vrtenja je odvisna od

obremenjenosti motorja, določena pa je s številom korakov v sekundi. Slika 2.10 prikazuje

delovanje koračnega motorja z dvema tuljavama, ki sta kontrolirani z dvema krmilnima

H-mostiščnima vezjema. Vsaka izmed kombinacij v tabeli zavrti motor za en korak naprej;

če kombinacije izvajamo v obratni smeri se motor vrti nazaj. Stikalno zaporedje je

razvrščeno po Greyevi kodi, kar moramo upoštevati pri krmiljenju [20].

Slika 2.10: Delovanje koračnega motorja - krmilni signali za navitja

Page 42: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 29

Koračni motorji v robotiki niso tako pogosto uporabljeni. Njihovo uporabo omejujejo

predvsem: njihova odvisnost hitrosti od obremenitve, počasnost in kompleksnost

krmiljenja. Ti motorji so, v primerjavi z navadnimi enosmernimi motorji, tudi neprimerno

večji in težji pri enaki obremenitvi. V sistemih jih uporabljamo predvsem takrat, ko

zahtevamo veliko točnost pomikov [20].

Servo motorji so zelo kvalitetni enosmerni motorji, ki so krmiljeni v zaprti zanki. Ti

motorji morajo biti sposobni hitre menjave položaja, visokih hitrosti in pospeškov.

Narejeni morajo biti tako, da zdržijo visoke spremembe navorov. Servo motor je v osnovi

enosmerni motor z dodano kontrolno logiko in je na široko uporabljen v modelarstvu, za

krmiljenje modelov letal, avtomobilov in čolnov. Ta motor ima tri priključne vodnike,

napajanje, maso in krmilni vodnik PW, ki je podoben signal kot PWM, ki se uporablja pri

krmiljenju enosmernih motorjev. Signal PW ni pretvorjen v hitrost, tako kot PWM pri

enosmernih motorjih, ampak je uporabljen za analogno krmiljenje položaja vrtečega diska,

ki je priključen posredno na reduktor na rotor motorja. Servo motor se ne more večkrat

zavrteti, lahko se zavrti samo za ±120° iz sredinskega položaja. Zgrajen je iz enosmernega

motorja in enostavnega krmilnega vezja, ki običajno ugotavlja položaj glave s pomočjo

potenciometra. PW signal za servo motorje ima običajno frekvenco 50Hz in s pomočjo

širine podaja želeni položaj glave. V kakšen odklon kota se postavi motor pri določeni

širini pulzov, je odvisno od modela motorja [20].

Slika 2.11: Krmiljenje servo motorja z PW signalom

Page 43: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 30

Brez-krtačni enosmerni motorji so motorji, ki so napajani z enosmerno napetostjo,

za komutacijo pa skrbi krmilna elektronika, za razliko od navadnih enosmernih motorjev,

kjer uporabljamo drsne obroče in krtačke. V skupino brez-krtačnih enosmernih motorjev

lahko razvrstimo dva tipa motorjev. Prvi tip je že prej omenjeni koračni motor, drugi tip pa

je reluktančni motor. Pod drobnogled bomo tukaj vzeli slednjega. Reluktančni motor je tip

sinhronega električnega motorja, ki ima elektromagnetne pole in feromagnetno jedro. Ti

motorji lahko imajo zelo dobro razmerje med proizvedeno močjo na težo motorja in so

zaradi tega idealna izbira za mnogo aplikacij. Slaba lastnost teh motorjev je nihanje navora

pri nizkih hitrostih, kar povzroča šum. Njihova uporaba je omejena s kompleksnostjo

izdelovanja motorjev in krmilnih vezij za le-te. To danes rešujejo z računalniškim

načrtovanjem motorjev, pri krmilnih vezjih pa z uporabo cenenih vgrajenih sistemov, ki so

sposobni krmiliti motor. Ti krmilni sistemi običajno uporabljajo mikrokrmilnike s

krmilnimi algoritmi za realno-časovno procesiranje, da ustvarjajo signale glede na pozicijo

rotorja, ki jo pridobivajo s povratnim odvzemanjem toka ali napetosti [25,26].

Krmilno H-mostiš čno vezje je stikalno vezje, ki nam omogoča krmiljenje enosmernih

motorjev. Vezje lahko krmili smer vrtenja in hitrost vrtenja s pomočjo PWM signala.

Sestavljeno je iz štirih stikal. To so običajno tranzistorji, ki so povezani v obliki črke H, iz

tega izhaja tudi ime - H-mostiščno (ang. H-bridge) vezje. V spodnji sliki 2.12 je prikazano

delovanje krmilnega H-mostiščnega vezja. Če vklopimo prvo in četrto stikalo se bo motor

zavrtel naprej. Ob vklopu drugega in tretjega stikala pa se bo motor vrtel nazaj. Hkrati

lahko vklopimo tudi prvo in tretje ali drugo in četrto stikalo. V tem primeru kratko

sklenemo navitja, kar povzroči hitrejše zaviranje motorja [20].

Slika 2.12: Delovanje krmilnega H-mostiščnega vezja

Page 44: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 31

To vezje lahko implementiramo na različne načine. Prva možnost je, da vezje sami

sestavimo iz stikalnih elementov. V manjših sistemih so v uporabi predvsem tranzistorji.

Pri izdelavi vezja moramo paziti, da preprečimo vklop tranzistorjev v isti veji mostička, saj

bi povzročilo kratek stik vezja. Druga možnost je uporaba dveh močnostnih ojačevalnikov,

katerih vhode krmilimo s pomočjo mikrokrmilnika. Vezje je prikazano na sliki 2.13. Vhodi

ojačevalnikov so neposredno priključeni na izhode mikrokrmilnika. Tako z logičnimi stanji

na izhodih mikrokrmilnika krmilimo hitrost in smer vrtenja motorja. Za krmiljenje manjših

motorjev lahko uporabimo integrirana krmilna H-mostiščna vezja. V tem primeru na

mikrokrmilnik priključimo samo povezavo za hitrost in smer ter izhodna priključka na

motor. Celotno krmilno H-mostiščno vezje, ostala logika in zaščitni elementi so v

integriranem vezju [20].

Slika 2.13: Uporaba ojačevalnikov pri krmiljenju motorja

Page 45: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 32

3 ANALIZA SISTEMA

Robot je zelo kompleksen sistem, saj vsebuje najrazličnejše električne in mehanske

elemente, zato je za obvladovanje problema potreben širok spekter različnih znanj. Mi se

bomo pri analizi osredotočili samo na električne in elektronske sisteme, ker le-te

potrebujemo za izdelavo novega vgrajenega sistema. Ostale bomo pustili v ozadju.

Robot Robosapien ima več različic, saj podjetje vsake toliko časa izboljša model in

izda novo različico robota. Robot, ki bo obravnavan v analizi, se dejansko imenuje

Robosapien V2, kar pomeni, da je to druga različica omenjenega robota. Podjetje izdeluje

tudi več drugih tipov robotskih igrač, s katerimi lahko ta robot komunicira [5].

3.1 Senzorji

Senzorje lahko ločimo na zunanje in notranje. Zunanji senzorji so potrebni za

orientacijo robota v okolici. Zaradi enostavnosti robota so to predvsem senzorji na dotik, ki

so izdelani s pomočjo mehanskih stikal. S temi senzorji robot zazna, če se je zaletel v

oviro. Robot ima šest senzorjev na dotik, dva mikrofona za zaznavo zvoka ter tri IR

sprejemnike za komunikacijo z daljinskim upravljalnikom. Senzorji na dotik so locirani po

dva na vsaki nogi (spredaj in zadaj) ter po enega na vsaki roki. Mikrofona sta namenjena

zaznavanju ostrih zvokov iz okolice, na katere se robot odzove. Postavljena sta po eden na

vsaki strani glave. IR sprejemniki so nameščeni spredaj in na straneh [4].

Page 46: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 33

Slika 3.1: Prikaz lokacij zunanjih senzorjev

Notranji senzorji so namenjeni ugotavljanju položaja robota in robotovih okončin.

Ločimo jih lahko na stikalne, kodirne in zvezne. Stikalna senzorja zaznata, ali robot v roki

drži predmet. Nameščena sta znotraj zapestja. Uporabljeni so še trije stikalni senzorji, ki se

sklenejo glede na gravitacijsko polje. Ti so uporabljeni za ugotavljanje, ali robot leži na

trebuhu ali na hrbtu ter za pobiranje iz ležečega položaja. Nameščeni so po eden v vsaki

nogi in eden v trupu robota. Kodirni senzorji so uporabljeni na petih mestih. To so enako

stikalni senzorji, s tem da je uporabljenih več stikal izvedenih z drsniki. Z njimi lahko

določimo več diskretnih položajev. Namenjeni so ugotavljanju položaja zasuka v zapestjih,

obrnjenosti glave, ugotavljanju predklona glave in nagiba robota v pasu na levo ali desno

stran. Zvezni senzorji so realizirani s pomočjo drsnih uporov - potenciometrov.

Uporabljeni so za zvezno določanje položaja ramen in za določanje obrnjenosti v pasu ter

stopnjo predklona. Skupaj ima štiri zvezne senzorje. Slika 3.2 prikazuje lego notranjih

senzorjev robota, prikaže vrsto senzorjev in opiše, kaj senzorji zaznavajo. Tabela 3.1 pa

prikazuje možna bitna stanja kodirnih senzorjev [4].

Page 47: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 34

Slika 3.2: Prikaz lokacij notranjih senzorjev

Tabela 3.1: Možna bitna stanja kodirnih senzorjev

Senzor Možna bitna stanja

Zasuk levega zapestja (levo -desno) 11 01 00 10

Zasuk desnega zapestja (levo -desno) 11 01 00 10

Glava (gor – dol) 010 000 001 011

Zasuk glave (levo -desno) 111 110 100 101 001 000 010 011

Kamera, ki je locirana na glavi robota pripomore k posebnim telemetričnim

sposobnostim. Z njeno pomočjo lahko robot loči med rdečo in zeleno barvo ter podre

kegelj z žogico. Seveda se najprej signali preračunajo v posebnem procesorskem sistemu

znotraj glave. Ugotovili smo, da je vidno polje kamere razdeljeno na mrežo devetih polj, s

pomočjo katerih pridobi povprečno barvo v posameznem polju in s tem ugotovi položaj

kegljev.

Page 48: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 35

3.2 Motorji in kontrola motorjev

V robota je vgrajenih 11 motorjev, ki pripomorejo h gibanju samega robota. Motorji so

9 V, krtačni, prilagojeni za enosmerno napetost. Vgrajeni so v vse sklepe, ki jih robot

premore. Uporabljeni so lahko za dve opravili: in sicer tako, da sklep obrača v dveh

smereh, ali pa ga samo premakne v eno smer do končne lege; ob sprostitvi navora v

motorju se sklep vrne v prvotno stanje s pomočjo mehanske vzmeti. V spodnji tabeli 3.2 je

seznam vseh motorjev z opisom, ki jih vsebuje robot [4].

Tabela 3.2: Motorji v robotu in sistem detekcije položaja

Namen motorja Način detekcije položaja

Premik leve roke navzgor in navzdol Zvezno

Premik desne roke navzgor in navzdol Zvezno

Premik leve noge naprej in nazaj Končni položaj

Premik desne noge naprej in nazaj Končni položaj

Zasuk levega zapestja Kodirnik (2-bitni)

Zasuk desnega zapestja Kodirnik (2-bitni)

Nagib glave naprej in nazaj Kodirnik (3-bitni)

Zasuk glave levo in desno Kodirnik (3-bitni)

Zasuk trupa levo in desno Zvezno

Premik trupa naprej in nazaj Zvezno

Nagib trupa levo in desno Končni položaj

Motorji so krmiljeni s pomočjo posebnega tiskanega vezja, ki ga bomo v nadaljevanju

poimenovali vezje za kontrolo motorjev (Slika 3.3). To vezje vsebuje krmilna H-mostiščna

vezja, na katera je priključeno napajanje ter vsi motorji, ki so uporabljeni v robotu. Krmilni

signali pa so preko posebnega priključka pripeljani iz glavnega vezja.

Page 49: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 36

Slika 3.3: Vezje za kontrolo motorjev

3.3 Napajanje

Napajanje je izvedeno s standardnimi baterijskimi vložki. Vložki so nameščeni v

stopalih robota, saj zaradi njihove precejšne teže pripomorejo k večji stabilnosti. V stopalih

je šest baterijskih vložkov tipa D in štirje baterijski vložki tipa AAA. Iz teh baterij dobimo

6 V in 9 V napajanje. 9 V napajanje je uporabljeno za motorje, zato je tudi kapaciteta tega

napajanja neprimerno višja od 6 V, ki jih uporabimo za napajanje procesorjev in ostale

logike.

3.4 Komunikacija

Robota krmilimo z daljinskim upravljalnikom, ki pošilja informacije s pomočjo IR

valovanja. Informacijo robot sprejema s pomočjo treh IR senzorjev, ki so vgrajeni v glavo

robota. Informacije pridobljene iz senzorja procesira glavni procesor, ki se nahaja na

glavnem tiskanem vezju. Prav tako je robot sposoben oddajati informacijo z IR signali, s

tem lahko komunicira z drugim robotom istega tipa ali kakšno drugo igračo istega podjetja.

Nosilec IR signala se nahaja na 39,2 kHz. Podatki so kodirani z 12 biti pri podatkovni uri

1,2 kHz [5].

Page 50: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 37

3.5 Krmiljenje

Celoten robot se krmili s pomočjo glavnega vezja, ki se nahaja na hrbtu. Na to vezje je

priključeno vezje za krmiljenje motorjev, vsi senzorji, zvočnik in dva vezja, ki se nahajata

v glavi robota. Prvo izmed teh vezij vsebuje specifični video procesor, ki je namenjen

procesiranju video signala pridobljenega iz kamere. Na glavno vezje pa pošlje samo

informacije, ki so potrebne za določeno reakcijo robota. Drugo vezje v glavi je namenjeno

samo temu, da poveže IR senzorje, IR oddajne diode in mikrofona, v manjši skupek žic, ki

so dalje povezane na glavno vezje [4].

Glavno vezje vsebuje dva mikrokrmilnika, ki sta namenjena celotnemu krmiljenju

robota. Na prvi mikrokrmilnik je povezana večina senzorjev in vse povezave do vezja za

krmiljenje motorjev. Ta mikrokrmilnik je namenjen obdelavi podatkov senzorjev in za

krmiljenje motorjev. Krmilnika sta povezana preko štirih povezav. Drugi mikrokrmilnik je

namenjen obdelavi podatkov iz IR senzorjev, mikrofonov in nekaterih stikalnih senzorjev:

recimo dotika roke (s tem robot zazna, če drži kaj v roki) in senzorjev za položaj robota

glede na gravitacijsko polje. Ta mikrokrmilnik tudi analizira signale iz mikrofonov in

sintetizira signal za zvočnik [4].

Vezje pridobi napajanje posredno preko vezja za krmiljenje motorjev. Priključki za

signale iz senzorjev so razporejeni po celotnem obrobju tiskanega vezja, saj so tudi

senzorji nameščeni v različnih smereh glede na tiskano vezje. Na sliki 3.4 je prikazana

razporeditev priključkov glavnega vezja.

Page 51: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 38

Slika 3.4: Razporeditev priključkov glavnega vezja

Page 52: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 39

4 ZGRADBA STROJNE OPREME

Za naš projekt smo glavno vezje originalnega robota nadomestili z novo strojno

opremo. Odstranili smo tudi glavo in jo nadomestili z dlančnikom1. Vsa ostala vezja,

senzorji in motorji so ostali enaki kot v originalni izvedbi robota. Pri izdelavi vezja smo

upoštevali podatke pridobljene iz analize. Pomembno je bilo točno poznavanje

priključevanja senzorjev in povezav na vezje, ki krmili motorje.

Novo vezje je na sliki 4.1 predstavljeno z blokovno shemo. Vsak blok služi opravljanju

različne naloge in skupaj kot celota tvorijo nov vgrajeni sistem. Blok, ki predstavlja

napajalno vezje, je pomemben za prilagajanje napetostnega nivoja baterij na napetostni

nivo komponent. Napajalno vezje napaja oba mikrokrmilnika, oba reset vezja in

komunikacijski modul. Na oba mikrokrmilnika je priključeno napajanje, vezje za reset,

priključki za programiranje in oscilatorsko vezje. Mikrokrmilnika sta med seboj povezana

z zaporedno povezavo. Na prvi mikrokrmilnik so povezani: vezje za tipanje baterije, LED

diode za indikacijo in komunikacijski modul, ki omogoča brezžično komuniciranje z

okolico. Na drugi mikrokrmilnik pa so priključeni vsi senzorji in vse povezave za

krmiljenje motorjev.

1 Opisano v diplomskem delu: Brezžično komunikacijsko razvojno okolje za Robosapien UDK:004.7:004.896 (043.2)

Page 53: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 40

Slika 4.1: Blokovna shema novega glavnega vezja

4.1 Napajanje

Odločili smo se, da iz robota odstranimo 6 V napajanje, ki je bilo prej namenjeno

napajanju mikrokrmilnikov in ostalih elektronskih naprav. Tako novo vezje pridobi 9 V

napajanje posredno preko vezja za krmiljenje motorjev. Tukaj pa moramo to napajanje

stabilizirati na 3,3 V, da je primerno za napajanje elektronskih komponent. To smo storili s

pomočjo linearnega napetostnega regulatorja LM117 in mu na vhodu in izhodu dodali

elektrolitska kondenzatorja za glajenje napetosti. Dodana sta tudi keramična kondenzatorja

veliko manjših kapacitet, ki izničita slabe lastnosti elektrolitskih kondenzatorjev. Dioda na

vhodu vezja je potrebna ob morebitnem kratkočasovnem padcu napetosti zaradi sunka

motorjev, da ob tem ne bi izpraznili gladilnih kondenzatorjev. Vezje na sliki 4.2 prikazuje

del vezja, ki je namenjeno regulaciji in stabilizaciji napetosti celotnega sistema [8].

Slika 4.2: Vezje za stabilizacijo napetosti

Page 54: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 41

4.2 Mikrokrmilnik

V vezju smo uporabili dva mikrokrmilnika podjetja Atmel z oznako ATMega128L. Dva

sta uporabljena predvsem zaradi prevelikega števila senzorjev in motorjev in njim

pripadajočih signalov za krmiljenje in tipanje. Pri drugem mikrokrmilniku večino

programirljivih priključkov uporabimo za priključitev senzorjev in povezav na vezje za

kontrolo motorjev. Trije priključki so uporabljeni za programiranje mikrokrmilnika, dva pa

za zaporedno komunikacijo s prvim mikrokrmilnikom.

Prvi mikrokrmilnik tako prevzame komunikacijo z okolico s pomočjo vezja za

brezžično komunikacijo, za katerega porabi šest priključkov. Dva priključka porabi za

zaporedno povezavo s komunikacijskim vezjem, ostale štiri pa za kontrolo. Na prvi

mikrokrmilnik so priključeni tudi štirje LED indikatorji (za prikaz stanja sistema) in vezje

za tipanje baterije. Prvi mikrokrmilnik ima, tako kot drugi, tri priključke namenjene

programiranju mikrokrmilnika. Večino ostalih programirljivih priključkov pa je speljanih

na zunanje priključke z možnostjo nadgradnje strojne opreme. Med njimi so štirje z

možnostjo generiranja PWM signala, šest z možnostjo AD pretvorbe in šestnajst z

možnostjo naslavljanja zunanjega pomnilnika. Vsi priključki so lahko uporabljeni kot

navadni digitalni vhodi ali izhodi.

Mikrokrmilnika imata na vse napajalne in referenčne napetosti vezan kondenzator s

kapacitivnostjo 100 nF. Pomembno je, da so ti kondenzatorji čim bližje priključku na

mikrokrmilniku, saj bodo le tako filtrirali šum, ki je povzročen zaradi preklopnih

značilnosti digitalnega vezja. S tem smo izboljšali šumne lastnosti AD pretvorbe in

zaporedne komunikacije.

4.3 Komunikacijski vmesnik

Za brezžično komunikacijo z zunanjim svetom smo uporabili Bluetooth vmesnik

proizvajalca Sena z oznako Promi ESD02 (Slika 4.3). Vmesnik deluje v drugem razredu,

torej ima domet 10m. Preden smo vmesnik postavili v vezje smo ga morali programirati s

pomočjo računalnika. To smo storili s priloženim programom, ki ga je dodal proizvajalec.

Page 55: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 42

Vmesnik smo morali programsko nastaviti, da je bil povezljiv z ostalimi Bluetooth

napravami in da je hkrati uspešno komuniciral z mikrokrmilnikom po zaporedni povezavi

[9].

Slika 4.3: Bluetooth komunikacijski vmesnik Promi ESD02

Bluetooth vmesnik je možno postaviti v štiri različne načine delovanja. Prikazuje jih

tabela 4.1. Mi smo ga postavili v način delovanja 3, tako da dela v načinu sužnja (slave) in

se lahko nanj povezujejo vse Bluetooth naprave ne glede na naslov [9].

Tabela 4.1: Načini delovanja Bluetooth vmesnika Promi ESD02

Način (MODE) Opis

0 Neposredno krmiljenje z AT ukazi. V tem načinu lahko spreminjamo konfiguracijo.

1 Deluje v načinu »gospodar« in se poskuša povezati na zadnjo napravo, s katero je bil povezan. Za ostale naprave ni viden. Po strojnem resetu se naslov zadnje naprave zbriše, zato ga moramo ponovno konfigurirati v načinu 0.

2 Deluje v načinu »suženj« in čaka na povezavo od zadnje naprave na katero je bil povezan. Za ostale naprave ni viden. Predhodno ga je treba konfigurirati v načinu 0.

3 Čaka na povezavo od ostalih naprav. Nanj se lahko poveže vsaka naprava.

Simbolno hitrost zaporedne povezave smo nastavili na 115200 Baudov. Tako lahko

Bluetooth vmesnik komunicira z mikrokrmilnikom, saj morata biti simbolni hitrosti

usklajeni. Možne nastavitve zaporedne povezave prikazuje tabela 4.2 [9].

Page 56: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 43

Tabela 4.2: Možne nastavitve zaporedne komunikacije Bluetooth vmesnika Promi ESD02

Nastavitev Možne vrednosti

Simbolna hitrost (Baud) 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200; 230400

Število podatkovnih bitov 8

Pariteta Brez paritete; Liha pariteta; Soda pariteta

Število stop bitov 1; 2

Strojni nadzor poteka Uporabljen; Neuporabljen

Bluetooth vmesnik je v vezje postavljen s pomočjo podnožja. Tako smo ga lahko med

razvojem večkrat vstavili in odstranili. Povezan je preko zaporedne povezave na prvi

mikrokrmilnik. Vmesnik je tako edini komunikacijski tunel z ostalim svetom, iz katerega

dobiva podatke za upravljanje robota in vrača podatke o stanju robota, preko njega pa je

izvedeno tudi programiranje glavnih programov na daljavo.

Slika 4.4: Priklju čitev Bluetooth vmesnika

4.4 Tipanje baterije

V sistem smo želeli vključiti tudi funkcijo, ki bi omogočala preverjanje, koliko

energije je v baterijah. Odločili smo se za enostavno rešitev merjenja napetosti, pri kateri

moramo upoštevat lastnosti baterije, da bi lahko ugotovili koliko energije še vsebuje. Ker

ne moremo priključiti napetosti baterije, ki je višja od napajalne napetosti mikrokrmilnika,

Page 57: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 44

neposredno na vhod za AD pretvorbo (s tem bi namreč uničili priklju ček mikrokrmilnika),

smo to storili posredno s pomočjo uporovnega delilnika (Slika 4.5). Pri uporabi

uporovnega delilnika smo morali paziti, da celoten delilnik ne bi imel premajhne upornosti

in bi tako hitreje praznil baterijo. Če pa bi imel uporovni delilnik preveliko upornost, bi,

zaradi prevelike notranje upornosti priključka, pri merjenju napetosti prišlo do napake.

Tako bi se v delilniku pojavila še tretja upornost, ki bi nam popačila linearno karakteristiko

delilnika.

Slika 4.5: Uporovni delilnik za tipanje baterije

4.5 Indikacija z LED

S pomočjo LED diod smo v vezje dodali svetlobno indikacijo, ki brez uporabe raznih

električnih merilnikov omogoča določen vpogled v stanje sistema. Indikacija se je

uporabljala že med samim razvojem sistema. Zanjo smo uporabili štiri LED diode, ki smo

jih preko uporov priključili neposredno na izhode mikrokrmilnika. Upore smo uporabili za

omejevanje toka, da ne bi uničili priklju čka mikrokrmilnika ali same diode.

Page 58: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 45

Slika 4.6: Priklju čitev LED indikatorjev na mikrokrmilnik

4.6 Oscilatorsko vezje

Oscilatorsko vezje zagotavlja konstantno uro, ki jo potrebuje mikrokrmilnik za svoje

delovanje. V sistemu sta uporabljeni dve - za vsak mikrokrmilnik po eno vezje.

Oscilatorsko vezje je sestavljeno iz dveh kondenzatorjev in iz kremenčevega kristala, ki

ima pri frekvenci osciliranja induktiven značaj. Te komponente so del povratne vezave

vezja Colpittsovega oscilatorja. Drugi del oscilatorja se nahaja v mikrokrmilniku.

Kremenčev kristal se v oscilatorju uporablja zaradi velike točnosti osciliranja in stabilnosti

frekvence. To je pomembno za dobro delovanje zaporedne komunikacije med

mikrokrmilnikoma. V primeru, da zaporedna komunikacija ni uporabljena, velikokrat

zadostuje oscilator, ki je vgrajen v mikrokrmilnik in ne potrebuje dodatnih zunanjih

komponent. Uporabili smo kremenčev kristal, ki niha s frekvenco 7,3728 MHz. Frekvenca

je primerna za prenos s simbolno hitrostjo 115200 Baudov, tako ne pride do napak zaradi

odstopanja [1].

Page 59: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 46

Slika 4.7: Oscilatorsko vezje

4.7 Reset vezje

Reset vezje moramo uporabiti zato, da izključimo možnosti nepredvidenega resetiranja

mikrokrmilnika pri manjših anomalijah v napajanju. Sestavljeno je iz kondenzatorja in

upora, pri čemer je slednji uporabljen kot dvižni upor, ki drži reset priključek na logični 1.

Kondenzator pa je uporabljen za zakasnitev vklopa mikrokrmilnika. Vsak mikrokrmilnik

ima svoje reset vezje; ker ta signal potrebujemo tudi ob programiranju z ISP, smo na vezje

dodatno namestili mostiček, s katerim izberemo, kateri mikrokrmilnik bo ISP lahko

resetiral in ga s tem programiral.

Slika 4.8: Reset vezje

4.8 Tiskano vezje

Pri načrtovanju tiskanega vezja smo morali iz starega glavnega vezja ohraniti veliko

stvari. Novo tiskano vezje je moralo biti prilagojeno tako, da je lahko nadomestilo staro.

Page 60: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 47

Paziti smo morali predvsem na obliko (ki je šest kotna) in postavljanje luknjic za

pritrjevanje vezja. Priključki za povezavo na vezje za kontrolo motorjev so morali biti

postavljeni točno; manjša natančnost je bila potrebna pri postavitvi priključkov za

senzorje; morali so biti nameščeni le na pravi strani. Te priključke smo pridobili kar iz

starega vezja in tako na koncih vodnikov ni bilo potrebno zamenjevati drugih, že

obstoječih.

Paziti smo morali tudi na višino komponent, da katera ne bi nasedla na ogrodje robota

ali pa na vezje za krmiljenje motorjev, ki leži nad tiskanim vezjem. Modul za brezžično

komunikacijo in priključke za nadgrajevanje smo morali postaviti na desno stran vezja

(gledano iz zgornje strani), da ne bi prišlo do stika z vezjem za krmiljenje motorjev. Na

desni strani vezja imamo še priključke za programiranje mikrokrmilnikov in mostiček, s

katerim izberemo tisti mikrokrmilnik, ki ga želimo programirati. Levo zgoraj smo postavili

LED indikatorje.

Drug problem je predstavljala velika temperaturna disipacija linearnega regulatorja.

Tiskano vezje smo morali oblikovati tako, da nam je velika površina bakra na tiskanem

vezju služila kot hladilno telo. Integrirano vezje regulatorja smo nato prispajkali na to

bakreno površino. Pri nameščanju modula za brezžično komunikacijo smo uporabili

podnožje, da smo ga tekom razvijanja lahko večkrat odstranili iz vezja.

Zaradi velikega števila povezav smo se odločili za dvostransko tiskano vezje. Na

spodnjo stran smo namestili mikrokrmilnik, nekaj kondenzatorjev in uporov, saj le-ti

zaradi svojih majhnih višin ne motijo montaže na ogrodje robota. Ostale elemente smo

namestili na zgornjo stran. Kondenzatorje na napajalnih priključkih mikrokrmilnika smo

postavili najbližje, kar se je dalo, saj le tako dosegajo svojo namembnost odstranjevanja

šumnih signalov. Blizu smo postavili tudi oscilatorsko vezje, da zaradi dolgih povezav ne

bi prišlo do vpliva parazitnih kapacitivnosti. Za napajalne povezave smo na tiskanem vezju

uporabili širši sloj bakra, za ostale, signalne, pa ožjega. Po končanem samodejnem

povezovanju s pomočjo programskega orodja smo preverili dolžine povezav zaporedne

komunikacije, ta za dobro delovanje ne sme biti predolga.

Page 61: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 48

Slika 4.9: Model glavnega tiskanega vezja - zgoraj

Slika 4.10: Model glavnega tiskanega vezja - spodaj

Page 62: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 49

5 PROGRAMSKA OPREMA IN PROTOKOL

Poleg strojne smo morali razviti tudi programsko opremo, ki je tekla na obeh

mikrokrmilnikih. Programska oprema je razdeljena na tri module. Prvi modul je

zaganjalnik (ang. boot loader), ki kar med delovanjem preko zaporedne povezave omogoča

posodabljanje ostale programske opreme na mikrokrmilniku. Druga dva modula sta glavna

programa za vsak mikrokrmilnik posebej. V vse module je implementirana komunikacija

po protokolu, ki je bil specifično razvit za ta sistem. Posamezen modul ne vsebuje

celotnega nabora ukazov protokola, ampak samo tiste, ki so potrebni za njegovo delovanje;

druge informacije zavrže.

5.1 Zaganjalnik

Zaganjalnik (ang. boot loader) je program, ki izvaja kodo, še preden mikrokrmilnik

zažene glavni program. Tako omogoča izvajanje operacij na programskem pomnilniku in s

tem posodablja glavni program med samim delovanjem mikrokrmilnika. Pri AVR

mikrokrmilnikih leži zaganjalnik na koncu programskega pomnilnika, omogočimo ga s

postavitvijo zastavic v posebnih registrih. S temi zastavicami izberemo tudi eno izmed

štirih možnih rezerviranih velikostih za zaganjalnik: od 512 besed do 4k besed. Z

zastavicami se nastavi tudi primerna zaščita tega dela pomnilnika. V naši aplikaciji smo

rezervirali 2k besed za zaganjalnik in nastavili zaščito, ki onemogoča programiranje

zgornjega dela programskega pomnilnika (kjer leži zaganjalnik), kadar mikrokrmilnik sam

piše po njem.

Zaganjalni program obeh mikrokrmilnikov je podoben. Razlikuje se samo po naslovu

in po zastavici, ki določa, ali je naprava končna ali ne. Na sliki 5.1 je prikazan diagram

poteka zaganjalnega programa. V inicializaciji postavimo mikrokrmilnik v želeno začetno

stanje, da bo lahko program na njem tekel. V našem primeru ustvarimo nekaj spremenljivk

in vzpostavimo delovanje zaporedne povezave. Zelo pomembno je tudi, da zaustavimo vse

prekinitve. V primeru, da dostopimo v zaganjalni program iz glavnega programa, lahko

prekinitve še vedno delujejo in onemogočijo pravilno programiranje programskega

Page 63: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 50

pomnilnika. Zastavica, ki omogoča vstop v zanko za sprejemanje ukazov, je potrebna, saj

ob normalnem delovanju ne želimo vstopiti v del programa, ki čaka na ukaze in jih

izvršuje, ampak želimo, da se neposredno zažene glavni program. Ta zastavica je vezana

na vhodni priključek mikrokrmilnika, ker imamo s tem možnost programskega in fizičnega

dostopa do spremembe stanja zastavice. Programski dostop potrebujemo, kadar želimo v

zaganjalni program vstopiti iz glavnega programa, ga na novo programirati in se vrniti v

glavni program. V primeru, da je v glavnem programu večja napaka, ali da sploh ne

obstaja, nam je programski vstop v zaganjalni program onemogočen. To lahko rešimo

tako, da sklenemo vhodni priključek proti masi. V osnovi zaganjalni program samo čaka

na pakete, katerih oblika je določena v protokolu, izlušči vrsto ukaza in izvede primerno

operacijo. Program je namenjen predvsem programiranju in branju Flash ter EEPROM

pomnilnika, pri čemer pa lahko Flash pomnilnik programiramo samo po blokih (ang.

page), EEPROM pa po bajtih.

START

Inicializacija

Sprejel veljaven paket, ki je moj?

Zastavica je 1?

DA

Izvedi ukaz

Skok v glavni program

KONEC

DA

NE

NE

Ugotovi ukazno skupino in ukaz

Pošlji odgovor pošiljatelju

Slika 5.1: Diagram poteka zaganjalnega programa

Page 64: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 51

5.2 Glavni program prvega mikrokrmilnika

Glavni program se izvaja na mikrokrmilniku takrat, kadar je robot v normalnem

delovanju. Ker imamo dva mikrokrmilnika, smo napisali tudi dva glavna programa.

Program prvega nima velike vloge pri regulaciji robota, njegovo najpomembnejše opravilo

je upravljanje z Bluetooth modulom, ki bi ga lahko načeloma tudi nastavljali. Tega nismo

vgradili v glavni program, saj ob enkratni nastavitvi modula le-te kasneje ni potrebno več

spreminjati. Naloga programa je, v prvi vrsti, sprejemati pakete po eni in jih oddajati

naprej po drugi zaporedni povezavi. Nekatere ukaze lahko izvede tudi sam. Program tudi

preverja status baterije in upravlja s svetlobnimi indikatorji. Diagram poteka prvega

glavnega programa je prikazan na sliki 5.2. Poleg ustvarjanja spremenljivk pri

inicializaciji, vzpostavimo tudi delovanje obeh zaporednih povezav, nastavimo parametre

AD pretvornika in omogočimo delovanje prekinitev. Tako AD pretvornik prosto teče ob

glavnem programu in ga ob pridobitvi novega rezultata prekine. Pri tem posebna

prekinitvena rutina shrani rezultat v pomnilnik in se nato vrne v glavni program. Glavni

program v zanki čaka na pakete, ki so namenjeni tej napravi in izvaja njihove ukaze.

Sprejme pa lahko tudi poseben ukaz, ki je namenjen skoku v zaganjalni program. Ta ukaz

onemogoči vse izhode, postavi zastavico za vstop v zaganjalni program in s skokom

zaključi glavni program.

Page 65: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 52

START

Inicializacija

Sprejel veljaven paket, ki je moj?

DA

Izvedi ukazSkok v zaganjalni program »boot«.

KONEC

DA

NE

NE

Ugotovi ukazno skupino in ukaz

Pošlji odgovor pošiljatelju

Sprejel ukaz za skok v »boot« ?

Izvedi AD pretvorbo in shrani

rezultat v pomnilnik.

Prekinitev AD pretvornika

Slika 5.2: Diagram poteka glavnega programa prvega mikrokrmilnika

5.3 Glavni program drugega mikrokrmilnika

Glavni program drugega mikrokrmilnika vsebuje vso regulacijo robota za premikanje

okončin. Ta program neprestano pridobiva podatke iz senzorjev in ukazov ter s pomočjo

njih regulira premike motorjev. Upoštevati mora vse končne pozicije notranjih senzorjev in

stanja zunanjih, da pravočasno reagira na ustavitev motorjev in prepreči poškodbe

mehanskih delov robota. Na sliki 5.3 je prikazan diagram poteka glavnega programa

drugega mikrokrmilnika. Ta program poleg glavnega izvaja še dve prekinitvi: prva je AD

pretvorba. Ta se vrši na več vhodih in le ena pretvorba se izvede na eno prekinitev. Tako

prekinitvena rutina z vsakim novim izvajanjem spremeni vhod, nad katerim bo vršila

pretvorbo v naslednjem ciklu in shrani rezultate prejšnje pretvorbe v pomnilnik. Rezultati

so v pomnilniku predstavljeni v obliki vektorja in prikazujejo položaj zveznih senzorjev

Page 66: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 53

izvedenih s potenciometrom. Druga prekinitev je sprožena s pomočjo časovnika.

Prekinitvena rutina se izvede vedno, ko poteče časovnik. S tem dosežemo gladek potek

regulacije, med tem ko lahko mikrokrmilnik v glavnem programu že čaka na nove ukaze,

ali upravlja kakšno drugo opravilo. Z vsakim novim izvajanjem prekinitvene rutine se

primerja želena stanja v pomnilniku z dejanskimi stanji, ki jih mikrokrmilnik odčita iz

senzorjev. Če se stanja ujemajo, prekinitvena rutina ugasne motor, ali ne stori nič, če motor

ni v teku. Če se ne ujemajo, pa zavrti motor proti želenemu stanju. Seveda se stanja nikoli

ne morejo ujemati do zadnjega bita, zato mora rutina upoštevati ujemanje stanj znotraj

toleranc. Ta prekinitev upravlja tudi z avtomatom za hojo, kar bomo opisali v nadaljevanju.

Diagram poteka glavnega programa drugega mikrokrmilnika je podoben diagramu

poteka prvega mikrokrmilnika, ker imata enako nalogo sprejemanja ukazov in izvajanja le

teh. Dejansko se programa zelo razlikujeta, saj lahko drugi sprejme neprimerno več ukazov

kot prvi. Že ob inicializaciji glavni program nastavi začetna stanja vseh položajev, ki so

takšna, da se robot zravna. Glavni program drugega mikrokrmilnika sprejema ukaze, ki

posodabljajo želene vrednosti, ali zahtevajo stanje senzorjev. Seveda lahko sprejme tudi

poseben ukaz za skok v zaganjalni program in s tem zaključitev glavnega programa.

Page 67: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 54

START

Inicializacija

Sprejel veljaven paket, ki je moj?

DA

Izvedi ukaz

Skok v zaganjalni program »boot«.

KONEC

DA

NE

NE

Ugotovi ukazno skupino in ukaz

Pošlji odgovor pošiljatelju

Sprejel ukaz za skok v »boot« ?

Izvedi AD pretvorbo in shrani

rezultat v pomnilnik.

Prekinitev AD pretvornika

Prekinitev časovnika

Izberi naslednji vhod za AD pretvorbo

Se želene vrednosti položajev ujemajo z

dejanskimi?

Izvedi regulacijo

DA

NE

Slika 5.3: Diagram poteka glavnega programa drugega mikrokrmilnika

Avtomat za hojo je bil potreben predvsem zaradi kompleksnosti reguliranja mehanike,

ki robotu omogoča hojo. Ta mehanika je izvedena s pomočjo motorjev in vzmeti. Motorji

ob zasuku zavrtijo nogo robota v skrajen položaj in jo v tem položaju držijo. Seveda je v

tem primeru motor v kratkem stiku. Po izključitvi motorja mehanska vzmet povleče

okončino nazaj v prvoten položaj. S takšnim načinom upravljanja nog je podjetje verjetno

Page 68: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 55

privarčevalo z minimizacijo sklopov, hkrati pa tudi zakompliciralo regulacijo. Da motorji

ne bi bili predolgo časa v kratkem stiku in da bi hoja poteka bolj tekoče samo spreminjanje

položajev okončin ni dovolj, vnesti moramo tudi časovno odvisnost. Na sliki 5.4 imamo

prikazan diagram poteka avtomata za hojo. Robot lahko hodi naprej, nazaj, lahko se zavrti

v levo ali desno. V katero smer se bo premikal, pa je odvisno samo od drugačne nastavitve

časovnikov in premikov nog.

START

KONEC

DA

NE

Nastavi časovnike

Nagni robota desno (levo)

Je časovnik potekel?

Premakni desno (levo) nogo nazaj in levo (desno)

nogo naprej

DA

NEJe časovnik potekel?

Nagni robota levo (desno)

DA

NEJe časovnik potekel?

Premakni levo (desno) nogo nazaj in desno

(levo) nogo naprej

DA

NEJe časovnik potekel?

Odštej korak

NE

Je število korakov 0?

DA

Slika 5.4: Avtomat za hojo robota

Page 69: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 56

5.4 Protokol

Za komunikacijo med mikrokrmilnikoma in drugimi napravami, ki so povezane s

pomočjo komunikacijskega vmesnika, smo potrebovali protokol, ki vsebuje pravila o

prenašanju različnih ukazov in podatkov med posameznimi napravami. Protokol je zgrajen

na zlogovni osnovi in ga je možno uporabljati v sinhronih in asinhronih zaporednih

povezavah, brezžičnih povezavah, mogoče ga je tunelirati2 tudi skozi IP omrežja. Protokol

komunicira s pomočjo okvirjev, ki jih pošiljamo od naprave do naprave. Začetek okvirja je

označen z znakom »<«, konec pa z »>«. Med tema dvema znakoma se nahajajo uporabni

podatki. Poljuben okvir je prikazan na sliki 5.5, kjer uporabne podatke predstavlja »x«.

Slika 5.5: Poljuben okvir protokola

Na začetku okvirja (Tabela 5.1) vedno pošiljamo glavo, ki je dolga šest zlogov. Glava

vsebuje informacije, ki so potrebne za uspešno prenašanje okvirjev. Prva dva zloga povesta

dolžino celotnega okvirja: in sicer vse uporabne zloge brez začetnega in končnega znaka.

Tako je po protokolu maksimalna velikost okvirja 64k zlogov, čeprav realna velikost

paketa nikoli ne preseže 300 zlogov - predvsem zaradi omejitve pomnilnika v

mikrokrmilnikih, pa tudi potrebe po večjih dolžinah ni. Naslednji zlog se uporabi za

naslavljanje. Ta pove, kateri napravi je okvir namenjen. Število naprav je omejeno na 255.

Takoj za naslovnim zlogom je zlog, ki pove, katera naprava je okvir poslala, da lahko

dobitnik potrdi uspešno prejetje okvirja. Zadnja dva zloga sta uporabljena za definicijo

ukaza. Prvi definira ukazno skupino, pod katero spada ukaz, drugi pa sam ukaz. Za takšno

interpretacijo ukazov smo se odločili predvsem zaradi večje preglednosti, kajti vsaka

naprava ne vsebuje podpore za celoten protokol, ampak samo za določene ukazne skupine.

Tako vsaka ukazna skupina vsebuje ukaze, ki opravljajo podobne naloge. Za glavo

pošljemo druge podatke, katerih dolžina je odvisna predvsem od izbranega ukaza.

2 Tuneliranje protokola pomeni, da en komunikacijski protokol v svojih podatkih prenaša drugo vrsto protokola.

Page 70: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 57

Tabela 5.1: Sestava glave podatkovnega okvirja

Ime: Dolžina Naslov Izvor Ukazna skupina Ukaz Podatki

Velikost v zlogih: 2 1 1 1 1 N

V protokolu obstaja šest ukaznih skupin, ki vsebujejo različno število ukazov. Vsak

izmed njih je prepoznan z lihim številom, sledi odgovor s sodim številom. Tabela 5.2

prikazuje ukazne skupine - in sicer njihovo številko v sistemu, ime skupine, število

vsebovanih ukazov in opis skupine. Zadnja skupina »EXTEND« ni uporabljena v sistemu

in je namenjena nadaljnjemu razvoju protokola.

Tabela 5.2: Ukazne skupine protokola

Št. ukazne skupine Ime Št. ukazov Opis

1 IDENTIFY 0 Testiranje in identifikacija

2 FLASH 12 Programiranje mikrokrmilnikov

3 MOTOR 22 Kontrola elektromotorjev

4 SENSOR 4 Preverjanje senzorjev

5 CONTROL 2 Preverjanje stanja baterije

6 MEDIA 8 Upravljanje z večpredstavnostjo na dlančniku

7 EXTEND 0 Rezervirano za nadgrajevanje sistema

V tabeli 5.3 so razvrščeni vsi ukazi, ki so trenutno implementirani v sistem. Pri vsakem

ukazu je prikazano, v katero skupino ga uvrščamo, njegova številka, ki se uporablja v

protokolu, ime, dolžina podatkov predstavljena v zlogih (bajtih - B) ter kratek opis ukaza.

Dolžina podatkov je pri večini ukazov statična. Pri nekaterih pa se spreminja glede na

sestavo. Tako pri pisanju in branju EEPROM pomnilnika z ukazom določimo, koliko

naslovov bomo zapisali ali prebrali naenkrat. Seveda si morajo pomnilniška mesta slediti,

saj je podan samo začetni naslov in število mest. Pri pošiljanju ukazov iz Skupine

»MEDIA«3, pa je dolžina ukaza odvisna od števila znakov, ki so potrebni za opis sistemske

poti datoteke.

3Podrobneje opisano v diplomskem delu: Brezžično komunikacijsko razvojno okolje za Robosapien UDK:004.7:004.896 (043.2)

Page 71: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 58

Tabela 5.3: Vsi ukazi v sistemu

Ime skupine Št. ukaza Ime ukaza Podatki(B) Opis

FLASH 1 FLASH_W 260 Zapis v programski pomnilnik

FLASH 2 FLASH_W_ACK 1 Odgovor s statusom

FLASH 3 FLASH_R 4 Branje programskega pomnilnika

FLASH 4 FLASH_R_ACK 256 Odgovor s podatki

FLASH 5 EEPROM_W 4+n Pisanje v EEPROM

FLASH 6 EEPROM_W_ACK 1 Odgovor s statusom

FLASH 7 EEPROM_R 4 Branje EEPROM

FLASH 8 EEPROM_R_ACK n Odgovor s podatki

FLASH 9 JUMP_APP 0 Skok v glavni program iz »boot«

FLASH 10 JUMP_APP_ACK 0 Odgovor za potrditev sprejema

FLASH 11 JUMP_BOOT 0 Skok iz glavnega prog. v »boot«

FLASH 12 JUMP_BOOT_ACK 0 Odgovor za potrditev sprejema

MOTOR 1 STATE 14 Postavitev vseh stanj motorjev

MOTOR 2 STATE_ACK 0 Odgovor za potrditev sprejema

MOTOR 3 WALK 7 Podatki za upravljanje z hojo

MOTOR 4 WALK_ACK 0 Odgovor za potrditev sprejema

MOTOR 5 SHOULDER 2 Postavitev položaja ramen

MOTOR 6 SHOULDER_ACK 0 Odgovor za potrditev sprejema

MOTOR 7 WRIST_ROTATE 2 Postavitev položaja zapestij

MOTOR 8 WRIST_ROTATE_ACK 0 Odgovor za potrditev sprejema

MOTOR 9 WAIST 2 Postavitev položaja zasuka v pasu

MOTOR 10 WAIST_ACK 0 Odgovor za potrditev sprejema

MOTOR 11 WAIST_TILT 2 Nagib v pasu za določen čas

MOTOR 12 WAIST_TILT_ACK 0 Odgovor za potrditev sprejema

MOTOR 13 HEAD_ROTATE 1 Položaj zasuka glave

MOTOR 14 HEAD_ROTATE_ACK 0 Odgovor za potrditev sprejema

MOTOR 15 HEAD_TILT 2 Nagib glave za določen čas

MOTOR 16 HEAD_TILT_ACK 0 Odgovor za potrditev sprejema

MOTOR 17 FOOT_TILT 4 Premik nog za določen čas

MOTOR 18 FOOT_TILT_ACK 0 Odgovor za potrditev sprejema

MOTOR 19 MOTOR_STOP 0 Ustavitev vseh motorjev

MOTOR 20 MOTOR_STOP_ACK 0 Odgovor za potrditev sprejema

MOTOR 21 MOTOR_START 0 Ponovni zagon motorjev

MOTOR 22 MOTOR_START_ACK 0 Odgovor za potrditev sprejema

SENSOR 1 STATE 0 Stanje notranjih senzorjev

Page 72: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 59

Ime skupine Št. ukaza Ime ukaza Podatki(B) Opis

SENSOR 2 STATE_ACK 11 Odgovor s podatki

SENSOR 3 TOUCH 0 Stanje zunanjih senzorjev

SENSOR 4 TOUCH_ACK 3 Odgovor s podatki

CONTROL 1 BATERY_STATUS 0 Stanje baterije

CONTROL 2 BATERY_STATUS_ACK 1 Odgovor s podatki

MEDIA 1 PICTURE n Postavitev slike

MEDIA 2 PICTURE_ACK 0 Odgovor za potrditev sprejema

MEDIA 3 SOUND n Vklop zvoka

MEDIA 4 SOUND_ACK 0 Odgovor za potrditev sprejema

MEDIA 5 SCRIPT n Zagon skriptne datoteke

MEDIA 6 SCRIPT_ACK 0 Odgovor za potrditev sprejema

MEDIA 7 OFF n Ustavitev večpredstavnosti

MEDIA 8 OFF_ACK 0 Odgovor za potrditev sprejema

Page 73: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 60

6 REZULTATI IN MERITVE

6.1 Tiskana vezja

Glavno tiskano vezje smo načrtovali v programskem orodju Design Explorer 99 SE, s

pomočjo katerega lahko izdelamo načrt vezja in načrt samega tiskanega vezja. Orodje

omogoča tudi izvoz datotek, ki so potrebne za izdelavo tiskanega vezja. Po dokončanem

načrtovanju nam je tiskanino naredilo podjetje, ki se ukvarja z izdelavo tiskanih vezij. Na

novo izdelano vezje smo sami prispajkali potrebne elemente in začeli z razvojem

programske opreme. Na sliki 6.1 je prikazano dokončano tiskano vezje, na katerega so

priključeni senzorji.

Slika 6.1: Glavno tiskano vezje - zgoraj

Slika 6.2 prikazuje končno namestitev glavnega vezja s priključenimi senzorji ter nad

njim vezje za kontrolo motorjev, na katerega so priključeni motorji in napajanje.

Page 74: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 61

Slika 6.2: Končna priklju čitev vezja za kontrolo motorjev na glavno vezje

Robot je imel že vgrajen zvočnik, ki smo ga hoteli uporabiti za predvajanje zvokov in

glasbe iz dlančnika. V ta namen smo izdelali ojačevalnik, ki ojači tonski signal iz

dlančnika. Ojačevalnik smo namestili v bližino zvočnika na hrbtnem delu ohišja robota,

priključni kabel pa speljali skozi stik med glavo in trupom. Tiskano vezje prikazuje slika

6.3.

Slika 6.3: Ojačevalnik tonskega signala iz dlančnika

6.2 Senzorji

Detekcijo analognih senzorjev, kateri so izvedeni s pomočjo 10 kΩ potenciometrov,

smo izvedli z AD pretvorniki. Te pretvornike vsebujejo že kar mikrokrmilniki sami. En

mikrokrmilnik ATMega128 lahko upravlja z do osem AD vhodi, ki imajo 10-bitno

ločljivost. Mi smo uporabili samo 8-bitno ločljivost, kar je dovolj za naše razmere. Na

drugem mikrokrmilniku smo uporabili štiri AD vhode za merjenje položaja rok in trupa,

Page 75: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 62

kjer so uporabljeni potenciometri kot senzorji. AD pretvornik dejansko tipa napetost

delilnika potenciometra. Naslednji grafi prikazujejo prenosne karakteristike med

upornostjo delilnika in bitno vrednostjo, ki jo poda AD pretvornik. Vse upornosti delilnika

smo izračunali posredno iz meritev napetosti, saj upornosti ne moremo meriti neposredno v

vezju pod napetostjo.

Prenosna karakteristika leve rame

0

50

100

150

200

250

0 2000 4000 6000 8000 10000

Upornost delilnika (ohm)

Bin

arna

vre

dnos

t

Slika 6.4: Prenosna karakteristika leve rame

Page 76: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 63

Prenosna karakteristika desne rame

0

50

100

150

200

250

0 2000 4000 6000 8000 10000

Upornost delilnika (ohm)

Bin

arn

a vr

edn

ost

Slika 6.5: Prenosna karakteristika desne rame

Prenosna karakteristika - Pas (Naprej/Nazaj)

0

50

100

150

200

250

0 2000 4000 6000 8000 10000

Upornost delilnika v (ohm)

Bin

arna

vre

dnos

t

Slika 6.6: Prenosna karakteristika pasu ( naprej / nazaj )

Page 77: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 64

Prenosna karakteristika - Pas (Levo/Desno)

0

50

100

150

200

250

0 2000 4000 6000 8000 10000

Upornost delilnika v (ohm)

Bin

arna

vre

dnos

t

Slika 6.7: Prenosna karakteristika pasu ( levo / desno )

Kot vidimo sta dve karakteristiki obrnjeni. To smo storili programsko, da je krmiljenje

premikov s pomočjo teh senzorjev bolj logično. Obrnjeni sta karakteristiki potenciometra

desne roke in premika pasu (naprej/nazaj). Karakteristiko roke smo obrnili zato, da enaka

binarna vrednost zavzema enak položaj leve in desne roke, karakteristiko pasu pa zato, da

se s premikanjem naprej (predklon) povečuje bitna vrednost. Opazimo lahko, da so tako

karakteristike linearne in da bi ne-obrnjeni karakteristiki ob podaljšanju potekali skozi

koordinatno izhodišče.

Pri prvem mikrokrmilniku smo AD pretvornik uporabili za merjenje baterije. Prenosno

karakteristiko prikazuje slika 6.8.

Page 78: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 65

Prenosna karakteristika delilnika za merjenje bater ije

0

50

100

150

200

250

300

0 2 4 6 8 10 12 14Napetost [V]

Bin

arna

vre

dno

st

Slika 6.8: Prenosna karakteristika pri merjenju baterije

Karakteristika ne poteka skozi koordinatno izhodišče, kar pomeni, da imamo pri tej

AD pretvorbi prisoten ničelni pogrešek. Ta je verjetno nastal zaradi različnega napajanja

uporovnega delilnika in AD pretvornika. Uporovni delilnik se namreč napaja neposredno

iz baterije, medtem ko se mikrokrmilnik, in s tem AD pretvornik, napajata posredno preko

linearnega napetostnega regulatorja. Ta pogrešek ne predstavlja težav, saj ga je mogoče

programsko (odstraniti) kompenzirati. S takšnim načinom merjenja energije v baterijah

lahko zaradi nelinearnosti padanja napetosti ob praznjenju ugotovimo, ali so baterije čisto

polne, čisto prazne ali pa nekje vmes.

Kodirni senzorji imajo položaje kodirane s pomočjo Greyeve kode. Mi smo jih (za

lažjo uporabo v programu in protokolu) preslikali v binarno kodo. Način preslikanja

prikazuje tabela 6.1.

Page 79: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 66

Tabela 6.1: Preslikava stanj kodirnikov

Senzor Originalna stanja Preslikana stanja

Zasuk levega zapestja 11 01 00 10 00 01 10 11

Zasuk desnega zapestja 11 01 00 10 00 01 10 11

Glava (gor – dol) 010 000 001 011 001 010 011 100

Zasuk glave (levo - desno) 111 110 100 101 001 000 010 011 000 001 010 011 100 101 110 111

6.3 Gibanje robota

Robot se giblje s pomočjo motorjev, ki so nameščeni po celem telesu. Vsi motorji se

lahko gibljejo v obe smeri ter s tem premikajo okončine in telo Levo/Desno ali

Naprej/Nazaj. Robot v določenem sklepu različno hitro menjuje položaj zaradi različnih

mehanskih lastnosti sklepa. Pri določenih sklepih pa so dodane celo mehanske vzmeti, ki

pomagajo elektromotorju premikati okončino ali telo. Mehanika z vzmetjo je narejena na

dva različna načina. Pri premikih nog in nagibanju v pasu levo ali desno, vzmet (ob

prenehanju delovanja motorja) vrne robota v osnovni položaj. Pri vrtenju v pasu levo ali

desno in pri gibanju telesa naprej ali nazaj, pa vzmet pri vrnitvi v osnovni položaj pomaga

motorjem. Tabela 6.2 prikazuje hitrost premika sklepov od enega končnega položaja do

drugega. Pri sklepih, kjer okončino vrača vzmet, časi predstavljajo premik od osnovnega

položaja do končnega.

Tabela 6.2: Časi premikanja sklepov

Motor Čas premika (s) Od - Do

Desna rama 2,26 končni - končni

Leva rama 2,28 končni - končni

Desno zapestje 0,63 končni - končni

Levo zapestje 0,62 končni - končni

Glava (naprej nazaj) 1,00 končni - končni

Glava (levo desno) 2,64 končni - končni

Pas (levo desno) 1,08 končni - končni

Pas (naprej nazaj) 4,48 končni - končni

Page 80: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 67

Motor Čas premika (s) Od - Do

Pas nagib levo 0,56 osnovni - končni

Pas nagib desno 0,50 osnovni - končni

Leva noga naprej 1,28 osnovni - končni

Desna noga naprej 0,88 osnovni - končni

Leva noga nazaj 1,10 osnovni - končni

Desna noga nazaj 1,16 osnovni - končni

Iz tabele je razvidno, da se časi pomikov okončin, katere vrača vzmet, razlikujejo. To

se opazi pri hoji robota: kadar hodi dlje časa naravnost, rahlo zavija v eno smer. Opazi se

tudi pri zavijanju robota v levo ali desno. V eno stran se zavrti hitreje in z manj koraki.

Za vse motorje smo v programu določili končne vrednosti, pri katerih program sam

izklopi motor, zato da ne bi mehansko poškodovali sklopov, ali pa da motor ne bi bil

predolgo v kratkem stiku. Končne vrednosti so določene z bitno vrednostjo AD

pretvornika pri potenciometrih, s stanjem pri kodirnikih in z maksimalno nastavitvijo

časovnika pri motorjih, ki jih vrača vzmet. Končne vrednosti vseh sklepov prikazuje tabela

6.3.

Tabela 6.3: Končne vrednosti stanj in časovnikov

Motor Nastavljena območja vrednosti v programu

Leva roka 30 – 225

Desna roka 30 – 225

Leva noga (naprej/nazaj) -10000 – 10000

Desna noga (naprej/nazaj) -10000 – 10000

Levo zapestje 0 – 3

Desno zapestje 0 – 3

Glava (naprej/nazaj) 1 – 4

Glava (levo/desno) 0 – 7

Pas (levo/desno) 50 – 205

Pas (naprej/nazaj) 25 – 215

Nagib v pasu (levo/desno) -10000 – 10000

Page 81: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 68

Problem okončin, ki jih vrača vzmet, je tudi, da ob doseženem končnem položaju

motor preide v kratek stik in s tem obremeni napajanje. Naslednji posnetki osciloskopa

prikazujejo obnašanje napetosti na normalnem vklopu motorja in pri vklopu motorja z

vzmetjo.

Slika 6.9: Osciloskopski posnetek vklopa motorja leve rame

Slika 6.10: Osciloskopski posnetek vklopa motorja leve noge (naprej)

Na sliki 6.10 imamo prikazan vklop motorja, ki ima dodano vzmet za vračanje v

osnovni položaj. Ob vklopu začne napetost rahlo padati, saj zaradi vzmeti motor vse bolj

obremenjuje napajanje. Napetost pada do kratkega stika, kjer skozi navitja motorja teče tok

okoli 1,8A. Kratki stik tako obremeni napajanje, da napetost baterij pade za približno 2V.

Vidi se tudi, da takrat krtačke motorja ne povzročajo šuma, kot pri normalnem delovanju.

Ko poteče časovnik v programu, vezje za kontrolo motorjev izklopi motor. Pri tem dobimo

negativno inducirano napetost, ki jo ustvari vzmet, s tem ko motor vleče v obratni smeri

nazaj v osnovni položaj.

Page 82: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 69

Pri regulaciji sklepov, kjer so uporabljeni potenciometri, je prišlo do težav zaradi

prevelike ločljivosti zajemanja položaja. Pojavilo se je nihanje okoli želenega položaja

zaradi neprestane regulacije. Sklep se zaradi mehanske vztrajnosti ne ustavi v želenem

položaju, ampak se premakne malo naprej, kar povzroči, da mikrokrmilnik ponovno

korigira položaj. Primer večkratnega popravljanja položaja prikazuje slika 6.11.

Slika 6.11: Osciloskopski posnetek večkratnega vklopa motorja (oscilacije)

Oscilacijo smo delno rešili programsko, z empirično določitvijo toleranc pri doseganju

želene vrednosti. Še vedno se predvsem pri bolj skrajnih položajih ob ustavitvi motorjev

pojavi kakšen sunek, ki ponovno korigira položaj. V tabeli 6.4 so prikazane programsko

nastavljene tolerance pri določenih motorjih.

Tabela 6.4: Tolerance pri regulaciji motorjev z zveznim zajemanjem položaja

Elektromotor Nastavljena toleranca v programu

Leva roka 6

Desna roka 6

Pas (levo/desno) 8

Pas (naprej/nazaj) 4

Page 83: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 70

7 SKLEP

V diplomski nalogi smo najprej obdelali različna področja, ki obsegajo načrtovanje in

gradnjo vgrajenih sistemov. V ta področja spadajo vsi gradniki računalnikov, kot so

procesorji, pomnilniki in vhodno-izhodne naprave. Opisali smo najpogosteje uporabljen

procesor v vgrajenih sistemih ter pogosteje uporabljene mikrokrmilnike, ki so že sami zase

računalnik v enem samem integriranem vezju. Predstavili smo nekaj računalniških žičnih

in brezžičnih komunikacij. Nekatere izmed njih smo kasneje uporabili v sistemu. Obdelali

smo nekatere vrste senzorjev in motorjev, ki jih ima vgrajene naš robotski sistem.

Cilj analize obstoječega sistema je bil predvsem pregled začetnega stanja, ugotavljanje

osnovnih električnih in mehanskih lastnosti ter podrobnejša obdelava uporabljenih

senzorjev in vhodno izhodnih signalov glavnega vezja. Pri senzorjih smo si podrobno

ogledali, na kakšen način zajemajo informacijo o različnih položajih in kje se stanja

menjujejo. Ugotovili smo tudi način napajanja robota ter približno delovanje obstoječe

komunikacije s pomočjo IR tehnologije.

Po analizi obstoječega sistema smo začeli z izgradnjo lastnega novega glavnega vezja.

Odstranili smo tudi glavo in jo nadomestili z držalom za dlančnik. Vsa druga vezja,

senzorje in motorje smo pustili nedotaknjene. Pri izdelavi novega glavnega vezja smo

upoštevali izsledke iz analize, pri katerih se je bilo potrebno držati tako mehanskih kot

električnih pogojev. Pri mehanskih smo pazili na obliko, višino ter lokacijo raznih

priključkov na vezju. Pri električnih pa smo pazili na različno napajalno napetost robota in

našega sistema ter na lastnosti senzorjev. Pri izgradnji smo uporabili dva mikrokrmilnika

in Bluetooth vmesnik, ki jih povezuje zaporedna povezava. Mikrokrmilnika lahko

komunicirata ali med seboj ali z drugo zunanjo Bluetooth napravo s pomočjo Bluetooth

vmesnika. Vse to se dogaja s pomočjo protokola, ki je posebej zgrajen za komunikacijo po

zaporednih povezavah in omogoča kontrolo in prenose podatkov med posameznimi

napravami. Možno ga je tudi tunelirati skozi različna omrežja: kot so Bluetooth, WLAN in

LAN. Programska oprema mikrokrmilnikov omogoča sprejemanje podatkov in kontrolnih

ukazov po zaporedni povezavi in zajemanje stanja senzorjev, ki so potrebni, da lahko

izvede nadaljnjo kontrolo in regulacijo v robotu. Odpravlja pa tudi določene

Page 84: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 71

pomanjkljivosti strojne opreme, določene oscilacije okončin in ščiti mehaniko z mejnimi

vrednostmi. Tudi če v kontrolnem paketu dobi podatek o stanju izven območja, ga le-ta

nastavi na stanje znotraj območja.

Nekaj težav je bilo prisotnih zaradi same mehanske zgradbe robota. Ugotovili smo, da

so pri nekaterih sklepih dodatno uporabljene mehanske vzmeti, kar oteži krmiljenje robota.

Vzmeti v določenem primeru povzročajo oscilacijo okoli želenega stanja zaradi tega, ker s

silo delujejo na sklep. Pri nekaterih sklepih je mehanika poenostavljena tako, da motor v

končni poziciji sklepa preide v kratek stik. Pri regulaciji teh sklepov smo s pomočjo

časovno reguliranega vklopa in izklopa, ob pravilno nastavljenih časovnikih, izključili to

možnost. Mehanske lastnosti zaradi cenene konstrukcije niso popolnoma simetrične, tako

na primer ena noga potrebuje več časa do končnega stanja kot druga. To je povzročalo

težave predvsem pri hoji robota, zaradi česar je ob hoji naravnost rahlo zavijal. Problem bi

bil domnevno rešljiv s programskim popravljanjem s pomočjo različno nastavljenih

časovnikov, kjer bi morali čas empirično (računsko) določiti.

Nadaljnji razvoj strojne opreme omogočajo dodatni neuporabljeni priključki na

glavnem vezju. Ti priključki so izpeljani iz prvega mikrokrmilnika, ki ima še veliko

prostora za bolj razširjeno programsko opremo. Enostavnejši nadaljnji razvoj omogoča

tudi programiranje mikrokrmilnika preko Bluetooth povezave. Protokol ima dodatno

programsko skupino, ki trenutno ne vsebuje nobenega ukaza in je namenjena dodatnemu

razvoju. Prva stvar, ki bi jo pri robotu lahko posodobili so senzorji za zaznavanje okolice.

Trenutno so uporabljeni samo senzorji na dotik, kar omogoča ustavitev motorjev ob trku z

oviro. Z boljšimi senzorji za merjenje daljine, pa bi se lahko oviri izognili, preden bi se

robot zaletel vanjo.

Page 85: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 72

8 LITERATURA

[1] M. Solar, Meritve v elektroniki, 1. izdaja, Založništvo FERI, Maribor, 2001

[2] Embedded system, History,

http://en.wikipedia.org/wiki/Embedded_system#History, 2007

[3] Embedded system, Definition,

http://www.webopedia.com/TERM/e/embedded_system.html, 2007

[4] Robosapien V2, Hacks ,

http://evosapien.com/robosapien-hack/nocturnal/RoboSapienV2/, 2007

[5] Robosapien V2, IR codes, http://www.aibohack.com/robosap/ir_codes_v2.htm,

2007

[6] H-Bridge, Theory of operation, http://www.dprg.org/tutorials/1998-04a/, 2007

[7] Atmel Corporation, Atmel AVR 8-bit Microcontroller - ATmega128, San Jose,

2006

[8] National Semiconductor, Low-Dropout Linear Regulator – LM117, 2006

[9] Sena Technologies, Promi-ESD User Manual, 2006

[10] Microprocessor, http://en.wikipedia.org/wiki/Microprocessor, 2007

[11] Central proces unit – CPU, http://en.wikipedia.org/wiki/Central_processing_unit,

2007

[12] Microcontroller, http://en.wikipedia.org/wiki/Microcontroller, 2007

[13] Intel 8051, http://en.wikipedia.org/wiki/8051, 2007

[14] Dogan Ibrahim, Picbasic Projects, 2006

[15] AVR, http://en.wikipedia.org/wiki/Atmel_AVR, 2007

[16] ARM Arhitecture, http://en.wikipedia.org/wiki/ARM_architecture, 2007

[17] FPGA, http://en.wikipedia.org/wiki/FPGA, 2007

[18] Modified Harvard Arhitecture,

http://en.wikipedia.org/wiki/Modified_Harvard_architecture, 2007

[19] Flash Memory, http://en.wikipedia.org/wiki/Flash_memory, 2007

[20] Thomas Bräun, Embedded Robotics, 2. edition, Springer-Verlag Berlin

Heidelberg 2003, 2006

[21] Marko Jagodič, Digitalne Telekomunikacije – kompendij, 1. izdaja, Založništvo

FERI Maribor, 2002

Page 86: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 73

[22] Andrev S. Tanenbaum, Computer Networks, 4th edition, Prentice Hall, 2003

[23] CAN, http://en.wikipedia.org/wiki/Controller_Area_Network, 2008

[24] Bluetooth, http://en.wikipedia.org/wiki/Bluetooth, 2008

[25] Reluctance motor, http://en.wikipedia.org/wiki/Reluctance_motor, 2008

[26] Brushless motor, http://en.wikipedia.org/wiki/Brushless_motor, 2008

[27] Bluetooth profiles, http://en.wikipedia.org/wiki/Bluetooth_profile, 2008

Page 87: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 74

9 PRILOGE

Seznam prilog:

A. Vsebina priložene zgoščenke

B. Sheme vezja

C. Predloge ploščic tiskanega vezja

D. Specifikacije komunikacijskega protokola

E. Osciloskopski posnetki

F. Naslov

G. Kratek življenjepis

Page 88: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 75

A. Vsebina priložene zgoš čenke

• Diplomska naloga v Microsoft Word 2003 obliki (»Diploma.doc«)

• Diplomska naloga v PDF obliki (»Diploma.pdf«)

• Vir [7] v PDF obliki (»Vir [7] ATMega128.pdf«)

• Vir [8] v PDF obliki (»Vir [8] LM1117.pdf «)

• Vir [9] v PDF obliki (»Vir [9] Promi ESD User Manual V2.0.pdf«)

• Načrt tiskanega vezja v Design Explorer 99 SE obliki(»RoboSapienv2.ddb«)

• Rezultati meritev prenosne karakteristike pri merjenju baterije v Microsoft

Excel 2003 obliki (»Merjenje baterije.xls«)

• Rezultati meritev v Microsoft Excel 2003 obliki (»Meritve.xls«)

• Posnetek Demonstracijskega plesa predelanega robota v DivX obliki

(»Ples robota.avi«)

• Zaganjalni program za mikrokrmilnik v HP Info Tech CodevisionAVR 1.24.8d

obliki (mapa »BootLoader«)

• Program za prvi mikrokrmilnik v HP Info Tech CodevisionAVR 1.24.8d obliki

(mapa »MainApp1«)

• Program za drugi mikrokrmilnik v HP Info Tech CodevisionAVR 1.24.8d obliki

(mapa »MainApp2«)

• Slike uporabljene v diplomski nalogi (mapa »Slike«)

• Slike, diagrami in sheme uporabljene v diplomski nalogi v Microsoft Visio 2003

obliki (mapa »Slike Visio«)

• Posnetki meritev osciloskopa (mapa »Slike osciloskopa«)

Page 89: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 76

B. Sheme vezja

Slika B1: Glavno vezje - Shema Stran 1

12

34

ABCD

43

21

D C B A

1234567891011121314

J1 Mo

tor

He

ade

r 1

123456789101112

J2 Mo

tor

He

ade

r2

1 2 3 4 5

J8 Rig

ht H

an

d

1 2 3

J6 Rig

ht S

houl

der

1 2

J7 Rig

ht H

an

d Sw

itch

1 2

J10

Gro

in T

ilt

1234567

J12

Rig

ht F

oot

123456

J13

Left

Foo

t

1 2 3

J14

Wa

ist F

orw

ard/

Bac

kwa

rd

1 2 3

J15

Wa

ist T

ilt L

eft/

Rig

ht

1 2 3 4 5

J16

Left

Han

d

1 2

J17

Left

Han

d S

witc

h

1 2 3

J18

Left

Sho

uld

er

1234

J20

He

ad

Tur

n

123

J21

He

ad T

ilt

1 2 3

J9 Wa

ist R

ota

te L

eft/

Rig

ht

+3.

3VLS

VR

- O

rang

eG

ND

LPU

P -

Whi

teG

ND

GNDBB0 - YellowRFF - PurpleRFB - BlueGNDBAT- - Orange

BAT- - Red6VIN - BrownLFB - YellowLFF - GreenGNDFB0 - PurpleGND

GN

DLB

0 -

Gre

enLB

1 -

Ye

llow

LRT

- O

rang

eG

ND

GN

DB

R -

Ye

llow

BL

- O

rang

e

GN

DC

HE

ST

- Y

ello

w+

3.3V

B2 - YellowB1 - GreenB0 - BlueGND

B1 - BrownB0 - RedGND

+3.

3VR

SV

R -

Ora

nge

GN

D

RP

UP

- W

hite

GN

D

GN

DR

B0

- G

reen

RB

1 -

Ye

llow

RL

T -

Ora

nge

GN

D

+3.

3VW

VR

- B

lue

GN

D

CB

0 -

Gre

yG

ND

Head - Rotate UpHead - Rotate Down

Waist - BackwardWaist - Forward

Head - Rotate RightHead - Rotate LEft

Lef t Wrist - Rotate R ightLef t Wrist - Rotate Le ft

Lef t Shoulder - Rotate UpLef t Shoulder - Rotate Down

9VGND

Unknown1Unknown2

Lef t Foot - Move BackwardLef t Foot - Move Forward

Right Foot - Move ForwardRight Foot - Move Backward

Waist - Tilt Lef tWaist - Tilt Right

Waist - Rotate LeftWaist - Rotate Right

Right Wrist - Rotate RightRight Wrist - Rotate Left

Right Shoulder - Rotate DownRight Shoulder - Rotate Up

(AD

0) P

A0

51(A

D1)

PA

150

(AD

2) P

A2

49(A

D3)

PA

348

(AD

4) P

A4

47(A

D5)

PA

546

(AD

6) P

A6

45(A

D7)

PA

744

(A8

) P

C0

35(A

9)

PC

136

(A1

0) P

C2

37(A

11)

PC

338

(A1

2) P

C4

39(A

13)

PC

540

(A1

4) P

C6

41(A

15)

PC

742

PF0

(A

DC

0)61

PF1

(A

DC

1)60

PF2

(A

DC

2)59

PF3

(A

DC

3)58

PF4

(A

DC

4/TC

K)

57P

F5 (

AD

C5/

TMS)

56P

F6 (

AD

C6/

TDO

)55

PF7

(A

DC

7/TD

I)54

(AL

E)

PG

243

AVCC64 GND

63

AR

EF

62

GND53

VCC52

(RD

) P

G1

34

(WR

) P

G0

33

PE

N1

RE

SET

20T

OSC

2/P

G3

18

TO

SC1/

PG

419

VCC21

GND22

XT

AL2

23X

TA

L124

PD

0 (S

CL

/INT

0)25

PD

1 (S

DA

/INT

1)26

PD

2 (R

XD

1/IN

T2)

27P

D3

(TX

D1/

INT

3)28

PD

4 (I

C1

)29

PD

5 (X

CK

1)30

PD

6 (T

1)31

PD

7 (T

2)32

(SS

) P

B010

(SC

K)

PB

111

(MO

SI)

PB

212

(MIS

O)

PB

313

(OC

0) P

B4

14(O

C1A

) P

B5

15(O

C1B

) P

B6

16(O

C2/

OC

1) P

B7

17

PE

0 (R

XD

0/P

DI)

2P

E1

(TX

D0/

PD

O)

3P

E2

(XC

K0/

AIN

0)4

PE

3 (O

C3A

/AIN

1)5

PE

4 (O

C3B

/INT4

)6

PE

5 (O

C3C

/INT5

)7

PE

6 (T

3/IN

T6)

8P

E7

(IC

3/IN

T7)

9

U2

AT

ME

GA

128

GN

DG

ND

GN

D

C11

100

nC

1210

0n

C13

100

n

GN

DG

ND

GN

D

+3.

3V+

3.3V

+3.

3V

C14

100

n

GN

D

Left

Sho

uld

er -

Rot

ate

Dow

nLe

ft S

hou

lder

- R

otat

e U

p

Left

Wris

t - R

ota

te L

eft

Left

Wris

t - R

ota

te R

ight

He

ad -

Rot

ate

LE

ftH

ead

- R

otat

e R

ight

Wa

ist -

For

war

dW

ais

t - B

ack

wa

rd

Wa

ist -

Tilt

Rig

ht

Wa

ist -

Tilt

Left

Rig

ht F

oot -

Mo

ve B

ack

war

d

Rig

ht F

oot -

Mo

ve F

orw

ard

Left

Foo

t -

Mov

e Fo

rwar

d

Left

Foo

t -

Mov

e B

ackw

ard

He

ad -

Rot

ate

Up

He

ad -

Rot

ate

Dow

nW

ais

t - R

ota

te L

eft

CH

EST

- Y

ello

w

Wa

ist -

Rot

ate

Rig

ht

WV

R -

Blu

e

Rig

ht W

rist

- R

ota

te R

ight

LSV

R -

Ora

nge

Rig

ht W

rist

- R

ota

te L

eft

Rig

ht S

houl

der

- R

ota

te D

own

RSV

R -

Ora

nge

Rig

ht S

houl

der

- R

ota

te U

p

BL

- O

rang

e

RX

D0

CB

0 -

Gre

y

TX

D0

B1

- Br

own

B0

- R

ed

BR

- Y

ello

wFB

0 -

Pur

ple

BB

0 -

Ye

llow

RFB

- B

lue

RFF

- P

urpl

eLF

B -

Ye

llow

LFF

- G

reen

LB0

- G

ree

n

LRT

- O

rang

e

LPU

P -

Whi

teR

PU

P -

Whi

teB

2 -

Yel

low

B1

- G

ree

nB

0 -

Blu

e

RL

T -

Ora

nge

RB

1 -

Ye

llow

RB

0 -

Gre

en

LB1

- Y

ello

wM

ISO

128

MO

SI1

28SC

K12

8

Res

etM

OT

GN

D

GN

D

C8

22p

F

C7

22p

FY

1C

RY

STA

L

Rob

osap

ien

V2 -

She

ma

Re

v. 1

.0St

ran:

1 /

2

Page 90: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 77

Slika B2: Glavno vezje - Shema Stran 2

12

34

ABCD

43

21

D C B A

VDD2 GND 1

RX

D8

TX

D7

RT

S6

CT

S5

Sta

tus

3

Res

et

4

U1

BL

UE

TOO

TH

GN

D

+3.

3V

C19

100

n

GN

D

GN

D

C6

68u

F

GN

D

C3

100

n

GN

D

+3.

3V

GN

DC5

68u

FC

410

0n

GN

D

D1

UD

S19V

1

23

IC1

LM11

17

(AD

0) P

A0

51(A

D1)

PA

150

(AD

2) P

A2

49(A

D3)

PA

348

(AD

4) P

A4

47(A

D5)

PA

546

(AD

6) P

A6

45(A

D7)

PA

744

(A8

) P

C0

35(A

9)

PC

136

(A1

0) P

C2

37(A

11)

PC

338

(A1

2) P

C4

39(A

13)

PC

540

(A1

4) P

C6

41(A

15)

PC

742

PF0

(A

DC

0)61

PF1

(A

DC

1)60

PF2

(A

DC

2)59

PF3

(A

DC

3)58

PF4

(A

DC

4/T

CK

)57

PF5

(A

DC

5/T

MS

)56

PF6

(A

DC

6/T

DO

)55

PF7

(A

DC

7/T

DI)

54

(AL

E)

PG

243

AVCC64 GND

63

AR

EF

62

GND53

VCC52

(RD

) P

G1

34

(WR

) P

G0

33

PE

N1

RE

SET

20T

OSC

2/P

G3

18

TO

SC1/

PG

419

VCC21

GND 22

XT

AL2

23X

TA

L124

PD

0 (S

CL

/INT

0)25

PD

1 (S

DA

/INT

1)26

PD

2 (R

XD

1/IN

T2)

27P

D3

(TX

D1/

INT

3)28

PD

4 (I

C1

)29

PD

5 (X

CK

1)30

PD

6 (T

1)31

PD

7 (T

2)32

(SS

) P

B010

(SC

K)

PB

111

(MO

SI)

PB

212

(MIS

O)

PB

313

(OC

0) P

B4

14(O

C1A

) P

B5

15(O

C1B

) P

B6

16(O

C2/

OC

1) P

B7

17

PE

0 (R

XD

0/P

DI)

2P

E1

(TX

D0/

PD

O)

3P

E2

(XC

K0/

AIN

0)4

PE

3 (O

C3A

/AIN

1)5

PE

4 (O

C3B

/INT4

)6

PE

5 (O

C3C

/INT5

)7

PE

6 (T

3/IN

T6)

8P

E7

(IC

3/IN

T7)

9

U3

AT

ME

GA

128

GN

DG

ND

GN

D

C15

100

nC

1610

0n

C17

100

n

GN

DG

ND

GN

D

+3.

3V

C18

100

n

GN

D

Blu

eRX

DB

lueT

XD

RX

D0

TX

D0

Bat

Stat

us

MIS

O12

8M

OS

I128

Res

etC

OM

SCK

128

Blu

eRes

et

Blu

eSta

tus

Blu

eCTS

Blu

eRTS

Blu

eR

XD

Blu

eTX

D

Blu

eR

TS

Blu

eC

TS

Blu

eSta

tus

Blu

eRes

et

EX

TB7

EX

TB6

EX

TB5

EX

TB4

EX

TB3

EX

TB2

EX

TB1

EX

TB0

EX

TA7

EX

TA6

EX

TA5

EX

TA4

EX

TA3

EX

TA2

EX

TA1

EX

TA0

AD

C5

AD

C4

AD

C3

AD

C2

LED

3LE

D2

LED

1LE

D0

AD

C1

AD

C0

PW

M0

PW

M1

PW

M2

PW

M3

GN

DC1

0.1

uF

R1

10k

+3.

3V

Re

setM

OT

GN

DC2

0.1

uF

R2

10k

+3.

3V

Re

setC

OM

MIS

O1

Vc

c2

SCK

3M

OSI

4

RE

SET

5G

ND

6

ISP

ISP

MIS

O12

8SC

K12

8R

ese

tM

OSI

128

GN

D

+3.

3V

123

JR

ResetCOMResetResetMOT

1 2 3 4 5 6 7 8 9 10

JPA

CO

N10

1 2 3 4 5 6 7 8 9 10

JPB

CO

N10

GN

D

GN

D

GN

D

+3.

3V

+3.

3V

+3.

3V

EX

TA0

EX

TA1

EX

TA2

EX

TA3

EX

TA4

EX

TA5

EX

TA6

EX

TA7

EX

TB0

EX

TB1

EX

TB2

EX

TB3

EX

TB4

EX

TB5

EX

TB6

EX

TB7

AD

C0

AD

C1

AD

C2

AD

C3

AD

C4

AD

C5

1 2 3 4 5 6 7 8

JPA

DC

CO

N8

1 2 3 4 5 6

JPP

WM

CO

N6

GN

D

+3.

3V

PW

M0

PW

M1

PW

M2

PW

M3

GN

D

GN

D

C10

22p

F

C9

22p

F

R7

15k

9V

R8

5.6

k

GN

D

BatS

tatu

s

D2

LED

D3

LED

D4

LED

D5

LED

R3

560

ER

4

560

ER

5

560

ER

6

560

E

GN

D

LED

0

LED

1

LED

2

LED

3

+3.

3V

Y2

CR

YST

AL

Rob

osap

ien

V2 -

She

ma

Re

v. 1

.0St

ran:

2 /

2

Page 91: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 78

C. Predloge ploš čic tiskanega vezja

Slika C.1: Zgornja plast tiskanega vezja

Slika C.2: Spodnja plast tiskanega vezja

Page 92: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 79

D. Specifikacije komunikacijskega protokola Protocol for BOOTLOADER & ROBOSAPIEN Name: LEN DEST_ADDR SRC_ADDR CMD_GRP CMD DATA Size (byte): 2 1 1 1 1 n

CMD_GRP:

0 IDENTIFY 1 FLASH 2 MOTOR 3 SENSOR 4 CONTROL 5 MEDIA 6 EXTEND

0 IDENTIFY LEN DEST_ADDR SRC_ADDR CMD_GRP CMD DATA 6+n Addr Addr 0 x n Echo 1 FLASH CMD:

1 FLASH_W 2 FLASH_W_ACK 3 FLASH_R 4 FLASH_R_ACK 5 EEPROM_W 6 EEPROM_W_ACK 7 EEPROM_R 8 EEPROM_R_ACK 9 JUMP_APP 10 JUMP_APP_ACK

1 FLASH_W DATA: FLASH_ADDRESS PAGE 4 256 2 FLASH_W_ACK DATA: STATUS 1 3 FLASH_R DATA: FLASH_ADDRESS 4 4 FLASH_R_ACK DATA:

Page 93: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 80

PAGE 256 5 EEPROM_W DATA: EEPROM_ADDRESS LEN EEPROM_DATA 2 2 n 6 EEPROM_W_ACK DATA: STATUS 1 7 EEPROM_R DATA: EEPROM_ADDRESS LEN 2 2 8 EEPROM_R_ACK DATA: EEPROM_DATA N 9 JUMP_APP DATA: NONE 0 10 JUMP_APP_ACK DATA: NONE 0 Only for non-bootloader 11 JUMP_BOOT DATA: NONE 0 12 JUMP_BOOT_ACK DATA: NONE 0 Defines in C code for microcontrollers Serial.h MORE_DEVICES 1 – forward to secondary serial port (both directions) 0 – no forward Boot.h DEVICE_ADDR 1 – ATMega128 Communication 2 – ATMega128 Motors 3 – PC

Page 94: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 81

4 – iPaq 2 MOTOR CMD:

1 STATE 2 STATE_ACK 3 WALK 4 WALK_ACK 5 SHOULDER 6 SHOULDER_ACK 7 WRIST_ROTATE 8 WRIST_ROTATE_ACK 9 WAIST 10 WAIST_ACK 11 WAIST_TILT 12 WAIST_TILT_ACK 13 HEAD_ROTATE 14 HEAD_ROTATE_ACK 15 HEAD_TILT 16 HEAD_TILT_ACK 17 FOOT_TILT 18 FOOT_TILT_ACK 19 MOTOR_STOP 20 MOTOR_STOP_ACK 21 MOTOR_START 22 MOTOR_START_ACK

*_ACK DATA: NONE 0 Acknowladges return no data. 1 STATE DATA: WAIST_FORW_BACKW WAIST_ROTATE LEFT_SHOULDER 1 (8bit) 1 (8bit) 1 (8bit) RIGHT_SHOULDER LEFT_WRIST_ROTATE RIGTH_WRIST_ROTATE 1 (8bit) 1 (2bit) 1 (2bit) HEAD_ROTATE HEAD_TILT WAIST_TILT_LEFT_RIGHT(timer) 1 (3bit) 1 (2bit) 2 LEFT_FOOT(timer) RIGHT_FOOT(timer) 2 2 timer: 0 – stop >0 – foot: move forward, head: move up, waist_tilt: move right <0 – foot: move backward, head: move down, waist_tilt: move left 3 WALK DATA:

Page 95: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 82

COUNTER WAIST_DELAY LEFT_FOOT_DELAY RIGHT_FOOT_DELAY 1 2 2 2 COUNTER 0 – STOP FF – CONTINOUSLY 1-FE – COUNT 5 SHOULDER DATA: SELECTION POT (AD) 1 1 (8bit) SELECTION Left = 1 Right = 2 Both else 7 WRIST_ROTATE DATA: SELECTION ENCODER 1 1 (2bit) SELECTION Left = 1 Right = 2 Both else 9 WAIST DATA: SELECTION POT (AD) 1 1 (8bit) SELECTION RotateLeftRight = 0 ForwardBackward = 1 11 WAIST_TILT DATA: Timer 2 13 HEAD_ROTATE DATA: ENCODER 1 (3bit) Left/Right 15 HEAD_TILT DATA: timer 2 17 FOOT_TILT DATA: LEFT(timer) RIGHT(timer) 2 2 19 MOTOR_STOP DATA:

Page 96: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 83

NONE 0 21 MOTOR_START DATA: NONE 0 3 SENSOR CMD:

1 STATE 2 STATE_ACK 3 TOUCH 4 TOUCH_ACK

1 STATE DATA: NONE 0 State request 2 STATE_ACK DATA: WAIST_FORW_BACKW WAIST_ROTATE LEFT_SHOULDER 1 (8bit) 1 (8bit) 1 (8bit) RIGHT_SHOULDER LEFT_WRIST_ROTATE RIGTH_WRIST_ROTATE 1 (8bit) 1 (2bit) 1 (2bit) HEAD_ROTATE TOUCH POSITION 1 (3bit) 1 (8bit) 1 (3bit) HEAD_TILT_UP_DOWN WAIST_TILT_LEFT_RIGHT 1 (2bit) 1 (2bit) 3 TOUCH DATA: NONE 0 State request 4 TOUCH_ACK DATA: STOP TOUCH POSITION 1 (1bit) 1 (8bit) 1 (3bit) STOP: 1 One of the sensors has been activated TOUCH: 0 LEFT_HAND 1 RIGHT_HAND 2 LEFT_HAND_GRIP 3 RIGHT_HAND_GRIP 4 LEFT_FOOT_BACK 5 LEFT_FOOT_FRONT 6 RIGHT_FOOT_BACK

Page 97: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 84

7 RIGHT_FOOT_FRONT POSITION: 0 GROIN_TILT 1 LEFT_FOOT_TILT 2 RIGHT_FOOT_TILT 4 CONTROL CMD:

1 BATERY_STATUS 2 BATERY_STATUS_ACK

1 BATERY_STATUS DATA: NONE 0 Status request 2 BATERY_STATUS_ACK DATA: STATUS 1 5 MEDIA CMD:

1 PICTURE 2 PICTURE_ACK 3 SOUND 4 SOUND_ACK 5 SCRIPT 6 SCRIPT_ACK 7 OFF 8 OFF_ACK

DATA: PATH n Filename ACK: NONE 0 6 EXTEND For future use.

Page 98: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 85

E. Osciloskopski posnetki

Slika E.1: Desna noga tilt nazaj Slika E.2: Desna noga tilt naprej

Slika E.3: Desno zapestje Slika E.4: Desna rama

Slika E.5: Glava Naprej/Nazaj Slika E.6: Drhtenje v pasu

Page 99: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 86

Slika E.7: Leva noga tilt nazaj Slika E.8: Glava Levo/Desno

Slika E.9: Leva Rama Slika E.10: Leva noga tilt naprej

Slika E.11: Levo zapestje Slika E.12: Pas Naprej/Nazaj

Page 100: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 87

Slika E.13: Pas tilt desno Slika E.14: Pas Levo/Desno

Slika E.15: Pas tilt levo

Page 101: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 88

F. Naslov

David Bricman

Sv. Vid 20

2367 Vuzenica

Tel.: +386 87 64 480

Elektronska pošta: [email protected]

Page 102: VGRAJENI SISTEM ROBOTA ROBOSAPIEN - core.ac.uk · devices and the computer. The system has a possibility of the upgrade with the additional The system has a possibility of the upgrade

Vgrajeni sistem robota Robosapien 89

G. Kratek življenjepis

Rojen: 16.3.1982 Brežice

Šolanje: 1989 – 1997 Osnovna šola Vuzenica

1997 – 2001 Srednja elektro-računalniška šola Maribor