Setelah dilakukan simulasi robot line follower dengan arduino di software proteus, maka pada post kali ini saya akan mengimplementasikannya pada perangkat yang sesungguhnya. Proses pembuatan tidaklah terlalu rumit karena semua kit yang akan digunakan sudah banyak tersedia baik dari kit chasis, modul sensor, atau modul driver motor.
Perangkat yang diperlukan
- Sensor garis
- Driver Motor
- Kit Chasis dan DC motor
Untuk kit chasis dapat menggunakan kit acrylic yang banyak tersedia dipasaran. Dapat juga membuat sendiri karena sebenarnya tidak terlalu sulit (dapat menggunakan papan acrylic atau triplek). Sementara untuk motor memakai motor DC 3-6V yang sudah lengkap dengan gearbox dan roda. Kerena modelnya 2 WD maka untuk roller roda 1 memakai roda gila/caster wheel yang anti selip.
- Arduino
Untuk arduino yang digunakan dalam tutorial ini adalah Arduino Uno. Silahkan disesuaikan penggunaan pinnya bila menggunakan arduino tipe lainnya.
- Baterai /power bank
Untuk power stand alone nya kita bisa menggunakan baterai dengan kapasitas 9-12 V. Power dari baterai dengan tegangan kisaran lebih dari 5 V dihubungkan dengan konektor DC pada arduino atau bisa juga melalui pin Vin. Kalau powernya menggunakan power bank, karena tegangan dari powerbank sudah stabil 5V, maka dihubungkan ke pin 5V arduino. Robot line follower yang dibuat menggunakan battery power bank (memanfaatkan barang yang ada)
Wiring Diagram
Diagram pengkabelan dari robot line follower sederhana menggunakan arduino dapat dilihat dibawah ini. Pin Enable A (L298) terhubung dengan arduino pin 3 (PWM ) dan pin enable B (L298) terhubung dengan arduino pin 5(PWM). Jumper pin 12V pada module L298N sebaiknya dilepas saja.
Pemasangan sensor harap diperhatikan karena akan mempengaruhi gerak robot. Dalam hal ini saya sudah mencoba beberapa posisi dan yang terbaik cara pemasangan sensor BFD-1000 adalah seperti gambar diatas (posisi miring/roda depan agak ditinggiin).
Arduino Program
Program robot line follower ini tidak jauh berbeda dengan yang ada pada Simulasi Arduino Line Follower Robot di Proteus . Sementara untuk cara kerja sistemnya sendiri dapat dipelajari pada simulasi line follower bagian pertama. Untuk program arduinodapat dilihat dibawah ini:
/*program Arduino LF dengan sensor IR 5ch www.arducoding.com */ #define enA 3 #define in1 2 #define in2 4 #define in3 6 #define in4 7 #define enB 5 int pin_sensor[]={8,9,10,11,12}; int baca_sensor; int inp; int hasil_baca[]={0,0,0,0,0}; void setup(){ pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); int a; //setting pin sensor sebagai INPUT while(a<5){ pinMode(pin_sensor[a],INPUT); a=a+1; } } void loop() { baca_sensor=readOut(pin_sensor); switch (baca_sensor) { //hasil baca sensor untuk belok kiri case 11110: case 11000: case 11100: case 11101: case 10000: belok_kiri(); break; //hasil baca sensor untuk arah maju case 11001: case 11011: case 10011: gerak_maju(); break; //hasil baca sensor untuk belok kanan case 10111: case 111: case 11: case 1111: case 1: belok_kanan(); break; //baca hitam semua=stop case 0: motor_stop(); break; } } //menampung hasil baca sensor menjadi interger int readOut(int pin_sensor[]){ int a,b,c=0; inp=0; while(c<5){ hasil_baca[c]=0; c=c+1; } for(a=0;a<5;a++){ hasil_baca[a]=digitalRead(pin_sensor[a]); } while(b<5){ inp=inp*10+hasil_baca[b]; b=b+1; } return inp; } //kendali motor void gerak_maju(){ analogWrite (enA, 255); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite (enB, 255); } void belok_kanan(){ analogWrite (enA, 0); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite (enB, 200); } void belok_kiri(){ analogWrite (enA, 200); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite (enB, 0); } void motor_stop(){ analogWrite (enA, 0); analogWrite (enB, 0); }
Pencarian Terkait:
22 Komentar
saya sudah coba dengan coding ini tapi motor tidak mau berjalan?
BalasHapusapakah saya ada salah pemasangan
enable A to D3
input 1 to D2
input 2 to D4
input 3 to D6
input 4 to D7
enable B to D5
sensor 1 to D8
sensor 2 to D9
sensor 3 to D10
sensor 4 to D11
sensor 5 to D12
mohon pencerahan nya
terima kasih
Pin Sudah sesuai gan.. pertama silahkan test apakah bagian driver motor sudah berfungsi dengan baik, silahkan ganti pada bagian void loop() dengan kode berikut:
Hapusvoid loop(){
gerak_maju();
delay(2000);
belok_kiri();
delay(1000);
gerak_maju();
delay(3000);
belok_kanan();
delay(1000);
gerak_maju();
delay(3000);
motor_stop();
delay(5000);
}
kalau motor dapat bergerak dengan baik maka berarti terdapat masalah dengan bagian sensor seperti pemasangannya kurang tepat, dll
Apakah bisa di buat motor berjalan lebih cepat dan belok dgn cepat?
Hapusuntuk program sederhana sperti ini akan menghasilkan gerakan seperti di video. selain itu kecepatan motor dapat diperoleh dari spesifikasi dan arus battery.
Hapuska saya sudah mengikuti program dan kompenen nya semua tpi ko tetap tidak bisa ya ka??
Hapuskak boleh minta list komponen nya apa saja? terutama itu menggunakan spacer berapa cm?
BalasHapusUntuk komponen sudah saya uraikan di diatas, untuk spacer menyesuaikan kebutuhan sih. klo yang dipakai itu (yang panjang) ukuran 5 cm
HapusItu gk usah tambhan library?
BalasHapustidak ada tambahan library kok.. karena cuma program sederhana
HapusMau tanya kalo misalkan arduino nya beda apakah bisa memakai program yang di atas
BalasHapustergantung seri arduinonya ya.. sesuaikan saja dengan pin digitalnya .. utuk nano, pro, mega harusnya tidak ada masalah
HapusMas apakah saya boleh pesan dibuatkan robot seperti diatas ?
BalasHapusmohon maaf ya, kebetulan saya tidak menerima pemesanan pembuatan alat.
Hapusmas, saya ingin bertanya. untuk bagian power dari adruino itu saya tidak paham? tolong jelaskan tentang dibagian itu, apakah dipisah antara sumber tenaga untuk adruino dengan pengerak atau bagaimana?
BalasHapussebelumnya mohon maaf ya, gambarnya kurang detail. Betul skali, untuk powernya dipisah antara driver motor dengan arduino. batterai bisa menggunakan yang 9v (batterai kotak). 1 untuk supply driver motor dan 1 lagi buat supply arduino.
Hapussaya sudah mengikuti pin sesuai yang ada di skema. dan saya udah ngecek driver motor dan berhasil berjalan. kira-kira salah saya dimana?
BalasHapusmohon maaf, untuk kasusnya seperti apa ya?
HapusGan gemana kalau menghadapi tikungan tajam .persimpangan juga bagaimana
BalasHapusMau tanya mas, kalau kita mau tambahkan servo. Misalkan saat motornya stop semua,terus gikiran servonya yg bergerak mas. Kodingnya gmna ya mas ? Ditaruh dmna ya ?
BalasHapusdapat di taruh di fungsi motor stop (kondisi berhenti)
Hapusvoid motor_stop(){
analogWrite (enA, 0);
analogWrite (enB, 0);
//===== disini program kontrol servonya
}
maaf mau tanya,,itu powernya kalo ga di split boleh? apa ga kuat?
BalasHapusbang kalo pake sensor TCRT 5000 apakah kodingan sama?
BalasHapus