Anda di halaman 1dari 76

Sistem Pengaturan Roda Penggerak Pada Robot KRTMI

SKRIPSI

OLEH
Achmad Rofiuddin H.F
NIM. 1941177005

PROGRAM STUDI TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
2020
Sistem Pengaturan Roda Penggerak Pada Robot KRTMI

SKRIPSI
Diajukan sebagai salah satu syarat memperoleh
Ijazah Sarjana Sains Terapan Program D IV Elektronika
Jurusan Teknik Elektro Politeknik Negeri Malang

Oleh
Achmad Rofiuddin H.F
NIM : 1941177005

POLITEKNIK NEGERI MALANG


JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI TEKNIK ELEKTRONIKA
JULI 2020

iii
iii
PERNYATAAN TIDAK PLAGIASI

iv
ABSTRAK

Achmad Rofiuddin H.F 2020. Sistem Pengaturan Roda Penggerak Pada Robot
KRTMI . Skripsi, Program studi Teknik Elektronika, Jurusan Teknik Elektro,
Politeknik Negeri Malang.
Pembimbing (I) Ir. Totok Winarno, MT., Pembimbing (II) Indrazno Siradjuddin, ST.,
MT., PhD.

Kontes Robot Indonesia (KRI) adalah salah satu ajang untuk mendukung
perkembangan dan kemajuan bidang robotika. Salah satu cabang KRI adalah KTMI
atau Kontes Robot Tematik Indonesia yang mengangkat tema Robot Tanam Padi.
Dalam sebuah Pertandingan Kontes Robot Tematik 2020 ini robot diharuskan mampu
bergerak melewati segala rintangan dengan cepat dan tepat . Sehingga robot di desain
menggunakan prinsip tank menggunakan belt sebagai karet roda agar dapat melewati
rintangan tersebut. Sehingga sistem yang digunakan robot adalah differential drive
yang berarti robot menggunakan 2 buah motor penggerak untuk roda kanan dan kiri.
Metode yang digunakan pada robot ini adalah metode kontrol PID untuk
menyelaraskan kecepatan kedua motor. Dan untuk feedback robot menggunakan
sensor rotary encoder internal pada Motor PG36.

Dalam penelitian skripsi ini mempersembahkan sebuah hasil percobaan tentang robot
tank yang dapat melaju dengan kecepatan yang stabil pada rintangan-rintangan yang
telah sediakan dan dapat dikontrol mengggunkan joystick PS3.

Kata Kunci : Kontrol PID, Sensor rotary encoder, Differential Robot, joystick PS3

v
ABSTRACT

Achmad Rofiuddin H.F 2020. Drive Wheel Control System on KRTMI Robot. Thesis,
Study Program Electronics Engineering , Major of electrical Engineering, State
Polytechnic of malang.
Advisors (I) Ir. Totok Winarno, MT., Advisors (II) Indrazno Siradjuddin, ST., MT.,
PhD.
The Indonesian Robot Contest (KRI) is an event to support the development and
advancement of robotics. One of the KRI branches is KTMI or the Indonesian Thematic
Robot Contest with the theme Rice Planting Robot. In a Thematic Robot Contest 2020,
the robot is required to be able to move through all obstacles quickly and precisely. So
that the robot is designed using the tank principle using a belt as a rubber wheel so that it
can pass through these obstacles. So the system used by the robot is differential drive,
which means the robot uses 2 motors for the right and left wheels. The method used in
this robot is the PID control method to synchronize the speed of the two motors. And for
robot feedback using an internal rotary encoder sensor on the PG36 motor.

In this research, this thesis presents an experimental result of a tank robot that can run at
a stable speed at the obstacles that have been provided and can be controlled using a PS3
joystick.
Keywords: PID Control, Rotary Encoder Sensor, Differential Robot, PS3 Joystick.

vi
KATA PENGANTAR

Bismilillahirrohmanirrohim. Alhamdulillah, puji syukur penulis panjatkan


kehadirat Allah SWT yang telah melimpahkan rahmat dan hidayah-Nya sehingga
penulis dapat menyelesaikan karya tulis yang berjudul “Sistem Pengaturan Roda
Penggerak Robot KRTMI” ini dengan baik. Tak lepas shalawat serta salam
tercurahkan kepada junjungan kita Nabi Muhammad SAW yang telah menjadi suri
tauladan rahmat dan hidayah-Nya. Skripsi ini disusun sebagai persyaratan memperoleh
gelar Sarjana Sains Terapan Jurusan Teknik Elektro, Program Studi Teknik
Elektronika, Politeknik Negeri Malang.

Dalam penyusunan penelitian studi, penulis tidak lepas dari kendala yang
dihadapi seperti keterbatasan pengetahuan, sarana dan prasaran. Serta tidak lepas dari
bantuan dan bimbingan serta dorongan dari semua pihak. Oleh karena itu penulis
terimakasih kepada :

1. Allah SWT yang telah memberikan kelancaran, kemudahan dan hidayah-


Nya.
2. Kedua Orang tua saya. Kusnan dan Nur Ida Rochani yang selalu
mendukung dan mendoakan. Serta memberikan saya banyak motivasi.
3. Bapak Drs. Awan Setiawan, MM selaku direktur Polteknik Negeri
Malang.
4. Bapak M. Junus, ST., MT selaku Ketua Jurusan Teknik Elektro Politeknik
Negeri Malang
5. Bapak Ir. Totok Winarno, MT. Selaku dosen pembimbing I, pembimbing
tim KRAI Politeknik Negeri Malang dan Ketua KPS D-IV teknik
elektronika. Yang memberikan banyak pengarahan, motivasi dan masukan
yang telah diberikan.
6. Bapak Indrazno Siradjuddin, ST., MT., PhD sebagai dosen pembimbing II,
pembimbing tim robot sepakbola beroda Politeknik Negeri Malang dan ketua
proram studi S2 Magister Teknik Elektro. Yang memberikan banyak
pengarahan, motivasi dan masukan yang telah diberikan.

vii
7. Seluruh dosen dan staff prodi Teknik Elektronika Politeknik Negeri
Malang yang telah memberikan bimbingan selama perkuliahan.
8. Teman-teman Workshop Electro Polinema dan semua pihak yang telah
membantu menyelesaikan skripsi.
9. Teman-teman angkatan 2016 D-IV Teknik Elektronika dan semua pihak
yang telah membantu menyelesaikan skripsi.

Dalam Penyusunan Skripsi ini. Penulis menyadari bahwa skripsi ini belumlah
sempurna, karena keterbatasan ilmu dan kendala – kendala lain yang terjadi selama
pengerjaan skripsi ini. Oleh karena itu kamu mengharap kritik dan saran yang
membangun diperlukan penulis. Semoga tulisan ini dapat bermanfaat bagi semua pihak
pembaca.

Malang, 11 Januari 2021.

Penulis

viii
DAFTAR ISI
SKRIPSI ........................................................................................................................................... i
PERNYATAAN TIDAK PLAGIASI ............................................................................................ iv
ABSTRAK ...................................................................................................................................... v
ABSTRACT ............................................................................................................................... vi
KATA PENGANTAR .............................................................................................................. vii
DAFTAR ISI .............................................................................................................................. ix
DAFTAR GAMBAR ................................................................................................................. xi
DAFTAR TABEL .................................................................................................................... xiii
BAB I .......................................................................................................................................... 1
1.1 Latar Belakang Masalah ............................................................................................... 1
1.2 Rumusan Masalah......................................................................................................... 2
1.3 Batasan Masalah ........................................................................................................... 2
1.4 Tujuan ........................................................................................................................... 3
1.5 Manfaat ......................................................................................................................... 3
1.6 Inovasi/Temuan yang ditargetkan ................................................................................ 3
1.7 Luaran Skripsi............................................................................................................... 3
1.8 Sistematika Penulisan ................................................................................................... 4
BAB II ......................................................................................................................................... 5
2.1 Review Penelitian Pendahulu ....................................................................................... 5
2.2 Kontrol PID .................................................................................................................. 6
2.3 Arduino Mega 2560p .................................................................................................... 8
2.4 Mikrokontroler Atmega328p ........................................................................................ 9
2.5 Sensor Rotary Encoder ............................................................................................... 10
2.6 LCD (Liquid Crystal Display) .................................................................................... 12
2.7 Driver Motor ............................................................................................................... 13
2.8 Motor DC .................................................................................................................... 16
BAB III ..................................................................................................................................... 18
3.1 Konsep Penyelesaian Masalah.................................................................................... 18
3.2 Studi Literatur ............................................................................................................. 18
3.3 Metode Penelitian ....................................................................................................... 19
3.4 Penentuan Variabel Penelitian .................................................................................... 19
3.5 Pengambilan Data ....................................................................................................... 20
3.6 Analisa Data ............................................................................................................... 20

ix
3.7 Diagram Blok Sistem.................................................................................................. 20
3.8 Diagram Blok Kontrol ................................................................................................ 22
3.9 Prinsip Kerja Alat ....................................................................................................... 22
3.10 Perancangan Mekanik ............................................................................................. 23
3.11 Perancangan Elektrik .............................................................................................. 27
BAB IV ..................................................................................................................................... 31
4.1 Pengujian LCD ........................................................................................................... 31
4.2 Pengujian dan Analisa Driver Motor BTS 7960 ........................................................ 32
4.3 Pengujian dan Analisa Sensor Encoder ...................................................................... 34
4.4 Pengujian dan Analisa Nilai Kp, Ki, Kd .................................................................... 36
4.5 Spesifikasi Mekanik Robot ......................................................................................... 46
BAB V ...................................................................................................................................... 49
5.1 Kesimpulan ................................................................................................................. 49
5.2 Saran ........................................................................................................................... 49
DAFTAR PUSTAKA ............................................................................................................... 50
LAMPIRAN 1 ........................................................................................................................... 51
LAMPIRAN 2 ........................................................................................................................... 56

