projekat iz primene senzora i...

21
PROJEKAT IZ PRIMENE SENZORA I AKTUATORA NAZIV PROJEKTA: Vozilo koje prati liniju TEKST ZADATKA: Izraditi vozilo koje prati liniju MENTOR PROJEKTA: Nađ dr Laslo i Živanov dr Ljiljana PROJEKAT IZRADILI: Mihalov Stevan H487 i Simić Slobodan H482 DATUM ODBRANE PROJEKTA:

Upload: ngonhu

Post on 28-Feb-2019

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

PROJEKAT IZ PRIMENE SENZORA I AKTUATORA

NAZIV PROJEKTA:

Vozilo koje prati liniju

TEKST ZADATKA:

Izraditi vozilo koje prati liniju

MENTOR PROJEKTA:

Nađ dr Laslo i Živanov dr Ljiljana

PROJEKAT IZRADILI:

Mihalov Stevan H487 i Simić Slobodan H482

DATUM ODBRANE PROJEKTA:

Page 2: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

2

Sadržaj

PROJEKAT IZ PRIMENE SENZORA I AKTUATORA ................................................................... 1

1. Uvod .............................................................................................................................................. 3

2. Analiza problema .......................................................................................................................... 4

2.1. Analiza senzora ...................................................................................................................... 4

2.2. Analiza aktuatora ................................................................................................................... 6

2.3. Analiza upravljanja ................................................................................................................ 6

3. Proračuni i simulacioni rezultati ................................................................................................... 7 3.1. Određivanje pragova .............................................................................................................. 7 3.2. Proračun motora .................................................................................................................... 7

4. Opis realizovanog predmeta projekta ........................................................................................... 9 4.1. Detaljan opis svih elemenata uređaja .................................................................................... 9

4.2. Izgled prototipa ...................................................................................................................... 9

5. Rezultati testiranja ...................................................................................................................... 11

6. Zaključak ..................................................................................................................................... 11

7. Literatura ..................................................................................................................................... 12

Dodatak A .......................................................................................................................................... 13

Dodatak B ........................................................................................................................................... 19

Dodatak C ........................................................................................................................................... 20

Dodatak D .......................................................................................................................................... 21

Page 3: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

3

1. Uvod

U ovom projektu će biti reči o vozilu koje prati crnu liniju na beloj podlozi, detaljno će se razraditi problematika upravljanja, kao i odabir odgovarajućeg senzora i aktuatora. Ideja je dobijena na osnovu videa na internetu u kojem 2 robota prate liniju i međusobno se izbegavaju. Na slici 1.1 mogu videti ta vozila.

Slika 1.1 - Dva robota se izbegavaju

Motivacija za ovaj rad je bilo jedno od takmičenja iz elektronike. Sličan projekat je viđen na takmičenju iz hardvera i softvera 2011. godine, pa je odlučeno da se napravi jednostavnija verzija toga, a ujedno kako bi se steklo praktično znanje za pretstojeće takmičenje iz robotike. Koncept vozila koje prati liniju se može primeniti u industriji, tačnije na vozilima koja skladište pakete u hangarima, takođe se može primeniti i u takozvanim pametnim automobilima kao metod održavanja tačne razdaljine od centralne linije kao i od bankine. Još jedna od primena je na aeodromu, gde vozilo transportuje prtljag od terminala do aviona i obrnuto. Neki od sličnih projekata su vozilo koje izbegava prepreke, gde je glavna razlika u senzoru koji detektuje prepreku umesto linije. Primer jednog takvog vozila prikazano je na slici 1.2. U drugom poglavlju će se detaljno analizirati svi problemi na koje su studenti našli prilikom realizacije zadatog problema kao i mogući načini rešavanja istih. U trećem poglavlju biće prikazane sve simulacije i proračuni koji su vršeni prilikom realizacije projekta. Princip rada pojedinih elemenata koji su korišćeni za realizaciju biće opisan u četvrtom poglavlju. U petom poglavlju biće testovi koji su vršeni na izrađenom prototipu, kao i gotovi rezultati istih.

Slika 1.2 - Prototip vozila za izbegavanje prepreka

Page 4: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

4

2. Analiza problema Glavni zadatak je postići praćenje linije u odgovarajućim tolerancijama. Da bi se to uspelo,

prišlo se metodičkom razmišljanju. Idejno rešenje je dato na slici 2.1.

Slika 2.1 - Blok dijagram idejnog rešenja

