DESAIN PROTEUS & PROGRAM Code Vision AVR ROBOT LINE FOLLOWER DIGITAL RA04

DESAIN PROTEUS & PROGRAM Code Vision AVR ROBOT LINE FOLLOWER DIGITAL RA04

Silahkan download file pdf berikut:
Robot autonomous line follower bolabot

Untuk yang membutuhkan simulasi Robot Line Follower Digital, silahkan download File berikut:
1. Desain Proteus dan Code Vision AVR Line Follower ATMega 16
2. Desain Proteus dan Code Vision AVR Line Follower ATMega 8

Line follower Robot (Robot Pengikut Garis) adalah robot yang dapat berjalan mengikuti sebuah lintasan, ada yang menyebutnya dengan Line TrackerLine Tracer Robot dan sebagainya. Garis yang dimaksud adalah garis berwarna hitam diatas permukaan berwarna putih atau sebaliknya, ada juga lintasan dengan warna lain dengan permukaan yang kontras dengan warna garisnya. Ada juga garis yang tak terlihat yang digunakan sebagai lintasan robot, misalnya medan magnet.

Gambar 1. Ilustrasi robot line follower dengan posisi sensor di atas permukaan putih
Seperti layaknya manusia, bagaimana manusia dapat berjalan mengikuti jalan yang ada tanpa menabrak dan sebagainya, tentunya karena manusia memiliki “mata” sebagai penginderanya. Begitu juga robot line follower ini, dia memiliki sensor garis yang berfungsi seperti “mata” pada manusia. Sensor garis ini mendeteksi adanya garis atau tidak pada permukaan lintasan robot tersebut, dan informasi yang diterima sensor garis kemudian diteruskan ke prosesor untuk diolah sedemikian rupa dan akhirnya hasil informasi hasil olahannya akan diteruskan ke penggerak atau motor agar motor dapat menyesuaikan gerak tubuh robot sesuai garis yang dideteksinya.

Gambar 2. Diagram blok robot line follower

Untuk merangkai rangkaian elektroniknya kita perlu tahu dulu diagram blok sistem yang akan kita bangun, dengan demikian akan menjadi mudah mengerjakannya. Blok sistem yang akan kita bagun paling tidak tampak seperti gambar berikut. Sistemnya terdiri dari sensor garis, rangkaian komparator, sistem minimum AT Mega dan motor driver.
ROBOT LINE FOLLOWER DIGITAL MIKROKONTROLER ATMEGA 16

Desain berikut menggunakan mikrokontroler ATmega 16, LCD 2x 16, 2 buah sensor phototransistor

Skema Lengkap Line follower Digital IC Komparator
Pada skema lengkap robot line follower didesain dengan posisi sensor di atas permukaan putih. Dua buah sistem sensor di pasang pada pin B.0 dan B.1, sedangkan sistem actuator motor DC dipasang pada Port D.0 dan D.1 untuk motor kiri, D.2 dan D.3 untuk motor kanan. Prinsip kerja robot line followerberikut adalah saat sistem sensor berada di atas permukaan putih, akan ada pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR berkurang sehingga arus bergerak melalui LDR. Kondisi tersebut menyebabkan arus output sensor menuju IC komparator LM 393 menjadi minimum, oleh IC LM 393, arus di non-inverting sehingga output menuju pin mikrokontroler menjadi LOW (0). Sebaliknya, saat sistem sensor berada di atas garis hitam, tidak akan ada pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR sangat besar sehingga arus tidak akan melalui LDR. Kondisi tersebut menyebabkan arus output sensor menuju IC komparator LM 393 menjadi maksimum, oleh IC LM 393, arus di non-inverting sehingga output menuju pin mikrokontroler menjadi HIGH (1). Oleh mikrokontroler data logika pin tersebut kemudian diolah untuk mengerakan motor, motor akan bergerak jika kedua pin motor tersebut memiliki beda polaritas. Selengkapnya mengenai logika gerak robot dapat dilihat pada Tabel 1 dan 2.
Tabel 1. Kondisi Gerak Motor dan pengaruh Sensor

KondisiB.0 = 0B.0 =1
B.1 = 0MajuBelok Kiri
B.1 = 1Belok KananMati

