Diberdayakan oleh Blogger.
RSS
Post Icon

Cara Membuat Robot Line Follower Dengan ATMega


Membuat Robot Line Follower


Nah…kali ini saya ingin share tentang bagaimana membuat robot line follower sederhana. Robot line follower ini menggunakan mikrokontroller yitu jenis ATMega8 dengan menggunakan codevision AVR.
Disini saya akan menerangkan bagaimana langkah – langkah membuat robot line follower yang sederhana. Bagi para pecinta robotika yang mungkin bru mulai belajar tentang robotika sebaiknya belajar dulu membuat robot yang paling sederhana dulu.

Robot line follower, adalah sebuah robot yang bisa bergerak mengikuti garis tebal berwarna hitam. Bagaimana bisa robot ini mengikuti garis hitam? Tentulah diperlukan sebuah sensor. Sensor ini bisa kita buat sendiri. Prinsip kerjanya sederhana, hanya memanfaatkan sifat cahaya yang akan dipantulkan jika mengenai benda berwarna terang dan akan diserap jika mengenai benda berwarna gelap. Sebagai sumber cahaya kita gunakan LED (Light Emiting Diode) yang akan memancarkan cahaya putih dan untuk menangkap pantulan cahaya LED kita gunakan photodiode. Jika sensor berada diatas garis hitam maka photodioda akan menerima sedikit sekali cahaya pantulan. Tetapi jika sensor berada diatas garis putih maka photodioda akan menerima banyak cahaya pantulan.
Berikut ilustrasi dari sensor garis :
sensor
  1. a.  Cahaya pantulan sedikit
  2. b.  Cahaya pantulan banyak
Sifat dari photodioda adalah jika semakin banyak cahaya yang diterima, maka nilai resistansi diodanya semakin kecil. Dengan melakukan sedikit  modifikasi, maka besaran resistansi tersebut dapat diubah menjadi tegangan.  Sehingga jika sensor berada diatas garis hitam, maka tegangan keluaran sensor akan kecil, demikian pula sebaliknya. 
Agar dapat dibaca oleh mikrokontroler, maka tegangan sensor harus disesuaikan dengan level tegangan TTL yaitu 0 – 1 volt untuk logika 0 dan 3 – 5 volt untuk logika 1.
Berikut rangkaian sensor dan komparator :
komparator

Sebagai otak dari robot ini kita menggunakan ATMega8. Berikut adalah rangkaian minimum system ATMega 8 :
download datasheet ATMega8 klik disini
 minsys
Agar dapat ”berfikir”, maka mikrokontroler harus diprogram terlebih dahulu. Berikut ini adalah program robot line follower yang dibuat menggunakan software CodeVisionAVR.
#include <mega8.h>
#include <delay.h>
#define senka1   PIND.0
#define senka2   PIND.1
#define senki2    PIND.2
#define senki1    PIND.3
#define enki        PORTC.0
#define enka       PORTC.5
#define dirA_ki   PORTC.2
#define dirB_ki   PORTC.1
#define dirC_ka  PORTC.4
#define dirD_ka  PORTC.3
#define pb_start  PINB.0
#define on  0
#define off 1
bit start;
unsigned char xcount,lpwm,rpwm;
xcount++;
if (xcount <=lpwm){ enki=1;}
else {enki=0;}
if (xcount <=rpwm) {enka=1;}
else {enka=0;}
if (pb_start==on)     start=on;
else if (pb_start==off)    start=off;
TCNT0=0xFF;
}
void maju()
{
dirA_ki=1;
dirB_ki=0;
dirC_ka=0;
dirD_ka=1;
}
void belok_kanan()
{
dirA_ki=1;
dirB_ki=0;
dirC_ka=1;
dirD_ka=0;
}
void belok_kiri()
{
dirA_ki=0;
dirB_ki=1;
dirC_ka=0;
dirD_ka=1;
}
bit x;
unsigned char sensor;
void scan_garis()
{
sensor=PIND;
if           (sensor==0b11111110)     {maju(); rpwm=30;     lpwm=90;            x=1;}
else if   (sensor==0b11111100)     {maju(); rpwm=50;     lpwm=90;           x=1;}
else if   (sensor==0b11111101)     {maju(); rpwm=70;     lpwm=100;        x=1;}
else if   (sensor==0b11111000)     {maju(); rpwm=160;  lpwm=110;         x=1;}
else if   (sensor==0b11111001)     {maju(); rpwm=220;  lpwm=220; }
else if   (sensor==0b11110001)     {maju(); rpwm=160;  lpwm=110;         x=0;}
else if   (sensor==0b11111011)     {maju(); rpwm=100;  lpwm=70;           x=0;}
else if   (sensor==0b11110011)     {maju(); rpwm=90;     lpwm=50;           x=0;}
else if   (sensor==0b11110111)     {maju(); rpwm=90;     lpwm=30;           x=0;}
else if   (sensor==0b11111111)
{
if   (x==1)   {belok_kanan();  rpwm = 60; lpwm = 60; }
else            {belok_kiri();         rpwm = 60; lpwm = 60; }
}
}
Setelah selesai membuat program, maka kita harus men”download”nya  ke dalam mikrokontroler.

Untuk rangkaian driver motor saya menggunakan L298. Berikut skematiknya :
download datasheet L298 klik disini
motor
berikut ini adalah beberapa gambar hasil robot buatan saya……  ya meskipun bentuknya kurang estetika…tapi robotnya mampu berjalan sesuai dengan programnya…

sensor real tampak samping board
Mungkin cukup ini dulu……silahkan berkreasi dengan programnya…..
Semoga bermanfaat……

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

1 komentar:

sam-12180615 mengatakan...

kok pas compile ada yang error ya kak

Posting Komentar