2.1. Analiza senzora Prilikom odabira senzora ključni faktor je bio njegova tačnost i tolerancija na spoljašnje

osvetljenje. Senzori koji su razmatrani su kamera, infracrvena dioda i foto otpornik, infracrvena dioda i fototranzistor. Princip rada svih navedenih senzora detaljno je opisan u [3] i [8].

Prednost kamere je u tome da je precizna, može tačno da detektuje liniju. Tačnost se ogleda u broju piksela koji kamera ima, pa prilikom odabira takvog tipa senzora treba na to najviše obratiti pažnje. Kamere su takođe kompaktne i mogu se lako ugraditi, današnji telefoni imaju kamere velikih rezolucija i te se mogu lako lako integrisati na mala mesta. Na slici 2.1.1 se vidi jedna takva kamera, dok je princip rada senzora prikazan na slici 2.1.2.

Slika 2.1.1 - Kamera kao senzor

slika 2.1.2- Blok šema načina rada kamere kao senzora

Mana upotrebe kamere kao senzora je prevashodno cena, a potom i obrada slike. Pod obradom slike podrazumeva se algoritam implementacije upravljanja koje je složenije u odnosnu na druga dva tipa senzora. Cena kamere raste sa brojem piksela. Pošto se u projektu ne zahteva prevelika tačnost, ovaj tip sezora bi bio preskup i ne bi bio optimalan za izvršavanje zadatka.

Page 5: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

Drugi razmatrani senzor je foto2.1.3 prikazana je šema takvog kola.

Foto-otpornik menja svoju otpornost u zavisnosti od osvetljenja. Na slici obasjava foto-otpornik ona će svetleti. Prednost fotoodnosu na kameru, može da radi na širokom opsegu temperatura i reaguje na širok spektar osvetljenja što mu ujedino može biti i mana.spoljašnjeg osvetljenja može desiti da se dioda ukljuodlučili za treći spomenuti senzor (fototranzistor i infracrvena dioda). Fototranzistor i infracrvena dioda su prikazani na slicikada se zrak koji emituje infracrvena dioda odbije baza koja "visi" se polariše i tranzistor tada provodi.

Slika

Prednosti fototranzistora su u tome da je brz, provede i daje napon na izlazu, mali su i pogodni su za integraciju u elektronska kola i jeftini su. Nedostaci kao i kod svih optiosvetljenje, zbog toga se moraju zaštiti da bi se smanjio uticaj neželjene svetlosti. Pošto su pojedinačni fototranzistori i infracrvene diode ne zaštisvetlosti, radi lakše realizacije senzora uzeto je u obzir integrisanouparenu infracrvenu diodu i fototranzistor. karakteristika prikazani su u data sheet

5

matrani senzor je foto-otpornik u kombinaciji sa infracrvenom prikazana je šema takvog kola.

Slika 2.1.3 - Foto-otpornik kao senzor

otpornik menja svoju otpornost u zavisnosti od osvetljenja. Na slici 2.1.3e svetleti. Prednost foto-otpornika je u ceni, on je znatno jeftiniji u

odnosu na kameru, može da radi na širokom opsegu temperatura i reaguje na širok spektar osvetljenja što mu ujedino može biti i mana. Glavna mana mu je da nije precizan, jer se zbog spoljašnjeg osvetljenja može desiti da se dioda uključi što nama ne odgovara i zbog toga smo se

i spomenuti senzor (fototranzistor i infracrvena dioda). Fototranzistor i infracrvena dioda su prikazani na slici 2.1.4 na kojoj se vidi princip rada,

kada se zrak koji emituje infracrvena dioda odbije baza koja "visi" se polariše i tranzistor tada

lika 2.1.3 - Šema fototranzistora kao senzora

Prednosti fototranzistora su u tome da je brz, čim dovoljan broj fotona padne na bazu provede i daje napon na izlazu, mali su i pogodni su za integraciju u elektronska kola i jeftini su. Nedostaci kao i kod svih optičkih senzora i kompjuterske vizije (kamera) jeste spoljašnje

aju zaštiti da bi se smanjio uticaj neželjene svetlosti. čni fototranzistori i infracrvene diode ne zaštić

svetlosti, radi lakše realizacije senzora uzeto je u obzir integrisano kolo CNY70 koje u sebi sadrži enu infracrvenu diodu i fototranzistor. Detaljan princip rada i način realizacije, kao i prenosna

data sheet - u [6].

crvenom diodom. Na slici

