Membuat line follower
LINE follower robot adalah robot penjejak garis,robot yang mengikuti garis dan dengan rintangan yang ada dari start sampai finish. Semakin banyak LF mengatasi berbagai rintangan track semakin perfect LF yang dibuat. Semua itu tergantung dari hardware, software dengan algoritma yang dibuat , sensor, presisi dari gearbox dan power battery.
Hardware yang dibutuhkan dalam pembuaan line follower robor:
1. Gearbox
2. Sensor
3. Modul microcontroller
4. Modul driver motor
5. Modul driver sensor
6. Battery
7. PCB
Ketujuh hal hardware diatas akan dikupas satu-persatu.
1. Gearbox
Hal yang harus terpecahkan adalah gearbox, karena gearbox ini hal yang paling dibutuhkan, gearbox selesai maka akan menjadi mudah dalam mengerjakan yang lainnya.
Kata temen saya buat gearbox 4 hari lamanya dan buat sampai line follower jadi cuma 1 hari….saja!!!
Buat gear box pasti akan membuat frustasi dan butuh kesabaran……pertanyaanya: Apakan bisa gearbox dibuat hanya dengan waktu 2 jam saja dan dapat digunakan untuk lebih dari 1 th??????
Harus bisa dong………!!!!!
Ayo buat gearbox yang paten……
Gearbox yang paling umum digunakan seperti yang ditampilkan dibawah ini.
Yang dibuhkan untuk membuat gearbox 1 sisi ( jika 2 sisi maka x2 ):
a. Spinser kecil 1cm 2 buah
b. Mur baut kecil 1 buah
c. Gear kecil 11 gigi 1 buah
d. Gear double 12:36 1 buah
e. Gear besar single +/-36 gigi 1 buah
f. PCB 2x ( 6cm x 4cm ) / menyesuaikan
g. Pelek ban yang sesuai dengan ban-nya
h. Ban 1 buah
i. As ban 1 buah
j. Keleng untuk as ban agar mulus 2 buah
k. Gear sembarang untuk toys tamia 1 buah
l. Alteco untuk lem
m. Karet gelang 1 gelang
n. Isi pena
o. Motor DC + bautnya
p. Double tape
Semakin banyak bahan yang digunakan untuk gearbox maka semakin lengkap dan hasilnya jelas akan semakin presisi dan bagus.
Langkahnya:
a. Merangkai ban dengan peleknya, as ban, karet gelang, alteco, gear besar single ( +/- 36 gigi ) gear tamiya sembarang.
As yang paling awet yaitu as besar sebagi contoh as pada gearbox tank mainan, bisa digunakan paling tidak lebih dari 1 th dan tidak mudah bengkong / melengkung. Jika menggunakan as tamiya biasa pasti akan melengkung / silahkan pakai yang bags menurut anda.
- As dipasang pada pelek ban, jika dibutuhkan perekat lem, silahkan pakai alteco.
- Pasang gear sembarang tamiya pada as, jangan terlalu mepet dengan pelek ban
- Akan ada sela dari pelek ban dan gear sembarang yang dipasang, disela-sela tersebut diberi karet gelang dengan kencang untuk itu perlu juga diberi alteco saat pelilitan karet gelangnya untuk merekatkan pelek ban dengan gear sembarang sehingga as dan ban dengan pleknya sangatlah kuat.
HE…hE…teringat saat ban beserta peleknya lepas dengan as-nya saat lomba berjalan,,,,it’s humorous moment. Perlukah terjadi??? Mungkin lucu….
- Selanjutnya pasang ban ke peleknya
- Selesai untuk tahap 1
b. Merangkai motor dengan gear 11 gigi,,,,,masih gampang!!!
c. Merangkai peletakan gear, motor beserta gear 11 gigi , as ban dll dengan gear +/-36 gigi, keleng spinser 1cm
- Pertama siapkan PCB yang kita inginkan 4cm x 6 cm 1 pasang atau sesuai selera
- Garisi tengah untuk kedua PCB
- Rekatkan jadi satu dengan double tape dengan sisi yang digarisi tampak dari luar
- Ukur dari bawah kira-kira 6/7 mm untuk peletakan as dan keleng yang dipersiapkan
- Tandai dan dibor dengan bor 1mm dan diperbesar 2 mm dengan screwdriver 2mm, ingat jangan memakai bor dijamin hasilnya akan jelek,coba saja kalau tak percaya.
- Pasang gear +/- 36 dengan mor dan baut kecil agak kencang
- Paskan geae double besar +/- 36 gigi dan kecil 12 gigi di atas gear single sampai gigi kecil menyentuh dari gigi besar ban, tandai dan pastikan tanda pas ditengah.
- Bor dan besarkan sampai 2mm
- Selanjutnya membuat lobang diatas gear tersebut sembarang kurang lebih 3 mm / selera
Dilobangi dan besarkan sampai 6mm / gear kecil gigi 11 masuk
- membuat tempat baut motor dengan menggaris vertical dengan garis tengah sama dengan motor terhadap baut yang diinginkan
- Membuat tempat spinser 1 cm ditempat yang tak mengganggu gear
- Lepas semua untuk gear dan mor baut dan double tape
- Membuat tempat as dengan kelengnya, apabila menggunakan as besar maka menggunakan mur 3mm dan apabila menggunakan as tamiya dengan keleng yang disediakan ditiko toys tamiya. Pelatakan pada as yang diperbesar 6 mm/ sampai keleng masuk dan di kencangkan dengan lem alteco.
Untuk yang tidak memakai keleng juga tidak apa-apa tapi dengan akibat yang ditimbulkan, saat robot berjalan gear berbunyi dan berisik, PCB aus dan termakan as jadi lambat laun akan membuat performance gear jelek.
- Memasang semuanya seperti yang terlihat pada dibawah:
- Sensor
Sensor yang baik yaitu sensor yang sensitive, yang dapat melintasi berbagai rintangan seperti lancip , siku , pertigaan, perempatan. Untuk dapat melakukan hal tersebut bagaimana letak posisi sensor infrared dan photodiode atau led-superbright dan photodiode. Penempatan bisa lurus , melengkung , depan 7 dan 1 belakang , 6 depan 2 belakang, atau TERSERAH.
Banyak kelemahan pada sensor yang lurus, jelas pada siku, lancip, peerempatan, partigaan. Seringkali pembacaannya jadi salah siku untuk pertigaan/ perempatan seperti itu contohnya.
Sama dengan sensor melengkung tetapi kelebihannya saat belokan, sensor lurus saat belokan pasti akan mendapat sensor paling pinggir ( akan overshoot ) dan jika melengkung saat belokan akan seperti mulus karena langsung pergeseran per step. Dan dapat digunakan untuk rintangan siku langsung pada penerapannya.
Sensor yang bagus adalah lihat milik UGM untuk referensinya,jika perlu tanyakan dan perlu adanya perhitungan jarak persensor serta apakah digunakan untuk kecepatan, strategi atau kedua-duanya?.
Jika untuk kecepatan perlu digunakan sensor yang melengkung saja dengan jarak yang agak kecil 1 cm <>
Untuk strategi sama hannya perlu adanya penambahan sensor belakang yang telah diperihitungkan.
Untuk kecepatan dan strategi perlu sensor yang banyak agar saat jalan tak mudah untuk lepas dari garis dan semua rintangan terlampaui dengan algoritma peogram yang mumpuni tentu saja.
Seperti robotnya Mas TIKO dengan sensornya yang banyak keren jalannya dan menjadi juara GALELOBOT 2009 tentu kendalinya juga keren NJIH MAS.
Pakai berapa jika tau +/- 16 sensor jika g’ salah lho…………
Pakai APA ya?????????//
Pakai ADC-kah, pakai ADC vs komparatorkah, pakai komparatorkah?
Jangan pusing riset seperti itu membuat pusing, dan solusinya adalah 6 sensor didepan dan 2 sensor dibelakang sudah cukup…..dengan jarak persensor 1cm
Sensor depan 6 untuk jalan lurus dan siku dan sensor belakang untuk lancip.
- Modul microcontollernya silahkan seach di google: dengan kata kunci gedex PID
Kira-kira seperti itu rangkaiannya dan programnya bisa didownload disana untuk reverensinya.
- Modul driver
Ini yang paling penting untuk plannya, penggunaan driver umum dapat menggunakan L293D , L298N/D, transistor, fet, dll.
Jelas yang paling concrete adalah driver FET. Tapi bagaimana rangkaiannya silahkan search picture di google : dengan kata kunci h-bridge mosfet motor DC driver schematic. Dan silahkan dicoba@2.....!!!!
Kok dikatakan bagus karena hambatan dalam kecil sehingga arus yang mengalir ke motor besar dan bermain potensial sebagai contolnya. Tidak seperti driver motor L293d,l298n/d dan transistor yang contolnya adalah arus dan juga hambatan dalam yang agak besar serta kerugian VBE +/- 0,7 volt membuat arus berkurang dan tegangan berkurang juga. Tapi jangan khawatir untuk pengguna L298 dan L293 adacara mempercepat dengan tambah bateray dan dengan bermain gaya potensial motor.
Gimana caranya:
Dengan membuat enable kanan dan kiri dengan member logika 1/ diberi tegangan langsung 5 volt. Kaki input 1 diberi PWM dan input 2 sebagai directionnya .
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
/*xcount++;
if (xcount<=lpwm) //milik gedex PID
enki=1;
else
enki=0;
if (xcount<=rpwm)
enka=1;
else
enka=0;
TCNT0=0xFF;
*/
xcount++;
if (xcount>=lpwm){ //good performance
kirimundur=1;
}
else{
kirimundur=0;
}
if (xcount>=rpwm){
kananmundur=1;
}
else{
kananmundur=0;
}
TCNT0=0xff;
}
Terlihat diatas menggunakan enable untuk PWM, sekarang menggunakan direction untuk PWM.
- Driver sensor
Untuk modul driver sensor bisa menggunakan komparator, transistor, ADC.
Menggunakan komparator seperti gambar dibawah:
Jara kerjanya yaitu mengcompare / membandingkan tegangan input kaki 2 dan reverensi kaki 3 sehingga output menjadi 1 dan 0.
Menggunakan transistor seperti gambar dibawah ini:
Mengunakan transistor sama saja mennyaklar tegangan ke port sehingga bernilai 1 dan 0.
Jika ADC langsung saja masuk ke port A, read ADC conversion diprogram dengan mengaktivkan ADC enable. Jelas memakai ADC adalah yang paling bagus karena langsung dari pembacaan tegangan photodiode terhadap infrared ke port A.
Pembacaan diatas track dengan hitam isolasi dan putih papan:
Karena pembacaan ADC adalah linier sebesar 0-255 rangnya maka cari nilai tengah antara pembacaan ADC tertinggi dan terendah diatas track dan dimasukkan ke variable vrefADC
Untuk pembacaan agar bernilai 1 dan 0
Logikanya
Jika ADCn1>vrefADCn1 maka bernilai 1
Else 0
Pada pendeklarasian sensor seperti ini :
sensor=sensor+1; //untuk bit ke 0
sensor=sensor+2; //untuk bit ke 1
sensor=sensor+4; //untuk bit ke 2
.
.
.
sensor=sensor+2n; //untuk bit ke-n
selengkapnya:
void scansensor()
{
lcd_clear();
lcd_gotoxy(0,0);
sensore=0;
for(count=0;count<8;count++){
kepekaan[count]=ekepekaan[count];
}
for(count=0;count<8;count++){
u=read_adc(count);
if(count==0){
if(u>kepekaan[count]){
sensore=sensore+1; lcd_putchar('1');
}
else lcd_putchar('0');
}
if(count==1){
if(u>kepekaan[count]){
sensore=sensore+2; lcd_putchar('1');
}
else lcd_putchar('0');
}
if(count==2){
if(u>kepekaan[count]){
sensore=sensore+4; lcd_putchar('1');
}
else lcd_putchar('0');
}
if(count==3){
if(u>kepekaan[count]){
sensore=sensore+8; lcd_putchar('1');
}
else lcd_putchar('0');
}
if(count==4){
if(u>kepekaan[count]){
sensore=sensore+16; lcd_putchar('1');
}
else lcd_putchar('0');
}
if(count==5){
if(u>kepekaan[count]){
sensore=sensore+32; lcd_putchar('1');
}
else lcd_putchar('0');
}
if(count==6){
if(u>kepekaan[count]){
sensore=sensore+64; lcd_putchar('1');
}
else lcd_putchar('0');
}
if(count==7){
if(u>kepekaan[count]){
sensore=sensore+128; lcd_putchar('1');
}
else lcd_putchar('0');
}
}
sprintf(buff,"<%x>", sensore);
lcd_puts(buff);
delay_ms(1);
}
U adalah pembacaan ADC ke n dan kepekaan adalah reverensi pembacaan ADC ke n dari track berbentuk variable array yang dimasukkan ke eeprom