0% menganggap dokumen ini bermanfaat (0 suara)
110 tayangan22 halaman

Prototipe Robot Line Follower Print

Ringkasan dokumen tersebut adalah: 1. Laporan ini membahas tentang prototipe robot line follower berbasis modul Arduino Nano untuk penyapu jalan. 2. Robot ini dirancang untuk mendeteksi garis dan mengikuti garis tersebut menggunakan 8 sensor inframerah dan mikrokontroler Arduino Nano. 3. Robot ini dapat digerakkan maju, mundur, berbelok kiri dan kanan berdasarkan nilai error dari posisi robot relatif terhadap garis.

Diunggah oleh

adhi_setiabudhi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
110 tayangan22 halaman

Prototipe Robot Line Follower Print

Ringkasan dokumen tersebut adalah: 1. Laporan ini membahas tentang prototipe robot line follower berbasis modul Arduino Nano untuk penyapu jalan. 2. Robot ini dirancang untuk mendeteksi garis dan mengikuti garis tersebut menggunakan 8 sensor inframerah dan mikrokontroler Arduino Nano. 3. Robot ini dapat digerakkan maju, mundur, berbelok kiri dan kanan berdasarkan nilai error dari posisi robot relatif terhadap garis.

Diunggah oleh

adhi_setiabudhi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 22

PROTOTIPE ROBOT LINE FOLLOWER

UNTUK PENYAPU JALAN BERBASIS


MODUL ARDUINO NANO
Laporan ini ditulis untuk memenuhi sebagian persyaratan dalam Tugas Mata
kuliah Robotika

Di susun Oleh :
Adhi Setiabudhi

: 41187003130048

Agus Apriyanto

: 41187003130045

Muhamad Saipudin

: 41187003130018

M. Ulin Nuha

: 41187003150005

Mustofa Kamal

: 41187003130051

Novianto

: 41187003130003

Setiyaji

: 41187003130037

Triyono Sutanto

: 41187003130002

Yayang Alferdian

: 41187003130024

PROGRAMSTUDITEKNIKELEKTRO FAKULTASTEKNIK
UNIVERSITAS ISLAM 45 BEKASI
2016

A. JUDUL
Prototipe Robot Line Follower Untuk Penyapu Jalan Berbasis Modul
Arduino Nano
B. LATAR BELAKANG
Perkembangan teknologi begitu pesat dan penerapan mikrokontroler
pada bidang robotika terus mengalami perkembangan yang sangat pesat pula.
Banyak negara maju (Amerika, Jerman, Inggris, Jepang, Perancis) berlombalomba

untuk

menciptakan

robot-robot cerdas

dengan

keistimewaan-

keistimewaan khusus. Temasuk indonesia sebagai negara berkembang, hal ini


terlihat dengan diselenggarakannya ajang Kontes Robot Indonesia (KRI),
Kontes Robot Cerdas Indonesia (KRCI) maupun kontes robot yang lain oleh
Departemen Pendidikan Nasional (Depdiknas) dan juga ajang Electronics and
Informatics Technology Competition (ELINFO)Kategori RoboRace Line
Follower Contest (RR). Pembuatan robot-robot dengan keistimewaan khusus
sangat berkaitan erat dengan adanya kebutuhan dalam dunia industri modern
yang menuntut adanya suatu instrumen dengan kemampuan yang tinggi yang
dapat

membantu

menyelesaikan

pekerjaan manusia

ataupun

untuk

menyelesaikan pekerjaan yang tidak mampu diselesaikan oleh manusia.


Pada robot

line follower

sensor

proximity

sering digunakan

untuk mendeteksi ada atau tidaknya suatu garis untuk gerak robot.
Dengan demikian sensor proximity difungsikan sebagai sensor garis. Sensor ini
dapat dibuat dari pasangan LED (Light Emitting Diode) dan Photodioda yang
dipasang secara sejajar dan berdampingan. Jika pancaran LED memantul pada
garis dan diterima oleh basis Photodioda maka Photodioda menjadi saturasi
(off) sehingga tegangan keluaran mendekati 0 volt, yang didefinisikan sebagai
logika 0 atau low. Sebaliknya jika tidak terjadi pantulan, artinya pancaran
dari LED diserap oleh garis, maka Photodioda menjadi cut-off dimana
tegangan keluaran sama dengan Vcc (5 volt). Kondisi ini didefinisikan sebagai
logika 1 atau high. Robot jenis line follower bergerak menggunakan

