line follower robot

Upload: rizki-dwi-kurniawan

Post on 05-Jan-2016

227 views

Category:

Documents


1 download

DESCRIPTION

Line Follower Robot

TRANSCRIPT

LINE FOLLOWER ROBOT

LAPORANDiajukan untuk memenuhi sebagian persyaratan Kelulusan Mata Kuliah Robotika

DISUSUN OLEH :NAMA: Edwin Widyaprianto Prabowo ( E03130095 ) : Muhammad Syafiq ( E03130106 ) : Muhammad Hafyzh ( E03130101 )KELAS : Elektronika - IV A

KEMENTRIAN PENDIDIKAN DAN KEBUDAYAANPOLITEKNIK NEGERI BANJARMASINPROGRAM STUDI TEKNIK ELEKTRONIKA2015

I KAJIAN TEORI

1.1 Penjelasan Umum

Gambar 1.1 Line Follower Robot

Line Follower Robot adalah sebuah alat yang dapat berjalan secara otomatis mengikuti garis berdasarkan perubahan warna pada garis baik hitam dan putih. Hasil dari perubahan warna tersebut menyebabkan nilai pada photo diode berubah sehingga menyebabkan nilai yang masuk ke dalam port ADC pada mikrokontroller berubah, dan nilai ADC tersebut yang akan kita oleh menjadi sebuah input.Line Follower ini mempunyai dua buah motor DC 6 Volt yang dapat digerakkan maju dan mundur dengan menggunakan driver motor L293D, saat sensor mendeteksi adanya garis hitam ditengah dari wilayah sensor maka kedua motor akan berjalan searah jarum jam sehingga robot maju, dan ketika sensor mendeteksi adanya garis hitam dipinggir wilayah sensor maka salah satu motor akan berputar searah jarum jam dan yang satu berlawanan arah jarum jam sehingga robot akan bergerak ke arah kanan atau kiri. Dan ketika sensor tidak mendeteksi adanya garis pada wilayah sensor maka robot akan berjalan mundur.Robot ini dapat dikembangkan lagi menjadi sebuah aplikasi yang berguna baik di masyarakat maupun di industri, contohnya sebagai sebuah alat pengantar barang secara otomatis atau terprogram.

1.2 ATMEGA 8535

ATMega8535merupakan salah satumikrokontroler8 bit buatanAtmeluntuk keluargaAVRyang diproduksi secara masal pada tahun2006. Karena merupakan keluarga AVR, maka ATMega8535 juga menggunakan arsitekturRISC.Secara singkat, ATMega8535[1]memiliki beberapa kemampuan:1. Sistemmikrokontroler8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.2. Memiliki memori flash 8 KB, SRAM sebesar 512 byte danEEPROM(Electrically Erasable Programmable Read Only Memory) sebesar 512 byte.3. Memiliki ADC (Pengubah analog-ke-digital) internal dengan ketelitian 10 bit sebanyak 8 saluran.4. Memiliki PWM (Pulse Width Modulation) internal sebanyak 4 saluran.5. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.6. Enam pilihan mode sleep, untuk menghemat penggunaan daya listrik.

Mikrokontroler ATMega8535 memiliki 40 pin untuk modelPDIP, dan 44 pin untuk modelTQFPdanPLCC. Nama-nama pin pada mikrokontroler ini adalah1. VCCuntukteganganpencatu dayapositif.2. GND untuk tegangan pencatu daya negatif.3. PortA (PA0 - PA7) sebagai portInput/Outputdan memiliki kemampuan lain yaitu sebagai input untukADC4. PortB (PB0 PB7) sebagai port Input/Output dan juga memiliki kemampuan yang lain.5. PortC (PC0 PC7) sebagai port Input/Output untuk ATMega8535.6. PortD (PD0 PD7) sebagai port Input/Output dan juga memiliki kemampuan yang lain.7. RESET untuk melakukan reset program dalam mikrokontroler.8. XTAL1 dan XTAL2 untuk input pembangkit sinyal clock.9. AVCC untuk pin masukan tegangan pencatu daya untuk ADC.10. AREF untuk pintegangan referensiADC.

