Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
SVEUČILIŠTE U SPLITU
FAKULTET ELEKTROTEHNIKE, STROJARSTVA I BRODOGRADNJE
DIPLOMSKI RAD
Sustav za nadzor i dojavu zauzetosti parkirnog prostora
Marko Goreta
Split, rujan 2016.
S V E U Č I L I Š T E U S P L I T U
FAKULTET ELEKTROTEHNIKE, STROJARSTVA I BRODOGRADNJE
Diplomski studij: Automatika i sustavi
Oznaka programa: 210
Akademska godina: 2015./2016.
Ime i prezime: MARKO GORETA
Broj indeksa: 609-2014
ZADATAK DIPLOMSKOG RADA
Naslov: SUSTAV ZA NADZOR I DOJAVU ZAUZETOSTI PARKIRNOG PROSTORA
Zadatak: Upoznati se s postojećim sustavima za automatski uvid u zauzetost parkirališnog prostora. Osmisliti vlastiti sustav temeljen na ultrazvučnim senzorima, te analizirati utjecaj ograničavajućih parametara kao što su: domet, preciznost, efektivni kut mjerenja, napon napajanja i cijena. Upravljački dio sustava realizirati korištenjem Arduino platforme, te razraditi komunikacijski dio kojim se omogućava slanje informacija sa senzora do središnje upravljačke jedinice. Detaljno predstaviti sve sklopovske i programske komponente sustava, način na koji su realizirane i/ili povezane. Testirati funkcionalnost sustava i evaluirati rezultate. Komentirati mogućnost nadogradnje sustava, mogućnosti i isplativosti korištenja u svakodnevnom životu.
Prijava rada: 05. 03. 2016.
Rok za predaju rada: 21. 09. 2016.
Rad predan:
Predsjednik
Odbora za diplomski rad: Mentor:
Prof. dr. sc. Jadranka Marasović Prof. dr. sc. Mirjana Bonković Voditelj: Dr. sc. Ivo Stančić, dipl.ing.
2
SADRŽAJ
1. UVOD ............................................................................................................................................. 5
2. PARKING ....................................................................................................................................... 6
2.1. Općenito o parkingu ................................................................................................................ 6
2.2. Sustavi nadzora parkinga ......................................................................................................... 8
2.2.1. Fizička osoba (zaposlenik) .............................................................................................. 9
2.2.2. Nadzorne kamere ............................................................................................................. 9
2.2.3. Parking senzori .............................................................................................................. 11
3. KARAKTERISTIČNE KOMPONENTE UREĐAJA ZA NADZOR STANJA PARKIRNIH MJESTA ................................................................................................................................................ 14
3.1. Arduino .................................................................................................................................. 14
3.1.1. Arduino hardver ............................................................................................................ 15
3.1.2. Arduino Pro mini ........................................................................................................... 16
3.1.2.1. Memorija ................................................................................................................... 18
3.1.2.2. Ulazi i izlazi ............................................................................................................... 18
3.1.2.3. Komunikacija ............................................................................................................ 19
3.1.3. Arduino Mega 2560 ....................................................................................................... 19
3.1.3.1. Napajanje ................................................................................................................... 21
3.1.3.2. Memorija ................................................................................................................... 21
3.1.3.3. Ulazi i izlazi ............................................................................................................... 21
3.1.3.4. Komunikacija ............................................................................................................ 21
3.2. Električne komponente sustava .................................................................................................. 22
3.2.1. Svjetleće (LED) diode .................................................................................................... 22
3.2.2. Ultrazvučni senzor HC-SR04 ........................................................................................ 23
3.2.2.1. Realizacija funkcionalnosti ultrazvučnog senzora u modelu HC-SR04 ................... 25
3.2.2.2. Prikaz spajanja HC-SR04 modula na Arduino MiniPro pločicu ............................... 27
3.3. Komunikacijski modul nRF24L01 ........................................................................................ 29
3
3.3.1. Dijagram stanja ............................................................................................................ 31
3.3.2. Cijevi podataka (Data pipes) ......................................................................................... 32
3.4. Step-up regulator ................................................................................................................... 36
4. FUNKCIONALNOST REALIZIRANOG SKLOPA ................................................................... 38
4.1. Uvodni opis projekta ............................................................................................................. 38
4.2. Isplativost sustava te njegov prikaz u realnim uvjetima ........................................................ 40
4.3. Potrošnja energije .................................................................................................................. 42
4.4. Testiranje sustava u realnim uvjetima ................................................................................... 43
4.5. Dijagram stanja kontrolne stanice i radio komunikacije ....................................................... 46
5. ZAKLJUČAK ............................................................................................................................... 49
LITERATURA ...................................................................................................................................... 50
POPIS OZNAKA I KRATICA ............................................................................................................. 51
SAŽETAK ............................................................................................................................................. 52
KLJUČNE RIJEČI ................................................................................................................................ 52
DODATAK ........................................................................................................................................... 53
4
1. UVOD
U današnjem svijetu problem parkinga u urbanim sredinama ima značajan utjecaj na život
građana. Zbog gustog prometa sve se veća važnost pridaje parkiralištima čiju efikasnost
osiguravaju različiti nadzorni sustavi, čija se realizacija može izvesti na više načina, a nužan
je ukoliko želimo ostvariti nesmetani protok prometa i izbjegavanje gužve. Modernije
tehnologije uključuju nadzor parkinga video kamerama ili parking senzorima pa takav način
postaje sve prisutniji, a standard je unutar hotelskih prostora ili garaža trgovačkih centara.
Zadatak diplomskog rada je projektiranje parking senzora koji će pružati povratnu informaciju
o stanju određenog parking mjesta, odnosno informaciju o tome da li je mjesto slobodno ili
zauzeto. Zamišljeno je da radi tako da temeljem izmjerene udaljenosti između tla i prve
''prepreke'' koja se nalazi iznad, senzor zaključi je li mjesto slobodno ili ne te preko
komunikacijskog modula, odnosno bežične veze vrati povratnu informaciju na baznu stanicu,
u ovom slučaju računalo. Osim toga, ideja je bila voditi računa i o potrošnji tako da bude
svedena na najmanju moguću mjeru kako bi cijena održavanja sustava bila svedena na
minimum, odnosno kako bi sustav bio što isplativiji .
Diplomski rad je realiziran unutar 3 faze. U prvoj fazi diplomskog rada odabran je
odgovarajući senzor udaljenosti, komunikacijski modul, regulator napona te ostale
komponente sustava. U drugoj fazi rada izvršena su testiranja odgovarajućih komponenti
sustava te su komponente programirane u skladu s zamišljenom funkcionalnošću sustava. U
trećoj fazi diplomskog rada provedeno je testiranje dobivenog sustava na način da su dva
projektirana senzora instalirana unutar garaže gdje je testirana njihova pouzdanost. Test je
proveden tako da su na dva parking mjesta postavljeni senzori te se osobnim automobilima
pristupilo tim mjestima, dok se na udaljenom računalu ostvario uvid u stanje parking mjesta.
Opis diplomskog rada uključuje 5 poglavlja. Isključujući uvod i zaključak, u drugom
poglavlju predstavljen je parking kao općeniti pojam te su opisane vrste nadzora parkinga. U
poglavlju broj tri opisane su komponente realiziranog sustava za nadzor parkirališta temeljene
na Arduino platformi te su detaljno opisane karakteristike konkretnih sustava korištenih u
diplomskom radu. U četvrtom poglavlju opisana je funkcionalnost realiziranog sklopa,
financijska isplativost projekta, kao i način testiranja sustava u realnim uvjetima.
5
2. PARKING
2.1. Općenito o parkingu
Pojam ''parkiranje'' počeo se koristiti početkom 19.stoljeća u SAD-u kada je Henry Ford u
svojoj tvornici napravio prvu pokretnu traku za proizvodnju cestovnih vozila. Širenjem
masovne proizvodnje cestovnih motornih vozila započeo je i problem uzrokovan korištenjem
vozila, ponajprije kretanja pa zatim i mirovanja, odnosno parkiranja.[1]
Sve češće i masovnije korištenje osobnog vozila postaje ograničavajući čimbenik života u
gradovima. Dostupnost i trošak parkirnog mjesta važne su odrednice kada se govori o odluci
korisnika hoće li za željenu destinaciju odabrati korištenje osobnog vozila ili ne. Niži stupanj
motorizacije i relativno dobra razina usluge javnog gradskog prijevoza uvjetovat će češće
korištenje istog. Lokalna zajednica u većini slučajeva kontrolira i regulira ulična parkirališna
mjesta, dok su izvanulična parkirališna mjesta i garaže u različitoj vlasničkoj strukturi i s
različitim režimom uvjeta i naplate parkiranja.
Parkirališna površina ili parkiralište je projektirana i tehnički opremljena površina za smještaj
većeg broja vozila. Parkirno mjesto je površina projektirana, označena i tehnički opremljena
za smještaj i ostavljanje jednog vozila. Garaža je objekt izgrađen s namjenom parkiranja
vozila, koje ima jedno ili više mjesta za parkiranje. Raspoloživi kapacitet je statički kapacitet
za parkiranje i predstavlja broj mjesta za parkiranje na određenom prostoru. Dinamički
kapacitet ili izmjena mjesta za parkiranje je broj vozila koja mogu parkirati u vremenu na
određenom mjestu za parkiranje, odnosno broj vozila koja su konzumirala parkiranje u
određenom razdoblju podjeljena sa brojem raspoloživih mjesta za parkiranje. Stvarni
kapacitet za parkiranje predstavlja iskorišteni kapacitet ponude parkiranja, te je on u pravilu
manji od raspoloživog kapaciteta s obzirom na to da se na manevar parkiranja troši neko
vrijeme. U praksi on iznosi 85% do 95% raspoloživog kapaciteta.[1]
Parkiranje označava proces smještaja i ostavljanja vozila, koje je vremenski ograničeno
dolaskom i odlaskom vozila, dok korisnik vozila nastavlja aktivnosti zbog kojih se odlučio na
putovanje. Ponuda parkiranja označava fizičku infrastrukturu sačinjenu za smještaj i
ostavljanje vozila (pod tim se razumjevaju i sve prometne površine), može biti jedno ili više
mjesta za parkiranje.
6
Potreba za parkiranjem vozila naziva se potražnja za parkiranjem. Potpuno je jasno da se s
porastom stupnja motorizacije povećava i potražnja za parkiranjem, a ponuda se nalazi ili na
uličnim ili na izvanuličnim mjestima za parkiranje.
Ponuda parkiranja je ukupan broj legalnih raspoloživih mjesta za smještaj i ostavljanje vozila
u nekom području, bez obzira na njihovu zaposjednutost tijekom dana, odnosno operativnog
režima koji je instaliran za određena mjesta. Ponuda parkiranja može se podjeliti na javnu i
privatnu namjenu.
Javna namjena podrazumijeva da su parkirališna mjesta dostupna svim potencijalnim
korisnicima, bez obzira na njihovo vlasništvo. Često su i privatna parkirališna mjesta u
funkciji javne namjene. Izvanulično parkirališno mjesto u formi parkiranja ili garaža često su
u javnoj uporabi. Vlasništvo može biti javno ili privatno, a ovisno o namjeni mogu biti pod
naplatom ili besplatno. U funkciji su kratkotrajnog ili parkiranja srednje dužine trajanja.
Privatna namjena mjesta za parkiranje u funkciji je specifičnih potreba vlasnika. Često su to
mjesta za stanare i zaposlene. U pravilu je ponuda izvanuličnog karaktera u formi parkirališta
ili garaže, a većinom su bez naplate i vremenskog ograničenja parkiranja.
Garaže za parkiranje su prometne građevine kojima je osnovna namjena parkiranje vozila i
one su najbolji način organizacije parkiranja na područjima na kojima je na malom prostoru
potrebno omogućiti smještaj velikog broja vozila. Omogućavaju višestruku iskoristivost
površina za parkiranje u odnosu na klasična parkirališta jer mogu biti izrađene u nekoliko
podzemnih ili nadzemnih etaža.
Modernizacijom građevina uvelo se nepisano pravilo da se podzemne etaže većih objekata,
kao i ravni krovovi velikih objekata koriste kao prostori za parkiranje. Sukladno tome, garaže
za parkiranje moguće je podijeliti prema više kriterija:[1]
1. U odnosu na razinu zemlje
• Garaže u razini zemlje
• Podzemne garaže
• Nadzemne garaže
7
2. Prema funkciji korištenja
• Javne garaže za parkiranje
• Privatne garaže za parkiranje
• Privatne garaže za parkiranje s javnom namjenom
3. Prema vrsti usluge
• Samostalno parkiranje
• Parkiranje uz pomoć osoblja
• Automatizirano parkiranje
4. Prema vezi između razina
• Garaže s rampama
• Garaže s dizalima
Potražnja za parkiranjem uvjetovana je brojnim čimbenicima potražnje za prijevozom, ali
također je ovisna i o parkirališnoj ponudi određenog područja. Međutim, ponuda parkiranja u
pravilu ne zadovoljava parkirališnu potražnju u potpunosti. Kao dokaz tome su brojna
nepropisno parkirana vozila na nedozvoljenom mjestu ili van dozvoljenog vremena.
Dakle, zaključak je da povećanje parkirališne ponude radi zadovoljenja parkirališne potražnje
uzrokuje još veću parkirališnu potražnju, odnosno povećava neravnotežu između parkirališne
ponude i potražnje.
2.2. Sustavi nadzora parkinga
Obzirom na povećanu potražnju za parkirališnim mjestima, kada se radi o većem parkiralištu
potreban je nadzor slobodnih parking mjesta kako bi se izbjegla nepotrebna gužva na
parkiralištu. Tri su sustava nadzora parkinga:
1. Fizička osoba (zaposlenik)
2. Nadzorne kamere
3. Parking senzori
8
2.2.1. Fizička osoba (zaposlenik)
Prvi način nadzora parkirališta jest fizička osoba (zaposlenik) koja će kontrolirati ulaz i izlaz
automobila s parkirališta te istovremeno vršiti nadzor parkinga, odnosno imati spoznaju o
trenutnoj zauzetosti parkinga. Ovakav način nadzora je poprilično zastario, a sva veća
parkirališta pokušavaju se modernizirati, što zbog efikasnosti, što zbog uštede. Međutim, u
našem gradu još uvijek veliki broj vanjskih parkirališta koristi ovakav način nadzora parkinga,
budući da se na većini vanjskih parkinga vrši naplata.
Na sljedećoj slici prikazan je nadzor parkinga pomoću fizičke osobe:
Slika 1. Nadzor vanjskog parkinga pomoću fizičke osobe
2.2.2. Nadzorne kamere
Drugi način, jako efikasan i jednostavan, jesu nadzorne kamere na parkiralištu. Osim što
imaju ulogu zaštite, lakše je pratiti kretanja na parkiralištu i pružaju jednostavniji uvid u stanje
parkirnih mjesta kao i njihove pozicije. Time se uvelike olakšava sam proces na većim i
traženijim parkiralištima.
Nadzorne kamere izvrstan su način za praćenje slobodnih mjesta velikih vanjskih ili garažnih
parkinga jer nije potrebno instalirati velik broj uređaja. Jedino što je potrebno jest poznavanje
tehnologije korištenja računalnog vida, što uključuje i napredne algoritme za prikupljanje i 9
obradu podataka iz kamere. Također, sustav se može implementirati na postojeće nadzorne
kamere koje su već povezane na središnji sustav parkinga.
Dvije su mogućnosti nadzora parkinga kamerama. Prva je ta da fizička osoba (zaposlenik)
ima pristup središnjem sustavu i da fizički nadgleda preko središnjeg sustava koje parking
mjesto je slobodno. Najpregledniji nadzor kamerama je iz ptičje perspektive, dakle kamere se
postave na veću visinu tako da nadzor ne ometaju druga vozila ili objekti.
Drugi način temelji se na programiranim rješenjima koja uključuju algoritme prepoznavanja
zauzetosti definiranih parkirnih mjesta. Ovakav pristup je znatno drugačiji od prethodnog
načina gdje se prati automobil od ulaza do parkirnog mjesta.
Nadzor kamerama najpogodniji je za vanjska, otvorena parkirališta gdje ne postoje vidljive
prepreke koje mogu otežati pregled samog parkinga. Međutim, unutar podzemnih garaža, gdje
infrastruktura garaže zahtjeva složenije rješenje nadzora parkinga, ovakav nadzor se malo ili
uopće ne primjenjuje.
Na sljedećoj slici prikazan je nadzor vanjskog parkinga video kamerom.
Slika 2. Nadzor vanjskog parkinga video kamerom
10
2.2.3. Parking senzori
Treći način nadzora parkinga su parking senzori. Svako parkirno mjesto sadrži jedan parking
senzor koji odašilje signale je li parkirno mjesto slobodno ili zauzeto. Ovaj način je jeftiniji,
brži i efikasniji od prethodna dva, no još uvijek nije u primjeni. Senzori ne mjere samo je li
automobil parkiran u određenom trenutku, također prate i vrijeme zadržavanja na parkingu.
Senzori su definirani kao pretvarači fizikalnih veličina (udaljenosti, sile, temperature, tlaka) u
neke veličine koje se jednostavnije obrađuju, a to je najčešće električna veličina (napon,
struja, otpor, digitalni binarni podatak).[2] Kad god se neka fizikalna veličina prenosi kao
ulazni podatak u računalo, treba se pretvoriti u digitalni binarni podatak radi mogućnosti
komunikacije sa računalom.
Primjer parking senzora je Boschov senzor visine 3 cm i veličine CD-a koji ima plastično
kućište. Ugrađuje se na parkirališno mjesto na parkingu ili na ulici, a može se ugraditi tako da
je uvučen u asfalt ili da je površinski ugrađen. Bežičan je i radi na baterije, tako da se gubi
potreba za dugim bespotrebnim kablovima. Otporan je na sve vremenske uvjete, a funkcionira
prekriven snijegom i ledom. [3]
Sljedeća slika prikazuje vanjski izgled senzora.
Slika 3. Parking senzor
11
Pri detektiranju parking mjesta koriste se tri tehnologije senzora: ultrazvučni, magnetski i
infracrveni zbog čega je moguće dobiti relevantnu informaciju o zauzetosti neovisno o
uvjetima o okruženju. To je osigurano pametnim algoritmima unutar senzora koji samostalno
odabiru odgovarajuću tehnologiju senzora za korištenje. Na primjer, lišće ili snijeg mogu
prekriti infracrveni senzor i tada će tehnologija magnetskog senzora prevladati. [4]
Način funkcioniranja senzora prikazan je na sljedećoj slici.
Slika 4. Odašiljanje signala senzora središnjem sustavu
Nakon što automobil dođe nad senzor parkinga, informacija se pohrani u bazu podataka, te se
preko IP komunikacije prenese na server. Zatim se stanje parking mjesta može očitati na
mobilnom uređaju ili osobnom računalu.
Također, moguće je napraviti mobilnu aplikaciju vezanu za određena parkirališta i gradove.
Putem te aplikacije vozači mogu vidjeti željeni parking i dostupnost slobodnih parking mjesta.
Aktivni sustav za parking eliminira gnjavažu u potrazi za parkirnim mjestom, a funkcionira na
način da se rezultati parking mjesta pojave u aplikaciji, vozač filtrira koji parking želi i
provjeri da li na pregledanom parkingu postoje dostupna parking mjesta i gdje se ista nalaze.
12
Na sljedećoj slici prikazan je način funkcioniranja mobilne aplikacije.
Slika 5. Odašiljanje signala senzora mobilnoj aplikaciji
Nakon što senzor parkinga očita stanje parking mjesta, informacija se pohranjuje u zajedničku
bazu odakle vozač osobnog automobila može preuzeti informacije koje su mu potrebne za
pronalazak parking mjesta na svoj mobilni uređaj. [3]
Obzirom na povećano korištenje motornih vozila, kao i povećanu potražnju za parkirališnim
mjestom, parking senzori bi uvelike olakšali cjelokupnu situaciju jer bi se smanjile gužve i
vrijeme čekanja na parking mjesto.
Kao što je navedeno, tri su načina nadzora parkinga. Fizička osoba (zaposlenik) zastario je
način nadzora parkinga, no još uvijek je u najvećoj primjeni jer je većina parkirališta s
naplatom, a sama naplata parkinga nije automatizirana. Ovo naročito vrijedi za divlja
parkirališta, kao što su npr. parkirališta tijekom ljetnje sezone u neposrednoj blizini mora.
Parkiralištima koja imaju sustav nadzora video kamerama u velikoj većini slučajeva kamere
služe samo kao sustav zaštite i nadzora od kriminalnih radnji i sudara. Također, takvi sustavi
najčešće nisu automatizirani i ne omogućavaju samostalno slanje informacija u središnji
sustav o dostupnosti parkirnih mjesta.
Nadalje, senzori također još uvijek nisu aktualni na našem području, a to se može pripisati
nedovoljnoj informiranosti o prednostima i koristima sustava nadzora parkinga senzorima,
kao i činjenici da većina parkirališta nema automatizirani sustav naplate.
13
3. KARAKTERISTIČNE KOMPONENTE UREĐAJA ZA NADZOR
STANJA PARKIRNIH MJESTA
Za realizaciju uređaja zauzetosti parking prostora korištena je filozofija ugradbenih sustava
čija se funkcionalnost temelji na programski definiranoj vezi mikroregulatora i senzora. Za
realizaciju mikroregulatorske logike odabrano je Arduino okruženje zbog dostupnosti gotovih
programskih i sklopovskih ideja i dobro razvijenom zajednicom korisnika s kojima se
kvalitetno mogu razmjenjivati iskustva i dobiti korisni savjeti. Odabir senzorskih komponenti
usklađen je sa ciljevima zadatka diplomskog rada.
Slika 6. Blokovska shema realiziranog sustava
Okosnicu realiziranog sustava čini kontrolna stanica povezana s baznom stanicom koji
kontinuirano razmjenjuju podatke o zauzetosti parkirnih mjesta i osiguravaju potencijalnu
mogućnost za njihovo udaljeno korištenje. Kontrolna stanica realizirana je korištenjem
ultrazvučnog senzora priključenim na Arduino Pro Mini koji komunicira s baznom stanicom.
Baznu stanicu čini ugradbeni sustav za komunikaciju s parkirnim senzorima temeljen na
Arduino Mega platformi, nakon čega se vrši ispis na računalo poslužitelj.
U nastavku, ukratko je dan pregled karakteristika i funkcionalnosti korištenih komponenti te
načina na koji su objedinjeni s ciljem realizacije zamišljene ideje.
3.1. Arduino
Arduino je kao platforma za učenje programiranja i korištenje mikrokontrolera nas tao prije
desetak godina. Njegovi izumitelji su Arduino definirali kao open-source platformu
namjenjenu za kreiranje elektroničkih prototipova baziranu na sklopovlju i programskom
paketu koji je fleksibilan i jednostavan za korištenje. Arduino kao takav je namjenjen svima
koji su zainteresirani za stvaranje interaktivnih objekata ili okruženja.
14
Dakle, Arduino je platforma koju čini skup elektroničkih i programskih dijelova koji se mogu
jednostavno povezati u složenije cijeline s ciljem izrade zabavnih i poučnih elektroničkih
sklopova.
Arduino platforma dimenzionirana je i zamišljena kao otvoreni sustav, što znači da su sve
sheme i izvorni kodovi programa besplatno dostupni svima za preuzimanje i modificiranje sa
službene Arduino platforme. [5]
Najvažniji dio, odnosno srce Arduino pločice je ATMEGA328-PU mikrokontroler.
Mikrokontroler se može definirati kao računalo u malom, odnosno kao više malih računala
smještenih na jedan integrirani sklop. Na sljedećoj slici prikazan je mikrokontroler koji je
korišten u ovom diplomskom radu.
Slika 7. Mikrokontroler ATMEGA 328-PU na Arduino Uno pločici
3.1.1. Arduino hardver
Arduino pločica se sastoji od Atmel 8-,16- ili 32-bitni AVR mikrokontrolera s kompletiranim
komponentama koje omogućuju programiranje i ugradnju u druge sklopove. Važan aspekt
Arduina je mogućnost povezivanja CPU pločice na razne izmjenjive module poznatije kao
štitovi (shields). Mikrokontroler je unaprijed programiran kao boot loader koji olakšava
prijenos programa na flash memoriju. [6]
Pojednostavljeno, mikrokontroler se može zamisliti kao crna kutija koja se sastoji od
određenog broja izvoda (nožica). Tim izvodima je moguće upravljati pomoću određenog
programa kojeg korisnik napiše unutar Arduino programskog sučelja i koji se izvodi na
samome mikrokontroleru.
15
Pri opisivanju Arduina kao fizičkog elementa korištena je Arduino Uno pločica.
Slika 8. Arduino Uno pločica
Kao što prikazuje slika, izvodi mikrokontrolera nalaze se na samom rubu pločice i spojeni su
na crne konektore. Ti izvodi služe kako bi povezali mikrokontroler s određenim elektroničkim
komponentama, sklopovima i uređajima koji se ne nalaze na pločici. Dakle, izvode se koristi
za očitavanje vrijednosti s određenih senzora (dovode informaciju do mikroprocesora), ali i za
upravljanje motorima, LED-icama, itd.
3.1.2. Arduino Pro mini
Arduino Pro Mini je mikrokontrolerska pločica koja se temelji na Atmega328
mikrokontroleru. Sastoji se od 14 digitalnih ulazno/izlaznih pinova (od čega se 6 pinova može
koristiti kao PWM izlazi), 6 analognih ulaza, rezonatora koji se nalazi na samoj pločici, tipke
za ponovno pokretanje (reset tipka), i rupica za spajanje pinova. Šest pinova koji se nalaze na
vrhu, odnosno prednjem dijelu pločice, mogu biti spojeni na FTDI kabel kako bi osigurali
USB napajanje i komunikaciju na samoj pločici.
Arduino Pro Mini je namjenjen za polutrajnu ugradnju u određene objekte. Pločica u početnoj
izvedbi dolazi bez prethodno montiranih pinova koji se nalaze na prednjem dijelu iste, što
omogućuje korištenje više vrsta konektora ili izravno lemljenje žice. Raspored pinova kod ove
16
pločice je kompatibilan s Arduino Mini pločicom. Postoje dvije verzije Arduino Pro Mini
mikrokontrolerske pločice. Jedna radi na 3.3 V i 8 MHz, a druga radi na 5 V i 16 MHz.
Na sljedećoj slici prikazan je izgled pločice.
Slika 9. Arduino Pro Mini pločica
U tablici 1. navedene su tehničke specifikacije Arduino Pro Mini pločice:
Tablica 1. Tehničke specifikacije Arduino Pro Mini pločice
Mikrokontroler Atmega328
Napajanje pločice 3.35 – 12 V(3.3 V model) ; 5 – 12 V(5 V model)
Radni napon pločice 3.3 V ili 5 V, ovisno o modelu pločice
Broj digitalnih ulazno/izlaznih pinova 14
Broj PWM pinova 6
Broj analognih ulaznih pinova 6
Istosmjerna struja po I/O pinovima 40 mA
17
Flash memorija 32 KB
SRAM memorija 2 KB
EEPROM 1 KB
Brzina sata 8 Mhz (3.3 V model) ili 16 Mhz (5 V model)
UART 1
SPI 1
Arduino Pro Mini može biti napajan pomoću FTDI kabela ili određene vanjske pločice
spojene na 6 pinova koji se nalaze na vrhu Pro Mini pločice, ili pomoću reguliranog napona
od 3.3 V ili 5 V na VCC pinu ovisno o modelu pločice.
Pinovi za napajanje Pro Mini pločice su sljedeći :
Tablica 2. Pinovi za napajanje Arduino Pro Mini pločice
RAW za napajanje izravnog (nereguliranog) napona na ploču
VCC za napajanje reguliranog napona od 3.3V ili 5V
GND pinovi za uzemljenje, ''ground pinovi''
3.1.2.1. Memorija
Atmega328 posjeduje 32kB flash memoriju za pohranu koda, od kojih se 0.5 kB koristi za
bootloader. Također, ima 2 kB SRAM-a i 1 kB EEPROM-a (koja se može očitati i zapisati
unutar EEPROM biblioteke).
3.1.2.2. Ulazi i izlazi
Svaki od 14 digitalnih pinova na Arduino Pro Mini pločici može biti iskorišteni kao ulaz
(input) ili kao izlaz (output) koristeći pinMode, digitalWrite i digitalRead naredbe. Koriste se
pri naponima od 3.3 V ili 5 V, ovisno o modelu pločice. Svaki od pinova može dati ili primiti
maksimalno 40 mA i ima interni pull-up otpornik od 20-50 kΩ.
18
Određeni pinovi na Arduino Pro Mini pločici imaju posebne namjene:
• Pinovi 0 (RX) i 1 (TX) : koriste se za primanje (RX) i odašiljanje (TX) TTL
serijskih podataka i povezani su sa pinovima RX i TX koji se nalaze na vrhu
pločice.
• Pinovi 2 i 3 : ovi pinovi mogu biti konfigurirani za pokretanje prekida programa
pri određenim niskim vrijednostima ili pri promjeni vrijednosti.
• Pinovi 3, 5, 6, 9, 10 i 11 : osiguravaju 8-bitni PMW izlaz s analogWrite funkcijom.
• 10, 11, 12 i 13 : ovi pinovi se koriste za SPI komunikaciju.
Arduino Pro Mini pločica ima 8 analognih ulaza, od kojih svaki ulaz osigurava 10 bita
rezolucije, odnosno 1024 različite vrijednosti u opsegu definiranom referentnim naponom.
Svaki od analognih ulaza može odrediti točnu vrijednost analognog napona.
3.1.2.3. Komunikacija
Arduino Pro mini posjeduje niz komponenti koji mu služe za komunikaciju s računalom,
drugim Arduinom ili mikrokontrolerom. Atmega328 osigurava UART TTL serijsku
komunikaciju, koja je dostupna na digitalnim pinovima 0 i 1. Arduino programsko okruženje
omogućava, korištenjem serijske komunikacije, ispis memorijskih podataka na konzolni
prozor. Također, Atmega 328 podržava I2C (TWI) i SPI komunikaciju.
3.1.3. Arduino Mega 2560
Kako realizacija većine praktičnih zahtjeva nadilazi mogućnosti osnovnog, Arduino Uno
modela, najčešći odabir hobista predstavlja Arduino Mega2560 zbog proširenih memorijskih
mogućnosti i bogatijeg U/I sučelja.
Arduino Mega 2560 je mikrokontrolerska pločica temeljena na Atmega2560 mikrokontroleru.
Sastoji se od 54 digitalna ulazno/izlazna pina (od kojih se 15 pinova može koristit kao PMW
izlazi), 16 analognih ulaza, 4 UART-s (hardverski serijski portovi), 16 MHz kristal oscilatora,
USB priključka, ulaza za napajanje, ICSP zaglavlja i gumba za resetiranje. Arduino Mega
2560 se jednostavno spaja s računalom pomoću USB sučelja ili određenog vanjskog izvora, te
je kompaktibilna s velikim brojem Arduino Duemilanove ili Diecimile platformi.
19
Na sljedećoj slici prikazan je izgled Arduino Mega 2560 pločice.
Slika 10. Arduino Pro Mini pločica
Tehničke specifikacije Arduino Mega 2560 pločice:
Tablica 3. Tehničke specifikacije Arduino Mega 2560 pločice
Mikrokontroler Atmega2560
Radni napon 5 V
Napajanje 7 – 12 V
Ulazni napon(granice) 6 – 20 V
Broj digitalnih pinova 54
Broj analognih pinova 16
Flash memorija 256 kB
SRAM 8 kB
EEPROM 4 Kb
Brzina sata 16 MHz
20
3.1.3.1. Napajanje
Arduino Mega 2560 pločica se napaja preko USB porta ili preko vanjskog izvora, a izvor
napajanja se odabire automatski. Vanjsko napajanje se spaja na pinove ili na utičnicu od 2,1
mm. Pločica može izdržati napajanje od 6 V do 20 V, međutim preporuča se napajanje od 7 V
do 12 V, jer pri napajanju manjem od 7V Arduino može postati nestabilan.
3.1.3.2. Memorija
Mikrokontroler Atmega2560 ima 256kB flash memorije za pohranu koda, od kojih se 8 kB
koristi za bootloader. Također, ima 8 kB SRAM-a i 4 kB EEPROM-a (koja se može očitati i
zapisati unutar EEPROM biblioteke).
3.1.3.3. Ulazi i izlazi
Svaki od 54 digitalna pina na Megi se može koristiti kao ulazni ili izlazni pin, koristeći
pinMode, digitalWrite i digitalRead naredbe. Pinovi rade na 5 V i mogu prenijeti ili primiti 20
mA kao preporučenu, a 40 mA kao maksimalnu radnu struju. Također, svaki od pinova
posjeduje interni pull-up otpornik od 20 – 50 kΩ.
Određeni pinovi na Arduino Mega2560 pločici imaju posebne funkcije :
• Pinovi : 0(RX) i 1(TX), 19(RX) i 18(TX), 17(RX) i 16(TX), 15(RX) i 14(TX) .
• PMW pinovi : 2 do 13 , 44 do 46 .
• SPI pinovi : 50, 51, 52, 53 .
• TWI pinovi : 20 i 21 .
• Vanjski prekidi : pinovi 2, 3, 18, 19, 20 i 21 .
Arduino Mega 2560 posjeduje 16 analognih ulaza, od kojih svaki ulaz osigurava 10 bita
rezolucije, odnosno 1024 različite vrijednosti. Svaki od analognih ulaza može odrediti točnu
vrijednost analognog napona.
3.1.3.4. Komunikacija
Arduino Mega 2560 posjeduje niz objekata koji mu služe za komunikaciju sa računalom,
drugim Arduinom ili mikrokontrolerom. Atmega2560 posjeduje 4 sučelja za serijsku
komunikaciju na TTL razinama. Atmega16U2 je USB kontroler koji osigurava virtualni
serijski port preko USB sučelja te na taj način omogućava jednostavnu teksutalnu
komunikaciju. Također, Atmega2560 podržava 12C (TWI) i SPI komunikaciju.
21
3.2. Električne komponente sustava
3.2.1. Svjetleće (LED) diode
Naziv LED dolazi iz engleskog i kratica je za Light Emitting Diode što u doslovnom
prijevodu znači dioda koja emitira svjetlost. Hrvatski naziv za LED je svjetleća dioda. Na
sljedećoj slici je prikazana svjetleća dioda, odnosno njezin izgled i shematski simbol u
Fritzing programu, open-source software-u koji predstavlja savršen alat za dizajnere,
inovatore, hobiste i edukatore za kreiranje prototipa ili čak izrade PCB pločica
Slika 11. Led i shematski simbol u Fritzing programskoj platformi
Kako bi svjetleću diodu mogli uključivati i isključivati pomoću mikrokontrolera potrebnu ju
je spojiti na neki od digitalnih izvoda – 0, 1, 2, ... do 13. Izvodi 0 i 1 nisu korišteni jer se oni
koriste za komunikaciju s računalom. Svi digitalni izvodi mogu biti u dva stanja – uključeni
ili isključeni. Kada je pojedini izvod uključen na njemu se pojavljuje napon od 5 V prema
GND izvodu mikrokontrolera. Kako svjetleća dioda radi na otprilike 2 V potrebno je dodati
predotpornik za spajanje na mikrokontroler. [7]
Način spajanja prikazan je na sljedećoj slici :
Slika 12. Shema povezivanja LED sa mikrokontrolerom
22
Najčešće se za spajanje svjetleće diode na mikrokontroler koristi otpornik vrijednosti 330Ω.
Slika 13 prikazuje način povezivanja svjetleće diode i mikrokontrolera, a shema spajanja
izrađena korištenjem Fritzing programa predstavljena je na donjoj slici.
Slika 13. Shema spajanja LED i mikrokontrolera u Fritzing programskoj platformi
3.2.2. Ultrazvučni senzor HC-SR04
Zvuk je ljudska percepcija nestalnih podražaja nastalih kao posljedica promjene razine tlaka
koja se širi elastičnim medijem u kojeg je uronjen opažač (slušatelj). Te promjene tlaka
nastaju zbog titranja molekula medija (zrak, voda...) koje su zbog vanjskog utjecaja (sile)
izbačene iz ravnotežnog položaja. Zvuk se širi zbog elastične veze među molekulama medija i
ne može se širiti kroz vakuum. Zvučni val se kroz različite medije kreće različitim brzinama.
U zraku, taj se val kreće približnom brzinom od oko 300 m/s, dok se u vodi kreće brzinom od
oko 1500 m/s. Frekvencija (visina) zvuka se mjeri u hercima (Hz). [8]
Čovjekovo osjetilo za zvuk je uho. Zvučni valovi ulaze kroz vanjsko uho, dolaze na bubnjić i
uzrokuju njegovo titranje. Normalno ljudsko uho može čuti zvukove u frekvenciji od 16 Hz
do 20000 Hz.
23
Prema frekvenciji, zvučne valove dijelimo na :
• Infrazvuk – ispod 16 Hz
• Od 20 Hz do 20 kHz – ljudske granice osjećaja zvuka
• Ultrazvuk – iznad 20 kHz
Dakle, ultrazvuk je zvuk čija je frekvencija iznad gornje granice čujnosti za normalno ljudsko
uho, a koja iznosi približno 20 kHz. Na sljedećoj slici prikazana je raspodjela zvuka po
frekvencijama:
Slika 14. Raspodjela zvuka po frekvencijama
Ultrazvučni senzori koriste se za mjerenje udaljenosti između samog senzora i objekta koji je
nalazi ispred njega. Ovi senzori nude dobru preciznost i jednostavni su za upotrebu.
Objašnjenje načela rada ultrazvučnog senzora poduprto je karakteristikama senzora
korištenog u diplomskom radu, HC-SR04.
HC-SR04 ultrazvučni senzor, poput delfina ili šišmiša, koristi ultrazvučne valove kako bi
odredio udaljenost od određenog predmeta. Senzor emitira zvučne impulse visoke
frekvencije, koji se, u slučaju da se ispred senzora nalazi prepreka, odbijaju od nje prema
senzoru. Ukoliko su impulsi registrirani nakon emitiranja, može se pretpostaviti da se ispred
senzora nalazi prepreka. Ne ometaju ga sunčeva svjetlost ili crni materijali. [9]
24
Slika 15. Ultrazvučni senzor HC-SR04
3.2.2.1. Realizacija funkcionalnosti ultrazvučnog senzora u modelu HC-SR04
Dva modula koja osiguravaju funkcionalnost senzora su trig (prekidač) i echo (refleksija).
Mikrokontroler generira, u programski definiranim trenucima, naponski signal od 5 V na trig
pin modula u trajanju, minimalno, 10 mikrosekundi. Na taj način aktivira se ultrazvučni
prijetvornik koji odašilje 8 impulsa od 40 kHz i nakon toga, senzor mijenja mod rada (echo) te
osluškuje eventualne reflektirane valove. U slučaju da senzor registrira reflektirani signal,
šalje podatke natrag mikrokontroleru preko echo pina. Navedeni podaci su zapravo vremena
čekanja na reflektirani signal koji, zbog dometa senzora može iznositi od 150 μs do 25 ms.
Ako je čekanje duže od 35 milisekundi, predmet je izvan dosega. Udaljenost između senzora i
predmeta je moguće proračunati koristeći sljedeću matematičku formulu: [10]
udaljenost = ( brzina zvuka kroz zrak * vrijeme putovanja signala ) / 2 ;
25
Na sljedećoj slici prikazan je princip rada modula:
Slika 16. Princip rada modula
Karakteristike modula :
Tablica 4. Specifikacije ultrazvučnog senzora HC SR04
Domet 2 – 400 cm
Preciznost 3 mm
Efektivni kut mjerenja 15⁰
Napon 5 V
Maksimalna mirna struja 2 mA
Radna struja 15 mA
Ultrazvučna frekvencija 40 kHz
Dimenzije 45 * 20 * 15 mm
26
Na sljedećoj slici prikazan je prikaz efektivnog kuta mjerenja.
Slika 17. Efektivni kut mjerenja ultrazvučnog senzora
Kao što je prikazano na slici 17, senzor daje najpreciznija očitanja do kuta od 15⁰. Donekle
precizna očitanja daje i do kuta od 22.5⁰, a svaka očitanja iznad tog kuta daju neprecizna
mjerenja.
3.2.2.2. Prikaz spajanja HC-SR04 modula na Arduino MiniPro pločicu
Ultrazvučni senzor ima 4 ''nožice'', odnosno 4 pina. Na samom senzoru, nožice su označene
kao VCC, Trig, Echo i GND. Prvi priključak, označen kao VCC povezujemo sa napajanjem od
5 V. ''Nožice'' Echo i Trig povezujemo sa odgovarajućim digitalnim pinovima na pločici, gdje
Trig predstavlja ulaz, a Echo izlaz. Priključak GND (ground) spajamo sa odgovarajućim
priključkom istog imena na mikrokontrolerskoj pločici.
Prikaz spajanja ultrazvučnog senora HC-SR04 na Arduino MiniPro pločicu izrađen je unutar
programske platforme Fritzing.
27
Na sljedećoj slici prikazan je način spajanja senzora i pločice:
Slika 18. Shema spajanja ultrazvučnog senzora i Arduino Mega 2560 pločice u Fritzing programskoj platformi
Mana ultrazvučnih senzora je mogućnost nakupljanja prašine i nečistoća na površini kučišta,
što može predstavljati prepreku pri obavljanu očitanja. Prednost ultrazvučnog senzora nad
infracrvenim senzorom je veća mogućnost obavljanja očitanja, s obzirom da je broj mogućih
prepreka kod infracrvenog senzora znatno veći i učestaliji, npr. lišće ili papir. Dakako,
pretpostavka je da prašina nakupljena na kučištu znatno manje ometa rad senzora. Upravo
zbog toga je dana prednost ultrazvučnom senzoru u odnosu na infracrveni senzor.
Induktivni i magnetski senzori su znati skuplji od ultrazvučnih i infracrvenih senzora, stoga
njihovo korištenje u ovakvom obliku projekta nije razmatrano.
28
3.3. Komunikacijski modul nRF24L01
Nordic Semiconductor nRF24L01 je jedinstveni 2.4 GHz primopredajnik dizajniran za
bežične aplikacije s niskom potrošnjom. Ovaj komunikacijski modul svoju primjenu je
pronašao na mnogim mjestima, a valja istaknuti bežične PC periferije (bežični miš, joystick,
tastatura), zatim ultra nisko potrošačke senzorske mreže, VOIP (eng. Voice over Internet
Protocol) slušalice, alarmni i sigurnosni sustavi, aktivni RFID (eng. Radio-frequency
identification) te drugi sustavi koji za funkcioniranje zahtjevaju bežični prijenos podataka.[11]
U ovom diplomskom radu komunikacijski modul je poslužio kako bi prenijeli podatke i
očitanje sa senzora, koji se nalazi na parking mjestu, na baznu stanicu. Prednost ovog
komunikacijskog modela nad ostalim ovakvog tipa je mogućnost istovremenog slanja i
primanja podataka, niska cijena, jednostavnost i potpuna kompatibilnost s Arduino razvojnom
okolinom budući da postoje gotove datoteke koje olakšavaju programiranje i korištenje.
Domet komunikacijskog modula nRF24L01, prema dostupnim podatcima iznosi do 20 metara
u zatvorenom prostoru, dakle prostoru u kojem postoje određene prepreke, dok na otvorenom
prostoru domet iznosi do 100 metara. Poboljšanja verzija modula nRF24L01+ s dodatnom
antenom posjeduje domet i do 1000 metara na otvorenom prostoru.
Na sljedećoj slici prikazan je izgled komunikacijskog modula nRF24L01 :
Slika 19. Komunikacijski modul nRF24L01
29
Primopredajnik se sastoji od integriranog frekvencijskog alata za sintezu, modulatora,
demodulatora, oscilatora i ESB (eng. Enhanced Shock Burst) protokola. Ovaj komunikacijski
modul je projektiran za rad na širokopojasnom ISM frekvencijskom rasponu od 2.400 Ghz do
2.4835 GHz. Izlazna snaga, frekvencijski kanali i ostale karakteristike protokola se lako
definiraju otvorenim SPI sučeljem.
Pomoću mikrokontrolera, komunikacijskog modula nRF24L01 i nekoliko dodatnih
komponenti može se kreirati radio prijemnik. Komunikacijski modul nRF24L01 je
konfiguriran i upravljan preko serijskog komunikacijskog protokola, SPI-a (eng. Serial
Peripheral Interface). Navedeni komunikacijski protokol omogućava dvosmjernu
komunikaciju te veću brzinu prijenosa nego kod ostalih komunikacijskih standarda. Kod
navedenog komunikacijskog modula brzina prijenosa se kreće i do 2 Mbps što ga uz nisku
potrošnju energija svrstava u poželjnije uređaje ovog cjenovnog razreda.
Slika 20. Blok dijagram komunikacijskog modula nRF24L01
30
Na prethodnoj slici prikazan je blok dijagram komunkacijskog modula nRF24L01. Iz
dijagrama je vidljivo da sklop može odašiljati signal (RF Transmiter) i primati ga (RF
Receiver), u skladu s odabranim frekvencijskim pojasom. Za komunikaciju s
mikrokontrolerom koristi se standardna, SPI komunikacija (4 linije: CSN; SCK; MISO,
MOSI).
Prilikom programiranja sklopa važno je obratiti pozornost na odabrani kanal korišten za
komunikaciju radio modula. Naime, ukoliko se isti kanali koriste u neposrednoj blizini dolazi
do ometanja prijenosa podataka. Kako bi se smetnje uklonile potrebno je promjeniti cijevi
podataka korištene za komunikaciju.
Prilikom testiranja radio komunikacije ostvarena su podudaranja s drugim komunikacijskim
modulima te je bilo nužno promijeniti korištene cijevi podataka.
3.3.1. Dijagram stanja
Dijagram stanja pokazuje okruženja unutar kojih komunikacijski modul može raditi, te načine
pristupanja tim okruženjima. Komunikacijski modul ne počinje s radom sve dok VDD ne
dosegne napon od 1.9 V. Kad se traženi napon dosegne, komunikacijski modul resetira stanje
u kojem se prethodno nalazio, i tu se zadržava sve dok ne uđe u Power Down okruženje. Kad
se komunikacijski modul nalazi u zadanom okruženju, mikrokontroler ga može kontrolirati
preko SPI protokola.
Preporučeni način rada (eng. Recommended operating mode) je stanje koje se koristi pri
normalnom načinu rada. Mogući način rada (eng. Possible operating mode) je stanje koje se
ne koristi tijekom normalnog načina rada, ali njegovo korištenje je dopušteno. Prijelazno
stanje ( eng. transition state) je limitirano stanje i u njemu se komunikacijski modul nalazi u
vrijeme početka rada.
31
Na sljedećoj slici prikazan je dijagram stanja komunikacijskog modula :
Slika 21. Dijagram stanja komunikacijskog modula nRF24L01
3.3.2. Cijevi podataka (Data pipes)
Komunikacijski modul nRF24L01 konfiguriran kao PRX (eng. primary receiver) prima
podatke kroz šest različitih cijevi podataka i jednom frekvencijskom kanalu kao što je
prikazano na sljedećoj slici :
32
Slika 22. Shema frekvencijskog kanala i cijevi podataka
Svaka od cijevi ima jedinstvenu adresu i može biti podešena tako da ima vlastito ponašanje.
Podatkovne cijevi dostupne su za adresiranje u EN_RXADDR_PX registru. Cijevi podataka
''0'' i ''1'' su unaprijed zadane, dok se adrese ostalih cijevi dodaju naknadno. Bitno je osigurati
da svaki od cijevi ima različitu adresu.
Prva podatkovna cijev [0] ima jedinstvenu 5 byte-nu konfiguriranu adresu, dok ostale cijevi
[1-5] dijele iste visoko definirane bajtove. Zadnji od 4 byte mora bit različit kod svake od
cijevi podataka.[12]
Na sljedećoj slici prikazan je način adresiranja podatkovnih cijevi :
Slika 23. Shema načina adresiranja podatkovnih cijevi
33
Budući da je u diplomskom radu komunikacijski modul nRF24L01 povezan s ArduinoMega
2560 i Arduino Pro Mini pločicama, na sljedećim slikama prikazan je način spajanja
navedenih komponenti.
Slika 24. Način spajanja Arduino Mega2560 pločice i komunikacijskog modula nRF24L01
Pinovi su spajani na sljedeći način :
Tablica 5. Način povezivanja pinova Arduino Mega2560 pločice i komunikacijskog modula
GND - GND
VCC – 3V3
CE – pin9
SCN – pin 10
SCK – pin 52
MOSI – pin 51
MISO – pin 50
IRQ – nije spojen
34
Slika 25. Način spajanja Arduino Mini Pro pločice i komunikacijskog modula nRF24L01
Pinovi su spajani na sljedeći način :
Tablica 6. Način povezivanja pinova Arduino Pro Mini i komunikacijskog modula
GND - GND
VCC – VCC
CE – pin9
SCN – pin 10
SCK – pin 13
MOSI – pin 11
MISO – pin 12
IRQ – nije spojen
35
3.4. Step-up regulator
Regulatori su sklopovi koji reguliraju protjecanje energije između izvora energije i
elektroničkog uređaja, odnosno trošila. Na sljedećoj slici prikazana je jednostavna blok
shema:
Slika 26. Blok shema izvora napajanja
Regulatori napona su dizajnirani za automatsko održavanje konstantne razine napona.
Regulator napona može biti izveden kao jednostavni "feed-forward" dizajn ili može biti
izveden pomoću negativne kontrolne povratne petlje.[13] Može koristiti elektromehanički
mehanizam ili elektroničke komponente. Ovisno o izvedbi, može se koristiti da regulira jedan
ili više napona istosmjerne ili izmjenične struje.
Regulatori imaju zadaću zadržati napone napajanja elektroničkih uređaja unutar dozvoljenih
granica i to neovisno o promjeni ulaznog napona, promjeni izlazne struje, brzini promjene
izlazne struje ili promjeni temperature. Regulatori za svoj rad koriste energiju, cilj je ostvariti
regulaciju napona napajanja uz što manju potrošnju energije regulatora, tj. uz što manju
disipaciju snage. Također važno je da regulator ne generira smetnje, kao što su zračenje u
prostoru ili vođene smetnje, koje bi mogle utjecati na ispravan rad elektroničkog uređaja koji
se napaja, te isto tako regulator ne bi smio biti osjetljiv na smetnje koje dolaze iz okoline.
U ovom diplomskom radu korišten je mini DC/DC step-up naponski regulator. Radna
frekvencija ovog modula iznosi 180 KHz, dok se postotak učinkovitosti uobičajno kreće oko
85%. Radna temperatura, odnosno temperatura na kojoj modul funkcionira se kreće od -25 ⁰C
do približno 85 ⁰C. Ovaj model naponskog regulatora je vrlo malen, dimenzija 11mm *10.5
mm * 7mm, dok mu je težina oko 1.2 g.
36
Na sljedećoj slici prikazan je način napajanja navedenog regulatora.
Slika 27. Način napajanja naponskog regulatora
Ulazni napon ovog regulatora se kreće od 0.8 V do 5 V , dok je izlazni napon regulatora 5 V.
Izgled korištenog naponskog regulatora prikazan je na sljedećoj slici:
Slika 28. Korišteni naponski regulator
37
4. FUNKCIONALNOST REALIZIRANOG SKLOPA
4.1. Uvodni opis projekta
Ideja vodilja diplomskog rada bila je osigurati nadzor nad parkingom na način da se
provjerava zauzetost određenog parking mjesta ultrazvučnim senzorom udaljenosti. Nadalje,
ideja je bila prikazati slobodno, odnosno zauzeto parking mjesto na web sučelju, a konačni bi
oblik proizvoda podrazumijevao i mogućnost korištenja mobilne aplikacije.
U početnoj fazi razvoja projekta odabran je ultrazvučni senzor. Pri izboru ultrazvučnog
senzora u obzir su uzeti domet, preciznost, efektivni kut mjerenja, napon napajanja i cijena.
Kao pretpostavka uzete su različite udaljenosti automobila od tla. S obzirom da udaljenost dna
automobila od tla varira, odnosno razlikuje se s obzirom na vrstu vozila, analizirane su
karakteristike više automobila, odnosno promatrane su različite udaljenosti od tla te
promatravši te udaljenosti odabrana je ona koja je smatrana najpogodnijom za opis prosječne
udaljenosti. U obzir su uzeti sljedeći automobili:
Tablica 7. Udaljenost dna automobila od tla za različite vrste vozila
Tip automobila Udaljenost dna
automobila od tla
1. Renault Kangoo 20 cm
2. Land Rover 27.8 cm
3. Peugeot 206 12.7 cm
4. Smart ForTwo 13 cm
5. Toyota Raw 4 19 cm
6. Mercedes ML 28.5 cm
7. Ford Fiesta 15 cm
38
Kao što je prikazano u tablici, maksimalna udaljenost dna automobila od tla iznosi otprilike
30-ak cm, ukoliko se u obzir uzme samo osobne automobile namjenjene za vožnju po
urbanim sredinama. Zbog nesigurnosti mjernog uređaja, u diplomskom radu korištena je
udaljenost od 40 cm na temelju koje je određeno stanje parking mjesta.
S obzirom na udaljenost dna automobila od tla, odabran je senzor čiji je domet veći od 100
cm. Odabran je ultrazvučni senzor HC-SR04, čije su karakteristike navedene u prethodnom
dijelu diplomskog rada.
Nakon odabira senzora, odabran je mikrokontroler koji odgovara cilju diplomskog rada.
Mikrokontroler koji se nalazi na parking mjestu mora biti dovoljno malen kako kučište unutar
kojeg se nalazi senzor zajedno s mikrokontolerom i ostalim komponentama ne bi zauzimalo
previše mjesta na samome parking mjestu. Takvim uvjetima je odgovarao mikrokontroler
Arduino Pro Mini. Karakteristike ovog mikrokontrolera navedene su u trećem poglavlju.
Također, tijekom razvijanja projetka pojavila se ideja o signalizaciji zauzetosti parking
mjesta, što je riješeno pomoću dvije svjetleće diode, koje su različitim bojama osijavanja
označavale stanje parkinga. Nadalje, sljedeći zadatak je bio osigurati da potrošnja električne
energije bude svedena na minimum. Kao izvor energije odabrana je litijska baterija SAFT
14500, međutim može se koristiti bilo koja Ni-MH punjiva baterija slabijeg kapaciteta.
Minimalni napon korištenog regulatora je oko 1 V. Potrošnja energije reducirana je na način
da je unutar koda korištena naredba WatchDogTimer (WDT) koja osigurava da se sustav gasi
na određeni broj sekundi, nakon čega se opet budi, obavlja ono za što je predodređen i potom
se proces ponavlja.
Mikrokontroler Arduino Mega2560 korišten je kao ''bazni'' mikrokontroler koji šalje upite o
stanju parking mjesta ''kontrolnom'' mikrokontroleru. Navedeni mikrokontroler odabran je
zbog povećanog broja digitalnih i analognih ulaza, a njegove karakteristike su navedene u
jednom od prethodnih poglavlja diplomskog rada.
Komunikacija između dva mikrokontrolera je riješena tako da je korišten komunikacijski
modul nRF24L01 kao radio komunikacija, a pomoću kojeg su prenesene informacije o stanju
parking mjesta.
Pretpostavlja se da bi se ovakav nadzor parkinga koristio u zatvorenim garažama, npr.
garažama trgovačkih centara, hotela, podzemnim garažama itd. Ovakav način nadzora
39
parkinga odabran je zbog njegove isplativosti, odnosno zbog prihvatljivijeg financijskog
rješenja nego pri nadzoru parkinga nadzornim kamerama. Također, nadzor parkinga
nadzornim kamerama u podzemnim ili hotelskim garažama ne zadovoljava zahtjeve zbog
infrastrukture same garaže pa je način nadziranja senzorima isplativiji.
4.2. Isplativost sustava te njegov prikaz u realnim uvjetima
Cijena izrade senzora pomoću komponenti koje su korištene u diplomskom radu prikazana je
u sljedećoj tablici :
Tablica 8. Ukupna cijena izrađenog senzora Komponenta Cijena
Ultrazvučni senzor HC-SR04 25,00 kn
Arduino Pro Mini 12,00 kn
Svjetleće diode i otpornici 2,00 kn
Komunikacijski modul nRF24L01 5,00 kn
Naponski regulator 34,00 kn
Ukupna cijena ~ 80,00 kn
Dakle, cijena senzora bez ugradbe na određeno parking mjesto iznosi otprilike 80 kn. Pri
izradi ovog projekta korištene su najjeftinije komponente dostupne na tržištu. Cijene
elektroničkih komponenti korištenih u diplomskom radu variraju ovisno o proizvođaču i o
kvalitetu proizvoda.
40
Slika 29 prikazuje izgled cjelokupnog senzora u Fritzing programskoj platformi:
Slika 29. Prikaz izrađenog senzora u Fritzing programskoj platformi
Na sljedećim slikama prikazan je izgled zalemljenog senzora, odnosno konačna verzija
senzora bez odgovarajućeg kučišta:
Slika 30. Prikaz konačne verzije senzora bez kučišta s dvije AA baterije
41
Slika 31. Prikaz konačne verzije senzora bez kučišta s dvije AA baterije
4.3. Potrošnja energije
Ušteda energije značajan je faktor projekta. Isplativost projekta prvenstveno ovisi o ukupnoj
potrošnji energije.
Nakon što kontrolna stanica obavi mjerenje i podatke o stanju parking mjesta pošalje na
baznu stanicu, predviđeno je da kontrolna stanica odlazi na spavanje (sleep mode) kako bi se
smanjila potrošnja energije. U sljedećoj tablici je prikazana potrošnja električne energije po
komponentama kontrolne stanice.
Tablica 9. Prikaz potrošnje energije po električnim komponentama sustava
Komponenta sustava Potrošnja
Ultrazvučni senzor 15 mA (radna struja)
Svjetleća dioda 4 mA
Komunikacijski modul nRF24L01 15 mA
Arduino Pro Mini 40 mA
42
Ukupna količina struje koja je potrebna projektiranom senzoru da definira stanje parking
mjesta i pošalje ga na baznu stanicu iznosi otprilike 75 mA, uz minimalna odstupanja.
Redukcija potrošnje električne energije je provedena primjenom WatchDogTimera. Funkcija
WDT omogućuje sustavu da se ugasi, odnosno prijeđe u stanje sleep mode-a na određeno
vrijeme definirano unutar programskog koda.
Primjenom funkcije WDT sustav se nalazi u sleep mode stanju, odnosno u stanju mirovanja.
Kada se sustav nalazi u stanju mirovanja, komponente ne obavljaju nikakve radnje, čime se
potrošnja energije značajno smanjuje.
Potrošnja ultrazvučnog senzora u stanju mirovanja iznosi otprilike 2 μA, dok je potrošnja
komunikacijskog modula snižena na svega 0.9 μA. Potrošnja svjetleće diode u stanju
mirovanja je neznačajna, a potrošnja korištenog mikrokontrolera u stanju mirovanja iznosi 54
μA. Dakle, primjenom WatchDogTimera sustav dovodimo u stanje mirovanja i ukupnu
potrošnju snižavamo na otprilike 0.057 mA, što predstavlja značajnu uštedu.
Unutar jedne minute, ultrazvučni senzor je aktivan 2 puta po 0.5 sekunde, svjetleća dioda 4
sekunde, a komunikacijski modul je aktivan 20 ms. Ukupna potrošnja primjenom WDT
funkcije iznosi otprilike 50 mAs, što produžuje vijek baterije od 1 Ah za otprilike 40 puta.
4.4. Testiranje sustava u realnim uvjetima
Nakon testiranja senzora unutar laboratorija, senzor je testiran i u realnim uvjetima, odnosno
unutar garaže na fakultetu. Testiranje je provedeno na način da su unutar garaže testirani
zajedno, bazna stanica i dva senzora. Svaki od senzora postavljen je na jedno parking mjesto,
a bazna stanica postavljena je na udaljenost od svega nekoliko metara. Nakon toga automobili
su dolazili na parking mjesta te je promatrano kakve informacije senzori odašilju baznoj
stanici.
U početnoj fazi testiranja oba parking mjesta su bila slobodna. Bazna stanica, u našem slučaju
osobno računalo, od kontrolne stanice dobila je informaciju o stanju obaju parking mjesta.
Nakon toga, na jedno parking mjesto doveden je automobil. Informacija o stanju tog parking
mjesta se prenijela na bazu. Isti postupak je ponovljen, odnosno i nad drugi senzor smo doveli
automobil. Uočeno je da cjelokupni sustav radi uz minimalna odstupanja zbog nesavršenosti
elektroničkih komponenata.
43
Na sljedećoj slici prikazan je izgled bazne stanice:
Slika 32. Izgled bazne stanice povezane s računalom
Bazna stanica, koja se sastoji od Arduino Mega2560 mikrokontrolera i komunikacijskog
modula nRF24L01, povezana je s računalom, na kojem se ispisuju podatci dobiveni od oba
senzora. Udaljenost bazne stanice se može kretati i do nekoliko stotina metara, što ovisi o
kvaliteti komunikacijskog modula nRF24L01, ali i o preprekama koje se nalazi između bazne
i kontrolne stanice. Pri testiranju u realnim uvjetima, bazna stanica je bila na udaljenosti od
nekoliko metara.
Podaci se u ovom slučaju ispisuju na Serial Monitor-u Arduino programske platforme. Pri
testiranju projekta u realnim uvjetima korištena su dva senzora koja su dimenzionirana unutar
laboratorija. Jedan senzor spojen je na Ni-MH bateriju, dok je drugom senzora kao izvor
napajanja bila USB baterija izlaznog napona 5 V. Oba senzora su funkcionirala odlično te su
zadovoljili postavljene uvjete.
44
Na sljedećim slikama prikazan je izgled korištenih senzora:
Slika 33. Senzor br. 1 spojen na Ni-MH punjivu bateriju
Slika 34. Senzor br. 2 spojen na USB bateriju
45
4.5. Dijagram stanja kontrolne stanice i radio komunikacije
Na slici broj 34. je prikazan način funkcioniranja kontrolne stanice, odnosno dijagram stanja
kontrolne stanice. Unutar crnih krugova naznačena su stanja kroz koja senzor prolazi prilikom
ostvarivanje cijelog procesa, a na crvenim crtama se nalaze radnje koje se odvijaju tijekom
procesa.
Slika 35. Dijagram stanja kontrolne stanice
U početnoj fazi, senzor se inicijalizira te ulazi u stanje osluškivanja veze, koje traje sve dok
senzor ne dobije upit od bazne stanice. Kada bazna stanica pošalje upit, senzor obavlja
očitanje. Nakon što obavi očitanje, senzor čeka odgovor s bazne stanice koji mu nalaže koliko
vremena će se nalaziti u sleep mode-u. Ukoliko ne dobije odgovor kroz neko kratko vrijeme
(npr. 5 s) ulazi u stanje ponovne inicijalizacije. Ukoliko senzor dobije odgovor, obavlja se
priprema za spavanje (sleep mode). Nakon toga senzor se gasi određeno vrijeme, odnosno
odlazi na spavanje. Dužina spavanja (sleep mode) definirana je unutar programskog koda.
46
Važno je napomenuti da je seznor upaljen samo kratko vrijeme prije početka radio
komunikacije kako bi se ostvarila ušteda energije.
Nakon što se senzor određeno vrijeme nalazi u sleep mode-u, on se budi i ulazi u stanje gdje
očekuje primanje radio veze. Ukoliko senzor preko radio veze ne dobije upit koji zahtjeva
definiranje stanja parking mjesta (slobodno ili zauzeto), odlazi na spavanje sve do sljedećeg
očekivanog javljanja. Kada se uspostavi radio veza i senzor dobije odgovor, cjelokupni proces
se ponavlja. Ukoliko se radio veza ne uspostavi, senzor opet ide u sleep mode.
Prikaz radio komunikacije predstavljen je na slici 36. Bazna stanica, u našem slučaju Arduino
Mega2560, šalje upit senzoru broj 1 i senzoru broj 2. Komunikacija je ostvarena s senzorom
broj 1, dok sa senzorom broj 2 komunikacija nije ostvarena zbog šumova i smetnji. Senzor
broj 1 izvodi očitanje i vraća potrebne informacije na baznu stanicu te nakon toga odlazi u
mod spavanja. Nakon definiranog vremena u modu spavanja, senzor 1 ponovno uspostavlja
komunikaciju i obavlja predviđene zadatke, dok je senzor 2 aktivan i nalazi se u stanju
ponovnog uspostavljanja veze nakon prethodnih smetnji i šumova, odnosno vrši osluškivanje
veze. Senzor broj 2 komunikaciju s bazna stanicom ostvaruje nakon inicijalizacije, dok senzor
broj 1 i dalje savršeno funkcionira.
Prikaz radio komunikacije je imaginaran i prikazuje jedan od mogućih načina funkcioniranja.
Na grafu su vizualizirana 3 ciklusa. U prvom ciklusu senzor 1 radi, senzor 2 nije uspostavio
komunikaciju. U drugom ciklusu senzor 1 nastavlja s radom, a senzor 2 prolazi kroz postupak
inicijalizacije. U trećem ciklusu oba senzora ostvaruju komunikaciju s baznom stanicom. Pri
testiranju sklopa u realnim uvjetima radio komunikacija je bila pouzdana, uz minimalna
odstupanja koja su posljedica nesavršenosti opreme.
47
Na sljedećoj slici je prikazan dijagram stanja radio komunikacije.
Slika 36. Dijagram stanja radio komunikacije
Na prethodnoj slici plavi simbol (dijamant) označuje početak očitanja pojedinog senzora.
48
5. ZAKLJUČAK
Nadzor parking mjesta senzorom je isplativo rješenje ukoliko se nadzor vrši u zatvorenim,
odnosno podzemnim garažama. Ovakav način nadzora parkinga može se koristiti u
kombinaciji s drugim načinima nadzora, npr. s nadzorom parkinga nadzornim kamerama.
Projektiranje senzora je zahtjevan i dugotrajan posao. Glavna ideja projekta je bila
konstruirati senzor koji nam daje informacije o stanju određenog parking mjesta. Početak
projekta zahtjevao je odabir elektroničkih komponenti sustava te osmišljavanje načina za
sklopovsko i programsko povezivanje komponenti. Nakon uspješnog razvoja programskog
rješenja, ukupan sustav se testirao u realnim uvjetima. Testiranjem sustava je utvrđeno da je
sustav u funkciji, te da zadovoljava početnu ideju diplomskog rada, uz minimalna odstupanja.
Odabir Arduina kao programskog sučelja unutar kojeg je projektiran cjelokupni sustav
pokazao se kao odličan izbor. Pri projektiranju korištene su gotove biblioteke koje su sastavni
dio Arduino programskog sučelja. Nadalje, posebno treba istaknuti komunikacijski modul
nRF24L01 koji je korišten za bežično komuniciranje. Osim iznimno niske cijene, odlikuje se
vrlo dobrim specifikacijama. Također, ultrazvučni senzor HC-SR04 pokazao se vrlo
pouzdanim, uz minimalna odstupanja.
Konstruirani senzor namjenjem je za upotrebu unutar hotelskih, podzemnih ili garaža
trgovačkih centara. Projekt se može dalje razvijati u cilju prikaza stanja parking mjesta na
određenom web sučelju te razvojem mobilne aplikacije koja omogućuje pravovremeni
pregled stanja na parkiralištu s udaljenog mjesta (dok mu se približavamo automobilom).
Projektirani sustav je isplativ, budući da cijena nadzora po jednom parking mjestu iznosti
otprilike 80 kn, ovisno o cijeni i kvaliteti elektroničkih komponenti koje su korištene u radu.
Dakle, sustav je primjenjiv i pouzdan, čime je početni cilj diplomskog rada ostvaren.
49
LITERATURA
1. Brčić,D.; Šoštarić,M.:' „Parkiranje i garaža“, Zagreb, Fakultet prometnih znanosti,
2012.
2. Popović,M.: „Senzori u robotici“, Beograd, 1996.
3. http://www.bosch-mobility-solutions.com/en/connected-mobility/active-parking-lot-
management/
4. http://www.kiunsys.com/products/parking-spot-sensors-system/
5. www.arduino.cc
6. Bonković, M.; Musić J.; Stančić I.; „Mikroregulatori i ugradbeni mrežni sustavi u
Arduino razvojnom okruženju“, Split, FESB, 2013.
7. Zenzerović,P.: „Arduino kroz jednostavne primjere“, Zagreb, 2015.
8. "Hrvatska enciklopedija", Leksikografski zavod Miroslav Krleža,
www.enciklopedija.hr, 2016.
9. https://e-radionica.com/hr/blog/2015/08/19/kkm-ultrazvucni-modul-hc-sr04/
10. http://www.micropik.com/PDF/HCSR04.pdf
11. https://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
12. https://www.sparkfun.com/datasheets/Components/SMD/nRF24L01Pluss_Preliminary
_Product_Specification_v1_0.pdf
13. Pintarić,D.: „Linearni regulatori“, Zagreb, FER, 2013.
50
POPIS OZNAKA I KRATICA
VOIP (eng. Voice Over Internet Protocol) – komunikacijska tehnologija koja omogućava
prijenos zvučne komunikacije preko Internet mreže
CD (eng. Compact disc) – kompaktni disk
PCB (eng. Printed circut board) – tiskana pločica
GND (eng. Ground) – uzemljenje
LED (eng. Light emiting diode) – svjetleća dioda
RFID (eng. Radio-frequency identification) – tehnologija koja koristi radio frekvenciju kako
bi se razmjenjivale informacije između prijenosnih uređaja
SPI (eng. Serial Peripheral Interface) – serijski protokol za komunikaciju s perifernim
uređajima
PRX (eng. primary receiver) – konfiguracija komunikacijskog modula
DC – istosmjerna struja
HC-SR04 – ultrazvučni senzor udaljenosti
WDT (eng. WatchDogTimer) – naredba koji mikrokontroler isključuje na zadano vrijeme
nRF – bežični primopredajnik, komunikacijski modul
USB (eng. Universal Serial Bus) – Univerzalna Serijska Sabirnica
Arduino IDE – Arduino razvojno okruženje
CPU (eng. Central Proccesing Unit) – središnja jedinica za obradu
UART – univerzalni asinkroni prijamnik/odašiljač
I2C – komunikacijski protokol
IP – komunikacijski protokol
PWM (eng. Pulse Width Modulation) – pulsno širinska modulacija
Itd – Kratica od : i tako dalje
51
SAŽETAK
U diplomskom radu realiziran je projekt nadzora parking mjesta pomoću parking senzora.
Senzor daje informacije o stanju pojedinog parking mjesta na način da pomoću bežičnog
komunikacijskog modula odašilje informacije o stanju koje se ispisuju na zaslonu računala.
Ovakav način nadzora parkinga primjenjuje se u hotelskim garažama te u garažama
trgovačkih centara. Može se kombinirati s drugim načinima nadzora parkinga.
Sustav je realiziran koristeći prikladne elektroničke komponente te Arduino programsko
okruženje. Dokazano je da je sustav isplativ i upotrebljiv te da se može koristiti u za njega
predviđenom okruženju. Detaljno su objašnjeni načini nadzora parkinga, elektroničke
komponente korištene pri izradi sustava, te testiranje sustava u realnim uvjetima.
KLJUČNE RIJEČI
Parking, sustav za nadzor parkinga, parking senzor, Arduino Pro Mini, Arduino Mega2560,
komunikacijski modul nRF24L01, regulator napona, bazna stanica, kontrolna stanica.
52
DODATAK
Bazna stanica
#include <SPI.h> // biblioteka za komunikaciju između 2 mikrokontrolera #include "nRF24L01.h" // biblioteka za komunikaciju između radio modula #include "RF24.h" // biblioteka za komunikaciju između radio modula #include "printf.h" // setup potreban da usmjeri stdout prema Arduino . Serial biblioteci RF24 radio(9,10); // pinovi za spajanje nRF modula const int role_pin = 7; // pin broj 7 je spojem sa GND kako bi poprimio . ulogu "pong" prijamnika const uint64_t pipes[2] = 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL ; // kanali potrebni za komunikaciju između radio modula void setup(void) Serial.begin(115200); // inicijalizacija serijske komunikacije printf_begin(); // naredba za usmjerevanje stdout-a radio.begin(); // uspostavljanje radio komunikacije radio.setChannel(120); // odabrani RF kanal za komunikaciju radio.setRetries(15,5); // broj pokušaja ponavljanja komunikacije i . vrijeme koje prođe izemđu pokušaja radio.setPayloadSize(16); // veličina paketa 16 bajtova radio.setDataRate(RF24_250KBPS); // brzina radio modula 250 KB po sek. radio.enableDynamicPayloads(); // varijacija veličine paketa radio.openWritingPipe(pipes[0]); // cijev za slanje podataka radio.openReadingPipe(1,pipes[1]); // cijev za primanje podataka radio.startListening(); // naredba koja omogućuje početak osluškivanja void loop(void) long tr_vrijeme=millis(); // definiramo varijablu vrijeme radio_poziv(1); // naredba za poziv 1. radio modula delay(1000); radio_poziv(2); //naredba za poziv 2. radio modula while(millis()-tr_vrijeme<20000) // vrijeme do novog mjerenja int radio_poziv( int brsenzora) // funkcija za poziv senzora radio.stopListening(); // radio prestaje s osluškivanjem unsigned long time = millis(); char poruka[20]=""; // definiranje poruke od 20 znakova sprintf(poruka,"SENZOR=%d\n\r",brsenzora); printf("Stanje SENZOR %d \n\r", brsenzora);
53
bool ok = radio.write( &poruka, sizeof(char)*20 ); // string poruka se šalje preko radio komunikacije radio.startListening();// radio opet počinje osluškivati unsigned long started_waiting_at = millis(); bool timeout = false; while ( ! radio.available() && ! timeout ) if (millis() - started_waiting_at > 300 ) // izemđu svakog mjerenja 300 ms timeout = true; if ( timeout ) printf("Failed, response timed out.\n\r"); // ispisuje se poruka, veza nije uspostavljena else char poruka2[20]=""; radio.read( &poruka2, sizeof(char)*20); // radio obavlja ocitanje poruke Serial.println(poruka2); return 0;
54
Kontrolna stanica
#include <SPI.h> // biblioteka za komunikaciju između 2 mikrokontrolera #include "nRF24L01.h" // biblioteka za komunikaciju između radio modula #include "RF24.h" // biblioteka za komunikaciju između radio modula #include "printf.h" #include <avr/sleep.h> // biblioteka potreba za Sleep mode #include <avr/wdt.h> // biblioteka koja uključuje WatchDogTimer int trigPin = 6; // Trigger na 6 int echoPin = 4; // Echo na 4 int Led1 = 5 ; // Zelena ledica na 5 int Led2 = 8 ; // Crvena ledica na 8 long duration; // Varijabla lonf imena duration int cm=500 ; // Definirana pocetna vrijednost bool obavi_uzv=true; bool prvi_start=true; // Dio koda s WatchDogTimer-om ISR(WDT_vect) wdt_disable(); void myWatchdogEnable(const byte interval) MCUSR = 0; WDTCSR |= 0b00011000; WDTCSR = 0b01000000 | interval; wdt_reset(); set_sleep_mode (SLEEP_MODE_PWR_DOWN); sleep_mode(); RF24 radio(9,10); // pinovi za spajanje nRF modula const int role_pin = 7; // pin broj 7 je spojem sa GND kako bi poprimio ulogu "pong" prijamnika const uint64_t pipes[2] = 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL ; // kanali potrebni za komunikaciju između radio modula void setup(void) pinMode(Led1 , OUTPUT); //postavi led1 kao izlazni digitalWrite(Led1 , LOW); //pocetno stanje ; iskljuceno pinMode(Led2 , OUTPUT); //postavi led2 kao izlazni digitalWrite(Led2 , LOW); //pocetno stanje ; iskljuceno pinMode(trigPin, OUTPUT); //postavi trig kao izlazni pinMode(echoPin, INPUT); //postavi echo kao ulazni Serial.begin(115200); //inicijalizacija serijske komunikacije printf_begin();
55
void loop(void) if (prvi_start==false) prvi_start=true; obavi_uzv=true; delay(100); myWatchdogEnable (0b100001); // 8 sekundi sleep mode-a myWatchdogEnable (0b100001); // 8 sekundi sleep mode-a radio.begin(); // uspostavljanje radio komunikacije radio.setChannel(120); // odabrani RF kanal za komunikaciju radio.setRetries(15,5); // broj pokušaja ponavljanja komunikacije i . vrijeme koje prođe izemđu pokušaja radio.setPayloadSize(16); // veličina paketa 16 bajtova radio.enableDynamicPayloads(); // varijacija veličine paketa radio.setDataRate(RF24_250KBPS); // brzina radio modula 250 KB po sek. radio.openWritingPipe(pipes[1]); // cijev za slanje podataka radio.openReadingPipe(1,pipes[0]); // cijev za primanje podataka radio.startListening(); // naredba koja omogućuje početak osluškivanja if (obavi_uzv==true) int cm2=uzv_range(trigPin,echoPin,5); // funkcija za mjerenje, vrši usrednjavanje 5 mjerenja delay(200); cm=cm2; Serial.println(cm); if ( radio.available() ) bool done = false; bool odgovori=false; while (!done) char poruka_pr[20]=""; done = radio.read( &poruka_pr, sizeof(char)*20 ); // citanje s radio veze printf("%s\n",poruka_pr); char *pch = strstr (poruka_pr,"SENZOR=2"); // trazenje upita u primljenoj poruci if (pch!=NULL) odgovori=true; delay(20); if (odgovori==true) int stanje_echo=1; char poruka_pr2[20]=""; prvi_start = false; if (cm > 40) // uvjet udljenosti automobila od tla
56
sprintf(poruka_pr2,"Stanje_1\n\r",stanje_echo); digitalWrite(Led1 , HIGH); digitalWrite(Led2 , LOW); // parking mjesto slobodno else sprintf(poruka_pr2,"Stanje_2\n\r",stanje_echo); digitalWrite(Led1 , LOW); digitalWrite(Led2 , HIGH); // parking mjesto zauzeto radio.stopListening(); // radio prestaje s osluskivanjem bool ok=radio.write( &poruka_pr2, sizeof(char)*20 ); // string poruka se šalje preko radio komunikacije if(ok==true) Serial.println(poruka_pr2); radio.startListening(); // radio pocinje s osluskivanjem else radio.stopListening();// radio prestaje s osluskivanjem delay(20); radio.startListening();// radio pocinje s osluskivanjem int uzv_range(int pingPin,int echoPin, int times) // mjerenje se vrsi vise puta tijekom jednog ciklusa long duration=0, inches, cm; for (int i=0; i<times;i++) delay(100); pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); pinMode(echoPin, INPUT); duration = duration+pulseIn(echoPin, HIGH); cm = duration / 29 / 2 / times; // pretvorba vremena u udaljenost return(cm);
57
58