aktuator berupa motor DC. Motor DC merupakan suatu motor penggerak yang
dikendalikan dengan arus searah.
Jenis penggerak robot line follower, biasanya memiliki 2 buah motor
DC yang diapasang di sebelah kiri dan kanan robot, kedua motor bergerak
secara diferensial. Untuk dapat menggerakan robot maka masing-masing motor
DC harus diatur arah putar dan kecepatannya lewat sebuah rangkaian driver
motor. Prinsip kerja dari driver ini hanya dengan melewatkan arus pada motor
dan menghentikan arus yang melewati motor serta mengatur arah arusnya.
Pengaturan kecepatan kedua motor DC tersebut dapat diaplikasikan sebagai
steering sekaligus penggerak robot line follower. Pengaturan kecepatan
masing-masing motor sangat menentukan tingkat kestabilan robot dalam
bergerak.
Pada robot yang sangat berperan dalam pengaturan arah dan
kecepatan kedua motor DC adalah sistem navigasi dari robot itu sendiri. Sistem
navigasi inilah yang merupakan otak dari robot. Otak robot diprogram oleh
manusia sesuai dengan keinginannya, kemudian ditanamkan ke dalam sebuah
chip mikrokontroler. Mikrokontroler pada robot difungsikan sebagai unit
pemroses data, sistem monitoring, dan sistem kontrol, dimana piranti
kontrol konvensional tidak dapat melakukannya.
Sistemnavigasirobot

menggunakan

sistemkontrol konvensional,kontrolP,kontrolI,kontrol D atau gabungan kontrol


PID, tidak dapat melakukan adaptasi terhadap perubahan dinamik sistem
selama operasi, karena parameter P, I dan D secara teoritis hanya mampu
memberikan efek kontrol terbaik pada kondisi sistem yang sama ketika
parameter tersebut di-tune. Pada penerapan fuzzy logic controller pada line
follower robot diharapkan dapat memberikan perubahan pergerakan robot yang
halus dari kondisi berbelok ke kondisi bergerak lurus maupun sebaliknya tanpa
menimbulkan pergerakan yang kaku. Dengan didasari hal-hal tersebut di atas,
maka pembuatan prototype line follower ini mencoba melakukan perancangan
dan implementasi line follower robot menggunakan mikrokontroler Arduino
Nano dengan sistem navigasi berbasis fuzzy logic controller.

C. TUJUAN
Tujuan utama dari penulisan laporan ini adalah :
1.
2.
3.
4.
5.

Mahasiswa dapat menjelaskan tentang robot line follower.


Mahasiswa dapat memahami blok rangkaian robot line follower.
Mahasiswa dapat memahami tentang mikrokontroler.
Mahasiswa dapat memahami cara kerja sensor garis dengan ADC.
Mahasiswadapatp merancangandanmengimplementasikansebuahrobotline
follower.

D. DESAIN RANCANGAN
1. Rancangan Hardware
a) Spesifikasi :
1. 8 sensor
2. Chip Microcontroller Arduino Nano
3. LCD 16X2
4. 5 button control
5. Driver motor
6. Gearbox Motor DC Custom
Berikut pada gambar 1 ditunjukan model robot line follower :

Gambar 1. Robot Line Follower


b) Skematik Rancangan Robot Line Follower

Berikut pada gambar dibawah ini ditunjukan rangkaian robot line follower :

Gambar 2. Skematik Robot Line Follower


c) Layout Robot Line Follower
Berikut pada gambar dibawah ini ditunjukan layout robot line follower :
1. Layout Sismin

Gambar 3. Layout Sismin Robot Line Follower

2. Layout Driver Motor

Gambar 4. Layout Driver Motor Robot Line Follower


3. Layout Push Button

Gambar 5. Layout Push Button Robot Line Follower


d) Flowchart Kendali Robot Line Follower
Berikut pada gambar dibawah ini ditunjukan flowchart kendali LF :

Gambar 6. Flowchart Robot Line Follower


Tabel komponen yang digunakan :

Tabel 1. Komponen yang digunakan

2. Rancangan Software
Berikutadalahrancangan code software
/* Define motor controll inputs */
const int motorRPin1 = 2; // signal pin 1 for the right motor, connect to IN1
const int motorRPin2 = 3; // signal pin 2 for the right motor, connect to IN2
const int motorREnable = 5; // enable pin for the right motor (needs to be
PWM enabled)
const int motorLPin1 = 4; // signal pin 1 for the left motor, connect to IN3
(was 5 - need to change)
const int motorLPin2 = 7; // signal pin 2 for the left motor, connect to IN4

