upravljanje modelom vozila putem raČunalne mreŽe · pdf fileveleuČilište u rijeci...

45
VELEUČILIŠTE U RIJECI Dimitrij Vukelić UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE I RASPBERRY PI RAČUNALA ZAVRŠNI RAD Rijeka, 2013.

Upload: buidat

Post on 05-Feb-2018

236 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

VELEUČILIŠTE U RIJECI

Dimitrij Vukelić

UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE I RASPBERRY PI RAČUNALA

ZAVRŠNI RAD

Rijeka, 2013.

Page 2: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala
Page 3: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

VELEUČILIŠTE U RIJECI

Stručni studij Telematike

UPRAVLJANJE MODELOM VOZILA PUTEM

RAČUNALNE MREŽE I RASPBERRY PI RAČUNALA

(završni rad)

MENTOR STUDENT

Marino Franušić Dimitrij Vukelić MBS: 2427004056/10

Rijeka, lipanj 2013.

Page 4: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

vELEUerLrSrn u RTJECT

srnudrvr srnDrJ TELEMATTKE

Rijeka, 01.03.2013

ZADATAKza zavrini rad

Pristupniku Dimitrij Vukelid MBS: 2427004056110

Studentu strudnog studija telematike izdaje se zadatak zavr5ni rad - tema zavr5nog radapod nazivom:

Upravljanje modelom vozila putem ra6unalne mreie i Raspberry Pi raiunala

Sadriaj zadatkaz

Opisati upravljanje vozilom na daljinu. Opisati Raspberry Pi radunalo. Dati pregledmogudih primjena Raspberry Pi radunala. Objasniti mogudnost upravljanja putemradunalne mre?.r- uredajima spojenim na Raspberry Pi radunalo. Povezati volan i radunalo.Izraditi sklop za povezivanje Raspberry Pi radunala i modela voala. Izraditi potrebneaplikacije za udaljeno upravljanje vozilom. Prikupiti video pr*laz s kamere postavljenena vozilo.

Preporuka:

Zainadu sustava preporuda se kori5tenje javno dostupnih materijala i projekata koji su sebavili slidnom tematikom.

Rad obraditi sukladno odredbama Pravilnika o zawlnom radu VeleudiliSta u Rijeci.

T.adano: 01. oZuj ka 2013 Predati do: 5. srpnja 2013

Marino FranuSii, predavad

Voditelj studija: r -

a""-- Q.D--

Zadattkprimio dana: 01. oZujka 2013

.-.ff L"/n

Dostavlja se:- mentoru- pristupniku

Dimitrij Vukelid

Page 5: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

IZJAVA

Izjavliujem da sam zawsni rad pod naslovom UPRAVU44'F HoDFAom cn