2.1.3 sve dokle god dioda otpornika je u ceni, on je znatno jeftiniji u

odnosu na kameru, može da radi na širokom opsegu temperatura i reaguje na širok spektar a nije precizan, jer se zbog

i što nama ne odgovara i zbog toga smo se

na kojoj se vidi princip rada, kada se zrak koji emituje infracrvena dioda odbije baza koja "visi" se polariše i tranzistor tada

roj fotona padne na bazu tranzistor provede i daje napon na izlazu, mali su i pogodni su za integraciju u elektronska kola i jeftini su.

kih senzora i kompjuterske vizije (kamera) jeste spoljašnje aju zaštiti da bi se smanjio uticaj neželjene svetlosti.

ni fototranzistori i infracrvene diode ne zaštićeni od uticaja spoljašnje kolo CNY70 koje u sebi sadrži čin realizacije, kao i prenosna

Page 6: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

6

2.2. Analiza aktuatora

Što se tiče aktuatorskog dela razmatrana su 2 DC motora malih snaga, sa nezavisnim upravljanjem. Skretanje je realizovano metodom klizanja, jedan motor se kreće dok drugi stoji. Elegantnije rešenje je korišćenje PWM - a (pulse width modulation) gde se jedan motor ubrza a drugi se uspori za onoliko koliko se prvi motor ubrzao i na taj način se krivine lakše savladavaju. Za prenosne elemente testirani su točkovi i gusenice. Prednost točkova je u tome da se u svakom trenutnu prilikom skretanja zna centar krivine, jer je dodirna površina točka mala, dok se kod guseničara ne zna jer se menja zbog trenja. Manevrisanje je bolje sa točkovima u odnosu na gusenicu, manje se troši materijal prilikom kretanja, ali je veći pritisak kojim deluje na podlogu. Kod guseničara prednost je u tome da je manji pritisak na podlozi na kojoj se nalazi, može veći teret da povuče al je potrebna mnogo veći moment i snaga. U obzir je došlo korišćenje 2 motora sa LEGO igračaka i uoptreba reduktora radi smanjenja broja obrtaja i povećanja momenta, ali pošto se na stolu našla i opcija već gotove šasije sa guseničarem, odabrana je ta opcija jer je pouzdanija zato što motori dolaze sa vec ugrađenim reduktorima i na njih se direktno priključuje elektronika za upravljanje. Opcija sa gotovom šasijom je takođe ekonomičnija jer nema potrebe da za dodatnom kupovinom pratećih delova. Šasija koja se koristi je RP6 robot kit koje je prikazan na slici 2.2.1.

Slika 2.2.1 - RP6 robot kit

2.3. Analiza upravljanja

Da bi vozilo pratilo liniju potrebno je minimalno dva integrisana kola CNY70 (dva senzora), međutim u cilju ostvarivanja lakšeg i preciznijeg upravljanja može se uzeti veći broj senzora. U ovom projektu, radi jednostavnosti uzeta je varijanta sa dva senzora gde se jedan nalazi na crnoj podlozi a drugi na beloj. U dodatku A se vidi C kod koji je ekvivalentan algoritmu koji se nalazi u dodatku C. Veoma bitno je bilo odrediti pragove na kojima okida senzor, al više reči o tome će biti u sledećem poglavlju. Glavnu logiku upravljanja izvršava mikrokontroler ATMega8, putem koga se šalju signali na drajver L298N koji upravlja motorima.

Page 7: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

7

3. Prora čuni i simulacioni rezultati

3.1. Određivanje pragova Glavni proračun u ovom projektu je određivanje pragova na kojima fototranzistor provodi,

oni su određeni eksperimentalno korišćenjem unimera i iscrtane podloge. Eksperimentalni rezultati su prikazani na slici 3.1.1.

Slika 3.1.1 - Određivanje pragova za crnu i belu liniju

Nakon više pokušaja određeno je da se prag nađe na polovini napona napajanja logike. Za napajanje kola se koristi stabilizator napona koji napon od 9V stabilizuje na napon od 5V, koji se koristi kao napajanje za logiku i senzore, dok se za aktuator koristi napajanje od 9V direktno sa baterije. Na ulazu uzet je namerno elektrolitski kondenzator sa većom kopacitivnosti (1000µF) zbog motora koji povuku veću struju prilikom pokretanja pa da napajanje ne bi oscilovalo. Takođe treba obratiti pažnju da napon logike ne padne ispod 5V jer se tada kontroler ne ponaša kako treba i vozilo neće izvršavati traženi zadatak u skladu sa zahtevima. Komplet šema se može naći u dodatku C, a interna šema je prikazana u datasheet-u [5].

