Anda di halaman 1dari 6

ROBOT AVOIDER

A. Pendahuluan
Robot avoider merupakan robot otomatis yang berjalan sendiri yang mana akan menghindari
penghalang di depannya ketika mendeteksi suatu benda atau penghalang kemudian mencari jalan
yang tidak ada penghalangnya. Robot avoider biasanya menggunakan sensor Ultrasonik sebagai
unit pendeteksi penghalangnya. Ketika sensor Ultrasonik mendeteksi ada benda maka akan
langsung memerintah mikrokontroler untuk membelok atau menghindari benda tersebut.

B. Dasar Teori
1. Arduino Uno

Gambar 1. Arduino Uno


Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari
Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang.
Arduino Uno merupakan satu salah keluaran Arduino yang biasa digunakan untuk belajar dan
membuat projek. Dengan disediakannya 13 kaki digital dan 6 kaki analog sehingga memudahkan
kita untuk belajar dan memahami suatu sistem suatu projek.

2. Sensor Ultrasonik ( HC-SR04)

Gambar 2. Sensor HC-SR04


Sensor HC-SR04 atau lebih dikenal sebagai sensor ultrasonik merupakan sensor yang dapat
mengukur jarak. Sensor ini mempunyai 4 kaki yang mana kaki-kaki tersebut berupa VCC, Trig,
Echo, dan GND. Jarak jangkauan yang dapat diukur oleh sensor ini dari 2 cm – 400 cm. Masukkan
yang diperlukan oleh sensor ini adalah 5 volt dengan arus 15mA serta frekuensi listrik 40Hz. Prinsip
kerja sensor ini ialah dengan menembakkan sinyal pulsa yang berasal dari Trigger (pengirim pulsa)
dan yang nanti akan diterima oleh Echo (penerima pulsa) hingga membentuk sudut 15 derajat
secara terus menerus dengan frekuensi gelombang ultrasonik (Lihat Gambar 3) .
Gambar 3. Timing Diagram Pulsa Sensor HC-SR04

3. Modul L298N

Gambar 4. Modul L298N


Modul yang menggunakan IC driver L298 yang memiliki kemampuan menggerakkan motor
DC sampai arus 4A dan tegangan maksimum 46 VoltDC untuk satu kanalnya. Rangkaian driver
motor DC dengan IC L298 diperlihatkan pada gambar 1. Pin Enable A dan B untuk mengendalikan
jalan atau kecepatan motor, pin Input 1 sampai 4 untuk mengendalikan arah putaran. Pin Enable
diberi VCC 5 Volt untuk kecepatan penuh dan PWM (Pulse Width Modulation) untuk kecepatan
rotasi yang bervariasi tergantung dari level highnya.

4. Motor DC Gearbox

Gambar 5. Motor DC gearbox


DC motor gear box adalah motor DC dipadukan dengan gear box dalam satu kemasan
sehingga lebih praktis dalam penggunaannya. Keunggulan DC motor gearbox adalah terbuat dari
bahan metal sehinnga gear kokoh dan kuat walau dengan beban yang berat. DC motor gearbox
memiliki kecepatan putar dengan tiga pilihan yaitu 310 Rpm, 510 rpm dan 630 Rpm serta memiliki
torsi 4,8 Kg. Flying DC gear box motor berukuran diameter shaft 2,9mm sehingga cocok sekali
digunakan untuk motor pengerak robot line tracer, robot soccer.

C. Alat dan Bahan


Alat dan Bahan yang digunakan pada robot avoider ini ialah:
- Arduino Uno
- Sensor Ultrasonik 3 buah
- Motor DC + Roda 2 buah
- Motor Driver L298N
- Baterai 12 Volt
- Kabel Jumper secukupnya
- Breadboard
- Arduino IDE

D. Prosedur Kerja
A. Perakitan Rangkaian
Alat dan bahan yang sudah disiapkan dan kemudian dirangkaikan sesuai dengan gambar 6.

Gambar 6. Rangkaian Avoider