const int motorLEnable = 6; // enable pin for the left motor (needs to be
PWM enabled)
/* Define the pins for the IR receivers */
const int irPins[6] = {A0, A1, A2, A3, A4, A5};
/* Define values for the IR Sensor readings */
// an array to hold values from analogRead on the ir sensor (0-1023)
int irSensorAnalog[6] = {0,0,0,0,0,0};
// an array to hold boolean values (1/0) for the ir sensors, based on the analog
read and the predefined treashold
int irSensorDigital[6] = {0,0,0,0,0,0};
// the value above which we determine an IR sensor reading indicates the
sensor is over a line
int treashold = 700;
// binary representation of the sensor reading from left to right
int irSensors = B000000;
// sensors detecting the line
int count = 0;
// a score to determine deviation from the line [-180 ; +180]. Negative means
the robot is left of the line.
int error = 0;
// store the last value of error
int errorLast = 0;

// a coorection value, based on the error that is used to change motor speed
with PWM
int correction = 0;
// keep track of the laps
int lap = 0;
/* Set up maximum speed and speed for turning (to be used with PWM) */
// PWM to control motor speed [0 - 255]
int maxSpeed = 50;
/* variables to keep track of current speed of motors */
int motorLSpeed = 0;
int motorRSpeed = 0;
void setup() {
/* Set up motor controll pins as output */
pinMode(motorLPin1,OUTPUT);
pinMode(motorLPin2,OUTPUT);
pinMode(motorLEnable,OUTPUT);
pinMode(motorRPin1,OUTPUT);
pinMode(motorRPin2,OUTPUT);
pinMode(motorREnable,OUTPUT);
/* Set-up IR sensor pins as input */
for (int i = 0; i < 6; i++) {
pinMode(irPins[i], INPUT);

}
/* Change the PWM frequency of digital pins 5 and 6 (timer0) to Phasecorrect PWM of 31.250 kHz
from the default of ~500Hz. Using code from Adjusting PWM Frequencies
http://playground.arduino.cc/Main/TimerPWMCheatsheet
This requires a separate change in the wiring.c function in the Arduino
program files
hardware\arduino\cores\arduino\wiring.c from:
#define

MICROSECONDS_PER_TIMER0_OVERFLOW

(clockCyclesToMicroseconds(64 * 256))
to:
#define

MICROSECONDS_PER_TIMER0_OVERFLOW

(clockCyclesToMicroseconds(1 * 510))
Without the change to wiring.c time functions (millis, delay, as well as
libraries using them
will not work corectly.
*/
TCCR0A = _BV(COM0A1) | _BV(COM0B1) | _BV(WGM01) |
_BV(WGM00);
TCCR0B = _BV(CS00);
}
void loop() {
Scan();
UpdateError();
UpdateCorrection();
Drive();

}
void Scan() {
// Initialize counters, sums etc.
count = 0;
irSensors = B000000;
for (int i = 0; i < 6; i++) {
irSensorAnalog[i] = analogRead(irPins[i]);
if (irSensorAnalog[i] >= treashold) {
irSensorDigital[i] = 1;
}
else {irSensorDigital[i] = 0;}
Serial.print(irSensorAnalog[i]);
Serial.print("|");
count = count + irSensorDigital[i];
int b = 5-i;
irSensors = irSensors + (irSensorDigital[i]<<b);
}
}
void UpdateError() {
errorLast = error;
switch (irSensors) {
case B000000:

if (errorLast < 0) { error = -180;}


else if (errorLast > 0) {error = 180;}
break;
case B100000: // leftmost sensor on the line
error = -150;
break;
case B010000:
error = -90;
break;
case B001000:
error = -30;
break;
case B000100:
error = 30;
break;
case B000010:
error = 90;
break;
case B000001: // rightmost sensor on the line
error = 150;
break;
/* 2 Sensors on the line */
case B110000:

error = -120;
break;
case B011000:
error = -60;
break;
case B001100:
error = 0;
break;
case B000110:
error = 60;
break;
case B000011:
error = 120;
break;
/* 3 Sensors on the line */
case B111000:
case B011100:
error = -150;
break;
case B000111:
case B001110:
error = 150;
break;

/* 4 Sensors on the line */


case B111100:
error = -150;
break;
case B111010:
error = -150;
break;
case B001111:
error = 150;
break;
case B010111:
error = 150;
break;
/* 5 Sensors on the line */
case B111110:
error = -150;
break;
case B011111:
error = +150;
break;
case B111111:
lap = lap + 1; // increment laps when start/finish line is crossed
error = 0;
break;

default:
error = errorLast;
}
}
void UpdateCorrection() {
if (error >= 0 && error < 30) {
correction = 0;
}
else if (error >=30 && error < 60) {
correction = 15;
}
else if (error >=60 && error < 90) {
correction = 40;
}
else if (error >=90 && error < 120) {
correction = 55;
}
else if (error >=120 && error < 150) {
correction = 75;
}
else if (error >=150 && error < 180) {
correction = 255;
}

else if (error >=180) {


correction = 305;
}
if (error <= 0 && error > -30) {
correction = 0;
}
else if (error <= -30 && error > -60) {
correction = -15;
}
else if (error <= -60 && error > -90) {
correction = -40;
}
else if (error <= -90 && error > -120) {
correction = -55;
}
else if (error <= -120 && error > -150) {
correction = -75;
}
else if (error <= -150 && error > -180) {
correction = -255;
}
else if (error <= -180) {
correction = -305;
}

if (correction >= 0) {
motorRSpeed = maxSpeed - correction;
motorLSpeed = maxSpeed;
}
else if (correction < 0) {
motorRSpeed = maxSpeed;
motorLSpeed = maxSpeed + correction;
}
}
void Drive() {
if (motorRSpeed > 255) {motorRSpeed = 255;}
else if (motorRSpeed < -255) {motorRSpeed = -255;}
if (motorLSpeed > 255) {motorLSpeed = 255;}
else if (motorLSpeed < -255) {motorLSpeed = -255;}
if (motorRSpeed > 0) { // right motor forward (using PWM)
analogWrite(motorREnable, motorRSpeed);
digitalWrite(motorRPin1, HIGH);
digitalWrite(motorRPin2, LOW);
}
else if (motorRSpeed < 0) {// right motor reverse (using PWM)
analogWrite(motorREnable, abs(motorRSpeed));
digitalWrite(motorRPin1, LOW);
digitalWrite(motorRPin2, HIGH);
}

else if (motorRSpeed == 0) { // right motor fast stop


digitalWrite(motorREnable, HIGH);
digitalWrite(motorRPin1, LOW);
digitalWrite(motorRPin2, LOW);
}
if (motorLSpeed > 0) { // right motor forward (using PWM)
analogWrite(motorLEnable, motorLSpeed);
digitalWrite(motorLPin1, HIGH);
digitalWrite(motorLPin2, LOW);
}
else if (motorLSpeed < 0) { // right motor reverse (using PWM)
analogWrite(motorLEnable, abs(motorLSpeed));
digitalWrite(motorLPin1, LOW);
digitalWrite(motorLPin2, HIGH);
}
else if (motorLSpeed == 0) { // left motor fast stop
digitalWrite(motorLEnable, HIGH);
digitalWrite(motorLPin1, LOW);
digitalWrite(motorLPin2, LOW);
}
}