Tabel 2. Kondisi Gerak Motor dan Kondisi Logika Tiap Pin Motor

KondisiD.0D.1D.2D.3
Maju0101
Belok Kiri1001
Belok Kanan0110
Mati1111

Gambar 3. Skema lengkap robot line follower menggunakan AT Mega 16

PROGRAM ROBOT LINE FOLLOWER DIGITAL ATMEGA 16 MENGGUNAKAN CODE VISION AVR

/*****************************************************This program was produced by theCodeWizardAVR V2.05.0 ProfessionalAutomatic Program Generator© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project : Robot Line followerVersion : IDate    : 11/8/2012Author  : Mada Sanjaya WS, Ph.DCompany : Bolabot Techno Robotic SchoolComments: www. bolabot. com
Chip type                 : ATmega16Program type            : ApplicationAVR Core Clock frequency: 12.000000 MHzMemory model            : SmallExternal RAM size       : 0Data Stack size         : 256*****************************************************/#include <mega16.h># include <delay.h> //tambahan program untuk membuat waktu tunda
// Alphanumeric LCD Module functions#include <alcd.h>
// Declare your global variables here
void main(void){// Declare your local variables here
// Input/Output Ports initialization// Port A 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=TPORTA=0x00;DDRA=0x00;
// Port B 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=TPORTB=0x00;DDRB=0x00;
// Port C 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=TPORTC=0x00;DDRC=0x00;
// Port D initialization// Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=TPORTD=0x00;DDRD=0x30;
// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=0xFF// OC0 output: DisconnectedTCCR0=0x00;TCNT0=0x00;OCR0=0x00;
// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: 11.719 kHz// Mode: Fast PWM top=0x00FF// OC1A output: Non-Inv.// OC1B output: Non-Inv.// 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: OffTCCR1A=0xA1;TCCR1B=0x0D;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;
// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer2 Stopped// Mode: Normal top=0xFF// OC2 output: DisconnectedASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00;
// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0x00;MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00;
// USART initialization// USART disabledUCSRB=0x00;
// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00;
// ADC initialization// ADC disabledADCSRA=0x00;
// SPI initialization// SPI disabledSPCR=0x00;
// TWI initialization// TWI disabledTWCR=0x00;
// Alphanumeric LCD initialization// Connections specified in the// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:// RS - PORTC Bit 0// RD - PORTC Bit 1// EN - PORTC Bit 2// D4 - PORTC Bit 4// D5 - PORTC Bit 5// D6 - PORTC Bit 6// D7 - PORTC Bit 7// Characters/line: 16lcd_init(16);
// Tambahan kode mendefinisikan input outputDDRB.0=0; // input sensor kiriDDRB.1=0; // input sensor kananDDRD.0=1; // output motor kiriDDRD.1=1; // output motor kiriDDRD.2=1; // output motor kananDDRD.3=1; // output motor kanan// Tambahan kode mendefinisikan kecepatan motor PWMOCR1A=200;// kecepatan dapat diubah sesuai kebutuhanOCR1B=200;// kecepatan dapat diubah sesuai kebutuhan// Tambahan kode mendefinisikan kondisi awalPORTB.0=1;   //sensor kiriPORTB.1=1;   //sensor kananPORTD.0=0;PORTD.1=0;PORTD.2=0;PORTD.3=0;while (1)      {if (PINB.0==1 &  PINB.1==0)   //    Tambahan kode sensor kiri hitam, kanan putih, maka belok kiri{ PORTD.0=1;PORTD.1=0;PORTD.2=0;PORTD.3=1;lcd_clear ();lcd_gotoxy(0,0);lcd_putsf("B0=1 B1=0");lcd_gotoxy(0,1);lcd_putsf("BELOK KIRI");delay_ms(100);}else if (PINB.0==0 &  PINB.1==1)   //    Tambahan kode sensor kiri putih, kanan hitam, maka belok kanan{ PORTD.0=0;PORTD.1=1;PORTD.2=1;PORTD.3=0;lcd_clear();lcd_gotoxy(0,0);lcd_putsf("B0=0 B1=1");lcd_gotoxy(0,1);lcd_putsf("BELOK KANAN");delay_ms(100);}else if (PINB.0==1 &  PINB.1==1)   //    Tambahan kode sensor kiri hitam, kanan hitam, maka mati{ PORTD.0=0;PORTD.1=0;PORTD.2=0;PORTD.3=0;lcd_clear ();lcd_gotoxy(0,0);lcd_putsf("B0=1 B1=1");lcd_gotoxy(0,1);lcd_putsf("MATI");delay_ms(100);}else      //    Tambahan kode sensor kiri putih, kanan putih, maka bergerak maju{ PORTD.0=0;PORTD.1=1;PORTD.2=0;PORTD.3=1;lcd_clear();lcd_gotoxy(0,0);lcd_putsf("B0=0 B1=0");lcd_gotoxy(0,1);lcd_putsf("MAJU");delay_ms(100);}      }}

ROBOT LINE FOLLOWER DIGITAL SEDERHANA DENGAN ATMEGA 8
Jika desain diatas dibuat menggunakan mikrokontroler AT mega 8, maka berikut ini merupakan desain robot line follower digital menggunakan mikrokontroler ATmega 8, dan 2 buah sensor phototransistor yang lebih sederhana.

Gambar 4. Skema lengkap robot line follower menggunakan AT Mega 8
PROGRAM ROBOT LINE FOLLOWER DIGITAL ATMEGA 8 MENGGUNAKAN CODE VISION

AVR/*****************************************************This program was produced by theCodeWizardAVR V2.05.0 ProfessionalAutomatic Program Generator© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com
Project : Bolabot Line Follower Digital AT Mega 8Version : IDate    : 3/3/2013Author  : Mada Sanjaya WS, Ph.DCompany : Bolabot Techno Robotic InstituteComments: Semangat!!

Chip type               : ATmega8Program type            : ApplicationAVR Core Clock frequency: 12.000000 MHzMemory model            : SmallExternal RAM size       : 0Data Stack size         : 256*****************************************************/
#include <mega8.h>
// Declare your global variables here
void main(void){// Declare your local variables here
// Input/Output Ports initialization// Port B initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=In // State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=T PORTB=0x00;DDRB=0x06;
// Port C initialization// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;DDRC=0x00;
// 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 StoppedTCCR0=0x00;TCNT0=0x00;
// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: 11.719 kHz// Mode: Fast PWM top=0x00FF// OC1A output: Non-Inv.// OC1B output: Non-Inv.// 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: OffTCCR1A=0xA1;TCCR1B=0x0D;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;
// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer2 Stopped// Mode: Normal top=0xFF// OC2 output: DisconnectedASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00;
// External Interrupt(s) initialization// INT0: Off// INT1: OffMCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00;
// USART initialization// USART disabledUCSRB=0x00;
// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00;
// ADC initialization// ADC disabledADCSRA=0x00;
// SPI initialization// SPI disabledSPCR=0x00;
// TWI initialization// TWI disabledTWCR=0x00;DDRD.5=1;   // ke motorDDRD.6=1;   // ke motorDDRD.7=1;   // ke motorDDRB.0=1;   // ke motorDDRC.4=0;    // input sensorDDRC.3=0;    // input sensorPORTD.5=1;PORTD.6=1;PORTD.7=1;PORTB.0=1;OCR1A=150;  // kecepatan motor dapat diatur sesuai kebutuhanOCR1B=150;  // kecepatan motor dapat diatur sesuai kebutuhanwhile (1)      {if (PINC.3==1 & PINC.4==0 ){PORTD.5=1;PORTD.6=0;PORTD.7=0;PORTB.0=1;}else if (PINC.3==0 & PINC.4==1){PORTD.5=0;PORTD.6=1;PORTD.7=1;PORTB.0=0;}else{PORTD.5=1;PORTD.6=0;PORTD.7=1;PORTB.0=0;}      }}

Berikut adalah video robot line follower digital sederhana karya Profesor Bolabot menggunakan ATMega 8 dan 2 sensor cahaya Phototransistor

Selamat Mencoba!!!

sumber : http://profesorbolabot.blogspot.com/2013/03/desain-proteus-program-cv-avr-robot.html


Dukung kami berkembang dengan Subscribe