Quantcast
Channel: Nofgi Piston
Viewing all articles
Browse latest Browse all 317

Membuat Robot Line Follower Sederhana 4 Sensor Menggunakan Arduino dan Modul Sensor Garis

$
0
0

IMG_20170225_195522 - Copy

Assalamualaikum.
Salam Sejahtera Untuk Kita Semua Sobat …

Robot line follower atau pengikut garis adalah robot yang sangat sering kita dengar namanya. Yups, robot ini memang sangat cocok untuk bahan pembelajaran bagi yang hobi robotika maupun elektronika. Robot ini sudah mewakili logika sederhana dalam pembuatan robot yang tentunya dapat kita kembangkan agar dapat menjadi semakin canggih 😀 .

Nah pada kali ini, NP akan share bagaimana cara membuat sebuah robot line follower sederhana menggunakan 4 buah sensor dan tentu saja board microcontroller Arduino sebagai controller utamanya. Robot kali ini sangat sederhana karena tidak menggunakan pemrograman yang rumit. Hanya mengandalkan “if else” saja. Jika menginginkan robot line follower yang lebih canggih, bisa mengguanakan algoritma metode PID ataupun Jaringan Syaraf Tiruan (JST). Monggo disimak tutorialnya sob :mrgreen: .

 

 

 

 

Berikut ini komponen yang harus dipersiapkan :

  • 1 buah Arduino (bisa menggunakan Arduino UNO, MEGA, NANO, MINI atau yang lain. bisa diperoleh Di Sini)
  • 1 buah Modul Sensor Line Tracking isi 4 (Bisa diperoleh Di Sini)
  • 1 buah Driver Motor L298N (Bisa diperoleh Di Sini)
  • 2 buah Motor DC + Roda (Bisa diperoleh Di Sini)
  • Baterai sesuai kebutuhan, tegangan sekitar 5-12V (Bisa diperoleh Di Sini)
  • Kabel jumper secukupnya (Bisa diperoleh Di Sini)
  • Breadboard/Projectboard jika diperlukan (Bisa didapat Di Sini)
  • Software Arduino IDE (Jika belum punya, maka download Di Sini)
  • Dan jika ingin belajar bagaimana cara menggunakan Arduino bagi pemula, silahkan download Ebook nya Di Sini

 

 

 

 

 

Dan berikut ini adalah skema rangkaiannya :

Robot Line Follower_bb

Keterangan Rangkaian :

  • Bisa Menggunakan Segala Jenis Arduino (UNO, NANO, MEGA, MINI, dll), karena penomoran pinnya sama. Tinggal cocokkan Saja nomor Pin-Pin nya.

  • Pin Modul Sensor no. 1 ==> Pin A5 Arduino

  • Pin Modul Sensor no. 2 ==> Pin A4 Arduino

  • Pin Modul Sensor no. 3 ==> Pin A3 Arduino

  • Pin Modul Sensor no. 4 ==> Pin A2 Arduino

  • Pin In1 Driver Motor ==> Pin 7 Arduino

  • Pin In2 Driver Motor ==> Pin 6 Arduino

  • Pin In3 Driver Motor ==> Pin 5 Arduino

  • Pin In4 Driver Motor ==> Pin 4 Arduino

  • Pin ENA-bawah Driver Motor ==> Pin 9 Arduino

  • Pin ENB-bawah Driver Motor ==> Pin 9 Arduino

  • Pin ENA-atas Driver Motor ==> Pin 5V Arduino

  • Pin ENB-atas Driver Motor ==> Pin 5V Arduino

  • OUT1 dan OUT2 Driver Motor ==> Motor 1

  • OUT3 dan OUT4 Driver Motor ==> Motor 2

  • Pin 12V Driver Motor ==> Hubungkan ke baterai

  • Pin GND Driver Motor ==> Hubungkan ke Ground(-) Baterai dan Ground(GND) Arduino

  •  Kaki vcc pada masing-masing komponen hubungkan ke sumber power positif 5v (bisa dari 5v Arduino)

  • Kaki gnd/ground pada masing-masing komponen hubungkan ke sumber negatif power (dihubungkan ke pin gnd Arduino)

 

 

 

 

 

