You are on page 1of 22

ELEKTROSTROJARSKA KOLA VARADIN

42000 VARADIN, HALLEROVA ALEJA 5

ZAVRNI RAD

HEXAPOD (RAZVOJ PROGRAMSKE PODRKE


ZA UPRAVLJANJE ROBOTOM)
Jasmin Makaj

Varadin, svibanj 2015.

ELEKTROSTROJARSKA KOLA VARADIN


1

ZAVRNI RAD
HEXAPOD (RAZVOJ PROGRAMSKE PODRKE
ZA UPRAVLJANJE ROBOTOM)

Uenik: Jasmin Makaj


Razred: 4.e

Obrazovni sektor: Programiranje

Zanimanje: Tehniar za mehatroniku


kolska godina: 2014./2015.
Mentor: Zlatko Kuntek

Varadin, svibanj 2015.


2

PREDGOVOR :
Zahvaljujem svojem mentoru, profesoru Zlatku Kunteku, na pomoi pri izradi
zavrnog rada te praenju cijelog procesa nastajanja projekta. Takoer se elim zahvaliti
svojim kolegama iz razreda: Mateju Borovcu i Vanji Makaju, bez kojih nebi bilo mogue
realizirati ovaj projekt. Zahvaljujem se i Elektrostrojarskoj koli na financiranju odgovarajue
opreme bez koje ne bih mogao kvalitetno napraviti svoj zavrni rad.

SAETAK:
Pomou otvorene, softverske platforme: Arduino, programiran je arduino ureaj (Arduino
Mega2560), koji kontrolira kretnje robota. Preko android aplikacije: "Bluetooth RC Controler" na
mobilnom ureaju, alje se podatak na bluetooth ureaj spojen na arduino ureaj. Arduino
ureaj, s obzirom na primljen podatak, poziva odreene funkcije te ih izvrava. Izvrenjem
odreene funkcije, arduino ureaj ponovo ita primljeni podatak te ponavlja postupak. Robot
ima mogunost kretanja unaprijed, unazad, ulijevo i udesno. Robot se takoer moe sjesti i
ustati.

SADRAJ:
1. UVOD.......................................................................................................................6
2. ARDUINO PLOICA...............................................................................................7
3. ARDUINO PLATFORMA.........................................................................................8
4. ANDROID APLIKACIJA..........................................................................................11
5. BLUETOOTH UREAJ..........................................................................................12
6. ARDUINO PROGRAM.............................................................................................13
7. ZAKLJUAK ............................................................................................................21
8. LITERATURA............................................................................................................22

1. UVOD :
Hexapod, robot sa est noga, upravljan je Arduinom preko android aplikacije
na mobilnom ureaju. Hexapod ima est noga, na svakoj nozi ima po tri servo
motora. Sveukupno, Hexapod ima 18 servo motora, rasvjetu od 3 crvene LED diode
te ploicu za nadzor baterije. est nogu mu omoguuju kretanje naprijed, nazad te
rotaciju ulijevo i udesno.

Slika 1.1. Hexapod.

2. ARDUINO PLOICA
Robot je programiran preko besplatne, otvorene softverske platforme Arduino.
Arduino je stvorila talijanska tvrtka SmartProjects, 2005. godine. Pomou Arduino
ureaja moemo povezati vanjski fiziki svijet sa raunalom. Arduino ureaji su najee
napravljeni sa 8-,16- i 32- bitnim AVR mikrokontrolerom. Za realizaciju ovog projekta,
koristili smo Arduino Mega 2560. Arduino Mega 2560 sadri 8- bitni mikroupravlja (AVR
Mega 2560).

Slika 2.1. Arduino Mega2560.

Slika 2.2. Logo tvrtke Arduino.

Arduino Mega 2560 radi na 5V, ima 54 digitalnih ulaza i izlaza (od kojih se 15 moe
koristiti kao PWM izlazi) te 16 analognih ulaza. Kako bi mogli napisane programe
prebaciti u mikrokontroler na razvojnoj ploici koristimo se USB vezom s raunalom.
Na slici 1.2 moemo vidjeti ostale karakteristike Arduino Mega 2560.

