bab iii pembahasan - repository.bsi.ac.id · namun jika led pada arduino mati maka periksa tegangan...
TRANSCRIPT
32
BAB III
PEMBAHASAN
3.1. Tinjauan Umum Alat
ROBOT AVOIDER Merupakan robot halang rintang yang menggnakan sensor
HC-SR 04 dan sensor INFRARED sebagai input untuk mendeteksi halangan yang ada
di depannya dan mengirimkan sinyal bahwa ada benda yang menghalanginnya,
kemudian robot akan membunyikan buzzer dan menggerakkan motordc untk
menghindari halangan sambil menampilkan tulisan bahaya pada layar lcd.
Apabila sensor HC-SR 04 mendeteksi adanya halangan robot otomatis akan
bergerak mundur, kemudian akan membaca keadaan sekitar dengan menggerakan
shrevo ke kiri dan ke kanan sambil sensor HC-SR 04 membaca keadaan sekitar untuk
menentukan arah mana yang lebih aman atau tidak ada halangan. Sementara itu sensor
INFRARED berfungsi mendeteksi tepian pada jalur lintasan robot apabila sensor
mendeteksi tepian maka robot akan berputar arah untuk menghindarinya.
3.2. Blok Rangkaian Alat
Blok Robot Avoider yang dibuat sebagai berikut:
33
Penjelasan blok diagram alat sebagai berikut:
1. Input
Komponen input ini merupakan komponen masukan yang akan diproses.
Komponen input ini terdiri dari:
a. Catu daya digunakan untuk pemberi supply tegangan ke alat yaitu tegangan
sebesar 9-12 volt.
b. Sensor HC-SR 04 berfungsi untuk mendeteksi adanya halangan yang ada di
depan sensor.
c. Sensor INFRARED berfungsi mendeteksi adanya ujung lintasan.
2. Proses
Proses merupakan komponen utama yang berfungsi sebagai pengelola data
yang diterima dari masukan yang kemudian akan menghasilkan output.
Dalam proses ini penulis menggunakan mikrokontroler Arduino Uno ATMEGA
328p, dan modul motor kontroler dengan IC L293D yang terintegrasi lewat IC
74HC595.
3. Output
Output merupakan keluaran dari semua proses yang telah dijalankan.
Output yang dihasilkan yaitu:
a. Motor Servo
Berfungsi untuk membuka dan menutup tempat sampah.
b. Buzzer
c. berfungsi sebagai indikasi hasil input yang menghasilkan bunyi
seperti alarm.
34
d. LCD
berfungsi untuk menampilkan text hasil input dari sensor HC-SR 04, sensor
INFRARED, dan Buzzer.
e. Motor DC
Berfungsi Untuk menjalankan robot maju, mundur, atau berbelok sesuai
perintah dari sinyal yang di kirim dari sensor.
3.3. Skema Rangkaian Alat
Gambar III.1
Skema Rangkaian Alat
Robot Avoider yang dibuat ini menggunakan mikrokontroler Atmega328P
sebagai pusat pemeroses data, sensor HC-SR 04 sebagai sensor gerak, sensor
INFRARED sebagai pendeteksi jalur yang terputus dan rangkaian elektronika lain
sebagai pendukung sistem. Untuk mengaktifkan sistem, hubungkan sistem dengan
catu daya 9-12 Volt DC, jika LED pada arduino hidup maka alat tersebut siap bekerja,
35
namun jika LED pada arduino mati maka periksa tegangan pada catu daya. Untuk
mensimulasikan rangkaian Robot Avoider ini, aktifkan dengan cara menggeser POT-
HG ke posisi atas. Kemudian geser POT-HG ke arah bawah, jika ada halangan atau
gerakan yang terdeteksi oleh sensor HC-SR 04, maka motor servo akan bergerak ke
kiri dan kanan lalu Buzzer akan berbunyi dan menampilkan text pada lcd, jika sensor
INFRARED mendeteksi jalur yag terputus sesuai codingan maka output buzzer akan
berbunyi memberikan peringatan dan lcd akan menampilkan text dari input sensor HC-
SR 04 dan sensor INFRARED.
3.4. Cara Kerja Alat
Cara kerja alat dari tiap-tiap blok pada rangakain alat adalah sebagai berikut:
1. Catu Daya
Catu daya yang digunakan pada rangRobot Avoider disini adalah Baterai.
Gambar III.2
Baterai 18650
Baterai merupakan salah sat sumber tegangan, salah satu jenis baterai yang
banyak digunakan adalah Lithium 18650. Ini adalah jenis battery yang dapat di cas
ulang (rechargeable). Kebanyakan perangkat elektronik portable yang membutuhkan
tenaga besar dan tahan lama dipastikan menggunakan baterai 18650.
36
Baterai jenis ini memiliki kemampan CDR (Continuous Discharge Rating)
adalah ukuran besarnya arus maksimum yang dapat dikuras atau disedot dari battery
18650 secara kontinyu dengan aman tanpa merusak baaterai, battery 18650 yang dapat
dikuras arus listriknya hingga puluhan Ampere (biasanya 10 A hingga 30A) secara
kontinyu.
2. Arduino Uno
Arduino Uno adalah salah satu produk berlabel arduino yang sebenarnya
adalah suatu papan elektronik yang mengandung mikrokontroler Atmega328P,
yang memiliki 14 pin I/O digital dan 6 pin input analog dan bersifat open
source.
Gambar III.3
Arduino Pada Rangkaian
Pada rangkaian Robot Avoider ini pin keluaran arduino yang digunakan
adalah pin Analog Output dan Digital Output. Pin AO2 dan AO3 akan
dihubungkan ke kaki pin sensor HC-SR 04, pin DO9 dihubungkan ke kaki pin
37
motor servo, dan pin A1 ke kaki positif buzzer, sedangkan sensor infrared di-
hubungkan ke pin A0, pin A5 dihubungkan ke port SCL modul I2C, Pin A4
dihubungkan ke port SDA modul I2C.
3. Sensor HC-SR 04
Sensor ultrasonik berfungsi sebagai mengukur jarak antara penghalang
dan sensor. Secara umum, alat ini akan menembakkan gelombang ultrasonik
menuju suatu area atau suatu target. Setelah gelombang menyentuh permukaan
target, maka target akan memantulkan kembali gelombang tersebut.
Gelombang pantulan dari target akan ditangkap oleh sensor, kemudian sensor
menghitung selisih antara waktu pengiriman gelombang dan waktu gelombang
pantul diterima.
Gambar III.4
Skema Rangkaian Sensor HC-SR 04
4. Sensor INFRARED
Sistem sensor INFRARED pada dasarnya menggunakan INFRARED sebagai
media untuk komunikasi data antara receiver dan transmitter. Sistem akan bekerja
38
jika sinar infra merah yang dipancarkan terhalang oleh suatu benda yang
mengakibatkan sinar infra merah tersebut tidak dapat terdeteksi oleh penerima.
Gambar III.5
Skema Rangkaian Sensor Infrared
5. Motor Servo
Berfungsi menggerakan sensor HC-SR 04 agar dapat membaca jarak pada sisi
kiri dan kanan untuk menentukan arah.
Gambar III.6
Skema Rangkaian Motor Servo
6. Buzzer
Buzzer adalah komponen elektronika yang berfungsi mengeluarkan suara,
prinsip kerja buzzer yaitu merubah listrik menjadi getaran suara. Buzzer biasa
39
digunakan sebagai indikator (alarm) bahwa proses sedang bekerja atau proses
sudah selesai pada sebuah alat.
Gambar III.7
Skema Rangkaian Buzzer
7. LCD (Liquid Crystal Display)
LCD berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan text,
atau menampilkan menu pada aplikasi mikrokontroler.
Gambar III.8
Skema Rangkaian LCD
40
3.5. Flowchart Program
Gambar III.9
Flowchart Program
Start menandakan memulai atau menyalakan alat, saat alat aktif arduino uno
akan memulai pemrosesan data. Jika sensor ultrasonic membeca jarak kurang dari
15cm maka robot akan berhenti dan bergerak mundur, kemudian motor servo akan
bergerak ke kiri dan kanan sambil sensor ultrasonic mebaca jarak pada sisi kiri dan
kanan untuk menentukan ke arah mana yang lebih aman untuk dilewati. Kemudian
jika sensor infrared membaca sinyal pantul lebih dari 900 maka robot akan berhenti
41
dan berputar arah.
3.6. Konstruksi Sistem (Coding)
Konstruksi sistem yang akan dijelaskan pada bab ini meliputi initialisasi
program, main program, dan input/output program.
1. File Header dan Pendefinisian
File Header (file yang berisi ekstensi .h) adalah file yang berisi deklarasi,
digunakan untuk memanggil library yang digunakan pada kode program.
Berikut library yang digunakan dalam coding Robot Avoider:
#include <LCD.h> //library lcd
#include <LiquidCrystal.h> //library lcd
#include <LiquidCrystal_I2C.h> //library liquid crystal I2C
#include <Servo.h> //library motor servo
#include <Wire.h> //wire virtual
#include <AFMotor.h> //library motor driver
Pendifinisian variable atau hardware yaitu mendefinisikan hardware ataupun
variable yang akan dignakan.
#define TRIG_PIN A2 //pin A2 sebagai trig
#define ECHO_PIN A3 //pin A3 sebagai echo
#define MAX_DISTANCE 250 //jarak maksimal sensor ultrasonic
#define MAX_SPEED 250 //kecepatan maksimal motor dc
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
AF_DCMotor motor1(1, MOTOR12_64KHZ);
AF_DCMotor motor2(2, MOTOR12_64KHZ);
42
Servo myservo;
Keterangan:
LiquidCrystal_I2C untuk pin karakter pada lcd, NewPing sonar untuk
mempersiapkan pin sensor infrared dan jarak maksimal yang dapat dibaca ter-
hadap library NewPing.h, AF_DCMotor untuk setting motor1 dan motor2 pada
channel 1 dan 2 di motor driver dengan frekuensi 64khz, sedangkan Servo
merupakan pendefinisian variable myservo pada library Servo.h.
3.6.1. Inisialisasi
Inisialisasi adalah sebuah proses pengisian nilai awal (nilai default) kedalam
sebuah variabel. Berikut adalah inisialisasi yang digunakan pada coding Robot
Avoider:
boolean goesForward=false; //variable gorsforward dengan awalan false
int distance = 0; //jarak yang dibaca sensor ultrasonic
int speedSet = 0; //kecepatan motor dc
int sensor; //sensor infrared
int buzzer = A1; //buzzer pada port A1
int distanceR = 0; //jarak ultrasonic sisi kanan
int distanceL = 0; //jarak ultrasonic sisi kiriint
sensor=analogRead(A0); //port A0 sebagai input sensor infrared
3.6.2. Input
Input adalah fungsi pustaka yang digunakan untuk menginput atau
membaca data. Codingan input yang digunakan pada program ini adalah:
43
#define TRIG_PIN A2 //pin A2 sebagai inpur trig ultrasonic
#define ECHO_PIN A3 //pin A3 sebagai input echo ultrasonic
sensor=analogRead(A0); //pin A0 sebagai input infrared
3.6.3. Main Program
void loop() {
sensor=analogRead(A0);
int distanceR = 0;
int distanceL = 0;
delay(40);
if(distance<=12) //perintah sensor HS-CR 04
{
lcd.setBacklight(HIGH);
lcd.setCursor(0,0);
lcd.print(" ROBOT AVOIDER ");
lcd.setCursor(0,1);
lcd.print(" ADA HALANGAN ");
moveStop();
digitalWrite(buzzer,HIGH);
delay(200);
digitalWrite(buzzer,LOW);
moveBackward();
delay(200);
moveStop();
digitalWrite(buzzer,HIGH);
delay(200);
44
digitalWrite(buzzer,LOW);
distanceR = lookRight();
delay(300);
distanceL = lookLeft();
delay(300);
if(distanceR>=distanceL)
{
turnRight();
moveStop();
}else
{
turnLeft();
moveStop();
}
}
else
{
moveForward();
}
if(sensor>900) //perintah sensor infrared
{
lcd.setBacklight(HIGH);
lcd.setCursor(0,0);
lcd.print(" ROBOT AVOIDER ");
lcd.setCursor(0,1);
45
lcd.print(" JALUR PUTUS ");
moveBackward();
delay(400);
moveStop();
delay(100);
turnAround();
delay(1000);
moveForward();
}
else
{
moveForward();
}
distance = readPing();
}
int lookRight() //variable jarak kiri
{
myservo.write(0);
delay(500);
int distance = readPing();
delay(100);
myservo.write(90);
return distance;
}
int lookLeft() //variable jarak kanan
46
{
myservo.write(180);
delay(500);
int distance = readPing();
delay(100);
myservo.write(90);
return distance;
delay(100);
}
int readPing() {
delay(70);
int cm = sonar.ping_cm();
if(cm==0) variable yang berisi jarak sensor
{ HS-CR 04
cm = 250;
}
return cm;
}
void moveStop() { //fungsi berhenti
motor1.run(RELEASE);
motor2.run(RELEASE);
}
void moveForward() { //fungsi gerak maju
if(!goesForward)
{
47
lcd.setBacklight(HIGH);
lcd.setCursor(0,0);
lcd.print(" ROBOT AVOIDER ");
lcd.setCursor(0,1);
lcd.print(" AMAN ");
goesForward=true;
motor1.run(FORWARD);
motor2.run(FORWARD);
for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=4)
{
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet);
delay(5);
}
}
}
void moveBackward() { //fungsi gerak mundur
goesForward=false;
motor1.run(BACKWARD);
motor2.run(BACKWARD);
for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=4)
{
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet);
delay(5);
48
}
}
void turnRight() {
motor1.run(FORWARD);
motor2.run(BACKWARD); fungsi belok kanan
delay(450);
motor1.run(FORWARD);
motor2.run(FORWARD);
}
void turnLeft() {
motor1.run(BACKWARD);
motor2.run(FORWARD); fungsi belok kiri
delay(450);
motor1.run(FORWARD);
motor2.run(FORWARD);
}
void turnAround() {
motor1.run(BACKWARD); fungsi berbalik arah
motor2.run(FORWARD);
}
49
3.6.4. Output
Output adalah proses untuk mengoutput atau menampilkan data program.
Berikut codingan output yang digunakan pada alat:
lcd.setBacklight(HIGH);
lcd.setCursor(0,0); mengaktifkan lcd dan menampilkan
lcd.print(" ROBOT AVOIDER "); tulisan “ROBOT AVOIDER” dan
lcd.setCursor(0,1); “ADA HALANGAN” pada baris
lcd.print(" ADA HALANGAN "); pertama dan kedua
digitalWrite(buzzer,HIGH); //mengakrifkan buzzer
digitalWrite(buzzer,LOW); //mematikan buzzer
motor1.run(FORWARD); //motor dc kanan bergerak maju
motor2.run(FORWARD); //motor dc kiri bergerak maju
motor1.run(BACKWARD); // motor dc kanan bergerak mundur
motor2.run(BACKWARD); // motor dc kiri bergerak mundur
motor1.run(RELEASE); //menonaktifkan motor dc kanan
motor2.run(RELEASE); //menonaktifkan motor dc kiri
3.7. Hasil Percobaan
Hasil percobaan yang dilakukan pada robot avoider ini adalah dengan menguji
coba apakah sensor dapat melakukan pendeteksian atau tidak, serta output akan
bekerja dengan baik atau tidak jika sensor dalam keadaan aktif.
50
3.7.1. Hasil Input
Tabel III.1.
Hasil Percobaan Input Sensor HC-SR 04
Sensor HC-SR 04
No Percobaan Jarak Status
1. Saat alat aktif Jarak >15cm Aman
2. halangan di depan Jarak<15cm Terhalang
3. Halangan di kiri
dan kanan
Jarak halangan kiri 10cm Jarak halangan kanan 5cm Terhalang
Sesuai pada struktur koding yaitu jika jarak >15cm maka starus aman, se-
dangkan jarak <15cm maka status terhalang. Pada Tabel III.1. hasil uji coba diatas
menunjukkan pada percobaan pertama saat alat pertama kali dinyalakan pada sensor
HC-SR 04 mendeteksi jarak >15cm maka status aman dan robot akan berjalan maju.
Pada percobaan kedua yaitu dengan jarak <15cm status menjadi terhalang dan robot
akan bergerak mundur. Kemudian pada percobaan ketiga apabila robot telah
mendeteksi adanya halangan di depannya, robot akan mendeteksi kembali jarak pada
sisi kanan dan kiri. Sensor mendeteksi halangan di sisi kanan berjarak 5cm dan sisi
kiri berjarak 10cm maka robot akan berbelok kea rah kiri yang memiliki jarak lebih
luas dari halangan.
51
Tabel III.2.
Hasil Percobaan Input Sensor Infrared
Sensor Infrared
No Percobaan Jarak Pantul Status
1. Saat alat aktif <900mm Aman
2. Pada lintasan <500mm Aman
3. Ujung lintasan >900mm Lintasan Terputus
Sesuai pada struktur koding yaitu jika jarak pantul sensor <900 maka status
sensor infrared akan mendeteksi adanya lintasan dibawahnya maka status lintasan masih
aman. Pada Tabel III.2. hasil uji coba diatas menunjukkan pada percobaan pertama saat
alat pertama kali dinyalakan sensor mendeteksi pantulan <900. Pada percobaan kedua
yaitu dengan meletakkan robot pada lintasan sensor membaca pantulan <500 maka
status lintasan aman, Percobaan ketiga dengan ujung lintasan seperti jurang sensor
membaca jarak pantulan >900 maka status jalur terputus.
52
3.7.2. Hasil Output
Tabel III.3.
Hasil Percobaan Output Sensor HC-SR 04
Percobaaan Jarak Motor DC Motor
Servo
Buzzer Tampilan LCD
1. <15cm Berhenti,
mundur, berbelok
Aktif Aktif ADA
HALANGAN
2. >15cm Aktif bergerak
maju
Tidak aktif Tidak
aktif
AMAN
Pada tabel III.3. menunjukkan bahwa pada percobaan pertama atau saat alat
pertama kali dinyalakan dengan jarak <15cm maka sensor HC-SR 04 mendeteksi
adanya suatu gerakan atau halangan, maka lcd menampilkan status “SILAHKAN
BUANG”, motor servo yang dalam keadaan aktif otomatis akan berputar ke kiri dan
kanan, buzzer aktif dan Motor DC akan berhenri, bergerak mundur dan berbelok ke atah
yang aman. Percobaan kedua jika jarak >15cm sensor HC-SR 04 tidak mendeteksi
adanya suatu gerakan atau halangan, maka lcd menampilkan status “AMAN”, kemudian
Motor DC akan menggerakan Robot maju.
53
Tabel III.4.
Hasil Percobaan Output Sensor Infrared
Percobaaan Jarak Pantul Motor DC Motor
Servo
Buzzer Tampilan LCD
1. <900 Sktif
bergerak
maju
Tidak
Aktif
Tidak
Aktif
AMAN
2. >900 Berhenti,
mundur,
berputar arah
Tidak
Aktif
Tidak
Aktif
JALUR
TERPUTUS
Pada tabel III.4. menunjukkan bahwa pada percobaan pertama atau saat alat
pertama kali dinyalakan maka sensor Infrared mendeteksi pantulan <900, lcd
menampilkan status “AMAN”, maka Motor DC akan bergerak maju. Percobaan kedua
jika sensor tidak mendeteksi pantulan>900 maka lcd menampilkan status “JALUR
TERPUTUS”, kemudian Motor DC akan berhenti, bergerak mundur dan berputar atah.
54
3.7.3. Hasil Keseluruhan Alat
Tabel III.5.
Hasil Percobaan Keseluruhan Alat
No. Sensor HC-SR
04
Sensor
Infrared
Motor
Servo
Buzzer Tampilan
LCD
Motor DC
1. Saat alat aktif Saat alat
aktif
Tidak
aktif
Tidak
aktif
AMAN Aktif
bergerak
maju
2. <15cm <900 Aktif Aktif ADA
HALANGAN
Berhenti,
mundur,
berbelok
3. >15cm >900 Tidak
aktif
Titak
aktif
JALUR
TERPUTUS
Berhenti,
mundur
berputar
arah
Pada tabel III.5. menunjukkan hasil dari percobaan keseluruhan alat, saat alat
pertama kali dinyalakan maka semua sensordan Motor DC dalam keadaan aktif, dan
LCD akan menampilkan text berupa “ROBOT AVOIDER”,”AMAN”. Pada percobaan
kedua jika sensor HC-SR 04 mendeteksi gerakan atau halangan pada jarak <15cm dan
sensor Infrared yang mendeteksi pantulan <900, maka buzzer akan berbunyi dan lcd
akan menampilan text berupa “ADA HALANGAN” serta Motor DC akan berhenti dan
55
bergerak mundur kemudian servo aktif berputar ke kiri dan kanan sambil sensor HC-SR
04 membaca jarak kiri dan kanan, kemudian Motor DC akan berbelok kea rah yang
kebuh aman sesuai jarak yang dibaca sensor HC-SR 04. Pada percobaan ketiga jika
sensor HC-SR 04 mendeteksi gerakan atau halangan pada jarak >15cm dan sensor
Infrared mendeteksi pantulan >900 maka motor Motor DC berhenti kemudian bergerak
mundur lalu berputar arah ,dan lcd akan menampilan text berupa “JALUR
TERPUTUS”.