Mikrokontroler memiliki arsitektur RISC 8 bit, di mana semua instruksi dikemas dalam kode 16-bit(16-bits word)dan sebagian besar instruksi dieksekusi dalam satu siklus clock. Mikrokontroler ATMega 8535 memiliki saluran I/O sebagai berikut:a)Port A(PA0 PA7) merupakan pin I/O dua arah dan pin masukkan ADCb)Port B(PB0 PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu timer/counter, komparator analog, dan SPI.c)Port C(PC0 PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan timer oscillator.d)Port D(PD0 PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator analog, interupsi eksternal, komunikasi serial.

1.3 Sensor GarisSensor garis sering digunakan pada robot line follower (robot pengikut garis), digunakan juga sebagai pendeteksi objek dengan permukaan bidang pantul yang kontras. nach pada blog ini dijelaskan bagaimana cara mendesain sensor garis tersebut menggunakan sensorphotodiode. Selain menggunakanphotodiodedapat juga dirancang dengan menggunakanphototranssistor,infra red, dan masih banyak laennya.Sensorphotodiodeadalah salah satu jenis sensor peka cahaya (photodetector).Photodiodeakan mengalirkan arus yang membentuk fungsi linear terhadap intensitas cahaya yang diterima. Arus ini umumnya teratur terhadappower density(Dp). Perbandingan antara arus keluaran denganpower densitydisebut sebagaicurrent responsitivity.Arus yang dimaksud adalah arus bocor ketika photodiode tersebut disinari dan dalam keadaan dipanjar mundur.Hubungan antara keluaran sensorphotodiodedengan intensitas cahaya yang diterimanya ketika dipanjar mundur adalah membentuk suatu fungsi yang linier. Hubungan antara keluaran sensorphotodiodedengan intensitas cahaya ditunjukkan pada Gambar berikut.

GambarHubungan keluaranphotodiodedengan intensitas cahaya

Mekanisme Perancangan Sensor GarisLEDsuperbrightberfungsi sebagai pengirim cahaya ke garis untuk dipantulkan lalu dibaca oleh sensorphotodiode. Sifat dari warna putih (permukaan terang) yang memantulkan cahaya dan warna hitam (permukaan gelap) yang tidak memantulkan cahaya digunakan dalam aplikasi ini. Gambar dibawah ini adalah ilustrasi mekanisme sensor garis.

GambarIlustrasi mekanisme sensor garisPrinsip Kerja SensorPada rancangan sensor photodiode dibawah ini, nilai resistansinya akan berkurang bila terkena cahaya dan bekerja pada kondisiriversebias. Untuk pemberi pantulan cahayanya digunakan LEDsuperbright, komponen ini mempunyai cahaya yang sangat terang, sehingga cukup untuk mensuplai pantulan cahaya kephotodiode. Berikut ini prinsip dan gambaran kerja dari sensorphotodiode.

2.1 Bagian Utama Robot2.2.1 Rangka Dan BodyBagian ini digunakan untuk meletakkan semua komponen yang melengkapi robot seperti minimum sistem, baterai, sensor, driver motor, dan lain lain. Bagian ini juga yang menentukan kestabilan dari pergerakkan robot tersebut. 2.2.2 Minimum System

Minimum sistem merupakan bagian utama dari robot ini, dimana pada bagian ini digunakan untuk meletakkan semua komponen dari mikrokontroller baik ATMEGA 8535, port I/O, supply utama, dan lain lain.

2.2.3 Sensor

Sensor digunakan sebagai input dari robot, pada sensor ini terdapat 4 buah photo diode, 4 buah infra red, dan beberapa resistor sebagai pembagi tegangan. Pada gambar dibawah diperlihatkan salah satu penggunaan photo diode dan infra red sebagai input.

Gambar 2.4 Perangkaian Photo Diode dan Infra Red

Dengan rangkaian diatas kita dapat memperoleh perbedaan nilai yang ditangkap oleh photo diode melalui Output CN1, output tersebut kita jadikan input pada mikrokontroller melalui port A (ADC).

2.2.4 Driver Motor

Driver motor digunakan untuk mengendalikan motor sehingga dapat berputar searah maupun berlawanan jarum jam sehingga membuat motor dapat bergerak maju dan mundur.

2.2.5 Motor

Gambar 2.7 Motor pada Line Follower

Motor yang kita gunakan disini adalah motor DC 6 Volt, Kelemahan dari motor ini adalah tidak mempunyai torsi yang cukup besar untuk menahan beban, walaupun mempunyai kecepatan yang cukup baik.

2.2.6 LCD Charachter 16 x 2Komponen ini digunakan saat meriset berapa range warna yang di deteksi.

CODING PROGRAM LINE FOLLOWER DALAM BAHASA C-AVR#include #include

// Alphanumeric LCD functions#include #include

#define EN1 OCR1A // PORTD.5 --> PWM KIRI#define EN2 OCR1B // PORTD.4 --> PWM KANAN

#define M1IN1 PORTB.0 // MOTOR KIRI#define M1IN2 PORTB.1 // MOTOR KIRI#define M2IN1 PORTB.2 // MOTOR KANAN#define M2IN2 PORTB.3 // MOTOR KANAN

#define sw1 PINB.4#define sw2 PINB.5#define sw3 PINB.6#define sw4 PINB.7

// Declare your global variables hereunsigned char x;int i, adc;eeprom int line[10], bg[10], reff[10];unsigned char lcd[33], sen[10], sensor;

// ADC 8 Bit#define ADC_VREF_TYPE 0x60

// Read the 8 most significant bits// of the AD conversion resultunsigned char read_adc(unsigned char adc_input){ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);// Delay needed for the stabilization of the ADC input voltagedelay_us(10);// Start the AD conversionADCSRA|=0x40;// Wait for the AD conversion to completewhile ((ADCSRA & 0x10)==0);ADCSRA|=0x10;return ADCH;}

//***** PROGRAM MOTOR *****//void stop(){ EN1=0; EN2=0;

M1IN1=1; M1IN2=1; M2IN1=1; M2IN2=1;}

void maju (unsigned char kiri, unsigned char kanan){ EN1=kiri; EN2=kanan;

M1IN1=1; M1IN2=0; M2IN1=1; M2IN2=0;}

void keka (){ EN1=225; EN2=125;

M1IN1=1; M1IN2=0; M2IN1=1; M2IN2=0;}

void keki (){ EN1=120; EN2=190;

M1IN1=1; M1IN2=0; M2IN1=1; M2IN2=0;}

void mundur (){ EN1=230; EN2=205;

M1IN1=0; M1IN2=1; M2IN1=0; M2IN2=1;}//*************************//

void tes_sensor(){ for(i=0;i