x
DAFTAR GAMBAR
Gambar 1 Arduino Mega ADK....................................................................................................... 8
Gambar 2 Bagian Sensor Rotary Encoder .................................................................................... 10
Gambar 3 Perbedaan Sinyal CW Dan CCW................................................................................. 11
Gambar 4 Sensor Rotary Encoder................................................................................................. 11
Gambar 5 LCD 20x4..................................................................................................................... 12
Gambar 6 Driver Motor BTS 7960 ............................................................................................... 13
Gambar 7 Rangkaian H-Bridge .................................................................................................... 14
Gambar 8 Bagian-bagian Motor ................................................................................................... 16
Gambar 9 Motor DC PG36 ........................................................................................................... 17
Gambar 10 Flowchart Alur Pengerjaan Alat ................................................................................ 18
Gambar 11 Diagram Blok ............................................................................................................. 21
Gambar 12 Diagram Blok Kontrol ............................................................................................... 22
Gambar 13 Desain Robot Tampak Belakang................................................................................ 24
Gambar 14 Desain Robot Tampak Kanan .................................................................................... 24
Gambar 15 Desain Robot Tampak Depan .................................................................................... 25
Gambar 16 Desain Robot Tampak Isometric................................................................................ 26
Gambar 17 Desain Robot Tampak Atas ....................................................................................... 26
Gambar 18 Minimum System Atmega328p ................................................................................. 27
Gambar 19 Wiring LCD 20x4 dengan Arduino Mega ................................................................. 28
Gambar 20 Desain Board PCB Kontrol ........................................................................................ 29
Gambar 21 Desain 3d Board Kontrol Tampak Atas ..................................................................... 29
Gambar 22 Desain 3d Board Kontrol tampak Samping ............................................................... 30
Gambar 23 Desain 3d Board Kontrol Tampak Bawah ................................................................. 30
Gambar 24 Uji Coba LCD 20x4 ................................................................................................... 32
Gambar 25 Serial Monitor Sensor Rotary Encoder ...................................................................... 35
Gambar 26 Serial Monitor Sensor Rotary Encoder CW ............................................................... 36
Gambar 27 Uji Coba PID 1........................................................................................................... 37
Gambar 28 Uji Coba PID 2........................................................................................................... 38
Gambar 29 Uji Coba PID 3........................................................................................................... 39
Gambar 30 Uji Coba PID 4........................................................................................................... 40

xi
Gambar 31 Uji Coba PID 5........................................................................................................... 41
Gambar 32 Uji Coba PID 6........................................................................................................... 42
Gambar 33 Uji Coba PID 7........................................................................................................... 43
Gambar 34 Uji Coba PID 8........................................................................................................... 44
Gambar 35 Uji Coba PID 9........................................................................................................... 45

xii
DAFTAR TABEL
Tabel 1. Tabel fungsi Kp, Ki, Kd.................................................................................................... 6
Tabel 2 Spesifikasi Arduino Mega ADK ........................................................................................ 9
Tabel 3 Spesifikasi Atmega328p .................................................................................................. 10
Tabel 4 Pinout LCD 20x4 ............................................................................................................. 13
Tabel 5 Tabel Kebenaran Driver H-Bridge .................................................................................. 15

xiii
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Pada zaman sekarang ini, kemajuan teknologi bidang robotika berkembang sangat cepat.
Robot adalah sesuatu yang terdiri dari bagian-bagian mekanisme dan memiliki kontrol elektrik
untuk melakukan tugas-tugas tertentu. Robot berperan besar pada sebagian besar kegiatan
manusia baik untuk pekerjaan yang biasa dikerjakan manusia, penelitian, maupun untuk
produksi pada pabrik. Maka dari itu diadakanlah kompetisi bidang robotika guna untuk
mendukung kecepatan dari kemajuan teknologi bidang robotika itu sendiri. Salah satu
kompetisi bidang robotika yang bergengsi adalah Kontes Robot Indonesia yang terdiri dari 6
divisi, salah satunya yaitu divisi Kontes Robot Tematik Indonesia atau yang disingkat KRTMI
[1].

KRTMI adalah satu-satunya divisi yang mengambil tema sesuai kebutuhan nasional yang
mendesak untuk diselesaikan. Untuk tema Kontes Robot Tematik Indonesia ini mengambil
tema Robot Pertanian Padi yang mana masalah kecukupan pangan saat ini dinilai sangat penting
bagi ketahanan bangsa dan negara. Hingga saat ini ketersediaan pangan kita masih tergantung
dari impor dari banyak negara, sementara Indonesia memiliki wilayah yang luas yang secara
optimal belum mampu menghasilkan bahan pangan yang cukup bagi penduduknya. Kontes
Robot Tematik Indonesia ini diharapakan menjadi wadah untuk mengembangkan dan
menyemaikan ide-ide untuk meningkatkan produktifitas pertanian pangan melalui otomasi dan
robotika.

KRTMI memilih dan mengangkat mobile robot sebagai kategori perlombaan[2]. Robot
dikendalikan secara nirkabel dan ditargetkan dapat melewati berbagai rintangan kemudian
dapat menanam dan memanen padi. Agar dapat melewati rintangan robot menggunakan sistem
roda penggerak tank yang memakai belt untuk mempermudah dalam melewati rintangan. Robot
menggunakan metode differential wheel yang berarti terdapat dua buah roda masing-masing
menggunakan satu buah motor yang membuat robot dapat berputar pada porosnya dengan cara
menggrakkan motor kanan dan kiri dengan arah yang berlawanan[3]. Kedua motor harus
berpurtar dengan kecepatan yang sama agar robot dapat bergerak dengan benar, untuk itu
diperlukan sebuah kontrol PID yang dapat menstabilkan nilai keluaran sesuai dengan nilai

1
2

masukan[4]. Robot harus memiliki sensor untuk membaca putaran dari motor dan hasil
pembacaan tersebut menjadi umpan balik agar nilai keluaran sesuai dengan nilai masukan.
Sensor tersebut berupa rotary encoder[5]. Serta mikrokontroler yang digunakan untuk
mengelola algoritma yang dibutuhkan.

Berdasarkan permasalahan yang ada maka diusulkan judul untuk skripsi yaitu “Sistem
Pengaturan Roda Penggerak Pada Robot KRTMI”. Pembuatan robot atau alat ini diharapkan
dapat memberikan manfaat bagi mahasiswa maupun peneliti yang melakukan penelitian
didalam robotika serta memberikan motivasi kepada mahasiswa/mahasiswi Politeknik Negeri
Malang betapa cepatnya perkembangan robotika.

1.2 Rumusan Masalah


Berdasarkan latar belakang diatas, diperoleh rumusan masalah dalam penulisan sebagai
berikut :

1. Bagaimana cara mengetahui putaran kedua motor pada robot?


2. Bagaimana cara mengubah input sebuah posisi diubah dengan output pengaturan
kecepatan motor?
3. Sensor apa saja yang digunakan dalam pengontrolan kecepatan roda robot dengan
perhitungan PID?
4. Bagaimana hasil respon kontrol PID terhadap pergerakan robot?
1.3 Batasan Masalah
Masalah yang diangkat dalam skripsi ini terlalu luas jika diteliti secara menyeluruh.
Penulis memberikan pembatasan masalah sebagai berikut :

1. Roda yang diggunakan untuk robot adalah belt tank.

2. Jumlah motor penggerak dua buah.

3. Sensor yang digunakan hanya sensor encoder internal motor.

4. Driver motor menggunakan BTS7960.

5. Pengoperasian servo tidak dibahas pada laporan ini.


3

1.4 Tujuan
Berdasarkan rumusan masalah dan batasan masalah diatas, tujuan dari penulisan skripsi
adalah sebagai berikut :

1. Dapat membuat mobile robot yang dikontrol secara nirkabel dan menggunakan kontrol
PID dan sensor encoder untuk menyeimbangkan putaran maupun kecepatan kedua
motor.
2. Mobile robot di tujukan untuk mengikuti kompetisi KRI nasional.
1.5 Manfaat
Manfaat Penelitian yang diharapkan adalah :

a. Untuk mahasiswa dan tenaga pengajar :


1. Teknologi robotika yang dikembangkan dapat dipakai sebagai media pembelajaran
dalam perkuliaan maupun organsisasi khususnya robotika.
2. Membantu para pengajar dan para peneliti untuk mengetahui informasi robotika
serta dapat mengimplementasikan secara langsung.
b. Untuk institut terkait :
c. Hasil penelitian dapat dijadikan sebagai media pembelajaran berbentuk modul
praktikum.
1. Laporan dari penelitian ini sebagai bahan perbendaharaan perpustakaan Politeknik
Negeri Malang.
d. Untuk penulis
1. Merupakan sarana untuk menerapkan materi yang diperoleh selama perkuliaan.
1.6 Inovasi/Temuan yang ditargetkan
Temuan/inovasi yang ditargetkan dalam skripsi ini adalah membuat robot bergerak secara
manual dikendalikan menggunakan remot secara nirkabel. Menggunakan penggerak model
tank untuk melewati setiap rintangan dan kontrol PID untuk menyeimbangkan putaran maupun
kecepatan kedua motor.

1.7 Luaran Skripsi


Luaran yang diharapkan dari perancangan ini adalah sebagai berikut :

1. Makalah yang diseminarkan.


4

2. Laporan Skripsi.
3. Publikasi Artikel ilmiah.
4. Teknologi Berupa Benda Karya Teknologi yang dikumpulkan / sesuai perjanjian.

1.8 Sistematika Penulisan


Sistematika penulisan bertujuan untuk mempermudah dalam memahami dan membahas
penelitian yang dilakukan, maka penulis membuat sistematika penulisan sebagai berikut :


BAB I PENDAHULUAN
Pada bab I membahas tentang latar belakang masalah, rumusan masalah, batasan
masalah, tujuan penelitian luaran dari skripsi dan sistematika penulisan.

BAB II KAJIAN PUSTAKA
Pada bab II membahas tentang penelitian sebelumnya yang relevan dengan
permasalahan peneelitian dilakukan oleh penulis. Teori – teori yang dijelaskan
berdasarkan sumber asli dan fakta fakta