Kemudian rakitlah robot sesuai dengan kreatifitas sobat. Ini NP berikan referensi bentuk robot sesuai dengan robot yang NP buat. Berikut ini merupakan pemasangan sensor line trackingnya :

 

 

 

 

 

Setelah itu, silahkan upload program seperti di bawah ini pada software Arduino IDE milik sobat, dan tata cara upload program ke Arduino bisa sobat baca Di Sini :

// ------ Project Membuat Robot Line Follower 4 Sensor ------- //
// ------------- Dibuat oleh : M. Nofgi Y.P.U. -------------- //
// ------------- www.nofgipiston.wordpress.com -------------- //


// inialisasi pin motor kanan dan motor kiri
// motor1 dan motor2 = motor kanan
// motor3 dan motor4 = motor kiri
const int motor1 = 7;
const int motor2 = 6;
const int motor3 = 5;
const int motor4 = 4;


// inialisasi pi sensor garis 1 sampai 4
// sensor1 dan snsor2 = sensor sebelah kanan
// sensor3 dan sensor4 = sensor sebelah kiri
const int sensor1 = A5;
const int sensor2 = A4;
const int sensor3 = A3;
const int sensor4 = A2;

// inialisasi pin speed motor
// wajib pin support PWM
const int pinSpeed = 9;

// inialisasi variabel data 1 sampai 4
int data1, data2, data3, data4;

// inialisasi nilai kecepatan motor
// range nilai antara 0 sampai 255
int speedMotor = 255;

// ---------- program dfault/setting awal ---------- //

void setup()
{
 // inialisasi pin motor sebagai output
 pinMode(motor1, OUTPUT);
 pinMode(motor2, OUTPUT);
 pinMode(motor3, OUTPUT);
 pinMode(motor4, OUTPUT);

// inialisasi pin sensor sebagai input
 pinMode(sensor1, INPUT);
 pinMode(sensor2, INPUT);
 pinMode(sensor3, INPUT);
 pinMode(sensor4, INPUT);

// inialisasi pin speed motor sebagai output
 pinMode(pinSpeed, OUTPUT);
}

// ---------- program utama, looping/berulang terus-menerus ---------- //

void loop ()
{
 // masing2 variabel data menyimpan hasil pembacaan sensor
 // berupa logic LOW/HIGH
 data1 = digitalRead(sensor1);
 data2 = digitalRead(sensor2);
 data3 = digitalRead(sensor3);
 data4 = digitalRead(sensor4);

// mengatur kecepatan motor
 analogWrite(pinSpeed, speedMotor);

// ----------- pengaturan jalannya robot sesuai pembacaan sensor ------------ //

if (data1 == LOW && data2 == LOW && data3 == LOW && data4 == LOW)
 {
 //maju
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == HIGH && data2 == HIGH && data3 == HIGH && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == HIGH && data3 == HIGH && data4 == HIGH)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == HIGH && data2 == HIGH && data3 == LOW && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == LOW && data3 == HIGH && data4 == HIGH)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == HIGH && data2 == LOW && data3 == LOW && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == LOW && data3 == LOW && data4 == HIGH)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == HIGH && data2 == LOW && data3 == HIGH && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == HIGH && data3 == LOW && data4 == HIGH)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == LOW && data2 == HIGH && data3 == LOW && data4 == LOW)
 {
 //kanan
 digitalWrite(motor1, LOW);
 digitalWrite(motor2, HIGH);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == LOW && data2 == LOW && data3 == HIGH && data4 == LOW)
 {
 //kiri
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, LOW);
 digitalWrite(motor4, HIGH);
 }

else if (data1 == LOW && data2 == HIGH && data3 == HIGH && data4 == LOW)
 {
 //maju
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }

else if (data1 == HIGH && data2 == HIGH && data3 == HIGH && data4 == HIGH)
 {
 //maju
 digitalWrite(motor1, HIGH);
 digitalWrite(motor2, LOW);
 digitalWrite(motor3, HIGH);
 digitalWrite(motor4, LOW);
 }
}

 

 

 

 

Dan berikut ini adalah video demonstrasinya di channel Youtube saya :

Untuk pergerakannya memang masih sedikit kaku karena program masih bersifat sederhana. Belum mengaplikasikan metode controller seperti PID ataupun JST (Jaringan Syaraf Tiruan).

 

 

 

Penjelasan singkat dari program di atas yakni :

Sifat dari sensor garis/line tracking ini adalah saat dia mendeteksi warna putih, maka output sensor berupa data logic LOW, sedangakan saat sensor mendeteksi garis hitam, maka output data berupa logic HIGH.

Nah berdasarkan cara kerja sensor inilah kita mengatur pergerakan roda motor pada robot. Perhatikan tabel di bawah ini :

Line Tracel Tabel

Untuk pergerakan belok kanan-kiri pada robot ini menggunakan sistem differential drive. Jadi bukan pakai steering, melainkan perbedaan arah putar pada roda kanan-kiri. Contohnya kalau mau belok kanan, maka motor kanan berjalan mundur dan motor kiri berjalan maju, sedangkan jika belok kiri maka motor kiri berjalan mundur dan motor kanan bergerak maju.

Ketika sensor kanan mendeteksi garis hitam, robot akan berbelok ke kanan. Dan sebaliknya, saat sensor kiri mendeteksi garis hitam, maka robot akan berbelok ke kiri. Untuk lebih jelasnya silahkan dilihat pada program.

 

 

 

 

 

Nah mudah buak untuk membuat sebuah robot line follower ? Sebenarnya bermodal dua buah sensor saja juga bisa, namun lebih banyak sensor tentunya lebih presisi bukan ? Tapi tentu saja algoritma pemrogramannya juga semakin bertambah panjang sob hehe :mrgreen: .

Jangan bosan-bosan belajar dan berlatih dengan Arduino ya sob … Karena banyak sekali alat-alat serta kreatifitas yang dapat kita buat dengan board microcontroller serba bisa ini 🙂 .

“Barang siapa yang menempuh suatu jalan untuk menuntut ilmu, Allah akan memudahkan baginya jalan ke surga (HR Muslim)”

Semoga bermanfaat 😀 .

Salam Teknologi … Salam Arduino …🙂 .

Wassalamualaikum.

*

*

*

*

*

********************

#Maaf jika ada kesalahan, ambil sisi positifnya saja.
#Barangkali anda mempunyai kabar/berita seputar otomotif/mekatronika/robotika/elektronika atau ingin mengiklankan suatu produk di blog ini, silahkan kontak saya.

Jual Arduino, Sensor, Modul, SHIELD, dan Berbagai Komponen Elektronika/Robotika murah meriah … Best Quality Product … !!! (Klik di sini)

Atau Silahkan Kunjungi Lapak Kami di Tokopedia Berikut ini : https://www.tokopedia.com/nofgipiston

Menerima jasa pembuatan Project atau alat berbasis Arduino, Elektronika, Robotika, Mekatronika, dan sejenisnya …

Bisa untuk keperluan hobi, tugas kuliah/sekolah, project industri/rumahan, dan sebagainya …

Silahkan kontak saya :

Facebook              : Nofgi Yugo Prasetyo
Fans Page on Facebook : Nofgi Piston Blog
E-Mail                : Nofgimotor@gmail.com
PIN BBM               : D2F100C2
Line                  : nofgi piston
Instagram             : nofgi_piston
Youtube               : Nofgi Piston
No. HP/WA             : 088217082017


Viewing all articles
Browse latest Browse all 317

Trending Articles