ptrierr P.s&rNArue [ere-F r ?rspBERLY Pt aA;oilsrA izradiosamostalnopod

nadmrom i uz strudnu pomo6 mentora mRetNA lParqutt dn

Page 6: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

SAŽETAK

Upravljanje na daljinu olakšava i ubrzava procese koje čovjek izvodi. Od davnina on

istražuje i izrađuje alate koji to čine. Današnjim napretkom tehnologije zrak oko nas

isprepleten je signalima za daljinsku komunikaciju i/ili upravljanje, bilo da se radi o zabavi ili

radnim procesima. Vozila upravljana na daljinu nalaze se u svim sferama ljudskog života, od

malih nogu dijete se igra autom ili brodom na daljinsko upravljanje i tako postaje svjestan da

može upravljati sa strojem. Rover na Marsu ili vozilo za razminiranja primjer su vozila

upravljanih na daljinu koje pomažu u istraživanju ili zamjenjuju čovjeka u radnjama opasnima

za život. Prvi dio rada obrađuje teoretski dio upravljanja na daljinu kao i potrebne elemente

korištene u izradi rada, a drugi dio aplikativni dio potreban za izvedbu upravljanja.

Ključne riječi: upravljanje, daljina, aplikacija, lokalna mreža

Page 7: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

SADRŽAJ

1. UVOD .................................................................................................................................... 1

2. UPRAVLJANJE VOZILIMA NA DALJINU ................................................................... 2

2.1. Princip rada upravljanja vozilom na daljinu ............................................................................................... 4

3. RASPBERRY PI RAČUNALO ......................................................................................... 12

4. NAČIN POVEZIVANJA NA RAČUNALNU MREŽU ILI INTERNET ..................... 16

5. SUČELJE ZA PROGRAMIRANJE APLIKACIJA KOJE SE KORISTI ZA UPRAVLJANJE ULAZIMA/IZLAZIMA RASPBERRY PI RAČUNALA ..................... 18

5.1. Izrađeni JavaAPI za povezivanje ...............................................................................................................19 5.1.1. Metoda u klasi za određivanje parametara konekcije ............................................................................ 19 5.1.2. Metoda definiranja GPIO priključnica u klasi definicije .......................................................................... 20 5.1.3. Metoda postavljanja atributa priključnice u klasi definicije ................................................................... 20 5.1.4. Metoda pozivanja makro funkcije definirane na serveru ....................................................................... 21 5.1.5. Metoda slanja HTTP zahtjeva ................................................................................................................. 22

6. IZRADA APLIKACIJE ..................................................................................................... 23

6.1. Izrada dijela aplikacije koji komunicira s volanom ....................................................................................25

6.2. Izrada dijela aplikacije koji prosljeđuje naredbe na Raspberry Pi .............................................................27

6.3. Prilagodba serverske aplikacije koji upravlja vozilom ...............................................................................28 6.3.1. Definiranje priključnica ....................................................................................................................... 29 6.3.2. Definiranje funkcija ............................................................................................................................ 29 6.3.3. Makro naredbe ................................................................................................................................... 30 6.3.4. Sigurnosni mehanizam ....................................................................................................................... 30 6.3.5. Registriranje skripte ........................................................................................................................... 32

6.4. Izrada dijela aplikacije koji prima video prikaz s kamere ..........................................................................32

7. OPIS RADA CJELOKUPNOG SUSTAVA I SVIH FUNKCIONALNOSTI ............... 35

8. ZAKLJUČAK ..................................................................................................................... 36

POPIS KRATICA .................................................................................................................. 37

LITERATURA ....................................................................................................................... 37

POPIS SLIKA ......................................................................................................................... 38

Page 8: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

1

1. UVOD

Čovjek od svojih samih početaka kreira alate i strojeve koji bi mu olakšali pri

obavljanju poslova. Daljinsko upravljanje može se definirati kao – procesi koji su upravljani

na daljinu, automatizirano ili manualno uz pomoć čovjeka. Proces definiramo kao niz

određenih, smislenih aktivnosti koje imaju određeni cilj, a upravljati možemo bilo što, radni

stroj, vozilo, softver, kućnu automatizaciju pa čak i s čovjekom samim. Iako možda na prvi

pogled nema smisla da je moguće daljinski upravljati s čovjekom, izdavanje radnog zadatka

preko mobilnog uređaja je upravo to. Nadređena osoba je udaljena od radnika koji izvršava

radni proces i zadaje mu radni zadatak. Identično se ponaša i daljinski upravljano vozilo

igračka, dijete željenu naredbu prenosi kontrolerom bežično na vozilo.

Današnja daljinski upravljana vozila ne razlikuju se mnogo od prvih pokušaja

upravljanja uređaja radio valovima Nikole Tesle, 1898. godine kada se i prvi puta spominje

izraz - "teleautomaton" – teleautomatika, danas prihvaćena kao telematika. Tehnički su,

današnja vozila, superiornija u pogledu veličine, brzine odziva i količine utrošene energije, no

princip rada je ostao potpuno isti. Operator putem daljinskog kontrolera upravlja uređajem. I

dalje se koriste radio signali kao i u Teslinom brodu, a uređaji su napajani baterijama.

Svijet danas je nezamisliv bez daljinskih upravljača, rijetko da postoji kućanstvo bez

njega. Daljinski upravljana vozila su svoju primjenu našla u svim sferama ljudskog života, od

vojske do znanstvene zajednice i medicine. Ubrzanim razvojem tehnologije čovjek se sve više

prilagođava činjenici da mora manje razmišljati jer ga zamjenjuju „pametni“ daljinski

upravljani strojevi koji imaju mogućnost ispraviti pogrešku operatora u kritičnim situacijama

(vozilo koje daljinskim putem dobiva informaciju o mogućoj koliziji s drugim vozilom pa

preuzima kontrolu nad vozačem i koči kako bi izbjegao koliziju). Koliko je to poboljšanje, a

koliko hendikep pokazat će vrijeme.

Page 9: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

2

2. Upravljanje vozilima na daljinu

Sustav za daljinsko djelovanje (eng. teleoperation) podrazumijeva različite načine upravljanja

udaljenim uređajem koji je pomoću određenog komunikacijskog medija povezan s osobom

koja na udaljenoj lokaciji upravlja i kontrolira pokrete: vozila, robota i sličnih uređaja

smještenih u stvarnom svijetu. Povezanost operatora s udaljenim uređajem dovodi do osjećaja

fizičke prisutnosti na udaljenoj lokaciji, što pridonosi kvaliteti reakcija operatora prilikom

određenih situacija, pokreta u kojima se sam uređaj nalazi. Taj osjećaj dovodi do povećanja

osjetilno-motornih sposobnosti u rješavanju zadataka koji se izvršavaju na udaljenoj lokaciji;

pomicanje, skretanje, podizanje ili spuštanje tereta odnosno općenito interakcija s okolinom.

Rukovanje i upravljanje na daljinu dobiva osobiti značaj u aktivnostima koje zahtijevaju

izrazitu preciznost, štetne su za život operatera ili zahtijevaju brzo djelovanje kao što je

primjer u kirurgiji, vojnim aktivnostima, rukovanju opasnim tvarima i slično. Obavljanjem

aktivnosti na udaljenim lokacijama na koje operator nije mogao pristupiti zbog opasnosti po

život ili potrebe za brzim djelovanjem na nekoj drugoj lokaciji, povećana je djelotvornost i

učinkovitost te kvaliteta življenja.

Iluzija o prisutnosti operatora na udaljenoj lokaciji postignuta je određenim stupnjem prividne

stvarnosti. Složeni elektro-kemijski procesi interpretiraju se u mozgu iz svih osjetila na

temelju stečenih predznanja o svijetu, odnosno mozak ima referentni model, znanje koje je

pohranjeno u njemu. Ta znanja nisu samo informacije iz okoline već percepcije osjetila i

mozga koje je čovjek u nekoj situaciji primio iz okoline i pohranio ih u svojoj memoriji.

Memorirana znanja stvaraju osjećaj prividne stvarnosti u trenutku upravljanja na daljinu.

Moguće je potpuno se nalaziti u svijetu prividnosti, operator ne vidi ništa drugo osim

prividnog svijeta sa zaslona računala, ali ako operator nije u potpunosti uživljen u taj svijet

onda se govori o djelomičnom efektu. Iz toga razloga potrebno je poboljšati elemente koji

stvaraju osjećaj prividne stvarnosti. Ako je riječ o računalnoj aplikaciji, potrebno je

unaprijediti kvalitetu elemenata aplikacije koji stvaraju osjećaj virtualne stvarnosti. Današnja

osobna računala, pametni telefoni i tablet uređaji uskoro bi mogli navoditi ljude u raznim

aktivnostima pa čak i upravljati obućom koja ljude odvodi do željenog odredišta

Page 10: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

3

Upravljanje udaljenim uređajem patentirao je još davne 1893. godine Nikola Tesla,

koji je osmislio upravljanje vozilima i plovilima pomoću radiovalova. Najveća je

komercijalna upotreba daljinskih upravljača kojima se iz udobnih naslonjača upravlja

televizorima. Nakon tolike udobnosti ugodnog naslonjača Nintendova Wii igraća konzola

omogućila je fizičku aktivnost tako da sustav senzora prati ljudske pokrete i na taj način

zahtjeva aktivan fizički angažman koji je natjerao svog korisnika da se podigne iz udobnog

naslonjača. Upravljanje vozilima na daljinu može se pratiti kroz dječje igračke s obzirom da

su komercijalno najdostupnije. Prve dječje igračke, autići na daljinska upravljanja zapravo to i

nisu s obzirom da su vozilo i daljinski upravljač bili povezani kabelom koji je omogućavao

udaljavanje osobe od vozila tek pokoji metar, koliko je dozvoljavala dužina kabela. Nešto

kasnije razvile su se igračke, vozila s pravim daljinskim navođenjem do udaljenosti koje je

omogućavao radio signal između vozila i daljinskog upravljača. No, ni takav način

upravljanja nije stvorio iluziju stvarnog navođenja vozila. Računalne igre te uređaji poput

volana koji se povezuje s računalom i služi upravljanju igrom doveli su do povećanja

stvaranja osjećaja stvarnog upravljanja vozilom koje se zapravo pokreće u digitalnom svijetu

odnosno aplikaciji. Takve vrste simulacija koriste se u mnogim granama, kao što su vojne i

medicinske svrhama, odnosno proizvodnja i aktivnosti koje zahtijevaju određenu preciznost

prilikom navođenja.

Vozila koja bez neposrednog upravljanja čovjeka prikupljaju određene informacije iz

okoline mogu djelovati potpuno samostalno i razmjenjivati podatke s okolinom jeftinije i

pouzdanije te sigurnije za čovjeka. Primjer je vozilo poslano na Mars kako bi prikupilo

podatke prije nego što ljudska posada posjeti taj planet. Njegov „zadatak“ je prikupljati

uzorke tla i atmosferske podatke, obrađivati ih i informacije slati u centar na Zemlji. Vozilo za

razminiranje je primjer vozila koje zamjenjuje čovjeka u opasnim zadatcima. Nažalost zbog

visoke cijene nabavke u Hrvatskoj se jako malo ili uopće ne koriste.

Važnost automatiziranih sustava u vojnim svrhama je od posebne važnosti što je

posebno vidljivo kod bespilotnih letjelica koje se koriste još od sredine prošlog stoljeća i

godinama se njihove sposobnosti i mogućnosti samo poboljšavaju bez obzira da li djeluju u

zraku, na kopnu ili u vodi. Američke su vojne snage obavljale pedesetih godina prošlog

stoljeća, nadgledanja sovjetskih teritorija pomoću bespilotnih letjelica koje su upravljane

daljinskim putem prikupljale važne informacije te su ih operatori obrađivali u vojnim bazama

Page 11: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

4

bez opasnosti prelaska nedozvoljenih granica. Takvih je primjera u vojnoj industriji veliki

broj, ali nisu svi poznati širokoj javnosti. Činjenica da danas svatko tko se bavi

automatizacijom može razvijati vozilo upravljano na daljinu otvara pitanje koliko je daleko

danas otišla vojna industrija kada prosječni čovjek uspijeva automatizirati svoju vlastitu

okolinu.

2.1. Princip rada upravljanja vozilom na daljinu

Svako radijski upravljano vozilo (u daljnjem tekstu RC) sastoji se od dvije osnovne

komponente, prijemnika i predajnika, iako se u naprednijim vozilima nalaze primopredajnici s

obje strane. Predajnik se nalazi kod operatera (unutar upravljača) i služi za odašiljanje

obrađenih informacija s upravljača prema vozilu. Prijemnik u vozilu spojen je na ostatak

upravljačke logike, prima i interpretira dobivene informacije te ih šalje prema upravljačkoj

logici.

Signal se, između operatera i vozila, prenosi bežičnim putem koristeći radijske

frekvencije. Postoji određen (dodijeljen od strane regulatornih agencija) spektar frekvencija

kao i snaga odašiljanja koje se smiju koristiti za upravljanje vozilima. Iako postoje velike

razlike u regulativi među državama o korištenju frekvencija, isti raspon se koristi za svaki

uređaj svugdje u svijetu kako slijedi :

• Radio kontrola: 35 - 73 MHz (posebni RC kanali)

• Telemetrijski Podatci: 868 - 915 MHz (Europa SRD G3 područje/ISM

područje)

• Radio kontrola / Telemetrija / Video konekcije: 2.4 GHz (ISM područje)

• Podatkovne / Video konekcije : 5 GHz (ISM područje)

Područja koja se najčešće koriste u pojedinim državama svijeta

(https://pixhawk.ethz.ch/tutorials/frequency):

Austrija

• 27 MHz RC modeli (sve vrste)

Page 12: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

5

• 35 MHz RC samo avioni i helikopteri (35.000 - 35.220 MHz)

• 40 MHz RC modeli

o 40.665 - 40.695 MHz (kanali 50 - 53) za avione, automobile i brodove

• 2.4 GHz je dozvoljena za korištenje (10 mW i 100 mW)

Francuska

• 27 MHz RC modeli (sve vrste)

• 35 MHz (35.000 and 35.010 MHz) Avioni

• 41 MHz RC modeli

o 41.000 - 41.100 MHz Avioni

o 41.110 - 41.200 MHz svi modeli

• 72 MHz (72.210 - 72.490 MHz) svi modeli

• 2.4 GHz je dozvoljena za korištenje (10 mW i 100 mW)

Njemačka

• 27 MHz RC modeli (sve vrste, standardna frekvencija za jeftine

igračke)

• 35 MHz RC samo avioni i helikopteri

• 40 MHz RC modeli

o 40,665 - 40,695 (kanali 50 - 53) za avione, automobile i brodove

o 40,715 - 40,985 (kanali 54 - 92) za automobile i brodove

• 2.4 GHz je dozvoljena za korištenje (10 mW i 100 mW)

Ako se govori o jednostavnim igračkama, parametri upravljanja su kretanje naprijed,

natrag, lijevo i desno. Takvi upravljači koriste tipkala, popularno zvane digitalne komande,

zbog stanja 0/1 – uključeno isključeno (Slika 1).

Page 13: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

6

Slika 1: Jednostavni kontroler

Izvor: http://battlemachinesrc.com/images/lg/controller_lg.jpg

Kod naprednijih upravljača stvari se malo kompliciraju i broj parametara se povećava

zbog načina upravljanja vozilom. Napredniji upravljači koristi analogne komande u obliku

potenciometara, kako bi se moglo upravljati brzinom vozila i finim zakretom kuta prednjih

kotača. U pravilu kontroliranje ovakvih vozila zahtjeva određeno prilagođavanje na upravljač

i potrebno je prvo vježbati kako ne bi došlo do uništavanja samog vozila. Tada se koriste

primopredajnici u upravljačima, jer osim što upravljač šalje operaterove komande vozilu, on i

prima informacije s vozila, brzinu, stanje napona baterije, trenutnu potrošnju struje,

temperaturu motora pa čak i video sliku s kamere iz vozila (Slika 2).

Slika 2: Napredni kontroler

Izvor : http://fpvcentral.net/wp-content/uploads/2012/04/osrc.jpg

Page 14: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

7

U vozilu se nalazi upravljačka logika i prijemnik/primopredajnik. Ona upravlja, kako

joj i samo ime kaže, motorima vozila. Čak i najjednostavnija vozila moraju imati određeni

sklop kako bi se mogao mijenjati smjer kretanja odnosno vrtnje motora. U tu svrhu koristi se

H-most (Slika 3).

Slika 3: Prikaz rada H-mosta

Izvor: http://blog.solutions-cubed.com/wp-content/uploads/2012/06/h-bridge_thumb.png

Kako je vidljivo na gornjoj slici, zavisno od kombinacije prekidača mijenja se polaritet

napona na priključnicama, a time i sam smjer vrtnje motora. H-most, bilo da se govori o

elektromehaničkom uz pomoć releja (Slika 4) ili elektroničkom uz pomoć tranzistora ili

gotovih H-most elemenata (Slika 5) služi kako bi se okrenuo polaritet odnosno smjer vrtnje

istosmjernog motora ponašajući se identično kao prekidači na gornjoj slici.

Page 15: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

8

Slika 4: Relejni H-most

Izvor : obrada autora

Slika 5: LM298 H-most

Izvor:http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/L298_IMGP4533_wp.jpg/220px-

L298_IMGP4533_wp.jpg

Ne ulazeći u princip rada istosmjernog motora, bitno je znati da se promjenom

polariteta priključnica mijenja i smjer vrtnje motora, a da bi to bilo moguće bez kratkog spoja

na priključnicama koristi se H-most.

Brzina vrtnje, kao i zakret kotača su upravljani pomoću PWM – Pulse Width

Modulation metode. Princip PWM-a je emulacija analognog napona digitalnim signalom.

Visoko frekventnim izmjenama logičkih stanja (0/1), šalju se impulsi napona i zbog histereze

gašenja upravljani motor se brže, odnosno sporije kreće. Potrebno je paziti na struju

uključenja motora tako da svaki motor neće raditi od 0% PWM-a. Najsigurnije je pokušati sa

70% i onda postepeno smanjivati postotak napona uključenja. Mjerenjem struje uključenja

motora moguće je utvrditi najpogodniji napon uključenja.

Page 16: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

9

Zakret kotača se vrši pomoću servo motora (Slika 6).

Slika 6: Prikaz servo motora

Izvor: http://www.ermicro.com/blog/wp-content/uploads/2009/02/servo_00.jpg

To je u osnovi okretni aktuator koji dozvoljava preciznu kontrolu stupnja okreta.

Sastoji se od motora uparenog sa senzorom pozicije preko mjenjača redukcije. Za kontrolu

takvog motora potreban je posebni kontroler. Najčešće je maksimalni kut zakreta 180° iako

postoje motori s kutom od 360° koji mogu napraviti kružno gibanje. Upravljanje se također

vrši PWM metodom samo je u ovom slučaju točno određeno kakav signal i u kojem trajanju

prenosi određeni stupanj zakreta motora.

Na slikama (Slika 7 i Slika 8) prikazan je PWM signal, 100 i 50 % radnog ciklusa, na

osciloskopu kod upravljanja brzinom, zelena linija, te zakretom kuta servo motora, crvena

linija. Primjetna je razlika u frekvenciji kojom se odašilju impulsi. Dok je, na slici 8, kod

100% PWM signala, upravljanje brzinom ravna linija (3.3 V), upravljanje zakretom i dalje

ima impuls određenog trajanja. Prikaz je informativnog karaktera, korištene su ručno izrađene

sonde spojene na ulaz audio kartice računala.

Page 17: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

10

Slika 7: PWM 50%

Izvor : obrada autora

Slika 8: PWM 100%

Izvor : obrada autora

Na slici (Slika 9) prikazana je blok shema elektroničke kontrole brzine motora (ESC –

eng. Electronic speed control) i kruga za otklanjanje baterije (BEC – eng. battery eliminator

circuit). Sva vozila na daljinsko upravljanje više klase obvezno u sebi imaju ova dva sklopa.

Prvi služi za regulaciju brzine i smjera vrtnje motora (ESC), a drugi za napajanje kontrolera i

aktuatora(BEC).

Page 18: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

11

Slika 9: Shema ESC-a i BEC-a u radu

Izvor: obrada autora

ESC i BEC je autor izradio za potrebe završnog rada, jer vozilo nije imalo regulaciju

brzine niti servo podešavanje zakreta kuta vozila pa je bilo potrebno izraditi potpuno novu

elektroniku za upravljanje vozila. Autor je vodio računa o modularnosti vozila pa su određene

komponente (napajanje Raspberry Pi-a) odvojive od ostatka elektronike ili univerzalne

(priključnica za kontroler) kako bi olakšao daljnju možebitnu nadogradnju vozila.

Page 19: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

12

3. Raspberry Pi računalo

Raspberry Pi računalo, pogonjeno „Linux“ ili „RISCOS“ operacijskim sustavom (OS),

veličine je kreditne kartice koje se priključuje na televizor/monitor i periferne jedinice kao

tipkovnica ili računalni miš. Zamišljeno je za mnogobrojne aktivnosti kao što su obrada

teksta, multimedijalni centar, izrada proračunskih tablica, igranje igara, upravljanje vanjskim

uređajima ali prvenstveno u edukacijske svrhe za učenje programiranja (većinom u „Python“ i

„Scratch“ programskim jezicima) i rada na računalu. Svojom niskom cijenom, oko tristo

kuna, pa i manje, zavisno od modela, dostupan je svim učenicima i studentima koji žele

savladati prve korake programiranja bez ulaganja velikih iznosa u skupu računalnu opremu.

Postoje dva modela Pi računala, model A ima 256MB RAM-a, jedan USB ulaz, dok model B

ima 512MB RAM-a, dva USB ulaza i mrežni priključak. Oba modela pogoni ARM -

1176JZFS procesor na 700MHz (moguće je napraviti overclock na 1GHz). Grafičke

mogućnosti su gotovo jednake onima XBox konzole, Videocore 4 grafički procesor sposoban

dekodirati filmove BlueRay kvalitete pri 1080p rezoluciji, te OpenGL ES2.0 i OpenVG

zahvaljujući 3D jezgri. U prodaji su dostupne memorijske kartice s operacijskim sustavom za

Raspberry Pi, ali one se plaćaju dodatno te ako se kupuje bez kartice s operacijskim sustavom,

potrebno je koristiti dodatno računalo za instalaciju operacijskog sustava na Pi računalo. To

predstavlja negativnu stranu ovog uređaja odnosno govori o njegovoj nesamostalnosti. Uređaj

teži tek 45 g, a njegova veličina je 85.60mm x 56mm x 21mm. Utor za SD karticu i konektori

malo povećavaju veličinu cijelog uređaja (Slika 10).

Slika 10: Raspberry PI

Izvor: http://www.gadgeterija.net/2013/01/20/recenzija-raspberry-pi-komadic-pite-za-svakoga/#.UWFiGTdj9Sp

Page 20: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

13

Instalacija operacijskog sustava na Pi računalo vrlo je jednostavna s obzirom na to da

postoje gotove „Linux“ distribucije. Preporučeni izvor napajanja je 700mA uz 5V, a za

napajanje se mogu koristiti punjači pametnih telefona. Većina prosječnih korisnika koristit će

„Raspbian“ OS baziran na „Debian“ distribuciji „Linux“ i neće imati velikih problema

prilagodbe na sučelje ako su prije radili u Windows okruženju (Slika 11).

Slika 11: Sučelje Raspberry PI

Izvor:http://www.gadgeterija.net/2013/01/20/recenzija-raspberry-pi-komadic-pite-za-svakoga/#.UWFiGTdj9Sp

Kao i kod svake „Linux“ distribucije za sve napredne sistemske postavke potrebno je

poznavati rad u terminalu i princip rada „Linux“ kao operacijskog sustava. Distribucije se

redovno osvježavaju novim mogućnostima pa je tako najnovija inačica obogaćena „dućanom“

za aplikacije i aplikacijom za spajanje na bežične mreže što je prije bilo potrebno raditi u

terminalu.

Osim spajanja na monitor i korištenja kao klasično računalo (monitor, miš,

tipkovnica), Raspberry Pi-u je moguće pristupiti preko SSH (eng. Secure Shell) konekcije,

bilo preko terminala u „Linux“ okruženju ili preko „Putty“ aplikacije u „Windows“

okruženju.

Posebnost Raspberry Pi računala je u tome što ima mogućnost jednostavne interakcije

s vanjskim svijetom koristeći GPIO (eng. General Purpose Input Output) priključnice. To su

Page 21: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

14

dakle digitalni ulazi i izlazi kojima se pristupa putem priključnica koje se nalaze na ploči

računala, a ukupno ih ima 26, dva reda po 13 (Slika 12).

Slika 12: Raspored GPIO priključnica

Izvor : http://sansgridpdx.com/images/6/68/Raspberry-pi-rev-1-gpio-pin-out1.jpg

Kako je vidljivo na slici iznad, osim naponskih (3V3 i 5V) i minus (Ground)

priključnica, ostale se mogu koristiti kao digitalni ulazi-izlazi ili imaju specijalnu namjenu,

kao što su serijska konekcija (UART) ili I2C za spajanje elemenata.

Kod spajanja posebno treba obratiti pažnju da priključnice Raspberry Pi računala rade

na 3.3V i svako spajanje s uređajima ili elementima koji koriste 5V signal doveli bi do trajnog

uništenja samog računala. Primjera radi, ako se Raspberry Pi spaja s Arduino

mikrokontrolerom preko UART, serijske veze, potrebno je koristiti MAX2322 sklop između

Page 22: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

15

kako bi se zaštitio Raspberry Pi jer serijska veza na Arduinu koristi 5V signal. Ako ih se spaja

putem USB ulaza tada nema problema jer je to interno riješeno.

Page 23: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

16

4. Način povezivanja na računalnu mrežu ili internet

Raspberry Pi je moguće povezati u lokalnu računalnu mrežu, a samim time i na

internet na dva načina, žično i bežično. Žično se spaja putem UTP kabela kao i svako drugo

računalo. Za bežično spajanje potrebno je koristiti USB bežični adapter i pritom je potrebno

pripaziti kod kupnje jer Raspberry Pi koristi „Linux“ koji ne podržava sve adaptere, a i

ograničen je sa strujom napajanja preko USB priključka pa je moguće da neki adapteri ne

rade..Prije.kupovine.svakako.je.potrebno.provjeriti.web.sjedište

http://elinux.org/RPi_VerifiedPeripherals i provjeriti je li netko već imao iskustva sa željenim

adapterom. Isto se odnosi na sve ulazno-izlazne uređaje koji se spajaju na Raspberry Pi.

Kako bi se proveo postupak spajanja na bežičnu mrežu potrebno je ili spojiti Pi na

monitor te tipkovnicu i miš, ili ga žično spojiti na mrežu pa koristiti „Putty“ ili neki drugi

SSH terminal. Potom je potrebno u terminalu naredbom lsusb dobiti popis svih USB uređaja

koji su spojeni i provjeriti da li je mrežni adapter na popisu. Ako nije, velika je vjerojatnost da

mrežni adapter ne radi s Pi računalom, Za provjeru je potrebno probati isključiti Pi i ponovno

ga uključiti dok je kartica u USB utoru. Ne preporučuje se korištenje produžnih USB kablova.

Ako je na popisu, postoje dva ispravna načina. Jedan je preko grafičkog sučelja, a drugi u

terminalu. Za početnike se preporučuje korištenje grafičkog sučelja, ali je tada pored „Putty“

programa potreban i „VNC“ softver za grafički prikaz (ako se spaja putem SSH).

Podešavanje preko terminala:

1. Provjeriti inačicu operacijskog sustava i nadograditi s posljednjim

dostupnim nadogradnjama

sudo apt-get update

sudo apt-get upgrade

2. Ponovno pokrenuti (resetirati) računalo

sudo reboot

3. Provjeriti postavke sučelja

sudo nano /etc/network/interfaces

Page 24: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

17

4. Postaviti kao što je navedeno ispod, pod pretpostavkom da je uključeno

dinamičko dodjeljivanje adresa (DHCP)

auto lo

iface lo inet loopback

iface eth0 inet dhcp

allow-hotplug wlan0

auto wlan0

iface wlan0 inet dhcp

wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

5. Pohraniti postavke – ctrl+X , pa zatim odabrati Yes

6. Upisati naredbu za promjenu konfiguracije

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

7. Postaviti konfiguraciju mreže

network={

ssid="SSID-IME MREŽE"

proto=RSN

key_mgmt=WPA-PSK

pairwise=CCMP TKIP

group=CCMP TKIP

psk="WIFI-ZAPORKA"

}

8. Snimiti postavke – ctrl+X , pa zatim odabrati Yes

9. Ponovno pokrenuti (resetirati) računalo

sudo reboot

(http://pingbin.com/2012/12/setup-wifi-raspberry-pi/)

Za postavljanje u grafičkom modu postoji intuitivna aplikacija pomoću koje je jednostavno

podesiti spajanje na bežičnu mrežu.

Page 25: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

18

5. Sučelje za programiranje aplikacija koje se koristi za upravljanje ulazima/izlazima Raspberry Pi računala

Komunikacija između klijentskog računala i Raspberry Pi-a se vrši pomoću

„WebIOPi“ okvira. Serverski dio napisan je u „Python“ programskom jeziku, a za udaljenu

komunikaciju koristi se HTTP (eng. hyper text transfer protocol – protokol za internet

pregledavanje) ili CoAP (eng. Constrained Application Protocol – jednostavan protokol

zamišljen za komunikaciju jednostavnih uređaja preko interneta) REST (eng.

Representational State Transfer – stil softverske arhitekture koja se koristi na internetu,

najčešće korištene su GET i POST metode za web komunikaciju) API (eng. application

programming interface – određuje kako pojedine softverske komponente djeluju međusobno).

Autor okvira, Eric Ptak, je preradio Apache web server i prilagodio ga kako bi mogao

„komunicirati“ s GPIO priključnicama Pi-a. Termin „komunicirati“ je pogodniji od

kontrolirati i/ili upravljati jer kako je već rečeno postoje protokoli komunikacije putem GPIO

pa je moguće putem web stranice proslijediti tekstualnu informaciju kroz serijsku vezu dalje

prema periferijama, kao i iščitati tekstualne podatke poslane sa strane periferija. Trenutna

verzija je 0.6+, a autor rada aktivno sudjeluje u razvoju okvira. Jedan od razloga zašto je

upravo ovaj način komunikacije odabran za rad je, osim testiranja i promoviranje

jednostavnog, a opet moćnog servera za komunikaciju s periferijama. Osnovni način rada i

arhitektura „WebIOPi“ okvira prikazana je na slici ispod (Slika 13). Sve informacije te

postupak instalacije i prilagodbe moguće je naći na web sjedištu -

https://code.google.com/p/webiopi/

Slika 13: WebIOPi arhitektura

Izvor: http://trouch.com/wp-content/uploads/2012/11/webiopi-architecture.png

Page 26: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

19

5.1. Izrađeni JavaAPI za povezivanje

Za potrebe rada autor je izradio jednostavan Java API, „jWebIOPi“, za spajanje Java

aplikacija na „WebIOPi“ server putem HTTP protokola. API se sastoji od dvije klase, prva

definira metodu spajanja (adresu,vrata (eng. port), korisničko ime i zaporku), a druga metode

komunikacije preko GPIO priključnica. Na taj način programeru je olakšano komuniciranje sa

serverom jer je API napravljen intuitivno i sličan je Arduino načinu pisanja komandi. Kako je

API rađen u suradnji sa autorom „WebIOPi“ servera, sve metode kao i „Java doc“

(dokumentacija API-ja koja se generira u kodu pozivajući /** , a služi programeru koji koristi

API u objašnjenju pozivanja i svrhe metoda) su na engleskom jeziku. Trenutna inačica je 1.0

RC, a osim standardnih funkcija IN, OUT i PWM podržava još serijsku komunikaciju te

pozivanje makro funkcija i stalno se nadograđuje novim funkcionalnostima prateći razvoj

serverske.aplikacije..Dostupan.je,.pod.„Apache.2.0.“.licencom,.na.web.sjedištu

https://code.google.com/p/java-api-for-webiopi/,.a.„Java.doc“.na.

http://ucka.veleri.hr/~dvukeli1/.

5.1.1. Metoda u klasi za određivanje parametara konekcije

Metodom se definiraju adresa računala, port i eventualno dodatna putanja servera,

unutar if-a su riješeni određeni specifični slučajevi unosa adrese. Prvo metoda provjerava je li

programer unio http:// prefiks, ako nije onda ga ona dodaje, nakon toga provjerava ima li

adresa unos webiopi ili root u sintaksi, ako ima onda ga uklanja jer nije potreban odnosno

može dovesti do rušenja servera. Sljedeća provjera je li programer unio dodatnu putanju do

servera i po tome slaže konačnu sintaksu koju pohranjuje u modelu veze.

public HTTPWebIOPiConnection(String url, String port , String path ){

if(url.contains("http://")){ if(path.contains("webiopi")||path.contains("root")|| path.equals("")){

setAdress(url + ":" + port + "/"); } else { setAdress(url + ":" + port + "/"+ path + "/"); }

Page 27: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

20

} else {

if(path.contains("webiopi")||path.contains("root")|| path.equals("")){

setAdress("http://" + url + ":" + port + "/"); } else {

setAdress("http://" + url + ":" + port + "/"+ path + "/"); } }

}

5.1.2. Metoda definiranja GPIO priključnica u klasi definicije

Jedna od četiri moguće definicije metode za korištenje GPIO priključnica. Programer

unosi predefiniranu konekciju iz prvog primjera, broj GPIO priključnice i funkciju

priključnice: in, out, pwm, a metoda je sprema u model. Ova metoda ne koristi autorizaciju za

pristup serveru i koristi se samo ako nije uključena zaporka i korisničko ime na „WebIOPi“

serveru. Postoje još identična metoda ovoj samo s autorizacijom, metoda za pristup uređajima

(serijska veza) te metoda kojom se definiraju samo konekcija i autorizacija, a služi za

pozivanje makro funkcija objašnjenih u četvrtom primjeru.

public DefineGPIO(HTTPWebIOPiConnection konekcija , int pinNuber , String

function) {

this.konekcija = konekcija;

this.pinNumber = pinNuber;

adress = konekcija.getAdress();

SetGpioFunction(pinNumber, function);

}

5.1.3. Metoda postavljanja atributa priključnice u klasi definicije

Metoda kojom se postavlja PWM vrijednost GPIO priključnica. Programer pri

pozivanju metode upisuje vrijednost između 0 i 100% , a ona onda to pretvara u double

vrijednost između 0 i 1 jer je tako određeno serverom. Metoda po primljenoj vrijednosti

Page 28: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

21

provjerava njenu ispravnost, ako je ispravna poziva send metodu i vraća poruku sa servera, a

ako je neispravno unijeta vrijednost vraća poruku o neispravnosti unosa.

public String SetPWM(int percentRatio ){

double ratio = Double.valueOf(percentRatio)/100;

if(ratio >= 0 && ratio <= 1){

try {

response=String.valueOf(send("GPIO/"+pinNumber+"/pulseRatio/"+ratio));

} catch (IOException e) {

return e.getMessage();

}

}

else {

response = "Ratio must be between 0 and 100";

}

return response;

}

5.1.4. Metoda pozivanja makro funkcije definirane na serveru

Nakon pozivanja metode potrebno je samo upisati naziv makro naredbe, nakon toga

metoda slaže sintaksu i poziva metodu objašnjenu ispod, a vraća poruku servera.

public String startMacro(String macro){

try {

response = send("macros/"+macro+"/");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return response;

}

Page 29: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

22

5.1.5. Metoda slanja HTTP zahtjeva

Autor za HTTP konekciju koristi Apache server-klijent API. Metoda za slanje HTTP

POST zahtjeva serveru koja se poziva svaki put kada je potrebna pojedinoj metodi za

manipulaciju GPIO priključnicama. Ona sintaksi dodaje putanju određenu pozivanjem metode

objašnjene u prvom primjeru, brine se za autorizaciju na serveru, i prihvaća odgovor servera

koji zatim šalje metodi koja ju je pozvala.

private String send (String order) throws IOException{

URL url = new URL(adress + order);

final HttpURLConnection conn = (HttpURLConnection)

url.openConnection();

conn.setRequestMethod("POST");

conn.setDoOutput(true);

conn.setDoInput(true);

String encodedLogin =

org.apache.commons.codec.binary.Base64.encodeBase64String(logIn.getBytes());

conn.setRequestProperty("Authorization", "Basic " + encodedLogin);

InputStream is = conn.getInputStream();

BufferedReader rd = new BufferedReader(new InputStreamReader(is));

String response = readAll(rd);

return response;

}

Page 30: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

23

6. Izrada aplikacije

Osnovni cilj je izraditi aplikaciju koja prihvaća komande igraćeg volana (Slika 14).

Slika 14: Trust igrači volan

Izvor: http://www.trust.com/_images/products/500/13153-1.jpg

Aplikacija primljene komande prenosi putem lokalne bežične mreže na Raspberry Pi, a

korisniku na zaslonu prikazuje video prikaz kamere iz vozila. Izrađena je u „JavaFX“

programskom jeziku koji se podosta razlikuje od klasičnog programiranja u „Java“

programskom jeziku. Grafički dizajn je potpuno odvojen od softvera za programiranje i tako

dopušta lakši timski rad jer je moguće potpuno odvojiti dizajn grafičkog sučelja od logike

aplikacije do samog kraja izrade. Programer koristi posebnu aplikaciju „Scene builder“ koji

sve elemente grafičkog korisničkog sučelja zapisuje u fxml formatu. Slično kao Android

programiranje grafičkog sučelja u „Java“ i fxml je inačica XML. Najveći problem u izradi

aplikacije je nastao jer Oracle, vlasnik „JavaFX“, iako želi uzeti primat HTML-5 u web

dizajnu, iz nepoznatog razloga ukida podršku za veliki broj video formata pa tako i za mjpeg,

te loše napisan engine za prikaz web stranica.

Prvotna ideja je bila napraviti aplikaciju koja vjerno prikazuje unutrašnjost vozila i

tako stvoriti dojam proširene stvarnosti (spoj realnih i virtualnih elemenata koji korisniku

stvaraju dojam tjelesne prisutnosti na drugom mjestu ili omogućuju primitak informacija o

nečemu, na primjer informacije o zgradi koju gleda kroz kameru na zaslonu svog mobilnog

Page 31: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

24

aparata ) kako bi korisnik imao stvaran dojam da upravlja vozilom (volan se okreće sljedeći

pokrete korisnika na igračem volanu, a snaga motora i stanje mjenjača dinamički se mijenjaju

zavisno od zadanih komandi na monitoru desno od volana (Slika 15 ).

Slika 15: Izrađena JavaFX aplikacija

Izvor: obrada autora

Oznake mjenjača su standardizirana slova kao na automatskom mjenjaču: D (eng.

drive - vožnja), P (eng. parking – parkirna brzina), N (eng. neutral – „ler“,neutralno), R(eng.

reverse – „rikverc“,vožnja u natrag) i B (eng. breake - ručna kočnica). Umjesto brzine vozila

prikazana je postotak pritiska papučice gasa od 0% do 100% preslikavajući postotak snage

motora, istovremeni pritisak na papučicu kočnice razmjerno djeluje na snagu motora

smanjujući je, a time i usporavajući vozilo. Ovdje se autor vodio preglednošću podataka jer je

prvotna verzija s kontrolnim satom, iako efektnija i realnija, bila nepregledna za korisnika.

Page 32: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

25

Autor je pokušao koristiti AVR 328p mikrokontroler (osnova Arduino kontrolera) kao

kontroler niže razine koji bi upravljao motorima putem PWM-a, a sa Raspberry Pi-em putem

serijske veze. Ideja je nastala zbog toga što Pi nema hardverski nego softverski PWM koji

ovisi o procesoru, za razliku od AVR-a koji ima hardversku izvedbu. Odustajanje od ove

varijante je uzrokovano s dva problema. Manji problem je razlika u naponu logike PI-a i

AVR-a (Pi radi na 3.3V logici, a AVR na 5V) jer se snižavanjem radnog takta AVR-a sa 16

MHz na 8 MHz, a time i napajanja AVR-a na potrebnih 3.3V, to moglo riješiti. Veći problem

je serijska komunikacija kao izvedba protokola na „WebIOPi“ serveru. Za razliku od

standardnih komandi koje se šalju serveru preko zaglavlja HTTP POST metode, serijska

komunikacija se odvija na sljedeći način – u zaglavlju se šalje korisničko ime i zaporka, a u

tijelu poruke se šalje tekstualna naredba. Ovaj način poprilično usporava komunikaciju jer

nakon primitka Pi prvo obrađuje primljenu informaciju, prekodira je te serijski šalje naredbu

AVR-u. AVR je dekodira i pretvara u komandu i bilo bi nebitno da se radi o recimo

zatvaranju zavjesa gdje 300 ili 500 mili sekundi kašnjenja ne igra značajnu ulogu, ali vozilo

treba što prije dobiti informaciju kako ne bi na primjer došlo do kolizije s nekim predmetom u

okolini. Autor „WebIOPi“ servera ima informaciju i pokušava riješiti problem kako bi

uspješno spojili Raspberry Pi i Arduino u budućnosti, bilo poboljšanom izvedbom serijske

komunikacije ili na neki drugi način.

6.1. Izrada dijela aplikacije koji komunicira s volanom

Pošto se „Java“ aplikacija izvodi u „Java“ virtualnoj mašini, za pristup periferijama

kao što je kontroler potrebno je koristiti nativne biblioteke (eng. Native libraries) operativnog

sustava na kojem se izvodi. Autor koristi jinput API u kombinaciji sa „JinputJoystick“

klasom, koja pojednostavljuje uporabu API-ja definirajući samo bitne metode za

komunikaciju. Uz klasu i API potrebno je kopirati nativne biblioteke u isti direktorij gdje se

nalazi sama aplikacija (Slika 16).

Page 33: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

26

Slika 16: Nativne biblioteke

Izvor: obrada autora

Kako je vidljivo iz gornje slike, kopirane su sve biblioteke i time je omogućeno

korištenje aplikacije na svim operacijskim sustavima (Windows 32 i 64 bit, Linux 32 i 64 bit

te OSX) te je time zadržana ideja višeplatformske aplikacije.

Samo korištenje API-ja je izuzetno jednostavno, potrebno je definirati novu instancu

kontrolera i nakon toga samo pozivati informacije koje su potrebne iz kontrolera.

JInputJoystick joystick;

joystick = new JInputJoystick(Controller.Type.WHEEL,Controller.Type.STICK);

Moguće je u isto vrijeme definirati dvije vrste kontrolera, u radu se definira volan i gamepad

tako ostavljajući mogućnost upravljanja vozilom s različitim kontrolerima.

Page 34: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

27

Izuzetno je bitno definirati broj tipki samog kontrolera, jer različite izvedbe samog

uređaja imaju i različiti broj tipki, kako ne bi došlo do pogreške pri čitanju stanja tipki (true –

pritisnuta, false – ne pritisnuta).

int brTipki = joystick.getNumberOfButtons();

izlaz = joystick.getButtonValue(0);

Tipke su prilagođene igraćem volanu koji se koristi u radu te bi za potrebe spajanja

različitih modela trebalo napraviti klasu za postavke kontrolera te kalibraciju istog. Podatci o

X i Y osi kontrolera (X je volan, Y su pedale) se mogu čitati na 3 moguća načina:

• joystick.getXAxisPercentage()

• joystick.getXAxisValue()

• joystick.getXRotationPercentage()

Razlika je u brojčanoj vrijednosti koju API vraća. U prvom i trećem slučaju vraća

postotak od 0% do 100% što je pogodno za upravljanje servo motorom, kojem se u API-ju za

komunikaciju određuje maksimalni kut, jer se tako dinamički određuje sam kut zakreta.

Nasuprot tome kod druge metode vraćene vrijednosti su tipa double s vrijednostima od -1 do

1, pa su pogodne za pedale vozila jer nepotisnute daju vrijednost 0, pritiskom pedale za gas

vrijednost raste prema 1, ali se istovremeno zbraja s pritiskom pedale kočnice. To za rezultat

ima situaciju ako su pritisnute obje pedale da je vraćena vrijednost 0 (-1 +1=0). Tako je

moguće dobiti efekt smanjenja brzine vozila kada operater uz pritisnutu papučicu gasa krene

stiskati papučicu kočnice.

6.2. Izrada dijela aplikacije koji prosljeđuje naredbe na Raspberry Pi

Za dio aplikacije koja prosljeđuje naredbe Pi-u korišten je vlastiti API odnosno

„jWebIOPi“. Kako je već navedeno izrada API-ja vođena je principom Arduino sintakse

pisanja koda. Postoji i službeni „Java“ API autora „WebIOPi“ servera, koji je napisan s

Page 35: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

28

verzijom servera 0.6 koji koristi oba načina komunikacije HTTP i CoaP, ali za ovaj rad

odabran je vlastiti API.

• Primjer definiranja GPIO priključnica

DefineGPIO kutSretanja = new DefineGPIO(spajanje, login, 18, "pwm") {

};

Ovo je primjer definiranja metode objašnjene u poglavlju 5.1., 2. primjer. Programer definira

novu instancu metode koristeći adresu i autorizaciju, određujući da će GPIO priključnica 18

imati funkciju PWM.

• Primjer postavljanja vrijednosti na priključnice

brzinaVozila.SetPWM(novaBrzina);

kutSretanja.SetServoAnglePercent(zakretVolana);

Dva primjera postavljanja vrijednosti na priključnice. Iako su obje varijable definirane

funkcijski kao PWM razlikuju se po načinu slanja signala na aktuatore, razlika je objašnjena u

poglavlju 2.1. iznad slika (Slika 7 i Slika 8).

6.3. Prilagodba serverske aplikacije koji upravlja vozilom

„Java“ aplikacija, kako je već navedeno, šalje POST naredbe koje server prosljeđuje

„Python“ skripti te ona komunicira s GPIO kontrolerom. Napravljena je „Python“ skripta koja

definira priključnice, njihove funkcije, makro naredbe te sigurnosni mehanizam ako dođe do

prekida komunikacije između aplikacije i vozila.

Page 36: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

29

6.3.1. Definiranje priključnica

Korišteno je pet priključnica, tri za upravljanje vožnjom dvije za promjenu pravca, 10

i 11 te jedna za promjenu brzine, 9), jedna za promjenu smjera kretanja vozila (18) te jedna za

provjeru veze klijenta i servera.

# Retrieve GPIO lib

GPIO = webiopi.GPIO

VOLAN = 18

BRZINA = 9

NAPRIJED = 10

NATRAG = 11

PROVJERA = 22

Start = 0;

6.3.2. Definiranje funkcija

Iako je skripta pisana u „Python“ programskom jeziku, kod je jako sličan Arduino

sintaksi jer je autor servera u komunikaciji s korisnicima zaključio da ih velika većina ima

iskustva u radu s njim. Nakon pozivanja funkcije GPIO.setFunction potrebno je unutar

zagrada napisati broj ili naziv priključnice ( ako je definirana kao u 1. primjeru ), te funkciju

iste.

# Called by WebIOPi at script loading

def setup():

webiopi.debug("Script with macros - Setup")

# Setup GPIOs

GPIO.setFunction(VOLAN, GPIO.PWM)

GPIO.setFunction(PROVJERA, GPIO.OUT)

Page 37: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

30

6.3.3. Makro naredbe

Uporabom makro naredbi umanjuje se količina komunikacije sa samim serverom i

programeru olakšava izradu klijentske aplikacije. Definirati izlazne vrijednosti je moguće na

dva načina, ili kao u primjeru iznad ili brojčano 0 – 1 gdje LOW predstavlja 0, a HIGH 1.

Alternativni način bi bio slanje dvije naredbe za postavljanje GPIO priključnica, koji

nije neispravan, ali se u tom slučaju radi o dva HTTP POST paketa prema serveru umjesto

jednog i sigurno se ne izvedu istom brzinom kao kada je to napravio sam server.

# Makro naredba za naprijed

@webiopi.macro

def Naprijed():

GPIO.digitalWrite(NAPRIJED, GPIO.HIGH)

GPIO.digitalWrite(NATRAG, GPIO.LOW)

6.3.4. Sigurnosni mehanizam

Slučajno pri jednom testu, aplikacija se srušila i vozilo je nastavilo nekontrolirano

voziti zbog toga što je ostalo u zadnjem primljenom stanju priključnica. Postoji više načina

sigurnosnih mehanizama, jedan od kojih je konstantno slati naredbu za pravac, ali tražen je

način kako bi se što više smanjio broj paketa koji se šalje. Na kraju je izabrana vremenska

provjera stanja posebne priključnice i stavljanja stanja motora u blokadu kod ne odgovarajuće

vrijednosti.

• Primjer klijentskog dijela „pinga“

void slanjePinga() {

Timeline javljanje = new Timeline(new KeyFrame(Duration.seconds(1), new

EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent t) {

ping.SetStateON(true);

}

Page 38: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

31

}));

javljanje.setCycleCount(Timeline.INDEFINITE);

javljanje.play();

}

U „JavaFX“ programskom jeziku postoji metoda Timeline u kojoj se vremenski

određuje trajanje radnje koja se poziva unutar njenog tijela. Tako je pojednostavljeno

korištenje vremenskog brojača kod radnji koje je potrebno izvršavati u pravilnim vremenskim

razmacima. U ovom slučaju vrijeme ciklusa je postavljeno na jednu sekundu, a vrijeme

ukupnog izvođenja na beskonačno, metoda ping postavlja vrijednost priključnice 22 na 1.

• Primjer serverskog dijela „pinga“

# Looped by WebIOPi

def loop():

# Provjera konekcije

global Start

Timer = time.time()

value = GPIO.digitalRead(PROVJERA)

if Timer - Start >= 2 and value == 0:

GPIO.digitalWrite(NAPRIJED, GPIO.HIGH)

GPIO.digitalWrite(NATRAG, GPIO.HIGH)

Start = Timer

elif Timer - Start >= 2 and value == 1:

GPIO.digitalWrite(PROVJERA, GPIO.LOW)

Start = Timer

Prikazana beskonačna petlja definirana s def loop(): obavlja provjeru, svake dvije sekunde,

stanja priključnice 22 i ako nije ispravna (vrijednost 1 ) blokira motor vozila, a ako je

postavlja stanje na 0. Ovim načinom provjere osigurani su slučajevi rušenja aplikacije ili bilo

kojeg drugog načina gubitka veze između vozila i aplikacije

Page 39: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

32

6.3.5. Registriranje skripte

„Python“.skripta.se.nalazi.na.Pi.računalu,.putanja.je

/home/pi/webiopi/examples/scripts/auto. Potrebno je nakon izrade korisničke skripte, web

stranicu kojom je upravljana i skriptu, spremiti u isti direktorij te naredbom sudo nano

/etc/webiopi/config registrirati putanju na kojoj se nalazi kako bi je server pokrenuo pri

startu te putanju gdje se nalazi korijenski direktorij servera i web stranice (Slika 17).

Slika 17: Config datoteka WebIOPi-a

Izvor: obrada autora

6.4. Izrada dijela aplikacije koji prima video prikaz s kamere

Na Raspberry Pi-u se nalazi „MJPEG –Streamer“ server koji upravlja web kamerom i

vrši video prijenos na lokalnom web serveru. Aplikacija se prvo spaja na Pi putem SSH (eng.

Page 40: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

33

Secure shell) konekcije, prijavi se u sustav i pokrene „Linux“ ljuska(shell) skriptu koristeći

„Ganymed SSH-2“ Java API(http://www.cleondris.ch/opensource/ssh2/).

sess = conn.openSession();

sess.execCommand("./server.sh &");

Naredba sess.execCommand("./server.sh &"); pokreće autorovu skriptu za pokretanje

servera koja se nalazi na putanji home/pi/ Pi računala.

sudo /etc/init.d/webiopi restart

cd mjpg-streamer/mjpg-streamer

./mjpg_streamer -i "./input_uvc.so -n -f 25 -r 160x120" -o "./output_http.so -p$

Parametre video prikaza je moguće mijenjati na Pi računalu, unutar skripte koristeći

nano server.sh naredbu. Preporučeni parametri za mijenjanje su isključivo brojevi iza –f ,

broj slika u sekundi i iza –r , rezolucija video prikaza. Trenutno korištena kamera može

isporučiti samo do 10 slika u sekundi bez obzira na parametar koji je zadan. Bitno je znati da

se zbog formata video prikaza drastično povećava količina podatkovnog prometa jer se radi o

nizu jpeg fotografija, a ne o pravom video formatu. Naredba za ponovno pokretanje

„WebIOPi“ servera je dodana iz predostrožnosti ako se isti ne bi pokrenuo pri samom paljenju

računala.

Server se ne pokreće automatski kod paljenja Pi računala, kako se isti ne bi mogao

zloupotrijebiti za video prikaz ako je automobil upaljen bez aplikacije jer je serveru moguće

pristupiti s bilo kojeg računala u istoj lokalnoj mreži koristeći internet preglednik. Nakon

gašenja aplikacije poziva se naredba sess.execCommand("sudo shutdown now"); koja gasi Pi

računalo, a time i kameru na njemu.

Klijentski dio prikaza videa je riješen putem webview metode JavaFX-a.

we = video.getEngine();

we.load("http://raspberrypi:8880/javascript_simple.html");

Metoda webview je u stvari jednostavan internet preglednik koji prikazuje odabrano web

sjedište, a koristi se u kombinaciji sa webengine metodom. Trenutni problem koji se javlja

kod prikaza videa je Javascript u web prikazu. Loše napisan engine webview metode uzrokuje

neispravan rad Java garbage collector alata. Njegov zadatak je oslobađati memoriju od

Page 41: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

34

instanci varijabli koje se više ne koriste, ali to ne čini pa se video prikaz zna prekinuti

odnosno dolazi do prepunjenosti memorije – heap greške. Oracle navodi na svojim stranicama

da je moguće koristi „Javascript“ u webview, čak i da je moguće koristiti metode „Javascript“

za mijenjanje i kontrolu drugih elemenata u „JavaFX“ grafičkom prikazu pa autoru ostaje

nepoznanica zbog čega dolazi do ovog problema. Istu metodu prikaza autor je isprobao u

„Java swing“ grafičkom prikazu i tamo ne dolazi do istog problema, ali zbog superiornosti

„JavaFX“ grafičkog prikaza nad swing-om, autor ostavlja ovaj problem kao zadatak koji treba

odraditi, bilo koristeći drugu web kameru i drugi format ili pričekati da zajednica napiše

alternativnu webview metodu koja će koristiti „Mozilla“ ili „Chrome“ engine za

prikaz.Isproban je i prikaz koristeći „vlcj“ API koji koristi „VLC“ player, ali dolazi do

kašnjenja u prikazu od 1 do 2 sekunde pa je ta metoda prikaza odbačena kao ne prihvatljiva.

Page 42: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

35

7. Opis rada cjelokupnog sustava i svih funkcionalnosti

Operater sjedi za računalom i igraćim volanom upravlja vozilom. Aplikacija prihvaća

informacije iz kontrolera putem USB sučelja, obrađuje ih i putem lokalne mreže HTTP POST

metodom prosljeđuje serveru koji se nalazi na Raspberry Pi računalu. Server bežično prima

informacije s klijentskog računala, obrađuje ih i putem GPIO priključnice vrši zadane radnje

na motorima vozila. U isto vrijeme, softver na Pi računalu, uz pomoć web kamere stvara

video zapis, obrađuje ga i prikazuje na lokalnom web serveru. Aplikacija za upravljanje

vozilom na klijentskom računalu spaja se na server i prikazuje sliku operateru. Vozilo ima

osnovne mogućnosti upravljanja: kretnje naprijed-natrag, mijenjanje brzine vožnje i skretanje

lijevo-desno.

Kako je već navedeno aplikativni dio rada pokušava na vjeran način pokazati

unutrašnjost vozila i donekle prikazati virtualnu realnost operateru kao da se nalazi unutar

vozila. Mogućnosti primjene su sama mašta operatera u trenutku upravljanja vozilom.

Moguće je vježbati vožnju vozila, s automatskim mjenjačem, bez straha od mogućih ozljeda

samog vozača ili vozila. Zatim je moguća primjena u terapijske svrhe osoba koje su imale

veliki stres uzrokovan prometnom nezgodom i sada ih je strah sjesti ponovno za volan vozila.

Proširenja mogućnosti vozila su isto ograničena samo maštom, financijama i

količinom slobodnog vremena za rad na vozilu. Trenutno je komunikacija upravljanja

jednosmjerna, od operatera prema vozilu i operater nema povratne informacije o stanju vozila

osim video prikaza iz samog vozila. Prvenstveno bi trebalo opremiti vozilo sustavom protiv

kolizije, zatim sustavom za praćenje stanja baterije kako bi operater znao koliko još može

upravljati istim. Potrebno je zamijeniti web kameru s nekom koja podržava drugi video

format kako bi se izbjeglo kašnjenje signala. Vrlo korisno bi bilo dodati senzor za mjerenje

broja okretaja kotača, a samim time i trenutne brzine vozila te akcelerometar na osovini koji

bi iskoristio force feedback mogućnosti pojedinih volana i tako dodatno povećao realnost

upravljanja. Sve navedeno nije problem dodavati zahvaljujući modularnosti samog sustava

upravljanja i komunikacije. Dodavanjem Arduina ili analogno-digitalnih pretvarača na

Raspberry Pi moguće je relativno jednostavno proširiti sadašnje mogućnosti vozila.

Page 43: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

36

8. ZAKLJUČAK

U okviru postavljenog zadatka izrađena je klijentska aplikacija u skladu s trendom

dizajna grafičkog sučelja i primjene proširene stvarnosti. U pravilu su aplikacije kopije

fizičkih daljinskih upravljača s dodatkom video prikaza, a proširena stvarnost omogućava

bolji iskustveni doživljaj korisnika. Korišteni način hardverske izvedbe nije se pokazao kao

potpuno uspješan jer, iako korišteni Raspberry Pi ima jako velik potencijal kod upravljanja

kućnom automatizacijom, pada na testu gdje je potrebno informaciju prenijeti u izuzetno

kratkom roku. Ostaje za istražiti da li je problem u načinu komunikacije klijenta i servera ili u

samom računalu. Pouzdanost računala još uvijek nije na istom nivou kao pouzdanost mikro

kontrolera zbog samog operacijskog sustava koji iako rasterećen do maksimuma pokazuje

svoje mane u samoj izvedbi zadanih operacija.

Rad može biti temelj za daljnja istraživanja na polju bežičnog upravljanja vozilima, a

zbog modularnosti izrade nudi visoki potencijal ponovne izvedbe koristeći drugi upravljački

kontroler. U nekim budućim istraživanjima, moglo bi se iskoristiti Raspberry Pi računalo kao

upravljački sklop višeg nivoa, za bežičnu komunikaciju i video prikaz, a mikro kontroler za

upravljački sklop niže razine koji će upravljati samim aktuatorima i može bitnim senzorima

vozila. Komunikaciju između klijenta i mikro kontrolera moglo bi se izvesti tako da Pi

dobivene informacije s klijenta samo proslijedi mikro kontroleru bez ikakve obrade bilo

serijskom vezom ili na neki drugi način. Potencijalno bolji rezultati bi bili postignuti pisanjem

serverske aplikacije koja ne koristi HTTP POST i GET metode, nego neki drugi

komunikacijski protokol ili da je napisan vlastiti protokol.

Ovaj rad zasnovan na proširenoj stvarnosti primjenjiv je u mnogobrojnim granama

ljudske djelatnosti, ali terapijske svrhe savladavanja straha od upravljanja vozilom nakon

prometne nezgode najrealnija su i ljudski gledano najkorisnija primjena.

Page 44: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

37

POPIS KRATICA

RC – Radio Control – radio upravljanje

GPIO – General Pin Input Output – osnovne ulazno-izlazne priključnice

HTML – HyperText Markup Language – programski jezik za web

XML – Extensible Markup Language – univerzalni programski jezik

API - Application programming interface – most između softverskih komponenti

BEC - battery eliminator circuit – strujni krug za uklanjanje baterije

ESC - electronic speed control – elektronska kontrola brzine

SSH - Secure Shell – internet protokol

HTTP - Hypertext Transfer Protocol - internet protokol

CoaP - Constrained Application Protocol – internet protokol

PWM - Pulse-width modulation – način pretvaranja digitalnog u analogni signal

LITERATURA 2

1. Downey A., Elkner J., Meyers C., How to Think Like a Computer Scientist - Learning

with Python, Green Tea Press, Wellesley, Massachusetts, 2008.

2. Membrey P., Hows D., Learn Raspberry Pi with Linux, Apress, 2013.

3. Weaver J.L., Gao W., Chin S., Pro JavaFX 2 A Definitive Guide to Rich Clients with

Java Technology, Apress, 2012

4. Richardson M., Wallace S., Getting Started with Raspberry Pi, O’Reilly Media,

Inc.,2013.

5. http://www.pfst.hr/~ivujovic/stare_stranice/pdf_zip_word/POGL8.pdf (7.4.2013.)

6. http://www.computerworld.com/slideshow/detail/74332 (7.4.2013.)

7. http://planb.tportal.hr/teme/64677/Daljinski-upravljac.html#.UWFJnTdj9So

(7.4.2013.)

8. http://www.hrvatski-vojnik.hr/hrvatski-vojnik/1002003/sustav.asp (7.4.2013.)

9. http://www.gadgeterija.net/2013/01/20/recenzija-raspberry-pi-komadic-pite-za-

svakoga/#.UV1yM6JA3lQ (7.4.2013.)

Page 45: UPRAVLJANJE MODELOM VOZILA PUTEM RAČUNALNE MREŽE · PDF fileveleuČiliŠte u rijeci dimitrij vukelić upravljanje modelom vozila putem raČunalne mreŽe i raspberry pi raČunala

završni rad

38

10. http://www.raspberrypi.org/faqs (7.4.2013.)

POPIS SLIKA Slika 1: Jednostavni kontroler .................................................................................................... 6

Slika 2: Napredni kontroler ........................................................................................................ 6

Slika 3: Prikaz rada H-mosta ...................................................................................................... 7

Slika 4: Relejni H-most .............................................................................................................. 8

Slika 5: LM298 H-most .............................................................................................................. 8

Slika 6: Prikaz servo motora ....................................................................................................... 9

Slika 7: PWM 50% ................................................................................................................... 10

Slika 8: PWM 100% ................................................................................................................. 10

Slika 9: Shema ESC-a i BEC-a u radu ..................................................................................... 11

Slika 10: Raspberry PI .............................................................................................................. 12

Slika 11: Sučelje Raspberry PI ................................................................................................. 13

Slika 12: Raspored GPIO priključnica ..................................................................................... 14

Slika 13: WebIOPi arhitektura ................................................................................................. 18

Slika 14: Trust igrači volan ...................................................................................................... 23

Slika 15: Izrađena JavaFX aplikacija ....................................................................................... 24

Slika 16: Nativne biblioteke ..................................................................................................... 26

Slika 17: Config datoteka WebIOPi-a ...................................................................................... 32