BAB III METODE PENELITIAN
Pada bab III membahas tentang tahapan penelitian yaitu konsep penyelesaian, teknik
pengumpulan data, analisa data, spesifikasi alat, prinsip kerja, perancangan dan
pembuatan alat.

BAB IV HASIL DAN ANALISA
Pada bab IV membahas tentang pengujuan secara mekanik, elektrik dan software. Hasil
pengujian alat secara simulasi dan real time yang dilengkapi dengan analisa dari setiap
pengujian yang dilakukan.

BAB V PENUTUP
Pada bab V membahas tentang kesimpulan dari penelitian yang dilakukan dan saran
yang diberikan untuk kesempurnaan alat yang telah dibuat untuk masa mendatang.
BAB II
TINJAUAN PUSTAKA
2.1 Review Penelitian Pendahulu
Pada bab kedua ini akan dibahas mengenai tentang penelitian-penelitian yang sudah ada
dan akan menjadi landasan teori yang menjadi dasar dalam pelaksanaan skripsi ini.

Ahmad Sahru Romadhon (2013). Dengan judul skripsi “ Perancangan Sistem Gerak pada
Robot Line Tracer” membahas kontrol PID pada motor menggunakan sensor warna sebagai
umpan baliknya. Sensor warna mampu mendeteksi warna yaitu hitam, putih, biru, hijau,
kuning, merah.[6]

Ahmad Harmoko (2011). Dengan judul skripsi “Rancang bangung robot Line Follower
dengan Kendali PID Berbasis Mikrokontroller Atmega 8535”. Penelitian ini merupakan bentuk
penerapan teknik kontrol posisi dalam sistem robotik menggunakan kontrol PID sebagai
metode kendali dan sensor LED-photodiode sebagai umpan balik. Robot dibuat untuk melewati
garis 90 dan 45 derajat.[7]

Bagus Ilyas Setiawan (2013). Dengan judul skripsi “Perancangan Robot auto Line
Follower yang menerapkan Metode Osilasi Ziegler-Nicols untuk Tuning Parameter PID pada
Kontes Robot Indonesia”. Skripsi ini membahas implementasi metode Ziegler-Nicols ke dalam
sebuah mikrokontroler pada robot line follower. Proses tuning diawali dengan pemberian nilai
Kp = 0, kemudian ditingkatkan sampai mendapatkan grafik respon PID yang
berkesinambungan (periode dan amplitudo sama). Dari grafik tersebut dapat ditentukan nilai
Kp, Ki, Kd sesuai dengn aturan yang terdapat pada metode Ziegler-Nicols.[8]

Sonie Ruswanto (2011). Penelitian ini membahas tentang menggabungkan dua konsep
yaitu kontrol PID untuk kestimbangan robot dan pengikut garis menggunakan metode lookup
table. Namun praktek pada lapangan, robot hanya dapat bertahan dengan seimbang saat
mengukuti garis sampai 5 detik. Penulis juga menyimpulkan perhitungan desain mekanik juga
berpengaruh pada kestimbangan robot.[9]

Erni Dwi Wahyuni (2012). Penelitian ini membahas pembuatan perangkat lunak berbasis
2D dengan cara mengkonversi posisi dan pergerakan Differential drive Mobile robot ke dalam
bidang koordinat kartesian yang menjadi salah satu masalah dalam bidang robotika. Juga
5
6

membahas perhitungan dengan rumus-rumus robot differential drive untuk menentukan


kecepatan kedua motor sampai persamaan kinematik.[10]

2.2 Kontrol PID


Sistem Kontrol PID ( Proportional–Integral–Derivative controller ) merupakan kontroler
untuk menentukan presisi suatu sistem instrumentasi dengan karakteristik adanya umpan balik
pada sistem tesebut ( Feed back ). Sistem kontrol PID terdiri dari tiga buah cara pengaturan
yaitu kontrol P (Proportional), D (Derivative) dan I (Integral), dengan masing-masing memiliki
kelebihan dan kekurangan. Dalam implementasinya masing-masing cara dapat bekerja sendiri
maupun gabungan diantaranya. Dalam perancangan sistem kontrol PID yang perlu dilakukan
adalah mengatur parameter P, I atau D agar tanggapan sinyal keluaran system terhadap masukan
tertentu sebagaimana yang diinginkan

Tabel 1. Tabel fungsi Kp, Ki, Kd


2.2.1 Kontrol Proporsional
Kontrol P jika G(s) = kp, dengan k adalah konstanta. Jika u = G(s) • e maka u =
Kp • e dengan Kp adalah Konstanta Proporsional. Kp berlaku sebagai Gain (penguat)
saja tanpa memberikan efek dinamik kepada kinerja kontroler. Penggunaan kontrol P
memiliki berbagai keterbatasan karena sifat kontrol yang tidak dinamik ini. Walaupun
demikian dalam aplikasi-aplikasi dasar yang sederhana kontrol P ini cukup mampu
untuk memperbaiki respon transien khususnya rise time dan settling time.
7

2.2.2 Kontrol Integratif


Jika G(s) adalah kontrol I maka u dapat dinyatakan sebagai u(t) =
[integrale(t)dT]Ki dengan Ki adalah konstanta Integral, dan dari persamaan diatas, G(s)
dapat dinyatakan sebagai u = Kd.[deltae / deltat] Jika e(T) mendekati konstan (bukan
nol) maka u(t) akan menjadi sangat besar sehingga diharapkan dapat memperbaiki error.
Jika e(T) mendekati nol maka efek kontrol I ini semakin kecil. Kontrol I dapat
memperbaiki sekaligus menghilangkan respon steady-state, namun pemilihan Ki yang
tidak tepat dapat menyebabkan respon transien yang tinggi sehingga dapat
menyebabkan ketidakstabilan sistem. Pemilihan Ki yang sangat tinggi justru dapat
menyebabkan output berosilasi karena menambah orde sistem
2.2.3 Kontrol Derivatif
Sinyal kontrol u yang dihasilkan oleh kontrol D dapat dinyatakan sebagai G(s) =
s.Kd Dari persamaan di atas, nampak bahwa sifat dari kontrol D ini dalam konteks
"kecepatan" atau rate dari error. Dengan sifat ini ia dapat digunakan untuk memperbaiki
respon transien dengan memprediksi error yang akan terjadi. Kontrol Derivative hanya
berubah saat ada perubahan error sehingga saat error statis kontrol ini tidak akan
bereaksi, hal ini pula yang menyebabkan kontroler Derivative tidak dapat dipakai
sendiri. Untuk mendapatkan aksi kontrol yang baik diperlukan langkah coba-coba
dengan kombinasi antara P, I dan D sampai ditemukan nilai Kp, Ki dan Kd seperti yang
diiginkan.
(1) Memahami cara kerja system,
(2) Mencari model sistem dinamik dalam persamaan differensial,
(3) Mendapatkan fungsi alih sistem dengan Transformasi Laplace,
(4) Memberikan aksi pengontrolan dengan menentukan konstanta Kp, Ki dan Kd,
(5) Menggabungkan fungsi alih yang sudah didapatkan dengan jenis aksi
pengontrolan,
(6) Menguji sistem dengan sinyal masukan fungsi langkah, fungsi undak dan
impuls ke dalam fungsi alih yang baru,
(7) Melakukan Transformasi Laplace balik untuk mendapatkan fungsi dalam
kawasan waktu,
(8) Menggambar tanggapan sistem dalam kawasan waktu
8

2.3 Arduino Mega 2560p


Arduino adalah board berbasis mikrokontroller atau papan rangkaian elektronika open
source yang didalamnya terdapat komponen utama yaitu sebuah chip mikrokontroller dengan
jenis AVR dari perusahaan Atmel. Terdapat beberapa jenis Arduino yang digunakan pada
umumnya yaitu Arduino mega dan Arduino nano. Perbedaan dua jenis arduino tersebut sangat
lah besar yang paling menonjor adalah port Arduino mega sangat lah banyak di banding aduino
nano sehingga Arduino mega memiliki kemampuan yang sangat mumpuni di banding Arduino
nano dalam kapasitas maupaun dalam hal lain.

Gambar 1 Arduino Mega ADK

Namun pemilihan jenis Arduino tergantung kebutuhan. Apabila di kerjakan dalam


pekerjaan yang tidak membutuhkan input/output banyak maka di rekomendasikan
menggunakan Arduino nano, sebaliknya jika membutuhkan kapasitas memory besar dan
input/output yang banyak maka di rekomendasikan menggunakan Arduino mega. Berikut
spesifikasi yang di miliki oleh Arduino mega.

Spesifikasi Arduino Mega


Mikrokontroler Atmega 2560
Tegangan Operasi 5V
Tegangan Input 7-12 V
Pin I/O 54 Pin
Pin Analog Input 16 Pin
Arus DC per Pin 20 mA
Memori Flash 256KB
SRAM 8 KB
EEPROM 4 KB
9

Clock Speed 16 MHz


LED_BULLIN 13
Panjang 101,52 mm
Lebar 53,3 mm
Berat 37 g
16 bit timer/ counter pin 2 , 3 , 5 (Timer 3);
6 , 7 , 8 (Timer 4)
11 dan 12 (Timer 1);
44 , 45 , 46 (Timer 5);
Interrupt pin 2 (INT 0); 3 (INT 1)
18 (INT 5); 19 (INT 4)
20 (INT 3);
Tabel 2 Spesifikasi Arduino Mega ADK
2.4 Mikrokontroler Atmega328p
Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih (chip) yang
biasanya digunakan untuk sebuah embedded system (sistem yang dibentuk guna menjelaskan
satu atau lebih dari suatu fungsi tertentu secara real time). Mikrokontroler biasanya berukuran
kecil karena didesain hanya untuk satu funngsi tertentu pada suatu sistem. Pemanfaatan
mikrokontroler umumnya digunakan di bidang kendali dan insrtumentasi elektronik.
Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sebuah terdapat atau berisikan
ROM (Read-Omly Memory), RAM (Read-Write Memory), beberapa Port masukan maupun
keluaran dan beberapa peripherial seperti pencacah/pewaktu, ADC (Analog to Digital
Converter), DAC (Digital to Analog Converter) dan serial komunikasi.