E. LANGKAH PEMBUATAN
1. Desain Layout
2. Menyablon Layout Pada PCB
3. Pelarutan PCB
4. Pemasangan Komponen dan Penyolderan
5. Memrogram Mikrokontroller
6. Menyatukan Elektronik dan Mekanik
7. Finishing
8. Uji Coba Rangkaian
F. PENGUJIAN
Setelah melakukan perancangan dan pembuatan alat, maka tahap yang
harus dilakukan selanjutnya adalah melakukan pengujian pada alat yang
telahdibuat.Pengujiandanpengamatandilakukan

pada

dankeseluruhansistemyangterdapatdalamperalatan
dilakukandengancaramelakukanpengukuranpada
sehinggadidapat perbandinganantarahasilpengujian

ini.
tiap

perangkat

keras

Pengujian
blok

sistem

ini
alat,

yang didapatdengan

perancangan sistem. Danjugadapatdianalisa apakahsistempadaLine Follower


ini berfungsi denganbaikdanstabil.Tujuandaripengukuransistem ini adalah :
1. Mengetahui apakah perangkat keras yang telah dibuat dapat bekerja
dengan baik.
2. Dapat diketahui parameter perbandingan antara hasil pengujian dengan
perancangan, sehingga dapat diketahui apakah kinerja sistem stabil.
G. ANALISIS DATA
1. Line Follower Robot adalah sebuah alat yang dapat berjalan secara
otomatis mengikuti garis berdasarkan perubahan warna pada garis baik
hitam dan putih. Hasil dari perubahan warna tersebut menyebabkan nilai
pada photo diode berubah sehingga menyebabkan nilai yang masuk ke
dalam port ADC pada mikrokontroller berubah, dan nilai ADC tersebut
yang akan kita oleh menjadi sebuah input.

