SKRIPSI
OLEH
Achmad Rofiuddin H.F
NIM. 1941177005
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
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
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 :
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.
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.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 :
2. Laporan Skripsi.
3. Publikasi Artikel ilmiah.
4. Teknologi Berupa Benda Karya Teknologi yang dikumpulkan / sesuai perjanjian.
▪
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
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.
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.
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.
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
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.
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
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
18
19
dengan sensor rotary encoder. Studi literatur yang di lakukan adalah dengan mencari jurnal
maupun teks book yang berhubungan dengan kontrol PID.
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.
• 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
31
32
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.
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.
Dari gambar diatas merupakan data pembacaan Rotary Encoder ketika motor
PG36 berputar searah jarum jam (CW).
36
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
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
[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
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();
}
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(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);
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;
lastError = error;
prevTimePID = currentTimePID;
void setup() {
setup10bit();
Wire.begin(2); //alamatslave
Wire.onReceive(receiver);
Serial.begin(115200);
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 encoderRoutine() {
enc++; // interrupt enc, jika ada prubhan +1
}