Mikrokontroler Atmega 328p


Tegangan Operasi 5V
Pin I/O 28 Pin
Arus DC per Pin 40 mA
Memori Flash 32KB
SRAM 2 KB
EEPROM 1 KB
10

Clock Speed 16 MHz


16 bit timer/ counter pin 9 dan 10 (Timer 1)
Interrupt pin 2 ( INT 0); 3 (INT 1)
Tabel 3 Spesifikasi Atmega328p
2.5 Sensor Rotary Encoder
Sensor Rotary encoder digunakan untuk mengetahui nilai setiap putaran roda, dengan
cara menggunakan sensor optic untuk menghasilkan pulsa yang dapat diartikan sebagai arah
perputaran roda CW ataupun CCW, rotary encoder pada umumnya digunakan untuk mesin
yang memiliki keluaran aktuator berupa putaran sehingga dihasilkan sudut putar yang memiliki
ketepatan dan akurasi tinggi.

Gambar 2 Bagian Sensor Rotary Encoder

Cara kerja rotary encoder tersusun dari suatu piringan tipis yang memiliki lubang lubang
pada bagian lingkaran piringan. LED di tempatkan pada salah satu sisi piringan sehingga cahaya
akan menunjukan ke pirirngan. Disisi yang lain suatu photo-transistor di letakkan sehingga
photo-transistor ini dapat mendeteksi cahaya dari led yang berseberangan. Piringan tipis dikopel
dengan porors motor, sehingga ketika motor berputar piringan juga akan ikut berputar. Apabila
posisi piringan mengakibatkan cahaya dari LED dapat mencapai photo-Transistor melalui
lubang lubang yang ada makan akan mengalami saturasi dan menghasilkan satu pulsa.

Incremental Rotary Encoder terdidi dari dua track atau single track dan dua sensor yang
dinamakan channel A dan channel B. ketika porors berputar deretan pulsa akan muncul di
masing masing channel pada frekeunsi yang proposional dengan kecepatan putar sedangkan
hubungan fasa antara channel A dan B menghasilkan arah putaran. Dengan menghitung jumlah
pulsa yang terjadi terhadap resolusi piringan maka putaran dapat diukur untuk mengatahui arah
11

putaran dengan mengetahui channel mana yang leading terhadap channel satunya karena kedua
channel tersebut akan mengalami perbedaan fasa seperempat putaran. Untuk menetukan
kecepatan yang diamati dari sinyal pulsa dengan menggunakan periodimeter. Dengan cara ini
aka mengukur kecepatan tidak lagi dengan lagi dengan menghitung jumlah pulsa encoder tetapi
dengan menghitung clock frekuensi tinggi (HF clock) untuk sebuah pulsa dari encoder yaitu
mengukur periode pulsa dari encoder.

Gambar 3 Perbedaan Sinyal CW Dan CCW

Dari gambar diatas perbedann kondisi yang di hasilkan channel a dan channel b saat poros
berputar. Saat poros berputar searah jarum jam clockwise (CW) output A menghasilkan pulsa
HIGH dan di saat bersamaan output B menghasilkan pulsa LOW. Sama halnya juga dengan
counter clockwise (CCW) yaitu saat output A menghasilkan pulsa HIGH, output B akan
menghasilkan Pulsa HIGH.

Gambar 4 Sensor Rotary Encoder


12

Arah Poros Channel A Channel B


CW HIGH LOW
CCW HIGH HIGH
Dalam pembacaan data encoder tersebut biasanya ada beberapa cara mengubungkan
output encoder dengan channel A dan channel B keduanya dihubungkan ke pin external
interrupt.

2.6 LCD (Liquid Crystal Display)


LCD (Liquid Crystal Display) adalah sebuah alat berfungsi untuk menampilkan karakter
seperti huruf, angka, dan symbol symbol. Tipe yang digunakan adalah LCD 20x4. Di dalam
mobile robot LCD digunakan sebagai alat penampilan pembacaan sensor.

Gambar 5 LCD 20x4


Pin Simbol I/O Deskripsi
1 VSS - Ground
2 VCC - +5V power supply
3 VEE - To control contrast of character
4 RS I Register select : RS = 0 to select instruksi
Command register, RS = 1 to select data reg
5 R/W I Read/Write:R/W=0 for write, R/W=1 for
read
6 EN I Enable
7 DBO I/O 8-bit data bus
13

8 DB1 I/O 8-bit data bus


9 DB2 I/O 8-bit data bus
10 DB3 I/O 8-bit data bus
11 DB4 I/O 8-bit data bus
12 DB5 I/O 8-bit data bus
13 DB6 I/O 8-bit data bus
14 DB7 - 8-bit data bus
15 BPL - Black Plane Light
16 GDN - Ground
Tabel 4 Pinout LCD 20x4
2.7 Driver Motor
Pada driver motor H-bridge ini dapat mengeluarkan arus hingga 43A, dengan memiliki
fungsi PWM. Tegangan sumber DC yang dapat diberikan antara 5.5V-27VDC, sedangkan
tegangan inpit level antara 3.3V – 5V DC, driver motor ini menggunakan rangkaian full H-
brigde dengan IC BTS 7690 dengan perlindungan saat terjadi panas dan arus berlebih.

Gambar 6 Driver Motor BTS 7960


H-Bridge adalah sebuah perangkat keas berupa rangkaian yang berfungsi untuk
penggerak motor. Rangkaian ini di beri nama H-Bridge karena bentuk rangkaiannya yang
menyerupai huruf H. Moftet ini digunakan sebagai switching sehingga motor dapat berputar
searah jarum jam (clockwise) dan berlawanan arah jarum jam (counterclockwise).
14

Gambar 7 Rangkaian H-Bridge

Rangkaian ini terdiri dari dua buah MOSFET kanal P dan dua buah MOSFET kanal N.
Prinsip kerja rangkaian ini adalah dengan mengatur mati-hidupnya ke empat MOSFET tersebut.
Huruf M pada gambar adalah motor DC yang akan dikendalikan. Bagian atas rangkaian akan
dihubungkan dengan sumber daya kutub positif, sedangkan bagian bawah rangkaian akan
dihubungkan dengan sumber daya kutub negatif. Pada saat MOSFET A dan MOSFET D on
sedangkan MOSFET B dan MOSFET C off, maka sisi kiri dari gambar motor akan terhubung
dengan kutub positif dari catu daya, sedangkan sisi sebelah kanan motor akan terhubung dengan
kutub negatif dari catu daya sehingga motor akan bergerak searah jarum jam.

Sebaliknya, jika MOSFET B dan MOSFET C on sedangkan MOSFET A dan MOSFET


D off, maka sisi kanan motor akan terhubung dengan kutub positif dari catu daya sedangkan
sisi kiri motor akan terhubung dengan kutub negatif dari catu daya. Maka motor akan bergerak
berlawanan arah jarum jam. Konfigurasi ini dapat disebut MOSFET A&D on, B&C off.
Konfigurasi lainnya adalah apabila MOSFET A dan MOSFET B sedangkan MOSFET C dan
MOSFET D off. Konfigurasi ini akan menyebabkan sisi kiri dan kanan motor terhubung pada
kutub yang sama yaitu kutub positif sehingga tidak ada perbedaan tegangan diantara dua buah
polaritas motor, sehingga motor akan diam. Konfigurasi seperti ini disebut dengan konfigurasi
break. Begitu pula jika MOSFET C dan MOSFET D saklar on, sedangkan MOSFET A dan
MOSFET C off, kedua polaritas motor akan terhubung pada kutub negatif dari catu daya.Maka
tidak ada perbedaan tegangan pada kedua polaritas motor, dan motor akan diam. Konfigurasi
yang harus dihindari adalah pada saat MOSFET A dan MOSFET C on secara bersamaan atau
MOSFET B dan MOSFET D on secara bersamaan. Pada konfigurasi ini akan terjadi hubungan
arus singkat antara kutub positif catu daya dengan kutub negatif catu daya.
15

A B C D Aksi
1 0 0 1 Motor berputar searah jarum jam
0 1 1 0 Motor berputar berlawanan arah jarum
jam
0 0 0 0 Bebas
0 0 1 1 Pengereman
1 1 0 0 Pengereman
Tabel 5 Tabel Kebenaran Driver H-Bridge

Nilai tegangan yang dibutuhkan untuk mengendalikan motor berfariasi. Dibutuhkannya


suatu konfigurasi program yang sesuai untuk menggerakkan motor. Karenanya diperlukan
suatu program tambahan sebagai pengontrol tegangan motor.

I. Detail Pin Input

1. RPWM = Input PWM Forward Level ,Aktif High


2. LPWM = Input PWM Reverse Level ,Aktif High
3. R_EN = Input Enable Forward Driver, Aktif High
4. L_EN = Input Enable Reverse Driver, Aktif High
5. R_IS = Forward Drive ,Side current alarm output
6. L_IS = Reverse Drive ,Side current alarm output
7. Vcc = +5 V Power Supply Mikrokontroler
8. Gnd = Gnd Power Supply Mikrokontroler

II. Detail Pin Output

1. W- = Di hubungkan ke Motor DC (V-)


2. W+ = Di hubungkan ke Motor DC (V+)
3. B+ = Tegangan Input V+ Motor
4. B- = Tegangan Input V- Motor
16

2.8 Motor DC
Merupakan suatu device yang memiliki fungsi untuk mengubah energy listrik menjadi
energy gerak. Motor listrik itu mengacu pada kaidah tangan kiri. Satu pasang magnet permanen
utara dan selatan menghasilkan garis medan magnet, kawat pada penghantar di atas telapak
tangan kiri di tembus garis medan magnet. Ketika kawat arus dialirkan listrik DC sebesar I
searah keempat jari tangan, maka kawat akan mendapat gaya sebesar F.