2. Perancangandilakukanberdasarkanblok

per

dari

setiap

rangkaian,dimanatiap-tiapblokmempunyaifungsimasing-masing

dan

blokrangkaianyangsatudenganblokrangkaian
satukesatuanyangsalingterkaitdan

blok
yang

berhubungan

lain
serta

merupakan
membentuk

satukesatuanyangsalingmenunjang kerja dari sistem. Blok rangkaian dari


robot ini dapat dilihat selengkapnya pada gambar 7.

Gambar 7. Diagram Blok Rangkaian Keseluruhan


Diagram blok diatas dijelaskan bahwa input yang masuk pada
mikrokontroler akan menggerakkan motor yang merupakan output pada
mikrokontroler. Disini dapat dilihat pentingnya peranan mikrokontroler,
yang mana mikrokontroler akan mengolah input dan mengatur output.
Jadi mikrokontroler merupakan pengendali utama dari sistem kerja robot.
3. Arduino Nano adalah jenis mikrokontroler yang paling sering dipakai
dalam bidang elektronika dan instrumentasi. Mikrokontroler Arduino ini
memiliki arsitektur RISC (Reduce Instruction Set Computing) delapan
bit, di mana semua instruksi dikemas dalam kode 16-bit (16 bits word)
dan sebagian besar instruksi dieksekusi dalam 1 (satu ) siklus clock.
Nama
4. Rangkaian dasar sensor garis menggunakan ADC hampir sama dengan
rangkaian menggunakan metode On Off hanya saja dengan ADC tidak
perlu rangkaian Op Amp.
H. KESIMPULAN

Setelah melalui tahap perencanaan dan perancangan, maka sebuah


line follower robot dapat direalisasikan. Kemudian dilakukan pengujian
dan analisa pada sistemnya yang dapat diambil beberapa kesimpulan
sebagai berikut :
1. Line follower robot merupakan suatu rangkaian otomatis terintegrasi
yangterdiridaritiga

komponen

penting

yaitu,

konstruksi

fisik,

rangkaianelektronis,dansoftwarepengontrol.
2. Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol
rangkaian elektronik dan

umunya dapat menyimpan program

didalamnya. Mikrokontroler umumnya terdiri dari CPU (Central


Processing Unit), memori, I/O tertentu dan unit pendukung seperti
Analog-to-Digital Converter

(ADC) yang sudah terintegrasi di

dalamnya.
3. Pengaturan jarak deteksi sensor dapat dilakukan dengan mengatur
besarnya nilai penguatan pada photodioda.
4. Kendali pada line follower robot ini diterapkan menggunakan software
LabVIEW 7.1 dengan metode ON/OFF.
5. Penggunaan kendali ON/OFFpada LabVIEW 7.1 yangdihubungan
melaluiportpararel memangtidakpraktis,tetapidalam

perancangannya

dirasakan lebih mudah.


6. Fungsi pertama yang harus ada dalam program C dan sudah ditentukan
namanya adalah main().
7. Fungsi terdiri atas satu atau beberapa pernyataan, yang secara
keseluruhan

dimaksudkan untuk

melaksanakan tugas khusus.

Bagian pernyataan fungsi (sering disebut tubuh fungsi) diawali dengan


tanda kurung kurawal buka ({) dan diakhiri dengan tanda kurung
kurawal tutup (}). Di antara kurung kurawal itu dapat dituliskan
statemen-statemen program C.
8. Semua sistem yang dimiliki oleh line follower robot saling
berhubungan.Jadi, ketika salah satu sistem tidak berfungsi dengan
baik, akan mempengaruhi kinerja dari seluruh sistem robot.
I.

SARAN

Dalam merencanakan dan merancang sebuah line follower robot,


diperlukan kecermatan dan ketelitian dalam pemilihan bahan penyusun
konstruksi

fisik,

komponen

elektronik,

dan

terlebih

pada

software

pengontrolnya agar sistem yang dirancang dapat berfungsi dengan sempurna.


Line follower robot merupakan salah satu hasil karya teknologi, maka
sistem ini diharapkan dapat dimanfaatkan dan diaplikasikan dalam kehidupan
sehari-hari dalam bentuk dan metode yang sederhana serta ekonomis.

Anda mungkin juga menyukai