Peta konfigurasi 3 sensor Ultrasonik dan rangkaian L298N dirakit ke Arduino sesuai dengan
tabel di bawah ini :
Sensor dan Modul Kaki Arduino
Trig 12
Ultrasonik 1
Echo 13
Trig 8
Ultrasonik 2
Echo 9
Trig 3
Ultrasonik 3
Echo 4
IN 1 5
IN 2 6
Motor Driver L298N
IN 3 10
IN 4 11
Tabel 1. Peta Konfigurasi
2. Pembuatan Pemrograman
Untuk pemrograman untuk mengatur sensor Ultrasonik menggunakan library tambahan dan
bisa didownload di GitHub. Program dibuat sesuai dengan listing di bawah ini kemudian
didownloadkan ke Arduino menggunakan Arduino IDE.

#include <Ultrasonic.h>
#define kananmaju 5
#define kananmundur 6
#define kirimaju 10
#define kirimundur 11

Ultrasonic ultrasonic1(12, 13);


Ultrasonic ultrasonic2(8, 9);
Ultrasonic ultrasonic3(3, 4);

long ultraSensor1;
long ultraSensor2;
long ultraSensor3;

void setup()
{
Serial.begin(9600);
pinMode(kananmaju, OUTPUT);
pinMode(kananmundur, OUTPUT);
pinMode(kirimaju, OUTPUT);
pinMode(kirimundur, OUTPUT);
}

void loop()
{
ultraSensor1 = ultrasonic1.Ranging(CM);
ultraSensor2 = ultrasonic2.Ranging(CM);
ultraSensor3 = ultrasonic3.Ranging(CM);
Serial.println("Sensor1");
Serial.println(ultraSensor1);
Serial.println("Sensor2");
Serial.println(ultraSensor2);
Serial.println("Sensor3");
Serial.println(ultraSensor3);
if(ultraSensor1>=15 & ultraSensor2>=15 & ultraSensor3>=15)
{
maju();
}
else if(ultraSensor1>=15 & ultraSensor2>=15 & ultraSensor3<=15)
{
kanan();
}
else if(ultraSensor1>=15 & ultraSensor2<=15 & ultraSensor3<=15)
{
kananP();
}
else if(ultraSensor1<=15 & ultraSensor2>=15 & ultraSensor3>=15)
{
kiri();
}
else if(ultraSensor1<=15 & ultraSensor2<=15 & ultraSensor3>=15)
{
kiriP();
}
else if(ultraSensor1<=15 & ultraSensor2<=15 & ultraSensor3<=15)
{
mundur();
delay(500);
kananP();
delay(350);
}
else if(ultraSensor1>=15 & ultraSensor2<=15 & ultraSensor3>=15)
{
mundur();
delay(350);
putar();
delay(300);
}
}

void maju()
{
analogWrite(kananmaju, 40);
analogWrite(kananmundur, 0);
analogWrite(kirimaju, 40);
analogWrite(kirimundur, 0);
}

void kananP()
{
analogWrite(kananmaju, 0);
analogWrite(kananmundur, 60);
analogWrite(kirimaju, 60);
analogWrite(kirimundur, 0);
}

void kanan()
{
analogWrite(kananmaju, 0);
analogWrite(kananmundur, 0);
analogWrite(kirimaju, 60);
analogWrite(kirimundur, 0);
}

void kiriP()
{
analogWrite(kananmaju, 60);
analogWrite(kananmundur, 0);
analogWrite(kirimaju, 0);
analogWrite(kirimundur, 60);
}

void kiri()
{
analogWrite(kananmaju, 60);
analogWrite(kananmundur, 0);
analogWrite(kirimaju, 0);
analogWrite(kirimundur, 0);
}

void mundur()
{ analogWrite(kananmaju, 0);
analogWrite(kananmundur, 40);
analogWrite(kirimaju, 0);
analogWrite(kirimundur, 40);
}

void setop()
{ analogWrite(kananmaju, 0);
analogWrite(kananmundur, 0);
analogWrite(kirimaju, 0);
analogWrite(kirimundur, 0);
}
void putar()
{
analogWrite(kananmaju, 0);
analogWrite(kananmundur, 80);
analogWrite(kirimaju, 80);
analogWrite(kirimundur, 0);
}

Anda mungkin juga menyukai