Gambar 8 Bagian-bagian Motor

Terjadinya sebuah gaya torsi pada jangkar disebabkan oleh hasil interaksi antar dua garis
medan magnet. Kutub mahnet menghasilkan garis medan dari utara- selatan menuju jangkar.
Pada lilitan jangkar yang dialiri arus listrik DC akan menghasilkan magnet dengan arah ke kiri.
Prinsip kerja motor DC : jika kawat penghantar listrik arus listrik yang terletak diantara kutub
magnet utara dan selatan, akan terkena gaya Lorentz. Arus yang mengalir pada lilitan akan
menghasilkan medan magnet yang berinteraksi dengan medan utama dan akan memperkuat
medan disatu sisi konduktor tapi melemahkan sisi yang lain. Interaksi ini menyebabkan adanya
gaya dorong konduktor. Gaya yang di hasilkan oleh arus yang mengalir dalam medan magnet
dapat diketahui dengan persamaan berikut :

𝐹 =𝐵𝑥𝐼𝑥𝐿
Keterangan :
F = Gaya Lorent (Newton).
B = Kecepatan Flux Magnet (Webr/m2).
I = Arus Listrik (Ampere).
L = Panjang Sisi Kumparan Rotor (m).
17

Gambar 9 Motor DC PG36

Motor dc geared merupakan motor dc biasa namun terdapat tambahan gear. Fungsi dari
tambahan gear ini untuk menambah besar torsi pada motor dc tersebut. Gear yang di psang
sudah tersusun dan dikemas rapi.
BAB III
METODE PENELITIAN

3.1 Konsep Penyelesaian Masalah


Untuk mengetahui hasil implementasi kontrol PID pada robot differential drive. Langkah
awal untuk memulai penelitian dengan merancang system berdasarkan studi literature berupa
penentuan spesifikasi alat, diagram blok perancangan alat, prinsip kerja, perancangan mekanik,
perancangan elektrik, dan perancangan Software. Berikut merupakan flowchart dalam metode
penyelesaian masalah.

Gambar 10 Flowchart Alur Pengerjaan Alat

3.2 Studi Literatur


Adapun langkah yang dibuat dalam skripsi adalah dengan mengumpulkan dan
meperlajari semua literature yang berhubungan dengan kontrol PID dengan menggunakan
Master Arduino Mega, Slave Atmega 328. Dan juga mempelajari Literatur yang berhubungan

18
19

dengan sensor rotary encoder. Studi literatur yang di lakukan adalah dengan mencari jurnal
maupun teks book yang berhubungan dengan kontrol PID.

3.3 Metode Penelitian


Metode yang dilakukan menggunakan experimental (teknik observasi) dengan
melakukan pencatatan secara sistematik terhadap gejala yang tampak pada objek penelitian.
Menurut Solso dan Maclin (2002), penelitian eksperimen adalah penelitian yang didalamnya
ditemukan minimal satu variable yang dimanipulasi untuk mempelajari hubungan sebab-akibat.
Oleh karena itu, penelitian eksperimen erat kaitannya dalam menguji hipotesis dalam rangka
mencari pengaruh hubungan maupun perbedaan perubahan terhadap kelompok yang dikenakan
perlakuan.

Metode penelitian eksperimental pada dasarnya adalah pengujian untuk mengetahui


hubungan antara sebab dengan akibat. Maka pengujian tersebut harus dilakukan pada sistem
yang tertutup dan terkontrol dengan kondisi yang sama (identik). Sehingga pada suatu situasi
Ketika diberikan intervensi (perlakuan atau treatment atau exposure) sebagai sebab, kemudian
untuk menemukan akibatnya dibandingkan dengan situasi yang tidak dikenai intervensi atau
pada saat kondisi dan situasi normal. Sehingga perbedaan yang muncul (effect) dikarenakan
oleh intervensi.

3.4 Penentuan Variabel Penelitian


Dalam penelitian ini terdapat dua variable, yaitu variable bebas (independent variabel)
dan variable terikat (dependent variable). Variable bebas adalah suatu variable yang dapat
mempengaruhi variable lain atau bisa disebut dengan variable stimulus. Variable bebas
menentukan hubungannya dengan suatu gejala yang diobservasi. Sedangkan variable terikat
merupakan variable yang memberikan respon terhadap pengaruh yang diberikan oleh variable
bebas. Dalam penelitian ini terdapat variable-variabel yang mendukung, berikut ini variable-
variabel yang mendukung dalam proses penelitian :

1. Variable bebas : kemampuan melewati rintangan, kontrol PID.


2. Variable terikat : kecepatan motor.
20

3.5 Pengambilan Data


Pengujian hasil penelitian dilakukan dengan melakukan implementasi pada alat.
Beberapa pengujian yang akan dilakukan adalah sebagai berikut :

1. Pengujian Komponen
Pengujian ini dilakukan untuk megetahui kinerja komponen seperti sensor Rotary encoder,
joystick PS3, lcd sudah berjalan dengan baik.
2. Pengujian alat
a. Pengujian koneksi joystick PS3
Pengujian joystick PS3 dengan menghubungkan ke arduino mega ADK. Input dari joystick
PS3 diolah dan diteruskan kepada slave maupun motor servo.
b. Pengujian respon alat
Pengujian dilakukan untuk mengetahui alat yang dibuat sudah berjalan dengan baik pada
saat proses pergerakan baik maju, mundur ataupun belok kanan kiri.
c. Mendeskripsikan data sesuai dengan variable yang telah ditentukan
d. Menganalisa data dari pengujian alat
e. Menginterpretasikan hasil, perumusan kesimpulan , dan pembuatan laporan.
3.6 Analisa Data
Data yang diperoleh dari pembacaan sensor Rotary Encoder akan di masukkan ke arduino
mega sebagai master untuk menentukan nilai Kp, Ki, Kd secara manual.

Berikut analisis-analisis pendukung yang akan dilakukan :


1. Pengaruh nilai Kp, Ki, Kd pada gerak robot.
2. Pembacaan sensor rotary encoder sebagai pembacaan posisi target.
3.7 Diagram Blok Sistem
Diagram blok merupakan diagram yang dibuat untuk mempetakan alur kerja sebuah
system yang akan dirancang berupa input, proses, dan output. Berikut ialah diagram blok
system serta beberapa komponen yang diperlukan dalam perancangan sistem pengaturan roda
penggerak pada robot KRTMI.
21

Gambar 11 Diagram Blok


3.7.1 Input
Sensor rotary encoder akan membaca putaran motor yang berfungsi mengetahui
berapa putaran motor yang dibutuhkan untuk menyesuaikan arah hadap terhadap target.
joystick PS3 digunakan sebagai inputan untuk mengatur fungsi-fungsi yang ada pada
robot.
3.7.2 Proses
Pada bagian proses robot ini menggunakan 1 buah mikrokontroler berupa
Arduino Mega ADK sebagai Master dan 2 buah Atmega328 sebagai slave. Arduino
mega sebagai master yang akan memberikan data berupa putaran motor yang diperlukan
kepada Atmega328 sebagai slave, hasil data yang diterima Atmega328akan mengatur
output berupa sinyal PWM.
3.7.3 Output
Driver motor H-Bridge berupa Driver motor IBT-2 digunakan untuk mengubah
sinyal PWM dari mikrokontroler menjadi tegangan DC yang digunakan untuk
mennyuplai motor. LCD digunakan untuk menampilkan hasil pembacaan sensor dan
menampilkan hasil pembacaan sensor dan menu pengaturan robot.
22

3.8 Diagram Blok Kontrol

Gambar 12 Diagram Blok Kontrol

Penjelasan dari diagram blok kontrol adalah sebagai berikut :

1. Input berasal dari hasil perhitungan sensor rotary encoder target


2. Mikrokontroler digunakan untuk memproses perhitungan nilai yang sudah terbaca dan
mengolah data sensor, kemudian akan dikonversikan menjadi sinyal PWM.
3. Motor DC digunakan untuk menggerakkan roda.
4. Output dari system adalah gerak robot yang sesuai input dari joystick dan perhitungan
putaran motor melalui pembacaan dari sensor encoder.
3.9 Prinsip Kerja Alat
Robot dibuat untuk dapat dikendalikan secara nirkabel dan dapat melewati rintangan-
rintangan yang tersedia. Robot mendapatkan masukan dari joystick yang menjadi set point
kemudian dikirim oleh arduino mega sebagai master kepada atmega328 sebagai slave untuk
diolah menggunakan kontol PID agar menghasilkan keluaran yang sesuai dengan yang
diharapkan. Keluaran dari PID tersebut berupa sinyal PWM dirubah menjadi tegangan untuk
mengaktifkan diver motor. Driver motor aktif menggerakkan motor sebagai aktuator dan robot
bergerak sesuai dengan masukan dari joystick. Putaran motor dideteksi oleh sensor rotary
encoder, untuk dijadikan umpan balik pada PID agar menghasilkan keluaran yang sesuai
dengan yang diharapkan. Sistem penggerak menggunakan belt seperti model tank, tujuannya
untuk dapat melewati medan-medan yang tidak rata, tanjakan dan lain-lain. Dilengkapi dengan
Gripper untuk menanam serta memanen padi. Menggunakan motor servo sebagai penggerak
gripper karena tingkat kepresisiannya menggunakan parameter sudut/ deraat dalam
pengoperasiannya.
23

3.10 Perancangan Mekanik


Pada perancangan mekanik akan dibahas bentuk fisik robot berupa base atau body robot,
roda, motor PG-36 yang akan digunakan untuk menggerakkan robot. Spesifikasi alat pada robot
sebagai berikut :