Slika 2.3. Karakteristike Arduino Mega2560.

3. ARDUINO PLATFORMA

Da bismo mogli napraviti program za upravljanje robotom, potrebno je instalirati


Arduino IDE (Integrated Development Environment) softverski paket, koji se moe besplatno
preuzeti na slubenim stranicama Arduino tvrtke. Arduino softver radi na svim platformama
(Windows, Linux i Mac operativnim sistemima). Izgled Arduino platforme i jedan primjer
programa je prikazan na slici 3.1.

Slika 3.1. Izgled Arduino IDE softvera i primjer programa.

Poslije instalacije softvera te spajanja Arduina sa raunalom preko USB veze, potrebno je
podesiti odreene postavke. Treba se odabrati Arduino ploica koju elimo programirati (slika
3.2) te trebamo odabrati serijski port na koji je ona spojena (vidi sliku 3.3.). Odabir Arduino
ploice se nalazi na glavnoj alatnoj traci -> Tools -> Board. Tamo se takoer moe odabrati
serijski port, na koji spajamo Arduino ploicu.

Slika 3.2. Odabir Arduino ploice.

Slika 3.3. Odabir serijskog porta.

Arduino programi piu se C ili C++ programskim jezikom. Poslije konfiguracije Arduino
projekta navedenog na strani 8, trebaju se definirati dvije glavne funkcije, a to su
slijedee:

Setup()
Loop()

Slika 3.4. Setup() i Loop() funkcije i


primjer programa.

- Setup() funkcija - funkcija koja se izvrava samo jednom i to prilikom pokretanja


programa
- Loop() funkcija - funkcija koja se izvrava cikliki (uvijek kad ima napajanja)

Izvan tih funkcija moemo definirati varijable, pinove te razliite ureaje, potrebne
programske knjinice / biblioteke (Library) te vlastite funkcije. Arduino razvojna okolina
se, kao i veina programskih platformi, proiruje programskim knjinicama. One nam
pruaju mogunost rada sa hardverima. Nekoliko knjinica se dobije instaliranjem
programske okoline. Mogue ih je preuzeti sa interneta, pa ak moemo izraditi vlastite.
10

4. ANDROID APLIKACIJA

Za slanje podataka na bluetooth ureaj, koristimo aplikaciju "Bluetooth RC


Controller". Kad pokrenemo aplikaciju, prvo moramo urediti postavke. Slanje podataka
podeavamo na "On Change / Touch". Poslije podeavanja aplikacije, spajamo se sa
Bluetooth ureajem spojenim na Arduino ureaju.

Slika 4.1. Spajanje na Bluetooth modul.

Slika 4.2. Izgled Android aplikacije.

Slika 4.3. Blok shema upravljanja robotom.

Pritiskom na tipku alje se podatak (najee slovo ili broj) na RX pin na Arduino ploici.
Primjer: Tipka za naprijed alje slovo "F" na bluetooth ureaj.
11

5. BLUETOOTH UREAJ
Da bismo upravljali robotom preko mobilnog ureaja trebamo spojiti bluetooth ureaj
na arduino ureaj. Bluetooth HC-06 je ureaj koji smo koristili za realizaciju projekta. Na slici
ispod moemo vidjeti kako izgleda bluetooth modul i kako se on spaja na Arduino ploicu.

Slika 5.1. Bluetooth modul i spajanje modula na arduino.

Bluetooth ureaj ima 4 izvoda, a to su: RXD (Recive), TXD (Transmit), GND i VCC.
Prima podatak (ASCII znak) sa mobilnog ureaja i prosljedi ga na Arduino ploicu.

12

6. ARDUINO PROGRAM
U poetku trebamo ubaciti potrebnu knjinicu te definirati sve servo motore
na Hexapodu.

Slika 6.1. Definiranje servo motora.

Unutar Setup() funkcije trebaju se definirati pinovi na koje su spojeni servo motori
(signali servo motora). Takoer moramo pokrenuti serijsku komunikaciju, bez koje ne
bismo mogli komunicirati sa robotom preko bluetooth ureaja (Serial.begin(9600)).