3.2. Proračun motora Pošto nema tačnih podataka o motoru u datasheet - u u daljem tekstu će se opisati uopšteni

proračun motora i koji obrasci se koriste pri tome [2]:

1. Jednačina obrtnog momenta: = ; − , −

, − .

2. Naponska jednačina: " = #$; " − %& ' ",

Page 8: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

8

# − ' " ,$ − ( % .

3. Kirhofov zakon:

"* = + + " + - %% ;"* − ' &&",+ − ' &.,- − %&&/, − ' č (&.

4. Jednačina za ukupni moment:

= 2 %$% + 3$;2 − ' 4 ' ć,3 − 64&( ,3$ −'č% .

Sličan motor koji se koristi u robot kitu RP6 je motor FC-280SC-18180 čije su karakteristike date u [9], pa će se u daljem tekstu izvršiti proračun za taj motor. Otpornost kotve merena je unimerom i dobijena je vrednost od R = 4Ω. Struja kratkog spoja je izvučena iz kataloga [9] kao i obrtni moment vratila, pa koristeći jednačinu (1) dobija se vrednost konstante obrtnog momenta Kt=9,47mNm/A. Naponska konstanta ima istu brojčanu vrednost kao i konstanta obrtnog momenta što je zaključeno iz [2] i iznosi Kv=9,47mV/s. Koeficijent viskoznog trenja je sračunat kao:

3 = 2$ = 9,47 ∗ 0,16

2 ∗ 1015,78 %= 0,00075 %

Veoma bitno je da se koriste zamajne diode da ne bi došlo do prenapona usled indukovanja struje iz motora. Na slici 3.2.1 se može uočiti način povezivanja motora sa drajverom kao i zamajne diode [1].

Slika 3.1 - Šema drajvera L298N

Page 9: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

9

4. Opis realizovanog predmeta projekta

4.1. Detaljan opis svih elemenata uređaja Kao što je spomenuto u prethodnim poglavljima za šasiju i motore odabran je gotov komplet

robot kit RP6 koji u sebi sadrži 2 DC motora i enkodere koji za svrhu ovog projekta nisu korišćeni, ali su mogli biti iskorišćeni kao indikacija pređenog puta. Slika šasije sa gusenicama može se videti na slici 8. Za napajanje motora koristi se baterija od 9V, dok se za napajanje logike koristi stabilizator L7805CV na koji su prikačeni kondenzatori kao što se vidi na slici 12. Za upravljanje motorima koristi se drajver L298N čija šema se vidi na slici 13. Na ulaze IN1 i IN2 se dovodi logička jedinica ili logična nula u zavisnosti od željenog smera obrtanja motora (00 - ugašen motor,01 jedan smer, 10 drugi smer, 11 zabranjeno stanje), isto to se dovodi i na ulaze IN3 i IN4. Na ulaze EN1 i EN2 se dovodi PWM signal koji služi za upravljanje brzinom motora. Radi jednostavnije realizacije prilikom ovog projekta upotreba PWM - a je izostavljena pa se na EN1 dovodi 1 da motor bude aktivan odnosno 0 da se motor gasi. Na SENSA i SENSB dovode se otpornici 1Ω/5W za strujnu zaštitu. Na OUT1 i OUT2 se dovodi jedan motor, dok se na OUT3 i OUT4 dovodi drugi motor. Na drajver se takođe dovodi dva napajanja, jedan za logiku, a drugi za motore. Napon za logiku označen je sa Vcc dok je napon za motore označen sa Vs. Senzori koji se koriste su integrisana kola CNY70 koja u sebi sadrže i fototranzistor i infracrvenu diodu, kao što je već spomenuto u drugom poglavlju. Sa emitera fototranzistora se vodi signal na ulaz AD konvertora mikrokontrolera koji očitava vrednost napona i na taj način vrši upravljanje motorima kao što je pomenuto u prethodnom poglavlju gde se govorilo o određivanju pragova. Za mikrokontroler odabran je ATMega8 koji ima 28 pinova, sadrži tri tajmera koji se mogu koristiti prilikom PWM upravljanja, sadrži integrisani AD konvertor koji je korišćen za konverziju signala sa senzora. U dodatku B vidi se celokupna elektronska šema.

4.2. Izgled prototipa

U ovom poglavlju biće prikazane slike gotovog prototipa gde će se vršiti poslednje testiranje. Zbog preglednosti, uzeta je slika odozgo gde se vidi ploča sa kompletnom elektornikom i način povezivanja elektronskih komponenti. Takođe se na slici 4.2.1 vidi i podloga odnosno teren po kom će se robot kretati.

Slika 4.2.1 - Robot koji prati liniju

Page 10: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

10

Na narednoj slici 4.2.2 se vide dva senzora CNY70 koja omogućavaju kretanje robota po crnoj linij. Oni se nalaze na prednjoj strani robota i vezani su za mikrokontroler ATMega8.

slika 4.2.2 - Slika robota sa senzorima CNY70

I sa poslednje slike 4.2.3 se može videti guseničar Robot Kit RP6 pomoću kog je ostvareno kretanje.

Slika 3.2.3 - Robot sa prikazanim guseničarom RP6

Page 11: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

11

5. Rezultati testiranja Testiranje gotovog vozila vršeno na različitim podlogama i različitim smerovima kretanja da

bi dokazala njegova funkcionalnost. Podloge na kojima je testirano vozilo su parket (braon boja) na koji je bila nalepljena crna linija, kao i hammer papir (bela podloga) sa crnom linijom. Performanse na obe podloge su identične, vozilo prati liniju u oba slučaja i ne odstupa od nje, što dovodi do zaključka da su pragovi dobro odabrani. Prilikom testiranja robot se kretao u jednom smeru (pozitivan matematički smer) dok je u drugom smeru imao problema, odstupao je od linije i nije mogao da je prati, zaključak je bio da je primenjen pogrešan algoritam praćenja linije koje korigovan i prikazan je na slici 9. Takođe je uzeto u obzir rastojanje senzora od podloge, testirana su rastojanja od 2, 5 i 10mm. Rastojanja od 2 i 5 mm spadaju u radni opseg senzora što se može očitati iz datasheet - a za senzor, dok je rastojanje od 10mm van radnog opsega. Dobri rezultati su dobijeni iz prva dva merenja, vozilo nije odstupalo previše od zacrtane linije, dok je na rastojanju od 10mm od podloge nekada problem predstavljalo dnevno osvetljenje. Takođe je testirano međusobno rastojanje između oba senzora i došlo se do zaključka da je najbolje da se za rastojanje uzme debljina linije zbog postojanja prelaznog režima gde su oba senzora u jednom trenutku na liniji, ako je preveliko rastojanje između senzora vozilo izgubi putanju.

6. Zaklju čak Ovakav prototip vozila je funkcionalan, jedino što je izostavljeno je PWM upravljanje koje

se može dodati naknadnim programiranjem u mikrokontroler. Senzori su dobro kalibrisani i vozilo može da prati većinu krivina pod uslovom da krivine nisu preoštre.

Odrađeno je praćenje linije na principu on/off regulacije, razmotreni su različiti tipovi senzora i aktuatora koji se mogu primeniti kao i njihove prednosti i mane. Vozilo prati liniju, ukoliko dođe do malih poremećaja može da pronađe liniju i nastavi svoju putanju.

Dorada na ovom projektu može biti dodavanje detekcije prepreke kao i gore pomenuto PWM upravljanje motorima.

Page 12: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

12

7. Literatura

[ 1 ] Dr Laslo F. Nađ, Impulsna elektronika, FTN, Novi Sad, 2013.

[ 2 ] Dr Laslo F. Nađ, Primena senzora i aktuatora deo Aktuatori, FTN, Novi Sad, 2008

[ 3 ] Dr Ljiljana Živanov, Primena senzora i aktuatora deo Senzori, FTN, Novi Sad, 2008

[ 4 ] -, ATMega8 mikrokontroler, Atmel datasheet, http://www.atmel.com/images/atmel-2486-8-bit-avr-microcontroller-atmega8_l_datasheet.pdf, sep. 2013

[ 5 ] -, L7805CV stabilizator, Jameco datasheet, http://datasheet.octopart.com/L7805CV-STMicroelectronics-datasheet-7264666.pdf, sep. 2013

[ 6 ] -, CNY70, Vishay datasheet, http://www.vishay.com/docs/83751/cny70.pdf, sep. 2013

[ 7 ] -, L298 H - most, ST datasheet, https://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf, sep. 2013

[ 8 ] Ana Jeftić i Stefan Đinđić, Senzori u robotici, ETF, Beograd, 2009

[ 9 ] -, FC-280SC-18180 motor, Kysan electronics datasheet, http://www.kysanelectronics.com/Products/datasheet_display.php?recordID=6645, sep. 2013

Page 13: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

13

Dodatak A /************************************************** ***

This program was produced by the

CodeWizardAVR V2.05.0 Professional

Automatic Program Generator

© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project :

Version :

Date : 9.9.2013

Author : NeVaDa

Company :

Comments:

Chip type : ATmega8

Program type : Application

AVR Core Clock frequency: 7,200000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*************************************************** **/

#include <mega8.h>

#include <delay.h>

#define ADC_VREF_TYPE 0x20

// Read the 8 most significant bits

// of the AD conversion result

unsigned char read_adc(unsigned char adc_input)

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage

delay_us(10);

// Start the AD conversion

ADCSRA|=0x40;

// Wait for the AD conversion to complete

while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10;

Page 14: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

14

return ADCH;

// Declare your global variables here

void desno(void)

PORTB.1=0; //desno

PORTB.2=1;

PORTC.0=1;

PORTC.1=0;

void levo(void)

PORTB.2=0;

PORTB.1=1;

PORTB.3=0;

PORTB.4=1;

void pravo(void)

PORTB.1=1;

PORTB.3=0;

PORTB.4=1;

PORTB.2=1;

PORTC.0=1;

PORTC.1=0;

void main(void)

unsigned char sareni;

unsigned char beli;

unsigned char turn = 0;

unsigned char sareniPrethodni;

unsigned char beliPrethodni;

// Declare your local variables here

// Input/Output Ports initialization

// Port B initialization

Page 15: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

15

// Func7=In Func6=In Func5=In Func4=Out Func3=Out Func2=Out Func1=Out Func0=In

// State7=T State6=T State5=T State4=0 State3=0 State2=0 State1=0 State0=T

PORTB=0x00;

DDRB=0x1E;

// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out

// State6=T State5=T State4=T State3=T State2=T State1=0 State0=0

PORTC=0x00;

DDRC=0x03;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTD=0x00;

DDRD=0x00;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

TCCR0=0x00;

TCNT0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer1 Stopped

// Mode: Normal top=0xFFFF

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0x00;

TCCR1B=0x00;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

Page 16: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

16

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer2 Stopped

// Mode: Normal top=0xFF

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

OCR2=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// USART initialization

// USART disabled

UCSRB=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 900,000 kHz

// ADC Voltage Reference: AREF pin

// Only the 8 most significant bits of

// the AD conversion result are used

ADMUX=ADC_VREF_TYPE & 0xff;

ADCSRA=0x83;

// SPI initialization

// SPI disabled

SPCR=0x00;

Page 17: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

17

// TWI initialization

// TWI disabled

TWCR=0x00;

sareni=read_adc(4); //sarena

beli=read_adc(5); //bela

while (1)

sareniPrethodni = sareni;

beliPrethodni = beli;

sareni=read_adc(4); //sarena

beli=read_adc(5); //bela

if(sareni<128 && beli<128)

pravo();

PORTD.6 = 0;

PORTD.7 = 0;

turn = 0;

else if(sareni<128 && beli>=128)

pravo();

PORTD.6 = 0;

PORTD.7 = 0;

turn = 0;

else if(sareni>=128 && beli<128)

pravo();

PORTD.6 = 0;

PORTD.7 = 0;

turn = 0;

else if(sareni>=128 && beli>=128 && sareniPrethodni<128 && beliPrethodni>=128)

desno();

PORTD.6 = 0;

PORTD.7 = 1;

turn = 1; //pamti skretanje desno

Page 18: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

18

else if(sareni>=128 && beli>=128 && sareniPrethodni>=128 && beliPrethodni<128)

levo();

PORTD.6 = 1;

PORTD.7 = 0;

turn = 2; //pamti skretanje levo

else if(turn == 1)

desno();

PORTD.6 = 0;

PORTD.7 = 1;

else if(turn == 2)

levo();

PORTD.6 = 1;

PORTD.7 = 0;

Page 19: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

19

Dodatak B

Page 20: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

20

Dodatak C

Page 21: PROJEKAT IZ PRIMENE SENZORA I AKTUATORAvgrteam.weebly.com/uploads/2/4/8/8/24886562/robot_koji_prati... · 9 4. Opis realizovanog predmeta projekta 4.1. Detaljan opis svih elemenata

21

Dodatak D