• Base robot terbuat dari alumunium hollow dan dirangkai bentuk segi empat.
• Robot menggunakan belt sebagai penggerak seperti model Tank.
• Robot menggunakan system pergerakan differensial drive.
• Roda dan gripper robot menggunakan bahan PLA.
3.10.1 Spesifikasi Rancangan Mekanik Robot
1. Dimensi
• Panjang : 50cm
• Lebar : 50cm
• Tinggi : 15cm
2. Jenis Roda : Tank
3. Jenis Driver : H-Bridge IBT-2
4. Jenis Motor : PG 36 DC motor 24V DC
5. Jenis Processor : Arduino Mega, Atmega328p
6. Jenis LCD : LCD 20x4
7. Jenis Sensor : Sensor Rotary Encoder
8. Bahan base : Alumunium Hollow, PLA
9. Sumber daya : Baterai LiPo 3S 24V DC 5200mAh
24

Gambar 13 Desain Robot Tampak Belakang

Gambar 14 Desain Robot Tampak Kanan


25

3.10.1 Keterangan Gambar


1. Box Kontrol
2. Motor servo ax12 sebagai penggerak lengan robot
3. Motor servo ax12 sebagai penggerak gripper robot.
4. Gripper robot
5. Timming Belt sebagai karet roda pada robot.
6. Motor PG36 sebagai penggerak utama robot.
7. As roda belakang
8. Baterai Lippo 12V 5200mAh.
9. Lengan robot.
10. Roda atas diameter 7cm.
11. Suspensi depan belakang
12. Suspensi tengah
13. Roda bawah diameter 5cm.
14. Plat alumunium 3mm.

Gambar 15 Desain Robot Tampak Depan


26

Gambar 16 Desain Robot Tampak Isometric

Gambar 17 Desain Robot Tampak Atas


27

3.11 Perancangan Elektrik


Untuk membuat robot dengan kontrol PID maka diperlukan rangkaian elektrik berupa
mikrokontroler yang terdiri dari Arduino Mega dan Atmega328p dan sensor rotary encoder,
driver motor dan motor DC geared.

3.11.1 Rangkaian Minimum System Atmega328p

Gambar 18 Minimum System Atmega328p

3.11.2 Rangkaian LCD 16x4 dengan Arduino Mega


Dalam system display alat ini digunakan Liquid Crystal Display 16x4 yang
berarti display ini dapat menampung 16 kolom dan 4 baris karakter. Display digunakan
untuk menampilkan data-data sensor dan juga menu pada system mikrokontroller.
28

Gambar 19 Wiring LCD 20x4 dengan Arduino Mega


RS : Pin Digital Arduino Mega 50 (biru)
E : Pin Digital Arduino Mega 48 (kuning)
D4 : Pin Digital Arduino Mega 44 (hijau)
D5 : Pin Digital Arduino Mega 42 (abu abu)
D6 : Pin Digital Arduino Mega 40 (orange)
D7 : Pin Digital Arduino Mega 38 (coklat)
Potensio : Pin VE LCD
VCC : VCC Pin Arduino
Ground : Ground Pin Arduino
29

3.11.3 Desain Layout dan Gambar 3D PCB

Gambar 20 Desain Board PCB Kontrol

Gambar 21 Desain 3d Board Kontrol Tampak Atas


30

Gambar 22 Desain 3d Board Kontrol tampak Samping

Gambar 23 Desain 3d Board Kontrol Tampak Bawah


BAB IV
PENGUJIAN DAN ANALISA
4.1 Pengujian LCD
Pengujian pada display liquid crystal display (LCD) 20x4 dilakukan untuk memastikan
apakah LCD dapat menampilkan karakter sesuai program yang didownloadkan pada Arduino
dengan Bahasa C.

4.1.1 Tujuan Pengujian


1. Mengetahui apakah LCD layak digunakan untuk robot ini
2. Menampilkan nilai Odometry dari sensor rotary encoder
3. Mengetahui apakah master membaca pengiriman data encoder dari slave

4.1.2 Peralatan yang dibutuhkan


1. Arduino Mega 2560
2. LCD 20x4 dan Shield
3. PC/Laptop
4. Software Arduino IDE

4.1.3 Langkah Proses Pengujian


1. Menyiapkan peralatan yang dibutuhkan
2. Membuat program pada aplikasi Arduino IDE
3. Menghubungkan shield LCD pin 50, 48, 44, 42, 40, 38, VCC di pin 5V dan GND di
pin GND pada shield arduino mega 2560
4. Menghubungkan cable downloader arduino mega 2560 dengan pc/laptop
5. Melakukan Upload program ke arduino mega 2560

4.1.4 Hasil Pengujian Dan Analisa LCD


Hasil pengujian LCD 20x4 ini diperoleh dari tampilan pada LCD berikut adalah
hasil pengujian :

31
32

Gambar 24 Uji Coba LCD 20x4

Berdasarkan gambar 4.1 LCD dapat menampilkan karakter berupa “Hello World
0 ! pada baris ke satu dan seterusnya sesuai dengan program yang dibuat, sehingga LCD
layak digunakan pada robot.
4.2 Pengujian dan Analisa Driver Motor BTS 7960
Driver motor IBT-2 menerima sinyal PWM dari Arduino nano sebagai slave lalu diubah
menjadi tegangan sehingga dapat menggerakkan motor DC, pada driver motor IBT-2 memiliki
10 buah pin input, yaitu 2 pin sebagai pegatur arah putaran, 2 pin sebagai pin enable, 1 pin
sebagai input PWM, 1 pin tidak disambungkan, 3 pin VCC serta 1 pin GND, dan 1 pin sumber
daya motor dan 1 pin GND power motor. 1 driver motor IBT-2 digunakan untuk mengatur
kinerja 1 motor DC. Pengujian dilakukan dengan cara memberikan inputan berupa logika “0”
dan “1”, inputan ini disambungkan kepada 2 pin inputan yang mengatur arah putar motor,
33

kemudian melihat perubahan pergerakan motor yang terlebih dahulu disambungkan pada pin-
pin output dari driver.

4.2.1 Tujuan pengujian


1. Mengetahui apakah Driver motor layak digunakan untuk mobile robot ini.
2. Mengetahui apakah slave dapat mengirim sinyal ke Driver motor dengan baik.
3. Memicu arah putaran pada motor.

4.2.2 Peralatan yang dibutuhkan


1. Atmega328p
2. Driver motor
3. Motor DC
4. PC/laptop
5. Software Arduino IDE

4.2.3 Langkah proses pengujian


1. Menyiapkan peralatan yang dibutuhkan
2. Merancang dan membuat program pada aplikasi Arduino IDE
3. Menghubungkan pin PB1, PB2, VCC, GND pada Atmega328p.
4. Menghubungkan kabel downloader arduino nano dengan PC/Laptop.
5. Melakukan Upload Program ke Atmega328p.

4.2.4 Hasil Pengujian dan analisa Driver motor


Berikut adalah hasil pengujian rangkaian driver motor IBT-2
INPUT1 INPUT2 PWM Output
HIGH LOW HIGH Maju
LOW HIGH HIGH Mundur
34

LOW LOW HIGH


Berhenti dengan
Melakukan
Pengereman
Mundur

HIGH HIGH LOW/HIGH Berhenti dengan


Melakukan
Pengereman Maju
INPUT1 INPUT2 PWM Output
LOW LOW LOW Berhenti tanpa
ada pengereman
HIGH LOW LOW Berhenti tanpa
ada pengereman
LOW HIGH LOW Berhenti tanpa
ada pengereman

4.3 Pengujian dan Analisa Sensor Encoder


Pengujian pada sensor Rotary Encoder dilakukan untuk mengetahui kinerja dan data yang
didapatkan dari sensor rotary encoder pada saat robot berpindah posisi. Pada alat ini digunakan
2 buah sensor rotary encoder eksternal yang membaca pergerakan robot dalam sumbu x dan y,
berikut ini program untuk pembacaan rotary encoder dan hasil percobaan.

4.3.1 Tujuan pengujian


1. Mengetahui apakah sensor rotary encoder layak digunakan untuk robot
2. Menghitung nilai hasil pembacaan sensor rotary encoder
3. Mengetahui apakah slave menghitung pembaca sebuah data dari rotary encoder
4.3.2 Peralatan yang dibutuhkan
1. Atmega328p
2. Rotary Encoder Eksternal
35

3. PC/Laptop
4. Software Arduino IDE
4.3.3 Langkah Proses Pengujian
1. Menyiapkan peralatan yang dibutuhkan.
2. membuat program pada aplikasi Arduino IDE.
3. Menghubungkan pin D2, D3, VCC, GND pada Atmega328p.
4. Menghubungkan cable downloader Arduino Nano dengan pc/laptop.
5. Melakukan Upload program ke Atmega328p.

4.3.4 Hasil Pengujian dan Analisa Sensor Rotary Encoder


Pengujian pada sensor Rotary Encoder dilakukan untuk mencari data yang
didapatkan pada sensor Rotary encoder pada saat motor PG 36 berputar dan harus bisa
mendeteksi arah putaran motor PG 36, jika putaran motor berputar searah jarum jam
maka data Rotary encoder akan bertambah atau positif (+), dan sebaliknya jika putaran
motor berputar berlawanan arah jarum jam maka data Rotary Encoder akan berkurang
atau negatif (-).

Gambar 25 Serial Monitor Sensor Rotary Encoder

Dari gambar diatas merupakan data pembacaan Rotary Encoder ketika motor
PG36 berputar searah jarum jam (CW).
36

Gambar 26 Serial Monitor Sensor Rotary Encoder CW


Dari gambar diatas merupakan pembacaan Rotary Enkoder ketika motor PG36
berputar berlawanan arah jarum jam (CCW). Dari hasil pengujian sensor Rotary
encoder, berdasarkan gambar 4.4 dan gambar 4.5 membuktikan bahwa sensor Rotary
Encoder akan bernilai positif (+) ketika motor berputar searah jarum jam (CW) dan akan
bernilai negatif (-) ketika motor berputar berlawanan jarum jam (CCW). Dengan hasil
tersebut menandakan bahwa sensor Rotary Encoder dapat bekerja dengan baik.
4.4 Pengujian dan Analisa Nilai Kp, Ki, Kd
Pengujian nilai Kp, Ki, Kd dilakukan untuk mengetahui kinerja kontrol PID pada gerak
robot. Pengujian dilakukan secara manual / trial and error dengan memasukkan nilai Kp, Ki,
Kd sampai menghasilkan kurva sesuai dengan yang dikehendaki.

