Rangkaian Mekanika Perangkat Lunak

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