Tabel 2.1 Alamat Vektor Interupsi ATMega8535
Vector No.
Alamat Program
Sumber Interupsi
Keterangan 1. 0x000 RESET
External Pin, Power-On Reset, Brown-out Reset and Watchdog
Reset 2.
0x001 INT0
External Interupt Request 0 3.
0x002 INT1
External Interupt Request 1 4. 0x003
TIMER2 COMP
TimerCounter2 Compare Match 5. 0x004 TIMER2
OVF TimerCounter2
Overflow 6.
0x005 TIMER1 CAPT TimerCounter1 Capture Event
7. 0x006 TIMER1
COMPA TimerCounter2 Compare Match
A 8. 0x007
TIMER1 COMPB
TimerCounter2 Compare Match B
9. 0x008 Timer1 OVF TimerCounter1
Overflow 10. 0x009 Timer0
OVF TimerCounter0 Overflow
11. 0x00A SPI, STC
Serial Transfer
Complete 12.
0x00B USART, RXC
USART, Rx Complete 13.
0x00C USART, UDRE USART Data Register Empty
14. 0x00D
USART, TXC USART, Tx Complete
15. 0x00E ADC ADC
Conversion Complete
16. 0x00F EE_RDY EEPROM
Ready 17. 0x010 ANA_COMP Analog
Comparator 18. 0x011 TWI
Two-Wire Serial
Interface 19.
0x012 INT2
External Interupt Request 2 20. 0x013 TIMER0
COMP TimerCounter0 Compare Match
21. 0x014
SPM_RDY Store Program Memory Ready
2.4 Rangkaian Mekanika
Rangkaian mekanik Robot Pengikut Garis ini terdiri atas beberapa bahan. Untuk casis robot bahan yang digunakan adalah bahan aclyric. Pada
mekanik yang dirancang digunakan transmisi roda gigi cacing untuk bagian kemudi depan robot agar dihasilkan reduksi kecepatan yang besar dan
kemampuan mengunci pergerakan kemudi. Untuk penggerak belakang robot
digunakan roda gigi miring untuk mempercepat putaran motor DC yang kecepatan putarnya sangat lambat.
Gambar 2.10 Rangkaian Mekanika Robot
2.5 Rangkaian Elektronika
2.5.1 PCB Printed Circuit Board
PCB atau Papan Sirkuit Cetak adalah sebuah papan yang penuh dengan sirkuit dari logam yang menghubungkan komponen elektronik satu sama lain
tanpa kabel.
[4]
Papan sirkuit ini mendapatkan namanya karena diproduksi secara massal dengan cara percetakan. Papan sirkuit cetak dapat digolongkan atas
beberapa jenis berdasarkan : a.
Susunan lapis
Lapis tunggal
Lapis ganda
Multi lapis 4, 6, 8 lapis
b. Bentuk
Keras
Lunak fleksibel
Gabungan keras dan lunak
c. Spesifikasi
Konvensional
Penghubung kepadatan tinggi High Density interconnect
d. Material Basis
FR4
Logam
Keramik
2.5.2 Resistor
Resistor adalah suatu komponen elektronika dua saluran yang di desain untuk menahan arus listrik dengan memproduksi penurunan tegangan diantara
kedua salurannya sesuai dengan arus yang mengalirinya.
[3]
Resistor diberi lambang huruf R dengan satuannya yaitu Ohm
Ω. Secara umum resistor berdasarkan nilainya dibagi menjadi 3 bagian, yaitu :
1. Fixed resistor
Merupakan resistor yang nilai hambatannya tetap. Berikut ini bentuk resistor.
Gambar 2.11 Resistor
Nilai hambatan resistor dapat kita ketahui dari gelang warna yang terdapat pada badan resistor, dimana ketentuannya adalah sebagai berikut :
a. Gelang ke-1 dan gelang ke-2 menyatakan nilai resistor.
b. Gelang ke-3 menyatakan faktor pengali
c. Gelang ke-4 menyatakan toleransi
Jika resistor memiliki 5 gelang warna, maka nilai gelang ke-1, 2 dan 3 menyatakan nilai resistor, gelang ke-4 merupakan faktor pengali dan gelang ke-5
menyatakan toleransi. Sedangkan untuk mengetahui nilai dari warna gelang resistor, bisa dilihat pada Tabel 2.2 :
Tabel 2.2 Tabel Kode Warna Resistor
Warna Nilai Faktor
Pengali Toleransi
Hitam 0 X
1 -
Coklat 1
X 10 1
Merah 2
X 100 2
OrangeJingga 3 X
1000 -
Kuning 4 X
10000 -
Hijau 5 X
100000 - Biru 6
X 1000000
- Ungu 7
X 10000000
- Abu – abu
8 X 100000000
- Putih 9
X 1000000000
- Emas
- X 0.1
5
Perak -
X 0.1 10
Tidak Berwarna -
- 20
Contoh : Sebuah resistor memiliki gelang warna seperti berikut ini :
Gelang ke-1 : Coklat, memiliki nilai 1
Gelang ke-2 : Putih, memiliki nilai 9
Gelang ke-3 : Merah, merupakan faktor pengali 10²
Gelang ke-4 : Perak, memiliki nilai toleransi 10
Sehingga resistor di atas memiliki nilai 1.9 k Ω ± 10
2. Variabel resistor
Merupakan resistor yang nilai hambatannya dapat diubah-ubah. Berdasarkan cara merubah hambatannya variabel resistor dibagi menjadi 2, yaitu :
a. Trimpot
Merupakan variabel resistor yang nilai hambatannya dapat di ubah menggunakan obeng atau alat bantu. Berikut contoh gambar trimpot :
Gambar 2.12 Trimpot
b. Potensio
Merupakan variabel resistor yang nilai hambatannya dapat dirubah langsung menggunakan tangan tanpa menggunakan alat bantu dengan cara
memutar poros engkol atau menggeser kenop untuk potensio geser. Berikut contoh gambar potensio :
Gambar 2.13 Potensio
3. Resistor Non-Linear
Ada beberapa jenis resistor non-linear, diantaranya adalah : 1.
PTC Positive Temperatur Coefisien Adalah jenis resistor non linear yang nilai hambatannya terpengaruh oleh
perubahan suhu. Makin tinggi suhu di sekitarnya maka makin besar nilai hambatannya. Berikut contoh gambar dari PTC :
Gambar 2.14 Positive Temperature Coefisien
2. NTC Negative Temperatur Coefisien
Jenis resistor ini hampir sama dengan PTC, nilai hambatannya terpengaruh oleh perubahan suhu, perbedaannya adalah jika suhu semakin tinggi maka
nilai hambatannya akan semakin kecil, sebaliknya jika suhu semakin rendah maka makin besar nilai hambatannya. Berikut contoh gambar NTC :
Gambar 2.15 Negative Temperatur Coefisien
3. LDR Light Depend Resistor
Adalah jenis resistor non linear yang nilai hambatannya terpengaruh oleh intensitas cahaya yang mengenainya. Makin besar intensitas cahaya yang
mengenainya makin kecil nilai hambatannya.
2.5.3 Dioda
Dioda adalah komponen elektronika yang paling sederhana dari keluarga semikonduktor, dari simbolnya menunjukkan arah arus dari dan ini merupakan
sifat dioda, bahwa dioda hanya mengalirkan arus pada satu arah, arus hanya mengalir dari kutub Anoda ke kutub Katoda.
[3]
Satu sisi dioda disebut Anoda untuk pencatuan positif +, dan sisi lainnya disebut Katoda untuk pencatuan
negatif -, yang dalam pemasangannya tidak boleh terbalik. Secara fisik bentuk dioda seperti silinder kecil dan biasanya diberi tanda berupa lingkaran warna
putih, yang menandakan posisi kaki katoda
2.5.4 Sensor Proximity
Sensor Proximity adalah teknik pendeteksi dari keberadaan suatu obyek dengan noncontact sensor elektronik. Adapun sensor proximity yang bisa dibuat
sendiri. Dengan memanfaatkan LED sebagai sumber cahaya yang akan memancarkan warna dan photodioda sebagai penangkap cahaya. Berikut gambar
sensor proximity :
Gambar 2.16 Sensor proximity
2.5.4.1 LED Superbright
LED Light Emitting Diode adalah suatu jenis dioda yang apabila diberi tegangan maju akan membangkitkan cahaya pada pertemuan semikonduktornya.
Ada LED yang memancarkan warna merah, hijau, biru dan warna lainnya perbedaan warna disebabkan oleh perbedaan pada bahan semikonduktornya.
[5]
LED Superbright terbuat dari bahan Gallium Ga, Arsen As, dan Fosfor P atau disingkat GaAsP dan ditempatkan dalam suatu wadah yang tembus pandang.
Dilihat dari bentuknya LED banyak macamnya, tetapi cahaya yang dipancarkan LED Superbright berbeda dengan LED pada umumnya, cahayanya lebih terang
dan menyebar karena wadahnya yang transparan. Untuk membedakan antara kaki katoda dan anodanya dapat dilihat dari bentuk elektrodanya, yang besar adalah
kaki katoda. Keuntungan dari LED Superbright antara lain harganya murah, usianya yang relatif panjang lebih dari 20 tahun dan dapat dipakai dengan
tegangan rendah 1-2 V. berikut gambar LED Superbright :
Gambar 2.17 LED Superbright
2.5.4.2 Photodioda
Energi thermal menghasilkan pembawa minoritas dalam dioda, makin tinggi suhu makin besar arus dioda yang terbias reverse.
[5]
Energi cahaya juga menghasilkan pembawa minoritas. Dengan menggunakan jendela kecil untuk
membuka junction agar terkena sinar, pabrik dapat membuat dioda photo. Jika
cahaya luar mengenai junction dioda photo yang dibias reverse akan dihasilkan pasangan electron-hole dalam lapisan pengosongan. Makin kuat cahaya makin
banyak jumlah pembawa yang dihasilkan cahaya makin besar arus reverse. Sebab itu dioda photo merupakan detektor cahaya yang baik sekali. Dioda foto adalah
suatu dioda yang arus reverse-nya berubah bila mendapat penyinaran. Prinsip kerja dari dioda foto adalah apabila sebuah dioda diberi reverse
bias, maka akan mengalir arus yang kecil sekali yang disebut arus reverse melalui dioda tersebut, besarnya arus reverse ini tergantung suhu dan intensitas cahaya
yang jatuh pada deplection layer-nya. Oleh karena itu, dioda ini harus bisa tembus cahaya agar cahaya dapat mencapai deplection layer-nya sehingga terjadi arus
reverse yang besarnya tergantung intensitas cahaya yang menyinarinya. Nilai resistansi photodioda akan naik bila cahaya tidak mengenai permukaannya dan
akan turun apabila dikenai cahaya. Berikut gambar photodiode :
Gambar 2.18 Photodioda
2.5.5 Sensor GP2D12
Sensor adalah alat untuk mendeteksi atau mengukur sesuatu yang digunakan untuk mengubah variasi mekanis, magnetik, panas, sinar, dan kimia
menjadi tegangan dan arus listrik. Agar listrik dapat bekerja lebih baik dan tepat haruslah memiliki persyaratan sebagai berikut :
a. Kepekaan, yaitu sensor harus dipilih sedemikian rupa pada nilai – nilai
masukan yang ada sehingga dapat diperoleh keluaran yang cukup besar.
b. Stabilitas waktu, yaitu untuk menentukan masukan tertentu, sensor
harus dapat memberikan keluaran yang tetap nilainya dalam waktu yang lama. Sensor ini dapat berfungsi untuk berbagai keperluan seperti
pendeteksi halangan ataupun pendeteksi jarak dari suatu objek. Beberapa karakteristik dari sensor inframerah GP2D12 adalah :
Power Supply 4,5 – 5,5 Volt
Output berupa tegangan analog yang berkisar antara 0,5 – 2,6 Volt
Pembacaan jarak tidak begitu dipengaruhi oleh warna objek yang
diukur
Tidak membutuhkan rangkaian kontrol eksternal
Tidak begitu dipengaruhi oleh kondisi pencahayaan ruangan
Frekuensi sebesar 25Hz dan periode sebesar 20 mV
Sudut jangkauan yang dapat mendeteksi permukaan objek yang datar sebesar 40 derajat
Pemakaian arus sebesar 35mA
Gambar 2.19 Bentuk fisik dari sensor jarak GP2D12
2.5.5.1 Konfigurasi PIN
GP2D12 adalah sensor infra merah yang menggunakan prinsip triangulation prinsip segitiga untuk mengukur jarak. Sensor ini terdiri atas lampu
LED infra merah yang menghasilkan cahaya infra merah termodulasi yang dipancarkan ke objek yang hendak di ukur jaraknya dan sebuah array CCD yang
berfungsi sebagai detektor infra merah yang akan menerima pantulan cahaya infra merah dari objek yang diukur. Sensor GP2D12 memiliki tiga buah pin yaitu untuk
Vcc, Ground dan Vo tegangan output seperti yang diperlihatkan pada gambar .... kaki 1 merupakan kaki Vo berupa tegangan analog, kaki 2 merupakan kaki
untuk ground dan kaki 3 merupakan kaki untuk Vcc.
Gambar 2.20 Pin out GP2D12
2.5.5.2 Prinsip Kerja Sensor
Prinsip kerja dari sensor ini dalam mendeteksi jarak dari objek yang diukur adalah melalui sebuah LED inframerah yang menghasilkan cahaya infra merah
termodulasi yang dipancarkan ke objek yang hendak diukur jaraknya dan kemudian sinar yang dipancarkan oleh LED akan diterima pada bagian PSD
Positioning Sensing Device dan di ubah menjadi tegangan analog. Semakin kuat sinar yang diterima, akan semakin besar pula tegangan analog yang dikeluarkan.
Gambar 2.21 Sensor Jarak GP2D12
Berikut ini merupakan gambar blok diagram sensor GP2D12 :
Gambar 2.22 Blok Diagram Sharp GP2D12
2.5.5.3 Karakteristik Tegangan Output Terhadap Jarak Pada Sensor
Karena grafik hubungan jarak terhadap tegangan output sensor tidak linear maka dalam pengolahan data dalam prosesor dilakukan dengan
menggunakan metode look up table. Dalam metode ini dibutuhkan memori dalam ROM sebesar 255 byte untuk pemetaan data jarak. Dalam look up table tersebut
diisikan data – data jarak untuk setiap data tegangan yang diperoleh dari ADC
mulai dari tegangan 0 – 255 Volt. Karena output valid sensor adalah berkisar antara 0,5 – 2,6 Volt maka dilakukan pembagian tiga zona pengisian data :
a. Tegangan input 0,00 Volt sampai 0,49 Volt dinyatakan sebagai kondisi
sangat jauh pada jarak 80 cm b.
Tegangan input 0,50 Volt sampai 2,60 Volt adalah merupakan tegangan valid sehingga akan dilakukan penerjemahan data tegangan
ke jarak sesuai dengan data yang ada pada grafik hubungan jarak terhadap tegangan ouput sensor GP2D12 seperti pada gambar 2.23
c. Tegangan input 2,61 Volt sampai 2,65 Volt dinyatakan sebagai kondisi
terlalu dekat pada jarak 5 cm Karakteristik tegangan output dari sensor ditunjukkan pada gambar berikut ini.
Gambar 2.23 Grafik karakteristik tegangan output sensor terhadap jarak
2.5.5.4 ADC dari Tegangan Output Sensor
Dalam melakukan pemrograman mikrokontroller agar dapat terkoneksi dengan sensor jarak, setiap nilai perubahan tegangan output sensor yang berupa
tegangan analog yang diakibatkan jarak harus terlebih dahulu dikonversikan ke nilai digital agar dapat dibaca oleh mikrokontroler.
Karena tegangan output sensor untuk pembacaan jarak yang valid berkisar antara 0,5 – 2,6 Volt maka sensor ini tidak lagi membutuhkan rangkaian
pengkondisian sinyal. Masing – masing output dari sensor ini tidak lagi membutuhkan rangkaian pengkondisian sinyal. Masing – masing output dari
sensor jarak dapat langsung dihubungkan ke ADC mikrokontroler yang tegangan referensi telah diatur sebesar 2,65 Volt. Berdasarkan hal tersebut agar
memperoleh tegangan output dalam bentuk digital maka dapat digunakan rumus sebagai berikut :
Vin ADC = x 1024 .............................. 2.4
Vref Dimana :
ADC = Nilai output digital sensor
1024 = Resolusi ADC pada mikrokontroler AVR Atmega8535
Vin = Tegangan analog input sensor dari pendeteksian
Vreff = Tegangan Referensi
Adapun contoh pengkonversian tegangan output sensor jarak menjadi nilai digital adalah sebagai berikut.
Jika diketahui Vin tegangan analog input sensor yang diperoleh dari pengukuran jarak bahwa untuk jarak 10 cm maka tegangan input sensor adalah
2,6 Volt, kemudian tegangan referensi yang berasal dari Vcc adalah 5 Volt maka tegangan output dapat atau nilai ADC dapat diketahui dengan masukan nilai yang
ada pada persamaan 2.4, sehingga : 2,6
ADC = x 1024 5
maka nilai digital dari jarak 10 cm adalah 532,48
2.5.6 Optocoupler
Optocoupler merupakan piranti elektronika yang berfungsi sebagai pemisah antara rangkaian power dengan rangkaian control.
[6]
Optocoupler merupakan salah satu jenis komponen yang memanfaatkan sinar sebagai pemicu
onoff-nya. Opto berarti optic dan coupler berarti pemicu. Sehingga bisa diartikan bahwa optocoupler merupakan suatu komponen yang bekerja berdasarkan picu
cahaya optic opto-coupler termasuk dalam sensor, dimana terdiri dari dua bagian
yaitu transmitter dan receiver. Berikut gambar dari optocoupler :
Gambar 2.24 Optocoupler
2.5.7 Transistor
Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung switching, stabilisasi tegangan,
modulasi sinyal atau sebagai fungsi lainnya.
[5]
Transistor dapat berfungsi
semacam kran listrik, dimana berdasarkan arus inputnya BJT atau tegangan inputnya FET, memungkinkan pengaliran listrik yang sangat akurat dari sirkuit
sumber listriknya. Pada umumnya, transistor memiliki 3 terminal. Tegangan atau arus yang dipasang di satu terminalnya mengatur arus yang lebih besar yang
melalui 2 terminal lainnya. Transistor adalah komponen yang sangat penting dalam dunia elektronik modern. Dalam rangkaian analog, transistor digunakan
dalam amplifier penguat. Rangkaian analog melingkupi pengeras suara, sumber listrik stabil, dan penguat sinyal radio. Dalam rangkaian-rangkaian digital,
transistor digunakan sebagai saklar berkecepatan tinggi. Beberapa transistor juga dapat dirangkai sedemikian rupa sehingga berfungsi sebagai logic gate, memori,
dan komponen-komponen lainnya. Berikut bambar dari transistor :
Gambar 2.25 Transistor
2.5.8 Kondensator
Kondensator atau sering disebut sebagai kapasitor adalah suatu alat yang dapat menyimpan energi di dalam medan listrik, dengan cara mengumpulkan
ketidakseimbangan internal dari muatan listrik.
[5]
Kondensator memiliki satuan yang disebut Farad dari nama Michael Faraday. Kondensator juga dikenal sebagai
kapasitor, namun kata kondensator masih dipakai hingga saat ini. Pertama disebut oleh Alessandro Volta seorang ilmuwan Italia pada tahun 1782 dari
bahasa Itali condensatore, berkenaan dengan kemampuan alat untuk menyimpan
suatu muatan listrik yang tinggi dibanding komponen lainnya. Kebanyakan bahasa dan negara yang tidak menggunakan bahasa Inggris masih mengacu pada
perkataan bahasa Italia condensatore, bahasa Perancis condensateur, Indonesia
dan Jerman Kondensator atau Spanyol Condensador.
a. Kondensator diidentikkan mempunyai dua kaki dan dua kutub yaitu positif
dan negatif serta memiliki cairan elektrolit dan biasanya berbentuk tabung.
Lambang kondensator mempunyai kutub pada skema elektronika. b.
Sedangkan jenis yang satunya lagi kebanyakan nilai kapasitasnya lebih rendah, tidak mempunyai kutub positif atau negatif pada kakinya, kebanyakan
berbentuk bulat pipih berwarna coklat, merah, hijau dan lainnya seperti tablet atau kancing baju.
Lambang kapasitor tidak mempunyai kutub pada skema elektronika.
Gambar 2.26 Kapasior 2.5.9
Regulator
Regulator adalah rangkaian regulasi atau pengatur tegangan keluaran dari sebuah catu daya agar efek darinaik atau turunnya tegangan jala-jala tidak
mempengaruhi tegangan catu daya sehingga menjadi stabil.
[5]
Berikut gambar dari regulator.
Gambar 2.27 Regulator
2.5.10 LCD Liquid Crystal Display
Liquid Crystal Display LCD adalah sebuah perangkat optis yang dimodulasi secara elektronik.
[8]
Alat ini berbentuk panel datar tipis yang tersusun atas sejumlah piksel warna atau monokrom yang diisi dengan cristal cair yang
disusun didepan sumber cahaya atau reflector. LCD sudah digunakan di berbagai bidang, misalnya dalam alat-alat elektronik, seperti televisi, kalkulator ataupun
layar komputer. Pada LCD berwarna semacam monitor, terdapat banyak sekali titik cahaya pixel yang terdiri dari satu buah kristal cair sebagai suatu titik
cahaya. Walaupun disebut sebagai titik cahaya, namn kristal cair ini tidak memancarkan cahaya sendiri.
Sumber cahaya di dalam sebuah perangkat LCD adalah lampu neon berwarna putih di bagian belakang susunan kristal cair tadi.
Titik cahaya yang jumlahnya puluhan ribu bahkan jutaan inilah yang membentuk tampilan citra. Kutub kristal cair yang dilewati arus listrik akan berubah karena
pengaruh polarisasi medan magnetik yang timbul dan oleh karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan warna lainnya tersaring.
Gambar 2.28. Liquid Crystal Display
2.5.11 DC Motor
Motor DC adalah alat yang mengubah pulsa listrik menjadi gerak, mempunyai prinsip dasar yang sama dengan motor stepper namun gerakannya
bersifat kontinyu atau berkelanjutan.
[9]
Motor DC dibagi menjadi 2 jenis yaitu : 1.
Motor DC dengan sikat mekanis komutasi, yaitu motor yang memiliki sifat karbon berfungsi sebagai pengubah arus pada kumparan sedemikian rupa
sehingga arah tenaga putaran motor akan selalu sama 2.
Motor DC tanpa sikat, menggunakan semi konduktor untuk merubah maupun membalik arus sehingga layaknya pulsa yang menggerakkan motor tersebut.
Biasa digunakan pada sistem servo. Karena mempunyai efisiensi tinggi, umur pemakaian lama, tingkat kebisingan suara listrik rendah, karena putarannya
halus seperti stepper namun putarannya terus menerus adanya step. Dalam aplikasinya seringkali sebuah motor digunakan untuk arah yang
searah dengan jarum jam maupun sebaliknya. Untuk mengubah putaran dari sebuah motor dapat dilakukan dengan cara hardware maupun software. Dengan
cara hardware yaitu dengan mengubah arah arus yang mengalir melalui motor
tersebut. Secara sederhana seperti yang ada pada Gambar 2.29, hal ini dapat dilakukan hanya dengan mengubah polaritas tegangan motor.
Gambar 2.29. Dasar Pengaturan Arah Putar Motor
Dengan cara software yaitu motor DC yang digunakan untuk robot di kendalikan oleh transistor. Yang dimana pengaturan inputnya langsung dari
pararel port address 378-H.
2.6 Perangkat Lunak
Dalam pengoperasian perangkat keras ini agar dapat bekerja sesuai dengan yang diharapkan maka perlu suatu perangkat lunak yaitu Software yang sesuai
dengan mikrokontroller yang digunakan. Disini digunakan IC Mikrokontroller ATMega8535 yang mempunyai 8 Kb Flash Memori. Secara umum bahasa
pemrograman yang sesuai dengan mikrokontroller adalah Bahasa Assembly karena merupakan suatu bahasa mesin. Namun mikrokontroler keluarga AVR
juga mengijinkan bahasa C sebagai bahasa pemrograman untuk menjalankan instruksi – instruksi pada ATMega8535, sehingga penulis memutuskan untuk
memakai bahasa C sebagai bahasa pemrograman dalam pembuatan mobil robot pengikut garis dan pendeteksi halang rintang berbasis mikrokontroler
ATMega8535 ini. Dan untuk compiler bahasa C pada mikrokontroler ini digunakan CodeVisionAVR.
CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga
komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan Program generator. Berdasarkan spesifikasi yang dikeluarkan oleh
perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar
ANSI seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya. Tetapi walaupun demikian, dibandingkan bahasa
C untuk aplikasi komputer, compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut
ditanamkan embedded. Khusus untuk library fungsi, disamping library standar seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan
sebagainya, CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar
yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi
untuk pengaksesan LCD, komunikasi I2C, IC RTC Real time Clock, sensor suhu LM75, SPI Serial Peripheral Interface dan lain sebagainya. Untuk memudahkan
pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly. Selain menu-menu pilihan yang umum dijumpai pada setiap
perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader in system programmer yang dapat digunakan untuk
mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang deprogram. Selain itu, CodeVisionAVR juga menyediakan
sebuah tool yang dinamakan dengan Code Generator atau CodeWizardAVR. Secara praktis, tool ini sangat bermanfaat membentuk sebuah kerangka program
template, dan juga memberi kemudahan bagi programmer dalam peng- inisialisasian register-register yang terdapat pada microcontroller AVR yang
sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini
akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Secara teknis, penggunaan tool
ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman Visual untuk komputer seperti Visual C, Borland Delphi, dan
sebagainya. Berikut beberapa coding program yang banyak digunakan dalam pembuatan sebuah robot :
1. menentukan library yang digunakan
include mega8535.h Library untuk chip ATmega8535
include delay.h Library delay
2. Membuat sub rutin agar robot dapat bergerak maju
void maju
{ dirA_Ki=1;dirB_Ki=0;
Motor kiri maju dirC_Ka=1;dirD_Ka=0;
Motor kanan maju }
}
3. Membuat sub rutin agar robot belok ke kiri
void belok_kiri
{
unsigned int i;
lpwm=50; rpwm=50; Kecepatan pelan
delay_ms60; Robot dimajukan sedikit
dirA_Ki=0;dirB_Ki=1; Motor kiri mundur
dirC_Ka=1;dirD_Ka=0; Motor kanan maju
fori=0;i=1000;i++ while SkiXX ||SkiX {}; fori=0;i=1000;i++ while SkiXX || SkiX {};
lpwm=0; rpwm=0; Robot berhenti
}
4. Membuat sub rutin agar robot belok ke kanan
void belok_kanan
{
unsigned int i;
lpwm=50; rpwm=50; Kecepatan pelan
delay_ms60; Robot dimajukan sedikit
dirA_Ki=1;dirB_Ki=0; Motor kiri maju
dirC_Ka=0;dirD_Ka=1; Motor kanan mundur
fori=0;i=1000;i++ while SkaXX ||SkaX {}; fori=0;i=1000;i++ while SkaXX || SkaX {};
lpwm=0; rpwm=0; Robot berhenti
}
5. Membuat sub rutin membaca file
unsigned char sensor; void scan_rule1
{ maju;
Robot bergerak maju sensor=PIND;
PIND diberi nama sensor sensor=0b00111111;
sensor di-AND-kan dengan 0b00111111
switchsensor
{
case 0b00111110: rpwm=0; lpwm=200; x=1; break; case 0b00111100: rpwm=50; lpwm=200; x=1; break;
case 0b00111101: rpwm=75; lpwm=200; x=1; break; case 0b00111001: rpwm=100; lpwm=200; x=1; break;
case 0b00111011: rpwm=150; lpwm=200; x=1; break; case 0b00110011: rpwm=200; lpwm=200; break;
case 0b00110111: rpwm=200; lpwm=150; x=0; break; case 0b00100111: rpwm=200; lpwm=100; x=0; break;
case 0b00101111: rpwm=200; lpwm=75; x=0; break; case 0b00001111: rpwm=200; lpwm=50; x=0; break;
case 0b00011111: rpwm=200; lpwm=0; x=0; break; case 0b00111111: break;
ifx {lpwm=50; rpwm=0; break;}
else {lpwm=0; rpwm=50; break;}
} }
Variabel x ini berfungsi sebagai pengingat posisi terakhir robot terhadap garis. Jika robot berada di kanan garis, maka x=0. Jika robot berada di kiri garis, maka
x=1. Ketika robot lepas dari track, maka program akan membaca kondisi variable x, sehingga dapat ditentukan arah gerak robot agar robot dapat kembali ke garis,
seperti terlihat pada instruksi berikut :
ifx {lpwm=50; rpwm=0; break;} else {lpwm=0; rpwm=50; break;}
Jika x=1 maka robot belok kanan, jika x=0 maka robot belok kiri.
BAB III PERANCANGAN
Pada Bab ini akan dibahas mengenai beberapa hal dasar tentang bagaimana perancangan sebuah robot, komponen-komponen apa saja yang
dibutuhkan dalam perancangan robot pengikut garis, bagaimana cara merancang robot mobil, Flowchart fsm algoritma pergerakan Robot mobil, Blok Diagram
Hardware Robot mobil dan Analisa setelah robot mobil selesai dibuat.
3.1 Perancangan Robot Mobil
Dalam pembuatan robot ini penulis memperhatikan beberapa aspek yang dibutuhkan, yaitu :
1. Mobil ini dirancang agar dapat melaju secara otomatis pada rute
yang sudah disediakan. 2.
Selain mengikuti rute yang ada mobil ini juga dirancang untuk dapat membedakan warna merah, kuning, hijau dan dapat melakukan aksi
yang sesuai dengan warna yang dikenali. Jika melihat warna merah mobil akan berhenti, jika melihat warna kuning mobil akan
mengurangi kecepatan, jika melihat warna hijau mobil akan tetap melaju.
3. Mobil ini dirancang dengan menggunakan Mikrokontroller
ATMega8535. 4.
Mobil ini nantinya akan menghadapi rintangan yang di dalamnya terdapat perempatan dan pertigaan. Setiap ada perempatan maka