Slika 6.2. Povezivanje zglobova (servo motora) na odreene PWM digitalne izlaze i
pokretanje serijske komunikacija.

Pomou tri potenciometra (220k Ohma) pomiemo jednu "nogu" robota. Jedna "noga"
robota se sastoji od tri zgloba (tri servo motora). Pomak potenciometra (0 - 1023) skaliramo u
13

podatak u stupnjevima (0 - 179). Skaliranu vrijednost aljemo na servo motore te


ispisujemo na serijal monitor i pamtimo dobivene vrijednosti od sva tri servo motora.

Slika 6.3. itanje vrijednosti sa potenciometra,


skaliranje, ispisivanje vrijednosti
na serial monitor i na servo motore.

Slika 6.4. Serial Monitor.

Unutar Loop() petlje se prvo ita podatak poslan na serijski port. Ovisno o primljenom
podatku, preko switch funkcije, poziva se odreena funkcija te se izvrava.

14

Slika 6.5. Switch petlja.

15

U varijablu "val" upisuje se primljeni podatak sa serijskog porta. Switch funkcija provjerava
dobivenu vrijednost i provjerava sluajeve. Ako je primljeni podatak vrijednosti "F" te ako je
vrijednost varijable "stanje" jednaka 1, program poziva funkciju "Naprijed()" (Prikazano na
slici 6.6.). Spremljene vrijednosti, dobivene pomou potenciometara, saljemo na servo
motore preko naredbe "servo.write(vrijednost)". Pod "servo" se upisuje ime definiranog servo
motora, a pod "vrijednost" se upisuje eljeni kut, to jest poloaj servo motora.

Slika 6.6. Funkcija "Naprijed" se izvrava,


kada je primljeni podatak "F" i
kada je hexapod u stojeem
poloaju.

16

Slika 6.7. Funkcija "Nazad" se izvrava,


kada je primljeni podatak "B" i
kada je hexapod u stojeem
poloaju.

17

Slika 6.8.1. Funkcija "Lijevo" se izvrava,


kada je primljeni podatak "L" i
kada je hexapod u stojeem
poloaju.

Slika 6.8.2. Funkcija "Desno" se


izvrava kada je primljeni podatak
"R" i kada je hexapod u stojeem
poloaju.

18

Slika 6.9.1. Funkcija "Sjedni" se izvrava,


kada je primljeni podatak "w".
Vrijednost varijable mjenja se u "0".

19

Slika 6.9.1. Funkcija "Ustani" se izvrava,


kada je primljeni podatak "w".
Vrijednost varijable mjenja se u "1".

Na razliite primljene podatke, arduino izvrava razliite podprograme (funkcije):

"W" - robot ustaje


"w" - robot sjedi
"F" - kretanje naprijed
"B" - kretanje unazad
"R" - rotacija udesno
"L" - rotacija ulijevo
"U" - rasvijeta ON
"u" - rasvijeta OFF

20

7. ZAKLJUAK
Upravljanje Hexapodom realizirano je pomou Arduino ploice, Bluetooth modula te
mobilne android aplikacije. Mobilni ureaj alje podatak na bluetooth ureaj, koji prosljedi
dobiveni podatak na Arduino. Arduino u Loop() petlji provjerava primljeni podatak i zapisuje ga u
lokalnu varijablu. Arduino s obzirom na primljeni podatak izvrava pojedine funkcije, kao to su:
sjedenje, ustajanje, kretanje naprijed i nazad, rotacija ulijevo i udesno te paljenje i gaenje
rasvijete. Poetni poloaji robota dobiveni su uz pomo 3 potenciometra. Pozicioniranjem jedne
noge pomou potenciometara, ispisuju se vrijednosti sva tri servo motora na serijski monitor.

21

8. LITERATURA
1 - Informacije o Arduino softveru
http://en.wikipedia.org/wiki/Arduino#Software
http://www.hztk.hr/media/Automatika/DIO1.pdf

2 - Uvod u Arduino ploice


http://www.arduino.cc/en/Guide/Introduction

3 - Informacije o Arduino Mega 2560 ploici


http://www.arduino.cc/en/Main/ArduinoBoardMega2560

22