4.4.1 Tujuan pengujian


1. Mengetahui apakah sensor rotary encoder layak digunakan untuk robot
2. Menghitung nilai hasil pembacaan sensor rotary encoder
3. Mengetahui apakah slave menghitung pembaca sebuah data dari rotary encoder
4.4.2 Peralatan yang dibutuhkan
1. Atmega328p
2. Motor PG36
3. PC/Laptop
4. Software Arduino IDE
37

4.4.3 Langkah Proses Pengujian


1. Menyiapkan peralatan yang dibutuhkan.
2. Membuat program pada aplikasi Arduino IDE.
3. Menghubungkan pin D2, D3, VCC, GND pada Atmega328p.
4. Melakukan Upload program ke Atmega328p.

4.4.4 Hasil Pengujian dan Analisa Kontrol PID


1. Kp = 2, Ki = 0, Kd = 10

Gambar 27 Uji Coba PID 1

Pada gambar diatas menunjukkan beberapa bagian yaitu:

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas belum menunjukkan keadaan
Steady State, karena gelombang terus berosilasi.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding
38

dengan nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >600.
Hal ini terjadi karena beberapa sebab:
- Nilai Kp yang berfungsi meningkatkan nilai overshoot terlalu tinggi.
- Kurangnya nilai Ki yang berfungsi mengeliminasi nilai Steady State.
- Kd yang berfungsi menurunkan nilai overshoot kurang besar.
2. Kp = 1.8, Ki = 1.0, Kd = 10

Gambar 28 Uji Coba PID 2

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas setling time bernilai lebih dari 100
pada satuan waktu serial plotter.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding dengan
nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >600.
Hal ini terjadi karena beberapa sebab:
- Nilai Kp yang berfungsi meningkatkan nilai overshoot terlalu tinggi.
- Kurangnya nilai Ki yang berfungsi mengeliminasi nilai Steady State.
- Kd yang berfungsi menurunkan nilai overshoot kurang besar.
39

3. Kp = 1.6, Ki = 2.0, Kd = 30.

Gambar 29 Uji Coba PID 3

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas setling time bernilai kurang dari
100 pada satuan waktu serial plotter.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding dengan
nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >450.
Hal ini terjadi karena beberapa sebab:
- Nilai Kp yang berfungsi meningkatkan nilai overshoot terlalu tinggi.
- Kurangnya nilai Ki yang berfungsi mengeliminasi nilai Steady State.
- Kd yang berfungsi menurunkan nilai overshoot kurang besar.
40

4. Kp = 1.4, Ki = 3.0, Kd = 40

Gambar 30 Uji Coba PID 4

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas setling time bernilai kurang dari
100 pada satuan waktu serial plotter, lebih kecil dari pada grafik yang sebelumnya.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding dengan
nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >450.
Hal ini terjadi karena beberapa sebab:
- Nilai Kp yang berfungsi meningkatkan nilai overshoot terlalu tinggi.
- Kurangnya nilai Ki yang berfungsi mengeliminasi nilai Steady State.
- Kd yang berfungsi menurunkan nilai overshoot kurang besar.
41

5. Kp = 1.2, Ki = 4.0, Kd = 50

Gambar 31 Uji Coba PID 5

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas setling time bernilai kurang dari
100 pada satuan waktu serial plotter, lebih kecil dari pada grafik yang sebelumnya.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding dengan
nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >450.
Hal ini terjadi karena beberapa sebab:
- Nilai Kp yang berfungsi meningkatkan nilai overshoot terlalu tinggi.
- Kurangnya nilai Ki yang berfungsi mengeliminasi nilai Steady State.
- Kd yang berfungsi menurunkan nilai overshoot kurang besar.
42

6. Kp = 1.0, Ki = 5, Kd = 60

Gambar 32 Uji Coba PID 6

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas setling time bernilai kurang dari
100 pada satuan waktu serial plotter, lebih kecil dari pada grafik yang sebelumnya.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding dengan
nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >400.
Hal ini terjadi karena beberapa sebab:
- Nilai Kp yang berfungsi meningkatkan nilai overshoot terlalu tinggi.
- Kurangnya nilai Ki yang berfungsi mengeliminasi nilai Steady State .
- Kd yang berfungsi menurunkan nilai overshoot kurang besar.
43

7. Kp = 0.8, Ki = 6.0, Kd = 70

Gambar 33 Uji Coba PID 7

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas setling time bernilai kurang dari
100 pada satuan waktu serial plotter, lebih kecil dari pada grafik yang sebelumnya.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding dengan
nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >300.
Hal ini terjadi karena beberapa sebab:
- Nilai Kp yang berfungsi meningkatkan nilai overshoot terlalu tinggi.
- Kurangnya nilai Ki yang berfungsi mengeliminasi nilai Steady State.
- Kd yang berfungsi menurunkan nilai overshoot kurang besar.
44

8. Kp = 0.6, Ki = 7.0, Kd = 80

Gambar 34 Uji Coba PID 8

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas setling time bernilai kurang dari
100 pada satuan waktu serial plotter, lebih kecil dari pada grafik yang sebelumnya.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding dengan
nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >300.
Hal ini terjadi karena beberapa sebab:
- Nilai Kp yang berfungsi meningkatkan nilai overshoot terlalu tinggi.
- Kurangnya nilai Ki yang berfungsi mengeliminasi nilai Steady State.
- Kd yang berfungsi menurunkan nilai overshoot kurang besar.
45

9. Kp = 0.4, Ki = 7.0, Kd = 80

Gambar 35 Uji Coba PID 9

• Rise Time (tr) merupakan lama waktu yang diperlukan respon menuju set point
mulai dari t = 0 sampai dengan respon menyentuh sumbu set point yang pertama.
Pada grafik gambar diatas rise time kecil dilihat dari satuan waktu pada serial
plotter.
• Setling time (ts) merupakan waktu yang menyatakan respon telah masuk dalam
keadaan Steady State. Dari grafik gambar diatas setling time bernilai kurang dari
100 pada satuan waktu serial plotter, lebih kecil dari pada grafik yang sebelumnya.
• Overshoot merupakan nilai relatif yang menyatakan perbandingan
harga maksimum respon yang melampaui harga steady state dibanding dengan
nilai steady state. Pada gambar diatas, nilai setpoint = 300, sedangkan nilai
oveshoot bernilai >300.
Dari beberapa percobaan tersebut, gambar diatas yang menunjukkan grafik yang
paling baik.
46

4.5 Spesifikasi Mekanik Robot


1. Dimensi
• Panjang : 40 cm
• Lebar : 35 cm
• Tinggi : 15 cm
2. Jenis Roda : Tank
3. Jenis Driver : H-Bridge IBT-2
4. Jenis Motor : PG 36 DC motor 24V DC
5. Jenis Processor : Arduino Mega, Atmega328p
6. Jenis LCD : LCD 20x4
7. Jenis Sensor : Sensor Rotary Encoder
8. Bahan base : Alumunium Hollow, PLA
9. Sumber daya : Baterai LiPo 3S 24V DC 5200mAh
Pada spesifikasi akhir robot ini mengalami beberapa perubahan pada dimensi robot. Pada
perencanaan panjang dan lebar robot 50 cm, tinggi 15cm. Spesifikasi akhir berubah menjadi
panjang 40 cm dan lebar 35 cm. Ukuran dimensi robot berubah karena menyesuaikan kondisi
arena perlombaan dengan jarak antara tanaman bagian kanan dan kiri arena adalah 50cm, jadi
lebar robot yang semula 50 cm dirubah menjadi 35 cm. Panjang robot berubah menjadi 35 cm
dikarenakan batasan ukuran timming belt yang dipakai hanya mampu sampai 35 cm.
47
48

4.5.1 Keterangan Gambar


1. Box Kontrol
2. LCD 20 x 4
3. Volt meter
4. Motor Servo ax12 sebagai penggerak lengan robot
5. Motor Servo ax12 sebagai penggerak gripper robot.
6. Gripper robot.
7. Timming belt sebagai karet roda robot
8. Solasi perekat kabel pada bodi robot.
9. Alumunium profil sebagai bodi utama robot.
10. Tuas penghubung lengan depan dengan lengan belakang robot.
11. Roda atas diameter 7cm.
12. Suspensi depan/belakang robot.
13. Suspensi tengah robot.
14. Roda bawah 5cm.
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil perancangan dan pengujian yang sudah dilakukan, dapat diambil kesimpulan
bahwa sistem yang telah dibuat pada robot KRTMI dapat bekerja dengan baik dan sesuai dengan
perancangan. Berikut ini merupakan kesimpulan yang telah didapat :

1. Robot dapat bergerak sesuai dengan input yang di tekan pada joystick.
2. Kedua motor PG36 dapat berputar dengan kecepatan yang sama menggunakan kontrol
PID.
3. Hasil tuning manual nilai Kp, Ki, Kd yang paling baik ialah Kp = 0.4, Ki= 7.0 dan Kd= 80.
5.2 Saran
Ada beberapa saran yang dapat digunakan untuk pengembangan robot KRTMI
diantaranya sebagai berikut :

1. Untuk mendapatkan hasil Kp, Ki, Kd dapat dilakukan secara otomatis menggunakan
simulink matlab sebagai pembanding dengan tuning manual.
2. Pembuatan base robot dapat menggunakan alumunium atau besi agar lebih kuat dan kokoh.

49
DAFTAR PUSTAKA
[1] Dikti 2020. Panduan Kontes Robot Indonesia 2020. Jakarta: DIKTI

[2] Al-Ammri,Salamdan, Iman, Ahmed. 2010. Control of Omni –Directional


Mobile Robot Motion. Baghdad: Al-Khwarizmi Engineering Journal.
[3] Riberio, Maria Isabel and Lima, Pedro (2002),
Kinematics Models Of Mobile Robot. Undergraduate thesis, Instituto Superior
Tecnico (IST), Intituto de Sistemas e Robotica (ISR)
[4] Yudianto, Hendri (2012). Perancangan Sistem Kontrol PID Menggunakan
Simulink. Undergraduate thesis, Politeknik Negeri Surabaya
[5] Rachmawan, Adnan (2017). Penentuan Posisi Robot Sepak Bola Beroda
Menggunakan Rotary Encoder dan Kamera. Surabaya : Institut Teknologi
Sepuluh Nopember.
[6] Romadhon, Sahru, Ahmad and Fuad, Muhammad (2013). Perancangan Sistem
Kontrol Gerakan pada Robot Line Tracer. Madura : Universitas Trunojoyo
Madura.

[7] Harmoko, Ahmad (2011). Rancang Bangun Robot Line Follower dengan
Kendali PID Berbasis Mikrokontroler Atmega8535. Surakarta : Universitas
Muhammaduyah Surakarta.

[8] Ilyas Setiawan, Bagus (2013). Perancangan Robot Auto Line Follower yang
Menerapkan Metode Osilasi Zigler-Nicols untuk Tuning Parameter PID pada
Kontes Robot Indonesia. Malang : Universitas Brawijaya..

[9] Ruswanto, Sonie and Ningrum, Suryawati, Indah and Ramli, Irwan (2011).
Pengaturan Gerak dan Kestimbangan Robot Line Tracer Dua Roda
Menggunakan PID Controller. Surabaya : Politeknik Negeri Surabaya.

[10] Wahyuni, Dwi, Erni (2012). Rancang Bangun Program Visualisasi Pergerakan
Differential Drive Mobile Robot. Surabaya : Politeknik Negeri Surabaya.

50
51

LAMPIRAN 1
(FOTO ROBOT)
52
53
54
55
56

LAMPIRAN 2
(LISTING PROGRAM)
57

A. MASTER
#include <PS3BT.h>
#include <SPI.h> // library spi dongle ps3
#include <Wire.h> // library i2c
#include <LiquidCrystal.h>

#include <usbhub.h>

#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif

#include "Arduino.h"
#include "AX12A.h" // servo

USB Usb; // USB = class, Usb = objek


BTD Btd(&Usb);
PS3BT PS3(&Btd);

#define circle (PS3.getButtonClick(CIRCLE))


#define square (PS3.getButtonClick(SQUARE))

#define LHX (PS3.getAnalogHat(LeftHatX))


#define LHY (PS3.getAnalogHat(LeftHatY))
#define RHX (PS3.getAnalogHat(RightHatX))
#define RHY (PS3.getAnalogHat(RightHatY))

#define _L2 (PS3.getAnalogButton(L2))


#define _R2 (PS3.getAnalogButton(R2))

char buff[33];
LiquidCrystal lcd(A7, A6, A5, A4, A3, A2);
// RS EN D4 D5 D6 D7

uint16_t leftPos = 512, rightPos = 512; // posisi awal srvo ditengah data 10bit
uint16_t leftHandPos = 512, rightHandPos = 512;

class interface {
public :
void init() {
lcd.begin(20, 4);
for (char b = 14; b <= 19; b++) pinMode(b, INPUT_PULLUP); // deklarasi pin input
rpullup internal
lcd.setCursor(5, 1); lcd.print("ROTARINEMA");
lcd.setCursor(8, 2); lcd.print("2020");
}
58

};

class communication {
public :
void init() {
Wire.begin();
}

void transmit(int address, int message) {


Wire.beginTransmission(address);
Wire.write(message);
Wire.endTransmission();
}
};

communication comm;
interface interface;

void setup() {
comm.init();
interface.init();
Usb.Init();

pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);

ax12a.begin(1000000ul, 10u, &Serial); // 100000ul = bautrate servo, 10u = pin tx0 pada
mega
for (uint8_t ID; ID >= 6; ID++) { // set servo 1-6 ke posisi tengah
ax12a.move(ID, 512);
}
}

void loop() {
Usb.Task(); //
if (PS3.PS3Connected || PS3.PS3NavigationConnected) {
digitalWrite(LED_BUILTIN, HIGH);
if (_R2) {
if (RHX <= 117) { // (0, 117, 255) kekri
comm.transmit(1, 1); // 1,2 awal = alamat slve, 1=maju, 2= mundur, 3= mundur pelan,
4= maju pelan
comm.transmit(2, 3);
}
else if (RHX >= 137) {
comm.transmit(1, 3);
comm.transmit(2, 1);
59

}
else {
comm.transmit(1, 1);
comm.transmit(2, 1);
}
}

else if (_L2) {
if (RHX <= 117) {
comm.transmit(1, 2);
comm.transmit(2, 4);
}
else if (RHX >= 137) {
comm.transmit(1, 4);
comm.transmit(2, 2);
}
else { // jika tidak kondiri diatas(meneg) =mundur lurus
comm.transmit(1, 2);
comm.transmit(2, 2);
}
}

else if (PS3.getButtonClick(L1)) {
if (leftPos == 512) leftPos = 700; // keatas
else if (leftPos == 700)leftPos = 512; // kebawah
ax12a.move(3, leftPos);
}

else if (PS3.getButtonClick(R1)) {
if (rightPos == 512) rightPos = 300;
else if (rightPos == 300) rightPos = 512;
ax12a.move(1, rightPos);
}

else if (PS3.getButtonClick(SQUARE)) { // gcapit kiri


if (rightHandPos == 512) rightHandPos = 200;
else if (rightHandPos == 200) rightHandPos = 512;
ax12a.move(4, rightHandPos); ax12a.move(5, rightHandPos);
}

else if (PS3.getButtonClick(CIRCLE)) {
if (leftHandPos == 512) leftHandPos = 200;
else if (leftHandPos == 200) leftHandPos = 512;
ax12a.move(6, leftHandPos); ax12a.move(2, leftHandPos);
}
60

else if (PS3.getButtonClick(CROSS)) {
ax12a.move(3, 512);
ax12a.move(1, 512);
delay(700);

ax12a.move(3, 700);
ax12a.move(1, 300);
delay(200);

for (int a = 0; a <= 2; a++) { // capit gerak 2x


ax12a.move(2, 512);
ax12a.move(6, 512);
ax12a.move(4, 512);
ax12a.move(5, 512);
delay(300);

ax12a.move(2, 200);
ax12a.move(6, 200);
ax12a.move(4, 200);
ax12a.move(5, 200);
delay(300);
}

ax12a.move(3, 512);
ax12a.move(1, 512);
}

else {
comm.transmit(1, 0); // jika tdk nekan tombol, kirim logika 0 untuk motor
comm.transmit(2, 0);
}
}
}
61

B. SLAVE
#include <Wire.h>

int msg = 0;
float currentTimePID, prevTimePID, lastError, cumError, rateError, setPoint = 300;
float error, pid, out, kp = 0.3, ki = 1.0, kd = 80, rpm, enc;
double currentTimeEnc, prevTimeEnc;
double elapsedTime, samplingTime = 50; //ms
uint16_t icr = 0x03FF;

void setup10bit(){
DDRB |= _BV(PB1) | _BV(PB2);
TCCR1A = _BV(COM1A1)| _BV(COM1B1) | _BV(WGM11);
TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10);
ICR1 = icr;
}
double computePID(double feedback) { // rumus
currentTimeEnc = millis(); // mulai fungsi pewaktu
currentTimePID = millis(); // I butuh waktu
if (currentTimeEnc - prevTimeEnc >= samplingTime) {
rpm = ((enc / 7) / 19.2) * 60 / 0.05; //7= ppr, 19.2 = gear bnding, 60 = detik
prevTimeEnc = currentTimeEnc;
// Serial.println(rpm);
enc = 0;

error = setPoint - feedback;


if (error < 0) error = 0;
else if (error > setPoint) error = setPoint; //P

elapsedTime = (currentTimePID - prevTimePID)/1000; //I


cumError += error * elapsedTime;

rateError = (error - lastError) / elapsedTime; //D

lastError = error;
prevTimePID = currentTimePID;

out = (kp * error) + (ki * cumError) + (kd * rateError);


if (out >= 600) out = 600;
else if (out <= 0) out = 0;
out = map(out, 0, 600, 0, 1023);
Serial.println(out);
return out;
}
}
62

void setup() {
setup10bit();
Wire.begin(2); //alamatslave
Wire.onReceive(receiver);
Serial.begin(115200);

attachInterrupt(digitalPinToInterrupt(2), encoderRoutine, CHANGE); // transisi gnti


prbhan pulsa
pinMode(2, INPUT_PULLUP);

for (uint8_t i = 7; i <= 10; i++) {


pinMode(i, OUTPUT);
}

digitalWrite(7, HIGH); //enable driver


digitalWrite(8, HIGH);
}

void loop() {
pid = computePID(rpm);
switch (msg) {
case 0 :
analogWrite10(9, 0);
analogWrite10(10, 0);
error = 0, cumError = 0, rateError = 0, lastError = 0;
break;

case 1:
analogWrite10(9, pid); //maju
analogWrite10(10, 0); // mundur
break;

case 2 :
analogWrite10(9, 0);
analogWrite10(10, pid);
break;

case 3 :
analogWrite10(9, 30); //maju pelan
analogWrite10(10, 0);
break;

case 4 :
analogWrite10(9, 0);
analogWrite10(10, 30); // mundur pelan
break;
63

default :
analogWrite10(10, 0);
analogWrite10(9, 0);
break;
}

void analogWrite10(uint8_t pin, uint16_t val){


switch(pin){
case 9: OCR1A = val; break;
case 10: OCR1B = val; break;
}
}
void receiver(int howMany) {
msg = Wire.read();
}

void encoderRoutine() {
enc++; // interrupt enc, jika ada prubhan +1
}

Anda mungkin juga menyukai