Anda di halaman 1dari 217

Penulis :

Weldan Kusuf, 081333008876, email: kusuf_ku@yahoo.com

Penelaah :

Editor :
Arie Eric Rawung

Copyright  2016
Pusat Pengembangan dan Pemberdayaan Pendidik dan Tenaga Kependidikan
Bidang Otomotif dan Elektronika, Direktorat Jenderal Guru dan Tenaga
Kependidikan

Hak Cipta Dilindungi Undang-Undang


Dilarang mengcopy sebagian atau keseluruhan isi buku ini untuk kepentingan
komersial tanpa izin tertulis dari Kementerian Pendidikan dan Kebudayaan
KATA SAMBUTAN

Peran guru professional dalam proses pembelajaran sangat penting sebagai


kunci keberhasilan belajar siswa. Guru professional adalah guru yang kompeten
membangun proses pembelajaran yang baik sehingga dapat menghasilkan
pendidikan yang berkualitas. Hal tersebut menjadikan guru sebagai komponen
yang menjadi focus perhatian pemerintah pusat maupun pemerintah daerah
dalam peningkatan mutu pendidikan terutama menyangkut kompetensi guru.

Pengembangan profesionalitas guru melalui program Guru Pembelajar (GP)


merupakan upaya peningkatan kompetensi untuk semua guru. Sejalan dengan
hal tersebut, pemetaan kompetensi guru telah dilakukan melalui uji kompetensi
guru (UKG) nuntuk kompetensi pedagogic dan professional pada akhir tahun
2015. Hasil UKG menunjukkan peta kekuatan dan kelemahan kompetensi guru
dalam penguasaan pengetahuan. Peta kompetensi guru tersebut dikelompokkan
menjadi 10 (sepuluh) kelompok kompetensi. Tindak lanjut pelaksanaan UKG
diwujudkan dalam bentuk pelatihan guru pasca UKG melalui program Guru
Pembelajar. Tujuannya untuk meningkatkan kompetensi guru sebagai agen
perubahan dan sumber belajar utama bagi peserta didik. Program Guru
Pembelajar dilaksanakan melalui pola tatap muka, daring (online), dan campuran
(blended) tatap muka dengan online.

Pusat Pengembangan dan Pemberdayaan Pendidik dan Tenaga Kependidikan


(PPPPTK), Lembaga Pengembngan dan Pemberdayaan Pendidik dan Tenaga
Kependidikan Kelautan Perikanan Teknologi Informasi dan Komunikasi (LP3TK
KPTK), dan Lembaga Pengembangan dan Pemberdayaan Kepala Sekolah
(LP2KS) merupakan Unit Pelaksana Teknis di lingkungan Direktorat Jenderal
Guru dan Tenaga Kependidikan yang bertanggungjawab dalam
mengembangkan perangkat dan melaksanakan peningkatan kompetensi guru
sesuai bidangnya. Adapun perangkat pembelajaran yang dikembangkan tersebut
adalah modul untuk program Guru Pembelajar (GP) tatap muka dan GP online
untuk semua mata pelajaran dan kelompok kompetensi. Dengan modul ini
diharapkan program GP memberikan sumbangan yang sangat besar dalam
peningkatan kualitas kompetensi guru.

Mari kita sukseskan program GP ini untuk mewujudkan Guru Mulia Karena
Karya.

Jakarta, Februari 2016


Direktur Jenderal
Guru dan Tenaga Kependidikan

Sumarna Surapranata, Ph.D.


NIP 195908011985031002

i
ii
DAFTAR ISI
KATA SAMBUTAN .............................................................................................. i
DAFTAR ISI ....................................................................................................... iii
DAFTAR GAMBAR ........................................................................................... vii
DAFTAR TABEL ................................................................................................ xi
DAFTAR LAMPIRAN ........................................................................................ xii
PENDAHULUAN ................................................................................................. 1
A. Latar belakang .............................................................................................. 1
B. Tujuan........................................................................................................... 2
C. Peta Kompetensi .......................................................................................... 3
D. Ruang Lingkup.............................................................................................. 3
E. Saran Cara Penggunaan Modul .................................................................... 4
Kegiatan Pembelajaran I: Dasar - Dasar Robotika .......................................... 5
A. Tujuan........................................................................................................... 5
B. Indikator Pencapaian Kompetensi................................................................. 5
C. Uraian Materi ................................................................................................ 5
1. Pendahuluan ......................................................................................... 5
2. Sejarah dan Perkembangan Teknologi Robot....................................... 6
3. Penelitian di Bidang Robotika ................................................................ 8
4. Jenis Robot ......................................................................................... 11
5. Sistem Kontrol Robotik ........................................................................ 21
6. Sensor ................................................................................................. 22
7. Aktuator ............................................................................................... 24
8. Interaksi Manusia dan Robot ............................................................... 25
D. Aktivitas Pembelajaran ............................................................................... 29
E. Latihan ........................................................................................................ 29
F. Rangkuman ................................................................................................ 30
G. Umpan Balik dan Tindak Lanjut .................................................................. 31
KEGIATAN PEMBELAJARAN 2: KONTROLER, SENSOR DAN AKTUATOR 33
A. Tujuan......................................................................................................... 33
B. Indikator Pencapaian Kompetensi............................................................... 33
C. Uraian Materi .............................................................................................. 33
1. Microcontroller ..................................................................................... 33

iii
a. Arduino ................................................................................................ 34
b. Arduino Uno......................................................................................... 35
c. Arduino Mega 2560 ............................................................................. 39
2. AktuatorMotor Servo ............................................................................ 47
3. Sensor ultrasonik ................................................................................. 51
4. Sensor Cahaya LDR (Light Dependent Resistor) ................................. 52
KEGIATAN PEMBELAJARAN 3: ROBOT WHISKER ...................................... 55
A. Tujuan......................................................................................................... 55
B. Indikator Pencapaian Kompetensi ............................................................... 55
C. Uraian Materi .............................................................................................. 55
1. Robot Whiskers ................................................................................... 55
2. Kebutuhan Alat dan Bahan Perakitan Shield bot ................................. 57
3. Merakit Komponen Robot Whisker ...................................................... 58
4. Membuat dan Menguji Whisker............................................................ 61
5. Navigasi dengan Whisker .................................................................... 66
6. Kecerdasan Buatan untuk Melarikan Diri dari Sudut ............................ 70
D. Aktifitas Pembelajaran ................................................................................ 74
E. Latihan ........................................................................................................ 75
F. Rangkuman ................................................................................................ 75
G. Umpan Balik dan Tindak Lanjut .................................................................. 76
KEGIATAN PEMBELAJARAN 4: ROBOT LINE FOLLOWER.......................... 77
A. TUJUAN ..................................................................................................... 77
B. Indikator Pencapaian Kompetensi ............................................................... 77
C. Uraian Materi .............................................................................................. 77
1. IC L293D (Motor Driver)..................................................................... 79
2. Sensor Photodiode .............................................................................. 81
3. Mekanisme Perancangan Sensor Garis............................................... 82
4. Motor DC ............................................................................................. 84
D. Aktivitas Pembelajaran................................................................................ 86
1. Perancangan Mekanik dan Konsep Kerja ............................................ 86
2. Konsep desain pergerakan robot ......................................................... 90
3. Konsep Motor DC ................................................................................ 91
E. Latihan ...................................................................................................... 100
F. Rangkuman .............................................................................................. 100

iv
KEGIATAN PEMBELAJARAN 5: BOEBOT ROBOT...................................... 101
A. Tujuan....................................................................................................... 101
B. Indikator Kegiatan Proyek ......................................................................... 101
C. Uraian Materi ............................................................................................ 101
1. Perakit Komponen BOE-BOT ............................................................ 102
2. Menguji Manuver Dasar BOE Shield-bot ........................................... 107
3. Menghitung Jarak .............................................................................. 110
4. Menjalankan Manuver ....................................................................... 112
5. Menyederhanakan navigasi dengan fungsi ........................................ 115
6. Fungsi Manuver Kustom .................................................................... 116
D. Aktifitas Pembelajaran .............................................................................. 118
E. Latihan / Tugas ......................................................................................... 119
F. Rangkuman .............................................................................................. 119
KEGIATAN PEMBELAJARAN 6: ROBOT QUAD CRAWLER ....................... 121
A. Tujuan....................................................................................................... 121
B. Indikator Pencapaian Kompetensi............................................................. 121
C. Uraian Materi ............................................................................................ 121
1. Perakitan Dasar Mekanik ................................................................... 121
2. Implementasi rangkaian mekanik....................................................... 124
3. Implementasi Rangkaian Elektronik ................................................... 129
D. AKTIFITAS PEMBELAJARAN .................................................................. 130
E. Latihan ...................................................................................................... 146
F. Rangkuman .............................................................................................. 146
KEGIATAN PEMBELAJARAN 7: ROBOT CERDAS PEMADAM API ............ 147
A. Tujuan....................................................................................................... 147
B. Indikator Kegiatan Praktek ........................................................................ 147
C. Uraian Materi ............................................................................................ 148
1. Sensor Ultrasonik .............................................................................. 148
2. Sensor Api Hamatsu UV TRON R2868.............................................. 154
3. Rangkaian Sensor Garis.................................................................... 159
4. Motor DC dan driver menggunakan L293D........................................ 159
5. LCD 16x2 .......................................................................................... 160
D. Aktivitas Pembelajaran ............................................................................. 162
E. Latihan/Tugas ........................................................................................... 174

v
F. Rangkuman .............................................................................................. 175
G. Umpan Balik Dan Tindak Lanjut ................................................................ 176
Daftar Pustaka................................................................................................ 177
GLOSARIUM ................................................................................................... 179
LAMPIRAN ...................................................................................................... 183

vi
DAFTAR GAMBAR
Gambar 1.1. Robot Lengan Sederhana ............................................................. 11

Gambar 1.2. Sistem Robot Industry ................................................................... 12

Gambar 1.3. Robot Manipulator ......................................................................... 13

Gambar 1.4. Konfigurasi Polar ........................................................................... 14

Gambar 1. 5. Konfigurasi Silinder ...................................................................... 15

Gambar 1. 6. Konfigurasi Cartesian ................................................................... 15

Gambar 1.7. Konfigurasi Sendi-Lengan ............................................................. 16

Gambar 1.8. Flying Robot (Robot Terbang) ....................................................... 18

Gambar 1.9. Under Water Robot (Robot Dalam Air) .......................................... 18

Gambar 1.10. Robot Kombinasi Mobile dan Non-mobile Mars-Rovers NASA .... 19

Gambar 1.11 Robot Humanoid .......................................................................... 20

Gambar 1. 12 Kontrol robot loop terbuka ........................................................... 21

Gambar 1. 13 Kontrol Robot Loop Tertutup ....................................................... 22

Gambar 1. 14 Sistem remote control pada robot................................................ 26

Gambar 1. 15 Sistem Remote Control pada manipulator ................................... 27

Gambar 2. 1 Chip Mikrokontroller ATMega2560 ................................................ 34

Gambar 2.2 Bentuk Fisik Arduino Uno ............................................................... 36

Gambar 2.3 Arduino Mega2560 R3 Bagian Depan ............................................ 40

Gambar 2.4 Pin Arduino Mega2560 R3 ............................................................. 41

Gambar 2.5 Tampilan IDE Arduino dengan sebuah sketch................................ 47

Gambar 2.6. Contoh Motor Servo ...................................................................... 48

Gambar 2.7. Komponen-Komponen pada Motor Servo ..................................... 49

Gambar 2.8. Pulsa control Servo ....................................................................... 50

Gambar 2.9. Sensor Ultrasonik .......................................................................... 51

vii
Gambar 2.10. Sensor LDR................................................................................. 53

Gambar 3.1. Whisker pada Arduino-BOT........................................................... 56

Gambar 3.2. Sistem Kerja Saklar Whisker ......................................................... 57

Gambar 3.3. Part Shield Bot .............................................................................. 58

Gambar 3.4. Posisi servo pada chassis ............................................................. 59

Gambar 3.5. Wadah baterai pada chassis ......................................................... 60

Gambar 3.6. Roda pada chassis ........................................................................ 60

Gambar 3.7. Pemasangan BOE-shield bot ........................................................ 61

Gambar 3.8. Part list whiskers ........................................................................... 62

Gambar 3.9. Pemasangan whiskers .................................................................. 63

Gambar 3.10. Rangkaian whiskers .................................................................... 63

Gambar 3.11. Pengujian whiskers pada serial monitor ...................................... 64

Gambar 3.12. Ilustrasi Program Navigasi Whisker ............................................. 67

Gambar 4.1. robot line follower .......................................................................... 78

Gambar 4.2. IC L293 ......................................................................................... 79

Gambar 4.3. pin IC motor driver L293D ............................................................. 80

Gambar 4.4. Block diagram motor driver L293D ................................................ 81

Gambar 4.5. Output photodiode terhadap intensitas cahaya.............................. 82

Gambar 4.6. Ilustrasi mekanisme sensor garis .................................................. 82

Gambar 4.7. Sensor photodiode tidak terkena cahaya....................................... 83

Gambar 4.8. Sensor photodiode terkena cahaya ............................................... 83

Gambar 4.9. Driver searah motor DC ................................................................ 84

Gambar 4.10. Driver bolak-balik motor DC ........................................................ 85

Gambar 4.11. rangka Robot Line Follower ......................................................... 87

Gambar 4.12. Mekanik Robot Line follower tampak 3D ..................................... 87

Gambar 4.13. Komponen Sensor....................................................................... 88

viii
Gambar 4.14. Rangkaian Sensor Line Follower ................................................. 88

Gambar 4.15. Cara Kerja Sensor....................................................................... 89

Gambar 4.16. Analogi Sensor ............................................................................ 90

Gambar 4.17. Diagram Blok Line Follower......................................................... 94

Gambar 5.1. Robot BOE-BOT ......................................................................... 102

Gambar 6.1. Komponen robot quad crawler .................................................... 122

Gambar 6.2. Kaki kiri depan terakit .................................................................. 122

Gambar 6.3. Kaki kanan depan terakit ............................................................. 123

Gambar 6.4. Rakitan kaki kanan kiri depan...................................................... 123

Gambar 6.5. Merakit kaki kiri depan pada chasis ............................................. 123

Gambar 6.6. Robot quad crawler yang telah terakit ......................................... 124

Gambar 6.7. Desain Mekanik. robot dilihat dari depan(a), robot dilihat dari atas
(b) .................................................................................................................... 124

Gambar 6.8. Analisa pada bidang horizontal (a), dan pada bidang vertikal(b) . 125

Gambar 6.9. Peletakan robot pada diagram Cartesian (a), salah satu kaki robot
diputar sebesar dengan sumbu rotasi x (b). .................................................. 126

Gambar 6.10. Kaki digeser sebesar (x, y, z) ............................................. 128

Gambar 6.11. Desain blok sistem .................................................................... 129

Gambar 6.12. workspace keempat lengan robot .............................................. 130

Gambar 6.13. Diagram alir untuk gerak translasi ............................................. 131

Gambar 6.14. Diagram alir untuk melakukan langkah ...................................... 131

Gambar 6. 15 Urutan skenario gerakan kaki .................................................... 133

Gambar 7.1. Pengiriman gelombang dan gelombang pantul ........................... 149

Gambar 7.2. Rangkaian Transmiter Sensor Ultra Sonic................................... 151

Gambar 7.3. Rangkaian Receiver Sensor Ultra Sonic ..................................... 152

Gambar 7.4. Sensor Jarak Ultrasonik Devantech SRF04 ................................ 154

ix
Gambar 7.5. Bentuk fisik UV TRON R2868 ..................................................... 155

Gambar 7.6. Luasan deteksi titik api sensor UVtron ........................................ 155

Gambar 7.7. Sensitivitas Sudut........................................................................ 156

Gambar 7.8. Respon Spektrum ....................................................................... 156

Gambar 7.9. Rekomendasi Pengoperasian Rangkaian.................................... 156

Gambar 7.10. Diagram Blok Driver UV Tron C3704 ......................................... 157

Gambar 7.11. Sinyal Keluaran Driver UV Tron C3704 ..................................... 157

Gambar 7.12. Konfigurasi Hardware ................................................................ 158

Gambar 7.13. Logika Algoritma ....................................................................... 158

Gambar 7.14. Rangkaian Sensor Garis ........................................................... 159

Gambar 7.15. Bentuk Fisik Motor DC .............................................................. 160

Gambar 7.16. Bentuk Fisik LCD 16x2 .............................................................. 161

Gambar 7.17. Desain 2 Dimensi Robot ............................................................ 163

Gambar 7.18. Desain 3 Dimensi Robot ............................................................ 163

Gambar 7.19. Blok diagram robot pemadam api .............................................. 164

Gambar 7.20. Rangkaian skematik robot pemadam api................................... 165

Gambar 7.21. Baterai Lipo ............................................................................... 166

Gambar 7.22. Rangkaian Regulator................................................................. 166

Gambar 7.23. Bentuk lapangan uji coba robot ................................................. 167

Gambar 7.24. Flowchart Program Robot Pemadam Api .................................. 168

x
DAFTAR TABEL
Tabel 1. 1 Spesifikasi kemampuan bekerja manusia vs robot ............................ 28

Tabel 4.1. Tabel Kebenaran Driver Motor .......................................................... 92

Tabel 4.2. Desain Kecepatan Motordc ............................................................... 95

xi
DAFTAR LAMPIRAN
Kunci Jawaban KB 1 ……………………………………………….…………. 183

Kunci Jawaban KB 3 ……………………………………………….…………. 183

Kunci Jawaban KB 4 ……………………………………………….…………. 187

Kunci Jawaban KB 5 ……………………………………………….…………. 191

Kunci Jawaban KB 6 ……………………………………………….…………. 193

Kunci Jawaban KB 7 ……………………………………………….…………. 195

xii
xiii
PENDAHULUAN

A. Latar belakang

Dewasa ini penggunaan robot sudah menjadi kebutuhan di berbagai bidang


industri baik industri permesinan, manufaktur, pengerjaan logam, kayu maupun
di dunia otomotif.Mengapa teknologi robot dapat berkembang cepat dan sangat
banyak digunakan di industri? Hal itudisebabkankarena dengan sistem
robotmampu memberikan jawaban atas efisiensi terhadap suatu hasil produksi
dengan keunggulan utama antara lain : kecepatan, kualitas yang merata dan
terjamin dan mampu diaplikasikan diberbagai kondisi ekstrem untuk
meminimalisirkan resiko pekerjaan pada manusia.

Dalam aplikasinya rekayasa sistem robotik sangat luas mulai dari rancang
bangun mekanik kontrol terkait dengan berbagai gerakan mekanik, pemilihan
aktuator seperti jenis motor, silinder,coil dll., pemilihan jenis sensor yang
disesuaikan dengan kebutuhan masing-masing robot seperti sensor suhu,,
warna, jarak, gyro dll. Rangkaian elektronik berupa driver aktuator, rangkaian
pengkondisi sinyal sensor, rangkaian mikrokontroller, wiring pengkabelan dll.
Kontrol sistem berupa penerapan hukum logika maupun kontrol cerdas seperti
PID, fuzzy, NN dll.

Aplikasi rekayasa sistem robotik banyak digunakan dalam sistem manufaktur


otomotif, fungsi utama adalah melakukan fungsi khusus dalam proses kegiatan
produksi, contoh memasang baut, mengelas, mengecat dll.

Pada industri manufaktur robot lengan atau biasa disebut manipulator robot
sangat populer digunakan karena kehandalan sistemnya dalam melakukan tugas
yang membutuhkan kecepatan dan kepresisian yang tinggi.

1
Gambar 1. Sistem Robot Manufaktur Industri

Konfigurasi robot lengan yang paling umum digunakan pada industry adalah,
robot scara, robot delta dan robot koordinat Cartesian robot.Robot lengan disebut
manipulator karena merujuk pada standar ISO 1738. Beberapa robot diprogram
untuk melaksanakan tindakan tertentu berulang-ulang tanpa variasi dan dengan
tingkat akurasi yang tinggi. Gerak robot ditentukan oleh program untuk
menentukan arah, percepatan, kecepatan, deselerasi, dan jarak dari serangkaian
gerakan terkoordinasi.

B. Tujuan

Setelah mengikuti pembelajaran pada modul ini peserta diklat diharapkan dapat :

1. Mengenali Robot (sejarah, arsitektur sederhana, struktur/ susunan,


komponen).
2. Memahami kinematik dan Dinamik Robot.
3. Memahami jenis Power Supply untuk Robot (sumber AC/ Catu daya; Batery;
Sel Surya/solar cell)
4. Mensimulasi dan mengujiSistem Penggerak /Aktuator Robot
5. Mengujicobakan sensor-sensor untuk Robotik
6. Mempraktikan beberapa Jenis Robot (Line tracking/line follower; Boe Bot;
Whisker; Cerdas dengan Boe Bot; Berkaki Quad Crawler; Berkaki dan
Lengan)
7. Memahami dan mempraktikan jenis Kontrol Robot.
8. Menerapkan pembuatan & pemrogram kontrol Robotik.

2
C. Peta Kompetensi

D. Ruang Lingkup

1. Perkembangan Robot

2. Mengenal Jenis Robot

3. Jenis-Jenis Aktuator dan rangkaian driver.

4. Jenis-jenis sensor dan rangkaian pengkondisi sinyal

5. Mikrokontroller sebagai unit pengolah utama

6. Prosedur pemecahan masalah dituangkan dalam flowchart

7. Pembuatan program berdasarkan prosedur pemecahan masalah.

8. Pemrograman aplikasi berbasis I/O pada robotik

3
E. Saran Cara Penggunaan Modul

Untuk memperoleh hasil belajar secara maksimal, dalam menggunakan modul ini
maka langkah-langkah yang perlu dilaksanakan antara lain :

1. Bacalah dan pahami dengan seksama uraian-uraian materi yang ada pada
masing-masing kegiatan belajar. Bila ada materi yang kurang jelas, peserta
diklat dapat bertanya pada instruktur pengampu kegiatan belajar.

2. Kerjakan setiap tugas formatif (soal latihan) untuk mengetahui seberapa


besar pemahaman yang telah dimiliki terhadap materi-materi yang dibahas
dalam setiap kegiatan belajar.

3. Untuk kegiatan belajar yang terdiri dari teori dan praktik, perhatikanlah hal-
hal berikut:

a. Perhatikan petunjuk-petunjuk keselamatan kerja yang berlaku.

b. Pahami setiap langkah kerja (prosedur praktikum) dengan baik.

c. Sebelum melaksanakan praktikum, identifikasi (tentukan) peralatan dan


bahan yang diperlukan dengan cermat.

d. Gunakan alat sesuai prosedur pemakaian yang benar.

e. Untuk melakukan kegiatan praktikum yang belum jelas, harus meminta


ijin widyaiswara atau instruktur terlebih dahulu.

f. Setelah selesai, kembalikan alat dan bahan ke tempat semula

g. Jika belum menguasai level materi yang diharapkan, ulangi lagi pada
kegiatan belajar sebelumnya atau bertanyalah kepada instruktur yang
mengampu kegiatan pembelajaran yang bersangkutan.

4
KEGIATAN PEMBELAJARAN I: DASAR - DASAR
ROBOTIKA

A. Tujuan

Setelah mengikuti dan atau menyelesaikan materi Perkembangan Teknologi


Mikroprosesor, Melalui diskusi kelompok peserta dapat:
- Mengenal sejarah perkembangan robot
- Mengetahui fungsi aplikasi robot dalam kehidupan sehari-hari dan
- Memahami jenis-jenis robot berdasarkan klasifikasi-nya.

B. Indikator Pencapaian Kompetensi


- Memahami sejarah perkembangan robot

- Menyebutkan jenis robot berdasar beberapa klasifikasi

- Menyebutkan fungsi dan aplikasi robot dalam dunia sehari-hari

C. Uraian Materi

1. Pendahuluan
Istilah robot berasal dari bahasa Cekoslowakia. Kata robot berasal dari kosakata
“Robota” yang berarti “kerja cepat”. Sedangkan pengertian robot secara tepat
adalah sistem atau alat yang dapat berperilaku atau meniru perilaku manusia
dengan tujuan untuk menggantikan dan mempermudah kerja/aktifitas manusia.
Untuk dapat diklasifikasikan sebagai robot, maka robot harus memiliki dua
macam kemampuan yaitu:
1) Bisa mendapatkan informasi dari sekelilingnya.
2) Bisa melakukan sesuatu secara fisik seperti bergerak atau
memanipulasi objek.
Untuk dapat dikatakan sebagai robot sebuah sistem tidak perlu untuk meniru
semua tingkah laku manusia, namun suatu sistem tersebut dapat mengadopsi
satu atau dua dari sistem yang ada pada diri manusia saja sudah dapat

5
dikatakan sebagai robot. Sistem yang diadopsi dapat berupa system penglihatan
(mata), sistem pendengaran (telinga) ataupun sistem gerak.
Ada beberapa fungsi robot, sehingga manusia memerlukan kehadirannya yaitu:

a. Meningkatkan produksi, akurasi dan daya tahan. Robot ini banyak digunakan
di industri.
b. Untuk tugas-tugas yang berbahaya, kotor dan beresiko. Robot ini digunakan
ketika manusia tidak mampu masuk ke daerah yang beresiko. Seperti Robot
Untuk menjelajah planet, robot untuk mendeteksi limbah nuklir, robot militer
dll.
c. Untuk pendidikan. Banyak robot yang digunakan untuk menarik pelajar
belajar teknologi seperti robot lego, dll.
d. Untuk menolong manusia. Seperti di rumah untuk membersihkan rumah
pakai penghisap debu otomatis, di rumah sakit untuk menghantar makanan,
membantu operasi, dll.

2. Sejarah dan Perkembangan Teknologi Robot

Penelitian dan pengembangan pada tahun pertama yang berbuah produk


robotika dapat dilacak mulai dari tahun 1940-an ketika Argone National
Laboratories di Oak Ridge, Amerika, memperkenalkan sebuah mekanisme
robotika yang dinamai master-slave manipulator. Robot ini digunakan untuk
menangani material radioaktif. Kemudian produk pertama robot komersial
diperkenalkan oleh Unimation Incorporated, Amerika pada tahun 1950-an.
Hingga belasan tahun kemudian langkah komersial ini telah diikuti oleh
perusahaan-perusahaan lain. Namun demikian, seperti ditulis dalam beberapa
sumber, penelitian intensif dibidang teknologi robotika dan keinginan menjadikan
robotika sebagai sebuah disiplin ilmu kala itu belum terpikirkan.

Baru setelah dunia mulai menapak ke jaman industri pada pertengahan tahun
60-an kebutuhan akan otomasi semakin meningkat. Pada saat itulah robotika
diterima sebagai disiplin ilmu baru yang mendampingi ilmu-ilmu dasar dan teknik
yang telah mapan sebelumnya. Di negara-negara yang telah mapan kala itu,
seperti Amerika, Inggris, Jerman dan Perancis mulai bermunculan grup-grup riset
yang menjadikan robotika sebagai temanya, kemudian diikuti oleh Jepang, yang

6
dipelopori oleh ilmuwan-ilmuwan yang baru pulang dari menimba ilmu di
Amerika. Bahkan, di kemudian hari Jepanglah yang tercatat sebagai negara yang
paling produktif dalam mengembangkan teknologi robot. Hal ini tidak lain karena
jepang gigih dalam melakukan penelitian teknologi infrastruktur seperti
komponen dan piranti mikro(microdevices) yang akhirnya bidang ini terbukti
sebagai inti dari pengembangan robot modern.

Dewasa ini muncul istilah robot humanoid, animaloid, dan sebagainya. Bahkan
kini dalam industri spesifik seperti industri perfilman, industri angkasa luar dan
industri pertahanan atau mesin perang, robot arm atau manipulator bisa jadi
hanya menjadi bagian saja dari sistem robot secara keseluruhan.

Robotika memiliki unsur yang sedikit berbeda dengan ilmu-ilmu dasar atau
terapan yang lain dalam berkembang. Ilmu dasar biasanya berkembang dari
suatu hipotesis yang kemudian diteliti secara metodis. Ilmu terapan
dikembangkan setelah ilmu-ilmu yang mendasarinya berkembang dengan baik.
Sedangkan ilmu robotika lebih sering berkembang melalui pendekatan secara
praktis. Kemudian melalui suatu pendekatan dari hasil pengamatan perilaku
mahluk hidup atau benda/mesin/peralatan bergerak lainnya dikembangkanlah
penelitian secara teoritis. Dari teori kembali kepada praktis, dan dari robot
berkembang menjadi lebih canggih.

Mekatronik adalah istilah umum yang menjadi popular seiring dengan


perkembangan paduan mekanik dan elektronik. Mekatronik terdiri dari 4 disiplin
ilmu, yaitu mekanik (mechanics), elektronik, teknik kontrol berbasis prosesor
serta pemrograman seperti halya dalam bidang robotik. Sebuah produk
mekatronik belum tentu robot, namun robot pasti mekatronik. Banyak produk
mekatronik disekeliling kita, misalnya mesin cuci, CD/DVD/ video/cassette player,
walkman hingga vacuum cleaner. Dalam bidang otomotif produk mekatronik yang
diterapkan pada mobil yaitu ABS (anti lock breaking sistem), active suspension
sistem, dsb. Dalam dunia industri, perdagangan dan gedung-gedung perkantoran
dikenal berbagai peralatan otomatis seperti pintu otomatis, lift, escalator, mesin
fotocopy, dan masih banyak lagi.

7
3. Penelitian di Bidang Robotika

Perkembangan suatu ilmu tak lepas dari peran para peneliti kalau tak dapat
dikatakan bahwa justru penelitilah yang menyebabkan suatu ilmu itu
berkembang. Perkembangan penelitian di bidang robotika lazimnya dapat segera
diketahui dengan mencermati aplikasinya di dunia industri atau produk kegiatan
penelitian skala laboratorium di group-group penelitian yang tersebar di berbagai
institusi pendidikan dan penelitian di negara-negara maju. Dengan mudahnya
mengakses internet sekarang ini dan banyaknya sumber-sumber informasi masa
kini yang tersebar secara terbuka di situs-situs penelitian.

Keterkaitan seluruh komponen atau sub-domain dalam ruang lingkup penelitian


di bidang robotika. Secara garis besar penelitian di bidang robotika dapat
dilakukan dengan memilih tema berdasarkan alur dalam 4 tahapan, yaitu
klasifikasi, obyek penelitian, fokus penelitian dan target penelitian. Dari blok
klarifikasi, struktur robot dapat diketahui berada dalam kelompok mana. Dari sini,
obyek penelitian dapat ditentukan dan dijabarkan secara detil parameter-
parameternya.

Pada dasarnya dilihat dari struktur dan fungsi fisiknya (pendekatan visual) robot
terdiri dari dua bagian, yaitu non-mobile robot dan mobile robot. Kombinasi
keduanya dapat menghasilkan kelompok kombinasi konvensional (mobile & non-
mobile) dan kelompok non-konvensional. Kelompok pertama sengaja diberi
nama konvensional karena nama yang dipakai dalam konteks penelitian adalah
nama-nama yang dianggap sudah umum, seperti mobile manipulator, climbing
robot (robot pemanjat), walking robot (misalkan : bi-ped robot) dan nama-nama
lain yang sudah populer. Sedangkan kelompok nonkonvensional dapat berupa
robot humanoid, animaloid, extra-ordinary, atau segala bentuk inovasi
penyerupaan yang bisa dilakukan. Kelompok kedua ini banyak di manfaatkan
sebagai ikon keunggulan dalam penelitian robotika, seperti robot ASIMO buatan
jepang. Sementara robot dalam air dan robot terbang lebih banyak
dikembangkan sebagai peralatan untuk membantu penelitian yang berkaitan dan
untuk proyek pertahanan atau mesin perang.

8
Dari kelompok non-mobile yang sering disebut sebagai“keluarga robot” adalah
robot arm atau robot manipulator saja. Sementara yang lebih mudah dikenali
sebagai mesin cerdas (intelligent machine) yang tidak selalu tampak memiliki
bagian tangan, kaki atau roda untuk bergerak lebih lazim disebut dengan nama
khusus sesuai fungsinya. Mereka biasanya memiliki nama-nama tersendiri.
Misalnya mesin-mesin otomatis Lathe, milling, drilling machine, CNC (Computer
Numerical Control) Machine, EDM (Electric Discharge Machine), dan berbagai
peralatan ototmatis yang biasa dijumpai di pabrik-pabrik modern.

Fokus penelitian dapat diambil dengan titik berat perhatian lebih kepada
kinematik atau dinamik atau kedua-duanya. Dari analisa kinematik saja, bila
obyek penelitian yang diambil adalah konfigurasi robot yang benar-benar baru
(belum ada penelitian sebelumnya yang mengkaji) kontribusi keilmuan dapat
diperoleh hanya dengan mengkaji persamaan kinematik dan kontrol dasarnya.

Pembahasan khusus dalam hal dinamika robot juga sangat menjanjikan dalam
perolehan kontribusi keilmuannya. Tujuan utama kajian dinamik ini adalah untuk
mendapatkan disain kontrol yang handal (robust) dan mampu meredam
gangguan dengan baik. Masih banyak struktur-struktur robot yang kompleks
belum dikaji secara mendalam model dinamiknya oleh karena rumitnya
persoalan pemodelan matematik sistem robot, sifat-sifat alami (friksi pada poros
aktuator, backlash pada gearbox, noise pada sensor, nonlinieritas dari pada
aktuator, dsb.) dan lingkungan (gangguan luar berupa efek pembebanan, jalan
yang tidak rata, getaran,dll.). Dari persamaan dinamik ini kontrol dasarnya dapat
dirancang secara sistematis. Bahasan kontrol robot yang dimulai dari pemodelan
robot secara penuh ini (kinematik dan dinamik) biasa disebut sebagai model-
based control.

Pada kasus dinamik robot yang rumit seringkali dibutuhkan bantuan kecerdasan
buatan untuk mengidentifikasi model matematiknya. Lindan Goldenberg(2001)
menggunakan jaringan saraf tiruan (artificial neural network) untuk
mengidentifikasi model dan kontrol yang sesuai untuk sebuah mobile
manipulator. Sedangkan Sakka dan Chochron (2001) menggunakan algorithma

9
genetic. Metoda sistem berbasis pengetahuan (knowledge-based system) juga
dapat digunakan sebagai pilihan untuk menyelesaikan masalah ketidak pastian
dalam pemodelan dinamik.

Gabungan kontrol kinematik dan kontrol dinamik yang baik akan menghasilkan
kontrol gerak robot (robot motion control) yang handal. Hal ini adalah merupakan
tujuan utama dalam rancang bangun robot ideal. Namun demikian, dewasa ini
penelitian tentang aplikasi kecerdasan buatan dalam kontrol robot lebih banyak
ditujukan untuk memperoleh kontrol kinematic yang canggih.

a. Mekatronik vs Robotik

Mekatronik terdiri dari 4 disiplin ilmu, yaitu mekanik (mechanics), elektronik,


teknik kontrol berbasis prosesor dan pemrograman seperti halnya pada
bidang robotika. Sebuah produk mekatronik belum tentu robotika, namun
robot adalah bagian dari mekatronik.

Dengan berkembangnya ilmu di bidang control cerdas (intelligent control)


maka dikenal pula istilah intelligent mechatronics yang dimaksudkan untuk
mendeskripsikan produk mekatronik yang telah dimuati suatu kecerdasan
buatan. Sebagai contoh, mesin cuci berbasis control fuzzy (fuzzy control
washing machine), mesin penjual minuman otomatis yang dilengkapi sistem
validasi uang menggunakan metoda jaringan saraf tiruan (artificial neural
network), dll. Sistem printer, scanner dan fotokopi dalam satu alat juga
termasuk dalam kategori ini.

Penelitian mutakhir dalam bidang mekatronik hampir tak dapat dipisahkan


dengan penelitian di bidang robotika itu sendiri. Sebagai contoh, ultrasonic
motor dan teknologi MEMS (micro electro mechanical system) yang
dikembangkan untuk pembuatan sistem aktuator berukuran mikro atau lebih
kecil dari 1 mm (Simokohbe, 2005). Meski penelitian ini masih sangat baru
dan belum menunjukkan kemajuan berarti, namun jika berhasil, dipercayai

10
manfaatnya sangat besar dalam aplikasi di dunia kedokteran dan rekayasa
genetika.

4. Jenis Robot

Secara umum, jenis robot dapat dibedakan dalam 4 kategori, yaitu :

b. Non-mobile Robot

Robot ini tidak dapat berpindah posisi dari satu tempat ke tempat lainnya,
sehingga robot tersebut hanya dapat menggerakkan beberapa bagian dari
tubuhnya dengan fungsi tertentu yang telah dirancang. Contoh : Robot
Industri

Anatomi robot industri secara umum dapat diilustrasikan seperti pada


gambar 1.1. Robot industri yang diilustrasikan ini adalah robot tangan yang
memiliki dua lengan (dilihat dari persendian), dan pergelangan. Di ujung
pergelangan dapat diinstal berbagai tool sesuai dengan fungsi yang
diharapkan. Jika dipandang dari sudut pergerakan maka terdiri dari tiga
pergerakan utama, yaitu badan robot yang dapat berputar ke kiri dan kanan,
lengan yang masing-masing dapat bergerak rotasi ke arah atas dan bawah,
dan gerak pergelangan sesuai dengan sifat tool.

Gambar 1.1. Robot Lengan Sederhana

11
Perangkat pendukung robot industri secara umum dapat diilustrasikan dalam
gambar 1.2berikut ini. Komponen utamanya terdiri dari 4 bagian, yaitu:

1. Manipulator
2. Sensor
3. Aktuator, dan
4. Kontroler

Gambar 1.2. Sistem Robot Industry

Manipulator adalah bagian mekanik yang dapat difungsikan untuk


memindah, mengangkat, dan memanipulasi benda kerja. Sensor adalah
komponen berbasis instrumentasi (pengukuran) yang berfungsi sebagai
pemberi informasi tentang berbagai keadaan atau kedudukan dari
bagianbagian manipulator. Output sensor dapat berupa nilai logika ataupun
nilai analog. Dalam berbagai kasus dewasa ini penggunaan kamera sebagai
sensor sudah menjadi lazim. Output perangkat kamera berupa citra (image)
harus diubah dahulu ke besaran digital ataupun analog sesuai dengan
kebutuhan.

Aktuator adalah komponen bergerak yang jika dilihat dari prinsip penghasil
geraknya dapat di bagi menjadi 3 bagian, yaitu penggerak berbasis motor
listrik (motor DC servo, stepper moto, motor AC, dsb.), penggerak pneumatik
(berbasis kompresi gas: udara, nitrogen, dsb.), dan penggerak hidrolik
(berbasis kompresi benda cair:minak pelumas, dsb).

Kontroler adalah rangkaian elektronik berbasis mikroprosesor yang berfungsi


sebagai pengatur seluruh komponen dalam membentuk fungsi kerja. Tipe
pengaturan yang bisa diprogramkan mulai dari prinsip pengurut (sequencer)

12
yang bekerja sebagai open loop hingga prinsip umpan balik yang melibatkan
kecerdasan buatan.

Gambar 1.3. Robot Manipulator

Konfigurasi Manipulator

Secara klasik konfigurasi robot manipulator dapat dibagi dalam 4 kelompok,


yaitu polar, silindris, cartesian dan sendi-lengan (joint-arm).

1) Polar

Manipulator yang memiliki konfigurasi polar padat di ilustrasikan seperti pada


gambar 1.5., badan dapat berputar ke kiri atau kanan. Sendi pada badan
dapat mengangkat atau menurunkan pangkal lengan secara polar. Lengan
ujung dapat digerakkan maju-mundur secara translasi. Konfigurasi ini dikenal
cukup kokoh karena sambungan lengan dan gerakan maju-mundur memiliki
cara yang secara mekanik sangat kokoh.

Kemampuan jangkauan ke atas dan bawah kurang bagus karena badan


tidak mengangkat lengan secara vertikal, namun memiliki gerakan yang khas

13
yaitu mampu memanipulasi ruang kerja yang berbentuk bola dengan
algoritma gerak yang paling sederhana dibanding tipe konfigurasi yang lain.

Gambar 1.4. Konfigurasi Polar

2) Silinder

Konfigurasi silinder mempunyai jangkauan berbentuk ruang silinder yang


lebih baik, meskipun sudut lengan terhadap garis penyangga tetap.
Konfigurasi ini banyak diadopsi untuk sistem gantry atau crane karena
strukturnya yang kokoh untuk tugas mengangkat beban.

Pemasangan lengan ujung yang segaris dengan badan dapat lebih


menguntungkan kinematiknya menjadi lebih sederhana. Selain itu struktur
secara keseluruhan bisa lebih kokoh. Contoh yang mudah dijumpai adalah
sistem crane yang biasa digunakan dalam pembangunan gedung-gedung
bertingkat tinggi.

14
Gambar 1. 5. Konfigurasi Silinder

3) Cartesian

Manipulator berkonfigurasi Cartesian ditunjukkan dalam gambar 1.7.


Konfigurasi ini secara relatif adalah yang paling kokoh untuk tugas
mengangkat beban yang berat. Struktur ini banyak dipakai secara permanen
pada instalasi pabrik, baik untuk mengangkat dan memindah barang
produksi maupun untuk mengangkat peralatan-peralatan berat pabrik ketika
melakukan kegiatan instalasi. Crane di galangan kapal juga banyak
mengadopsi struktur ini.

Gambar 1. 6. Konfigurasi Cartesian

15
Pada aplikasi yang sesungguhnya, biasanya struktur penyangga, badan dan
lengan dibuat sedemikian rupa hingga tumpuan beban merata pada struktur.
Misalnya, penyanggah dipasang dari ujung ke ujung. Mekanik pengangkat di
badan menggunakan sistem rantai dan sprocket atau sistem belt.
Pergerakan lengan dapat menggunakan sistem seperti rel di kiri-kanan
lengan.

4) Sendi-lengan

Konstruksi ini yang paling popular untuk tugas-tugas regular di dalam pabrik,
terutama untuk dapat melaksanakan fungsi layaknya pekerja pabrik, seperti
mengangkat barang dari konveyor, mengelas, memasang komponen mur,
baut pada produk, dan sebagainya. Dengan tool pergelangan yang khusus
struktur lengan-sendi ini cocok digunakan untuk menjangkau daerah kerja
yang sempit dengan sudut jangkauan yang beragam.

Gambar 1.7. Konfigurasi Sendi-Lengan

c. Mobile Robot

Mobile dapat diartikan bergerak, sehingga robot ini dapat memindahkan


dirinya dari satu tempat ke tempat lain. Robot ini merupakan robot yang

16
paling populer dalam dunia penelitian robotika. Dari segi manfaat, robot ini
diharapkan dapat membantu manusia dalam melakukan otomasi dalam
transportasi, platform bergerak untuk robot industri , eksplorasi tanpa awak,
dan masih banyak lagi. Contoh : Robot Line Tracker

Robot line tracker merupakan robot yang dapat bergerak mengikuti track
berupa garis hitam setebal ±3 cm. Untuk membaca garis, robot dilengkapi
dengan sensor proximity yang dapat membedakan antara garis hitam
dengan lantai putih. Sensor proximity ini dapat dikalibrasi untuk
menyesuaikan pembacaan sensor terhadap kondisi pencahayaan ruangan.
Sehingga pembacaan sensor selalu akurat.

Agar pergerakan robot menjadi lebih halus, maka kecepatan robot diatur
sesuai dengan kondisi pembacaan sensor proximity. Jika posisi robot
menyimpang dari garis, maka robot akan melambat. Namun jika robot tepat
berada diatas garis, maka robot akan bergerak cepat. Robot juga dapat
kembali ke garis pada saat robot terlepas sama sekali dari garis. Hal ini bisa
dilakukan karena robot selalu mengingat kondisi terakhir pembacaan sensor.
Jika terakhir kondisinya adalah disebelah kiri garis, maka robot akan
bergerak ke kanan, demikian pula sebaliknya.

Flying Robot (Robot Terbang)

Robot yang mampu terbang, robot ini menyerupai pesawat model yang
diprogram khusus untuk memonitor keadaan di tanah dari atas, dan juga
untuk meneruskan komunikasi.

17
Gambar 1.8. Flying Robot (Robot Terbang)

Under Water Robot (Robot dalam air)

Robot ini digunakan di bawah laut untuk memonitor kondisi bawah laut dan
juga untuk mengambil sesuatu di bawah laut.

Gambar 1.9. Under Water Robot (Robot Dalam Air)

d. Kombinasi Mobile dan Non-Mobile Robot

Robot ini merupakan penggabungan dari fungsi-fungsi pada robot mobile


dan non-mobile. Sehingga keduanya saling melengkapi dimana robot
nonmobile dapat terbantu fungsinya dengan bergerak dari satu tempat ke
tempat yang lain.

18
Gambar 1.10. Robot Kombinasi Mobile dan Non-mobile Mars-Rovers NASA

e. Humanoid

Sebuah robot humanoid adalah robot otonom yang dapat beradaptasi


dengan perubahan lingkungan atau dirinya sendiri. Ini merupakan perbedaan
utama antara jenis humanoid dan jenis robot.

Dalam konteks, robot humanoid dapat mencakup, antara lain:

 Dapat merawat dirinya sendiri (seperti pengisian sumber tenaga sendiri)


 Dapat belajar otonom (belajar atau memiliki kemampuan baru
tanpabantuan dari luar (manusia), menyesuaikan diri berdasarkan
lingkungandan beradaptasi dengan lingkunganyang baru)
 Dapat menghindari hal-hal yang berbahaya bagi manusia, properti,
dandirinya sendiri
 Dapat berinteraksi dengan manusia dan lingkungan

Seperti robot mekanis lainnya, humanoid mengacu pada komponen dasar


sebagai berikut : Sensing (Penginderaan), Actuating, Planning
(Perencanaan) dan Controling (Pengendalian). Karena untuk

19
mensimulasikan struktur, perilaku manusia dan sistem otonomi, sebagian
besar robot humanoid lebih kompleks dibandingkan jenis robot lainnya.

Gambar 1.11 Robot Humanoid

Para ilmuwan dan spesialis dari berbagai bidang termasuk teknik , ilmu
kognitif , dan linguistik menggabungkan upaya mereka untuk menciptakan
robot yang mirip dengan manusia. Tujuan ilmuwan dan spesialis
menciptakan robot humanoid adalah agar robot humanoid dapat memahami
kecerdasan akal manusia dan bertindak layaknya seperti manusia. Jika robot
humanoid mampu melakukannya, mereka akhirnya bisa bekerja dalam
kohesi dengan manusia untuk menciptakan masa depan yang lebih produktif
dan berkualitas tinggi.

20
Karakteristik lain tentang robot humanoid adalah bahwa mereka bergerak,
mengumpulkan informasi (menggunakan sensor) pada "dunia nyata" dan
berinteraksi dengan itu, mereka tidak tinggal tetap seperti manipulator pabrik
dan robot lain yang bekerja di lingkungan yang sangat terstruktur.

5. Sistem Kontrol Robotik

Sistem kontrol robotik pada dasarnya terbagi dua kelompok, yaitu system kontrol
loop terbuka(open loop) dan loop tertutup (close loop). Diagram kontrol loop
terbuka pada sistem robot dapat dinyatakan dalam gambar 1.12 berikut ini.

Gambar 1. 12 Kontrol robot loop terbuka

Kontrol loop terbuka dapat dinyatakan sebagai sistem kontrol yang outputnya
tidak diperhitungkan ulang oleh kontroler.Keadaan apakah robot benar-benar
telah mencapai target seperti yang dikehendaki sesuai referensi, tidak
diperhitungkan. Kontrol ini sesuai untuk sistem operasi robot yang memiliki
akuator yang beroperasi berdasarkan logika urutan langkah (sequence),
misalnya steper motor. Steper motor tidak perlu dipasangi sensor pada porosnya
untukmengetahui posisi akhir. Jika dalam keadaan berfungsi dengan baik dan
tidak ada masalah beban lebih maka stepper motor akan berputar sesuai dengan
perintah kontroler dan mencapai posisi target dengan tepat.

Kontrol sekuensi (urutan) gerak robot dalam suatu tugas yang lengkap, misalnya
memiliki urutan sebagai berikut: menuju ke posisi obyek, mengangkat obyek
memindah obyek ke posisi tertentu, dan meletakkan obyek. Kontrol sekuens
tersebut membutuhkan control yang lebih komplek dan membutuhkan

21
kepresisian control. Oleh karena itu dikembangkan kontrol robot loop tertutup.
Kontrol robot loop tertutup dapat dinyatakan seperti dalam Gambar 1.13.

Gambar 1. 13 Kontrol Robot Loop Tertutup

Pada gambar di atas, jika hasil gerak aktual telah sama dengan referensi maka
input kontroler akan nol. Artinya kontroler tidak lagi memberikan sinyal akurasi
kepada robot karena target akhir perintah gerak telah diperoleh. Makin kecil error
terhitung maka makin kecil pula sinyal pengemudian kontroler terhadap robot.
Sampai akhirnya mencapai kondisi stabil (steady state).

Referensi gerak dan gerak aktual dapat berupa posisi(biasanya didefinisikan


melalui kedudukan ujung lengan terakhir/end of effector), kecepatan, akselerasi,
atau gabungan di antaranya. Kontrol bersifat konvergen jika dalam rentang waktu
pengontrollan nilai error menuju nol, dan keadaan dikatakan stabil jika setelah
konvergen kotroler mampu menjaga agar error selalu nol.

Dua pengertian dasar; konvergen dan stabil, adalah sangat penting dalam kontrol
loop tertutup. Stabil dan konvergen diukur dari sifat referensinya. Posisi akhir
dianggap konvergen bila makin lama gerakan makin perlahan dan akhirnya diam
pada posisi seperti yang dikehendaki referensi, dan dikatakan stabil jika posisi
akhir yang diam ini dapat dipertahankan dalam masa-masa berikutnya.

6. Sensor

Sebuah sensor adalah sebuah perangkat yang mengukur beberapa atribut


lingkungan. Menjadi salah satu dari tiga hal terpenting dalam robotika (selain

22
perencanaan dan pengendalian), sensor berperan penting dalam paradigma
robot .

Exteroceptive Sensor

Exteroceptive sensor memberikan informasi tentang lingkungan sekitar.


Memungkinkan pada robot untuk berinteraksi dengan dunia. Sensor
exteroceptive diklasifikasikan menurut fungsi mereka.

Sensor jarak digunakan untuk mengukur jarak relatif (kisaran) antara sensor dan
objek dalam lingkungan. Sensor jarak melakukan tugas yang sama dengan
indera taktil yang dilakukan pada manusia. Ada jenis lain pengukuran jarak,
seperti laser , penggunaan kamera, atau proyeksi grid, garis berwarna atau pola
titik untuk mengamati bagaimana pola terdistorsi oleh lingkungan.

Untuk pendekatan pada akal manusia, robot humanoid dapat menggunakan


sonars dan sensor infra merah, atau sensor taktil seperti sensor bump, kumis
(atau antena), kapasitif dan sensor piezoresistif. Array tactels dapat digunakan
untuk menyediakan data tentang apa yang telah tersentuh. The Hand Shadow
menggunakan sebuah array 34 tactels yang diatur di bawah poliuretan kulit pada
setiap ujung jari. Sensor taktil juga memberikan informasi tentang kekuatan dan
torsi yang ditransfer antara robot dan benda lainnya.

Sensor Vision mengacu pada pengolahan data dari setiap modalitas yang
menggunakan spektrum elektromagnetik untuk menghasilkan gambar. Dalam
robot humanoid ini digunakan untuk mengenali objek dan menentukan sifat
mereka. Sensor vision bekerja paling mirip dengan mata manusia. Sebagian
besar robot humanoid menggunakan CCD kamera sebagai sensor penglihatan.

Sensor suara memungkinkan robot humanoid untuk mendengar pidato dan suara
lingkungan, dan tampil sebagai telinga manusia. Mikrofon yang biasanya
digunakan untuk fungsi ini.

23
7. Aktuator

Aktuator adalah motor yang bertanggung jawab untuk pergerakan robot. Robot
humanoid yang dibangun sedemikian rupa sehingga mereka dapat meniru
pergerakan tubuh manusia, sehingga mereka menggunakan actuator yang
melakukan seperti otot-otot dan sendi, meskipun dengan struktur yang berbeda.
Untuk mencapai efek yang sama seperti gerakan manusia, robot humanoid
menggunakan aktuator beserta rotari. Aktuator dapat berupa listrik, pneumatik,
hidrolik, piezoelektrik atau ultrasonik .

Hidrolik dan aktuator listrik memiliki pergerakan yang sangat kaku dan hanya
dapat dibuat untuk bergerak dengan cara yang sesuai dengan menggunakan
complex feedback control strategies. Sementara listrik actuator motor lebih cocok
untuk kecepatan yang tinggi dan aplikasi beban rendah, sehingga hidrolik
beroperasi dengan baik pada kecepatan rendah dan aplikasi beban berat.

Aktuator piezoelectric menghasilkan gerakan kecil dengan kemampuan kekuatan


tinggi ketika tegangan diberikan. Aktuator piezoelectric dapat digunakan untuk
penentuan posisi gerak yang tepat dan untuk menghasilkan maupun
penanganan dengan kekuatan yang tinggi atau tekanan dalam situasi statis atau
dinamis.

Aktuator ultrasonik dirancang untuk menghasilkan gerakan dalam urutan


mikrometer pada frekuensi ultrasonik (lebih dari 20 kHz). Aktuator ultrasonic
berguna untuk mengendalikan getaran, aplikasi positioning dan switching cepat.

Pneumatik aktuator beroperasi berdasarkan gas kompresibilitas. Aktuator ini


digunakan untuk kecepatan rendah dan aplikasi beban rendah / menengah.
Aktuator pneumatik terdiri dari : silinder ,valve , mesin pneumatik, motor stepper
pneumatik dan selang-selang pneumatik.

24
8. Interaksi Manusia dan Robot

Kehadiran robot dalam kehidupan manusia semakin hari disadari semakin


banyak manfaatnya. Robotika tidak lagi dipandang sebagai ilmu yang
berkembang hanya dalam konteks teknologi (fisik) saja, namun semakin hari
semakin banyak masalah yang berkaitan dengan lingkungan hidup manusia yang
perlu juga diambil perhatian.

Seperti telah diketahui, robot berkembang dari aplikasi-aplikasi di industri dalam


struktur lingkungan yang lebih dikondisikan sebagai kawasan pabrik. Sehingga
robot lebih banyak didisain dalam bentuk yang relatif khas sesuai dengan
kebutuhan pabrik, seperti manipulator, dan kebanyakan tidak bersifat mobile atau
tidak otonomous. Namun kehadiran robot di lingkungan yang bersifat lebih
fleksibel, seperti misalnya rumah sakit, rumah tangga, perkantoran, eksplorasi
hutan, dan pembangunan kawasan-kawasan berbahaya (plant nuklir, kimia, dsb.)
telah membuat manusia harus menata ulang definisi, konstruksi dan fungsi robot.
Keadaan ini telah menempatkan robot sebagai kehidupan keseharian sehingga
dikenal istilah human-robot interaction.

Interaksi antara manusia dengan robot atau mesin (human-machine interactions)


dapat dinyatakan dalam 3 tingkatan, yaitu:

 Manusia sebagai kontroler robot sepenuhnya,


 Manusia sebagai manager dari operasi robot, dan
 Manusia dan robot berada dalam kesetaraan.

Dalam dunia industri, faktor interaksi antara manusia dan mesin sangat penting.
Makin sedikit ketergantungan mesin terhadap manusia maka secara relatif makin
tinggi tingkat otomasinya. Pada gilirannya biaya produksi untuk membayar
“keahlian” manusia dapat dikurangi dan digantikan oleh mesin (robot). Perangkat
yang digunakan dalam interaksi ini dikenal sebagai human machine interface.
Interface dapat berupa perangkat keras ataupun perangkat lunak.

Interaksi yang paling dasar antara manusia dengan robot adalah interaksi yang
menempatkan manusia sebagai pengontrol gerakan robot sepenuhnya. Dalam

25
hal ini biasanya robot tidak memiliki kemampuan untuk melakukan sendiri segala
gerakan. Semua titik aktuator hanya dapat digerakan melalui “perintah” operator
atau manusia. Robot hampir tidak lagi memerlukan sensor pada sendi-sendi
ataupun pergerakan. Dengan campur tangan manusia ini maka pergerakan robot
dapat langsung “dideteksi” secara visual melalui penglihatan mata. Sensor
secara perangkat keras yang diperlukan mungkin hanya berupa switch pembatas
(limit switch) untuk menghindari gerakan yang berbahaya atau di luar kontrol.
Cara ini dikenal sebagai pengendalian robot menggunakan remote control, baik
secara wireless (tanpa kabel) maupun menggunakan kabel.

Gambar 1. 14 Sistem remote control pada robot

Secara umum sistem remote control dapat diilustrasikan seperti Gambar 1.14.
Mata menggantikan fungsi sensor, sedangkan tangan menggantikan fungsi
pemberi sinyal control kepada aktuator.

Gambar 1.15 menunjukkan sebuah robot manipulator yang dikontrol sepenuhnya


oleh operator melalui kabel (cable remote control).

26
Gambar 1. 15 Sistem Remote Control pada manipulator

Pada panel (boks), kontrol yang dipegang oleh operator terdapat tombol-tombol
untuk mengontrol seluruh pergerakan sendi robot. Robot jenis remote control ini
banyak digunakan untuk tugas yang sangat rumit yang jika dibuat secara
otomatis terlalu banyak kendala yang dihadapi. Salain itu disain dengan sistem
remote dapat menekan pembiayaan dalam investasi maupun dalam hal biaya
pemrograman (computational cost). Dengan cara ini pula “sifat cerdas” tidak
perlu dituangkan dalam sistem perangkat keras kontroler karena tugas “berfikir”
diambil alih oleh operator.

Contoh aplikasi dapat dijumpai dalam peralatan militer. Robot penjinak bom (bom
disposal robot) justru dianggap lebih aman jika dikendalikan oleh operator.
Setidaknya hingga sekarang, masih belum dijumpai robot penjinak bom yang
sepenuhnya dapat bergerak secara otomatis.Alasannya adalah bahwa
penggunaan robot otomatis dapat lebih mencelakakan jika robot gagal berfungsi
dan dapat bertindak liar.

Pada tingkatan berikutnya, manusia bertindak sebagai “manajer” bagi robot.


Tugas secara detil dilakukan sendiri oleh robot, sedangkan tugas secara
keseluruhan diatur oleh operator. Dalam hal tertentu robot sudah dimuati
kemampuan kontrol otomatis (umpan balik), seperti kontrol posisi setiap sendi,
kontrol kecepatan rotasi dan kontrol torsi (reaktif terhadap pembebanan).

27
Dalam segi operasional, dalam tugas-tugas tertentu robot dalam kelas ini masih
memerlukan arahan dari operator. Misalnya, dalam hal penentuan trajektori dari
suatu manipulator. Operator dapat memprogram secara off-line. Gerakan ujung
lengan dilatih dengan menggerakkan secara manual menuju sasaran. Pada saat
yang sama kontroler merekam trajektori ini. Setelah proses pelatihan selesai,
robot dapat di-run secara mandiri.

Konteks interaksi manusia dengan robot dalam kesetaraan (dengan tentunya


tetap berpegang pada prinsip bahwa robot adalah pembantu manusia) perlu
dijabarkan lebih rinci dengan beberapa alasan yang dapat ditunjukkan seperti
dalam tabel berikut ini.

Tabel 1. 1 Spesifikasi kemampuan bekerja manusia vs robot

Dengan memperhatikan masing-masing kelebihan dan kekurangan maka


manfaat akan lebih besar jika manusia dan robot dapat berkolaborasi. Dalam hal
ini, karena manusia berada pada posisi sebagai “tuan” maka beberapa
keunggulan sebagai “expert” sepertinya dapat dijadikan sebagai bahan ajar
dalam membuat robot lebih “pintar” seperti manusia melalui komunikasi.

Dengan demikian robot tidak perlu dibuat sangat canggih (karena sangat mahal),
namun cukup diberi kemampuan dapat menerima pengajaran terus-menerus dari
manusia. Kemampuan dasar robot otonomous, seperti navigasi (gerak mobile)
dan manipulasi (gerak tangan) tetap harus ada.

28
D. Aktivitas Pembelajaran

Setelah selesai membaca sumber bacaan tentang dasar-dasar robotik yang


meliputi sejarah perkembangan robot, fungsi dan aplikasi robot dalam dunia
sehari-hari dan jenis-jenis robot berdasarkan klasifikasinya. Pembelajaran
diarahkan untuk mencapai kompetensi yang disyaratkan dalam IPK standar
kompetensi guru dan sebagai proses pengembangan potensi dan pembangunan
karakter setiap peserta diklat, yaitu memberikan kesempatan kepada peserta
diklat untuk mengembangkan potensi menjadi kemampuan yang semakin lama
semakin meningkat dalam sikap (spiritual dan sosial), pengetahuan, dan
keterampilan.

Setiap tahapan pembelajaran dikondisikan adanya proses interaksi antar peserta


diklat, antara peserta diklat dengan widyaiswara dan sumber belajar.
Pelaksanaan pembelajaran dilakukan melalui pembelajaran langsung, yaitu
peserta diklat melakukan kegiatan:

1. Mengamati dengan indra meliputi membaca uraian materi, mendengar


penjelasan widyaiswara pengampu materi rekayasa teknik robotika,
menyimak permasalahan terkait dengan topik kegiatan pembelajaran.

2. Membuat dan mengajukan pertanyaan terkait dengan informasi yang belum


dipahami atau perlu klarifikasi.

3. Mengeksplorasi melalui diskusi kelompok dan membaca sumber lain.

4. Mengolah informasi yang sudah dikumpulkan yaitu menganalisis data dalam


bentuk membuat kategori, mengasosiasi atau menghubungkan
fenomena/informasi yang terkait dan menyimpulkan.

5. Menyajikan laporan yaitu menyusun laporan tertulis meliputi proses, hasil,


dan kesimpulan.

E. Latihan

1. Apa yang dimaksud dengan Robot dan Robotika, Jelaskan berikut


contohnya!

29
2. Sebutkan dan jelaskan aplikasi atau penerapan robot dalam berbagai bidang
yang ada hingga saat ini!
3. Disiplin ilmu apa saja yang terkait dengan robotika dan apa peranan bidang
ilmu tersebut dalam menunjang kemajuan robotika?
4. Sebutkan dan jelaskan komponen-komponen utama dari sebuah robot!
5. Jelaskan perbedaan antara sistem kontrol loop terbuka dengan system
kontrol loop tertutup!
6. Apa yang dimaksud dengan sensor dan aktuator berikan contohnya masing-
masing?
7. Sebutkan dan jelaskan tiga tingkatan interkasi antara manusia dan robot!

F. Rangkuman

Istilah robot berasal dari bahasa Cekoslowakia. Kata robot berasal dari kosakata
“Robota” yang berarti “kerja cepat”. Istilah ini muncul pada tahun 1920 oleh
seorang pengarang sandiwara bernama Karel Capec. Karyanya pada saat itu
berjudul “Rossum’s Universal Robot” yang artinya Robot Dunia milik Rossum.

Untuk dapat diklasifikasikan sebagai robot, maka robot harus memiliki dua
macam kemampuan yaitu:

1) Bisa mendapatkan informasi dari sekelilingnya.

2) Bisa melakukan sesuatu secara fisik seperti bergerak atau memanipulasi


objek.

Ada beberapa fungsi robot, sehingga manusia memerlukan kehadirannya yaitu:

1. Meningkatkan produksi, akurasi dan daya tahan. Robot ini banyak digunakan
di industri.
2. Untuk tugas-tugas yang berbahaya, kotor dan beresiko. Robot ini digunakan
ketika manusia tidak mampu masuk ke daerah yang beresiko. Seperti Robot
Untuk menjelajah planet, robot untuk mendeteksi limbah nuklir, robot militer
dll.

30
3. Untuk pendidikan. Banyak robot yang digunakan untuk menarik pelajar
belajar teknologi seperti robot lego, dll.
4. Untuk menolong manusia. Seperti di rumah untuk membersihkan rumah
pakai penghisap debu otomatis, di rumah sakit untuk menghantar makanan,
membantu operasi, dll.

G. Umpan Balik dan Tindak Lanjut

Selamat saudara telah menyelesaikan kegiatan pembelajaran 1 yaitu tentang


dasar-dasar robotika yang meliputi sejarah perkembangan robot, fungsi dan
aplikasi robot di dunia sehari-hari serta klasifikasi jenis-jenis robot. Selanjutnya
silahkan melanjutkan kegiatan pembelajaran 2 dengan membaca petunjuk dan
tujuan kegiatan pembelajaran.

31
32
KEGIATAN PEMBELAJARAN 2: KONTROLER,
SENSOR DAN AKTUATOR

A. Tujuan

Setelah mengikuti dan atau menyelesaikan materi controller, sensor dan actuator
melalui diskusi kelompok peserta dapat:

- Memahami mikrokontroler, asrsitektur, pin in/out, dan software


pemrogramnya
- Mengenal dan mempraktikan fungsi kerja actuator seperti motor DC
dan motor servo
- Memahami jenis-jenis sensor robot

B. Indikator Pencapaian Kompetensi

- Memahami sejarah perkembangan robot

- Menyebutkan jenis robot berdasar beberapa klasifikasi

- Menyebutkan fungsi dan aplikasi robot dalam dunia sehari-hari

C. Uraian Materi

1. Microcontroller

Mikrokontrolleradalah sistem mikroprosesor lengkap yang terkandung di dalam


sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang
digunakan dalam sebuah PC, karena di dalam sebuah mikrokontroler umumnya
juga telah berisi komponen pendukung sistem minimal mikroprosesor, yakni
memori dan antarmuka I/O, sedangkan di dalam mikroprosesor umumnya hanya
berisi CPU saja.

Microcontroller dianggap sebagai suatu terobosan teknologi mikroprosesor atau


mikrokomputer merupakan teknologi baru untuk memenuhi kebutuhan pasar.

33
Microcontroller sebagai teknologi baru, yaitu teknologi semikonduktor dengan
kandungan transistor yang lebih banyak namun hanya membutuhkan ruang yang
kecil sehingga microcontroller dapat diproduksi secara masal (dalam jumlah
banyak) membuat harganya menjadi lebih murah (dibandingkan mikroprosesor).
Microcontroller sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi
selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu
bahkan mainan yang lebih baik dan canggih.
Microcontroller yang digunakan kali ini adalah Atmega 2560 dan Atmega
328P.Pemilihan mikro tersebut karena memiliki Kinerja tinggi, mikrokontroler
konsumsi daya rendah, Atmel 8-bit AVR berbasis RISC Memadukan 256KB ISP
flash memory, 8KB SRAM, 4KB EEPROM, 86 general I/O, 32 register bekerja,
Real Time Counter, enam Timer yang fleksibel / counter dengan compare mode,
PWM, 4 UART byte berorientasi 2-wire Serial Interface, 16-channel 10-bit A / D
converter, dan interface JTAG untuk on-chip debugging. Perangkat Mencapai
throughput 16 MIPS pada 16 MHz dan 4,5-5,5 volt Beroperasi antara.

Dengan mengeksekusi instruksi dalam satu siklus clock, perangkat Mencapai


throughput mendekati 1 MIPS per MHz, menyeimbangkan konsumsi daya dan
kecepatan pemrosesan.

Gambar 2. 1 Chip Mikrokontroller ATMega2560

a. Arduino

Arduino adalah pengendali mikro single-board yang bersifat open-source,


diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan
elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel
AVR dan integrated development environment (IDE)nya berdasarkan

34
Processing project, dimana terdapat beberapa bahasa pemprograman
termasuk C, C++ dan Java .

IDE Arduino memiliki beberapa kelebihan dimana untuk pemprogramanya


jauh lebih mudah dari pada bahasa yang lain. Karena IDE arduino memiliki
library sendiri yang tidak dimiliki oleh IDE lainya seperti AVR studio maupun
codevision.

Arduino yang akan digunakan pada kegiatan-kegiatan belajar modul ini


adalah arduino Uno dan Mega 2560. Dimana Arduino Uno board adalah
mikrokontroller yang berbasis ATmega 321P sedangkan Arduino Mega2560
board mikrokontroler yang berbasis ATmega2560.

b. Arduino Uno

Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol


rangkaian elektronik dan umunya dapat menyimpan program didalamnya.
Platform Arduino sekarang ini menjadi sangat populer dengan pertambahan
jumlah pengguna baru yang terus meningkat. Hal ini karena kemudahannya
dalam penggunaan dan penulisan kode.

Tidak seperti kebanyakan papan sirkuit pemrograman sebelumnya, Arduino


tidak lagi membutuhkan perangkat keras terpisah (disebut programmer atau
downloader) untuk memuat atau meng-upload kode baru ke dalam
mikrokontroler. Cukup dengan menggunakan kabel USB untuk mulai
menggunakan Arduino. Selain itu, Arduino IDE menggunakan bahasa
pemrograman C++ dengan versi yang telah disederhanakan, sehingga lebih
mudah dalam belajar pemrograman. Arduino akhirnya berhasil menjadi
papan sirkuit pemrograman paling disukai hingga menjadikannya sebagai
bentuk standar dari fungsi mikrokontroler dengan paket yang mudah untuk
diakses.

35
Gambar 2.2 Bentuk Fisik Arduino Uno

Gambar diatas menunjukan papan Arduino Uno yang merupakan salah satu
papan paling populer diantara keluarga Arduino dan papan ini merupakan
pilihan yang sangat cocok bagi para pemula.

Arduino Uno adalah salah satu kit mikrokontroler yang berbasis pada
ATmega328P-PU. Modul ini sudah dilengkapi dengan berbagai hal yang
dibutuhkan untuk mendukung mikrokontroler untuk bekerja, hanya
sambungkan ke power supply atau sambungkan melalui kabel USB ke
PCmu Arduino Uno ini sudah siap sedia. Arduino Uno ini memilki 14 pin
digital input/output, 6 analog input, sebuah resonator keramik 16MHz,
koneksi USB, colokan power input, ICSP header, dan sebuah tombol reset.

Arduino adalah sebuah platform open source (sumber terbuka) yang


digunakan untuk membuat proyek-proyek elektronika. Arduino terdiri dari
dua bagian utama yaitu sebuah papan sirkuit fisik (sering disebut juga

36
dengan mikrokontroler) dan sebuah perangkat lunak atau IDE (Integrated
Development Environment) yang berjalan pada komputer. Perangkat lunak
ini sering disebut Arduino IDE yang digunakan untuk menulis dan meng-
upload kode dari komputer ke papan fisik (hardware) Arduino. Ketika
membicarakan Arduino maka ada dua hal yang terlintas dalam pikiran para
penggunanya, yaitu hardware dan software. Dua bagian ini seakan satu
kesatuan utuh yang tidak bisa di pisahkan.
Bahasa pemrograman arduino merupakan bahasa C yang sudah
disederhanakan syntax bahasa pemrogramannya sehingga mempermudah
kita dalam mempelajari dan mendalami mikrokontroller.

Power

Arduino dapat diberikan power melalui koneksi USB atau power supply.
Powernya diselek secara otomatis. Power supply dapat menggunakan
adaptor DC atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack
adaptor pada koneksi port input supply. Board arduino dapat dioperasikan
menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply kurang dari
7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt dan board bisa
menjadi tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di regulator
bisa menjadi sangat panas dan menyebabkan kerusakan pada board.
Rekomendasi tegangan ada pada 7 sampai 12 volt. Penjelasan pada pin
power adalah sebagai berikut:

37
 Vin: Tegangan input ke board arduino ketika menggunakan tegangan dari
luar (seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang
diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini,
atau jika tegangan suplai menggunakan power jack, aksesnya
menggunakan pin ini.

 5V: Regulasi power supply digunakan untuk power mikrokontroller dan


komponen lainnya pada board. 5V dapat melalui Vin menggunakan
regulator pada board, atau supply oleh USB atau supply regulasi 5V
lainnya.

 3V3: Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus
maximumnya adalah 50mA

 Pin Ground: berfungsi sebagai jalur ground pada Arduino

 Memori: ATmega328 memiliki 32 KB flash memori untuk menyimpan


kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2
KB untuk SRAM dan 1 KB untuk EEPROM.

Input & Output

Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau
output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead().
Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau
menerima maximum 40 mA dan memiliki internal pull-up resistor
(disconnected oleh default) 20-50K Ohm. Beberapa pin memiliki fungsi
sebagai berikut:

 Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan


mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang
koresponding dari USB ke TTL chip serial.
 Interupt eksternal: 2 dan 3. Pin ini dapat dikonfigurasikan untuk
trigger sebuah interap pada low value, rising atau falling edge, atau
perubahan nilai.
 PWM: 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan
fungsi analogWrite().

38
 SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport
komunikasi SPI, yang mana masih mendukung hardware, yang tidak
termasuk pada bahasa arduino.
 LED: 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika
pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati.

Komunikasi

Uno Arduino memiliki sejumlah fasilitas untuk berkomunikasi dengan


komputer, Arduino lain, atau mikrokontroler lain. ATmega328 ini
menyediakan UART TTL (5V) komunikasi serial, yang tersedia pada pin
digital 0 (RX) dan 1 (TX). Firmware Arduino menggunakan USB driver
standar COM, dan tidak ada driver eksternal yang dibutuhkan. Namun,
pada Windows, file. Ini diperlukan. Perangkat lunak Arduino termasuk
monitor serial yang memungkinkan data sederhana yang akan dikirim ke
board Arduino. RX dan TX LED di board akan berkedip ketika data
sedang dikirim melalui chip USB-to-serial dan koneksi USB ke komputer.

c. Arduino Mega 2560

Arduino Mega2560 versi terbaru sudah tidak menggunakan chip driver


FTDI USB-to-serial. Tapi, menggunakan chip ATmega16U2 (ATmega8U2
pada papan Revisi 1 dan Revisi 2) yang diprogram sebagai konverter
USB-to-serial. Arduino Mega2560 Revisi 2 memiliki resistor penarik jalur
HWB 8U2 ke Ground, sehingga lebih mudah untuk dimasukkan ke dalam
mode DFU.

Arduino Mega2560 Revisi 3 memiliki fitur-fitur baru berikut:

 1.0 pinout : Ditambahkan pin SDA dan pin SCL yang dekat dengan
pin AREF dan dua pin baru lainnya ditempatkan dekat dengan pin
RESET, IOREF memungkinkan shield untuk beradaptasi dengan
tegangan yang tersedia pada papan. Di masa depan, shield akan
kompatibel baik dengan papan yang menggunakan AVR yang
beroperasi dengan 5 Volt dan dengan Arduino Due yang beroperasi

39
dengan tegangan 3.3 Volt. Dan ada dua pin yang tidak terhubung,
yang disediakan untuk tujuan masa depan.

 Sirkuit RESET.

 Chip ATmega16U2 menggantikan chip ATmega8U2.

Gambar 2.3 Arduino Mega2560 R3 Bagian Depan

Pemetaan Pin

Dibawah ini pemetaan pin ATmega2560 dengan Arduino Mega2560:

40
Gambar 2.4 Pin Arduino Mega2560 R3

Ringkasan Spesifikasi

Dibawah ini spesifikasi sederhana dari Arduino Mega2560:

Mikrokontroler ATmega2560

Tegangan Operasi 5V

Input Voltage
7-12V
(disarankan)

Input Voltage (limit) 6-20V

Pin Digital I/O 54 (yang 15 pin digunakan sebagai output PWM)

Pins Input Analog 16

Arus DC per pin I/O 40 mA

41
Arus DC untuk pin 3.3V 50 mA

Flash Memory 256 KB (8 KB digunakan untuk bootloader)

SRAM 8 KB

EEPROM 4 KB

Clock Speed 16 MHz

Sumber Daya

Arduino Mega dapat diaktifkan melalui koneksi USB atau dengan catu
daya eksternal. Sumber daya dipilih secara otomatis. Sumber daya
eksternal (non-USB) dapat berasal baik dari adaptor AC-DC atau baterai.
Adaptor dapat dihubungkan dengan mencolokkan steker 2,1 mm yang
bagian tengahnya terminal positif ke ke jack sumber tegangan pada
papan. Jika tegangan berasal dari baterai dapat langsung dihubungkan
melalui header pin Gnd dan pin Vin dari konektor POWER.

Papan Arduino ATmega2560 dapat beroperasi dengan pasokan daya


eksternal 6 Volt sampai 20 volt. Jika diberi tegangan kurang dari 7 Volt,
maka, pin 5 Volt mungkin akan menghasilkan tegangan kurang dari 5 Volt
dan ini akan membuat papan menjadi tidak stabil. Jika sumber tegangan
menggunakan lebih dari 12 Volt, regulator tegangan akan mengalami
panas berlebihan dan bisa merusak papan. Rentang sumber tegangan
yang dianjurkan adalah 7 Volt sampai 12 Volt.

Pin tegangan yang tersedia pada papan Arduino adalah sebagai berikut:

 VIN : Adalah input tegangan untuk papan Arduino ketika


menggunakan sumber daya eksternal (sebagai ‘saingan’ tegangan 5
Volt dari koneksi USB atau sumber daya ter-regulator lainnya). Anda
dapat memberikan tegangan melalui pin ini, atau jika memasok

42
tegangan untuk papan melalui jack power, kita bisa
mengakses/mengambil tegangan melalui pin ini.

 5V : Sebuah pin yang mengeluarkan tegangan ter-regulator 5 Volt,


dari pin ini tegangan sudah diatur (ter-regulator) dari regulator yang
tersedia (built-in) pada papan. Arduino dapat diaktifkan dengan
sumber daya baik berasal dari jack power DC (7-12 Volt), konektor
USB (5 Volt), atau pin VIN pada board (7-12 Volt). Memberikan
tegangan melalui pin 5V atau 3.3V secara langsung tanpa melewati
regulator dapat merusak papan Arduino.

 3V3 : Sebuah pin yang menghasilkan tegangan 3,3 Volt. Tegangan


ini dihasilkan oleh regulator yang terdapat pada papan (on-board).
Arus maksimum yang dihasilkan adalah 50 mA.

 GND : Pin Ground atau Massa.

 IOREF : Pin ini pada papan Arduino berfungsi untuk memberikan


referensi tegangan yang beroperasi pada mikrokontroler. Sebuah
perisai (shield) dikonfigurasi dengan benar untuk dapat membaca pin
tegangan IOREF dan memilih sumber daya yang tepat atau
mengaktifkan penerjemah tegangan (voltage translator) pada output
untuk bekerja pada tegangan 5 Volt atau 3,3 Volt.

Memori

Arduino ATmega2560 memiliki 256 KB flash memory untuk menyimpan


kode (yang 8 KB digunakan untuk bootloader), 8 KB SRAM dan 4 KB
EEPROM (yang dapat dibaca dan ditulis dengan perpustakaan
EEPROM).

Input dan Output

Masing-masing dari 54 digital pin pada Arduino Mega dapat digunakan


sebagai input atau output, menggunakan fungsi pinMode() , digitalWrite() ,
dan digitalRead(). Arduino Mega beroperasi pada tegangan 5 volt. Setiap
pin dapat memberikan atau menerima arus maksimum 40 mA dan
memiliki resistor pull-up internal (yang terputus secara default) sebesar
20-50 kOhms. Selain itu, beberapa pin memiliki fungsi khusus, antara lain:

43
 Serial : 0 (RX) dan 1 (TX); Serial 1 : 19 (RX) dan 18 (TX); Serial 2 :
17 (RX) dan 16 (TX); Serial 3 : 15 (RX) dan 14 (TX). Digunakan
untuk menerima (RX) dan mengirimkan (TX) data serial TTL. Pins 0
dan 1 juga terhubung ke pin chip ATmega16U2 Serial USB-to-TTL.
 Eksternal Interupsi : Pin 2 (interrupt 0), pin 3 (interrupt 1), pin 18
(interrupt 5), pin 19 (interrupt 4), pin 20 (interrupt 3), dan pin 21
(interrupt 2). Pin ini dapat dikonfigurasi untuk memicu sebuah
interupsi pada nilai yang rendah, meningkat atau menurun, atau
perubah nilai.
 SPI : Pin 50 (MISO), pin 51 (MOSI), pin 52 (SCK), pin 53 (SS). Pin ini
mendukung komunikasi SPI menggunakan perpustakaan SPI. Pin
SPI juga terhubung dengan header ICSP, yang secara fisik
kompatibel dengan Arduino Uno, Arduino Duemilanove dan Arduino
Diecimila.
 LED : Pin 13. Tersedia secara built-in pada papan Arduino
ATmega2560. LED terhubung ke pin digital 13. Ketika pin diset
bernilai HIGH, maka LED menyala (ON), dan ketika pin diset bernilai
LOW, maka LED padam (OFF).
 TWI : Pin 20 (SDA) dan pin 21 (SCL). Yang mendukung komunikasi
TWI menggunakan perpustakaan Wire. Perhatikan bahwa pin ini
tidak di lokasi yang sama dengan pin TWI pada Arduino Duemilanove
atau Arduino Diecimila.

Arduino Mega2560 memiliki 16 pin sebagai analog input, yang masing-


masing menyediakan resolusi 10 bit (yaitu 1024 nilai yang berbeda).
Secara default pin ini dapat diukur/diatur dari mulai Ground sampai
dengan 5 Volt, juga memungkinkan untuk mengubah titik jangkauan
tertinggi atau terendah mereka menggunakan pin AREF dan fungsi
analog Reference().

Ada beberapa pin lainnya yang tersedia, antara lain:

44
 AREF : Referensi tegangan untuk input analog. Digunakan dengan
fungsi analogReference().
 RESET : Jalur LOW ini digunakan untuk me-reset (menghidupkan
ulang) mikrokontroler. Jalur ini biasanya digunakan untuk
menambahkan tombol reset pada shield yang menghalangi papan
utama Arduino.

Komunikasi

Arduino Mega2560 memiliki sejumlah fasilitas untuk berkomunikasi


dengan komputer, dengan Arduino lain, atau dengan mikrokontroler
lainnya. Arduino mega2560 menyediakan 4 hardware komunikasi serial
UART TTL (5 Volt). Sebuah chip ATmega16U2 (ATmega8U2 pada papan
Revisi 1 dan Revisi 2) yang terdapat pada papan digunakan sebagai
media komunikasi serial melalui USB dan muncul sebagai COM Port
Virtual (pada Device komputer) untuk berkomunikasi dengan perangkat
lunak pada komputer, untuk sistem operasi Windows masih tetap
memerlukan file inf, tetapi untuk sistem operasi OS X dan Linux akan
mengenali papan sebagai port COM secara otomatis. Perangkat lunak
Arduino termasuk didalamnya serial monitor memungkinkan data tekstual
sederhana dikirim ke dan dari papan Arduino. LED RX dan TX yang
tersedia pada papan akan berkedip ketika data sedang dikirim atau
diterima melalui chip USB-to-serial yang terhubung melalui USB komputer
(tetapi tidak untuk komunikasi serial seperti pada pin 0 dan 1).

Sebuah perpustakaan SoftwareSerial memungkinkan untuk komunikasi


serial pada salah satu pin digital Mega2560. ATmega2560 juga
mendukung komunikasi TWI dan SPI. Perangkat lunak Arduino termasuk
perpustakaan Wire digunakan untuk menyederhanakan penggunaan bus
TWI. Untuk komunikasi SPI, menggunakan perpustakaan SPI.

d. Software Arduino

45
Arduino Uno dan Mega2560 dapat diprogram dengan perangkat lunak
Arduino . Pada mikrokontroller Arduino terdapat bootloader yang
memungkinkan Anda untuk meng-upload kode baru untuk itu tanpa
menggunakan programmer hardware eksternal.

IDE Arduino adalah software yang sangat canggih ditulis dengan


menggunakan Java. IDE Arduino terdiri dari:

a) Editor program, sebuah window yang memungkinkan pengguna


menulis dan mengeditprogram dalam bahasa Processing.
b) Compiler, sebuah modul yang mengubah kode program (bahasa
Processing) menjadi kode biner. Bagaimanapun sebuah
mikrokontroler tidak akan bisa memahami bahasa Processing. Yang
bisa dipahami oleh mikrokontroler adalah kode biner. Itulah
sebabnya compiler diperlukan dalam hal ini.
c) Uploader, sebuah modul yang memuat kode biner dari komputer ke
dalam memory didalam papan Arduino.
Sebuah kode program Arduino umumnya disebut dengan istilah sketch.
Kata“sketch” digunakan secara bergantian dengan “kode program”
dimana keduanya memiliki arti yang sama.

46
Gambar 2.5 Tampilan IDE Arduino dengan sebuah sketch

2. AktuatorMotor Servo

Motor servo adalah jenis motor yang digunakan sebagai penggerak pada sistem
servo (servosystem) seperti pada penggerak pada kontrol posisi lengan robot.
Motor servo secara struktur mesin 2 macam : dc servo motor dan ac servo motor.
DC Servo motor mempunyai konstruksi yang sama dengan konstruksi motor dc.
Dalam motor dc konvensional sikat dan cincin belah merupakan suatu kerugian.

Karena ada gesekan antara sikat dan cincin maka akan terjadi rugi gesek,
timbulnya percikan api dan terkikisnya sikat arang maupun cincin. Maka mulai
dipikirkan Motor dc tanpa sikat atau disebut Brushless DC Motor. Brushless DC
Motor dapat diwujudkan dengan menggunakan prinsip kerja motor induksi 3
phasa (tanpa sikat dan cincin). Dengan menambahkan komponen permanent
magnet, electronic inverter (yang menimbulkan medan putar) dan position control
(umumnya menggunakan sensor effek Hall), maka akan didapatkan motor dc
brushless. Jadi disini rangkaian inverter dan kontrol posisi berfungsi sebagai
pengganti komutator mekanik (sikat & cincin belah) dalamme mbalik medan.
Motor dc brushless ini mempunyai karateristik yang mendekati dc motor
konvensional.

47
Untuk mengerti cara kerja Motor Servo DC Magnet Permanen haruslah
dimengerti bagaimana prinsip kerja Motor DC Magnet Permanen, Motor DC
tanpa sikat dan medan putar.

Motor servo merupakan sebuah motor DC yang dilengkapi rangkaian kendali


dengan sistem closed feedback yang terintegrasi dalam motor tersebut. Pada
motor servo posisi putaran sumbu (axis) dari motor akan diinformasikan kembali
kerangkaian kontrol yang ada di dalam motor servo.

Gambar 2.6. Contoh Motor Servo

Motor servo disusun dari sebuah motor DC, gearbox, variabel resistor (VR) atau
potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk
menentukan batas maksimum putaran sumbu (axis) motor servo. Sedangkan
sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang pada pin
kontrol motor servo.

48
Gambar 2.7. Komponen-Komponen pada Motor Servo

Motor servo adalah motor yang mampu bekerja dua arah (CW dan CCW) dimana
arah dan sudut pergerakan rotornya dapat dikendalikan dengan memberikan
variasi lebar pulsa (duty cycle) sinyal PWM pada bagian pin kontrolnya.

1) Motor Servo Standar 180˚


Motor servo jenis ini hanya mampu bergerak dua arah (CW dan CCW)
dengan defleksi masing-masing sudut mencapai 90˚ sehingga total defleksi
sudut kanan-tengah-kiri adalah 180 ˚.
2) Motor Servo Continous
Motor servo jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batas
andefleksi sudut putar (dapat berputar secara kontinyu).

PulsaKontrol Motor Servo


Servo Operasional motor servo dikendalikan oleh sebuah pulsa selebar ± 20 ms,
dimana lebar pulsa antara 0.5 ms dan 2 ms menyatakan akhir dari range sudut
maksimum. Apabila motor servo diberikan pulsa dengan besar 1.5 ms mencapai
gerakan 90°, maka bila kita berikan pulsa kurang dari 1.5 ms maka posisi
mendekati 0° dan bila kita berikan pulsa lebih dari 1.5 ms maka posisi mendekati
180°.

49
Proses kendali motor servo dilakukan dengan memberikan pulsa PWM pada
bagian data dari motor servo. Tampak pada gambar bahwa pada konektor motor
servo terdapat 3 jalur yaitu VCC sebagai sumber tegangan positif, GND sebagai
sumber tegangan negatif dan DATA sebagai input PWM.
Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran
dari poros motor servo. Adapun kondisi yang terdapat pada motor servo standar
1800 adalah:
a) Pada saat Ton duty cycle 1,5 ms, maka rotor dari motor akan berhenti tepat
di tengah-tengah (sudut 00 / netral).

b) Pada saat Ton duty cycle kurang dari 1,5 ms, maka rotor dari motor akan
berputar kearah kanan dengan membentuk sudut yang besarnya linear
terhadap besarnya Ton duty cycle, dan akan bertahan pada posisi tersebut.

c) Pada saat Ton duty cycle lebih dari 1,5 ms, maka rotor dari motor akan
berputar kearah kiri dengan membentuk sudut yang besarnya linear
terhadap besarnya Ton duty cycle, dan akan bertahan pada posisi tersebut.

Gambar 2.8. Pulsa control Servo

Ketika lebar pulsa kendali telah diberikan, maka poros motor servo akan
bergerak atau berputar ke posisi yang telah diperintahkan, dan berhenti pada
posisi tersebut dan akan tetap bertahan pada posisi tersebut. Jika ada kekuatan
eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor

50
servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi
yang dimilikinya (rating torsi servo). Namun motor servo tidak akan
mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus
diulang setiap 20 ms (mili detik) untuk menginstruksikan agar posisi poros motor
servo tetap bertahan pada posisinya.

3. Sensor ultrasonik

Sensor Ultrasonik adalah alat elektronika yang kemampuannya bisa mengubah


dari energy listrik menjadi energy mekanik dalam bentuk
gelombang suara ultrasonic. Sensor ini terdiri dari rangkaian pemancar
Ultrasonic yang dinamakan transmitter dan penerima ultrasonic yang disebut
receiver. Alat ini digunakan untuk mengukur gelombang ultrasonic. Gelombang
ultrasonic adalah gelombang mekanik yang memiliki cirri-ciri longitudinal dan
biasanya memiliki frekuensi di atas 20 Khz. Gelombong Utrasonic dapat
merambat melalui zat padat, cair maupun gas. Gelombang Ultrasonic adalah
gelombang rambatan energi dan momentum mekanik sehingga merambat
melalui ketiga element tersebut sebagai interaksi dengan molekul dan sifat
enersia medium yang dilaluinya.

Gambar 2.9. Sensor Ultrasonik

Ada beberapa penjelasan mengenai gelombang ultrasonic. Sifat dari gelombang


ultrasonik yang melalui medium menyebabkan getaran partikel dengan medium
aplitudo sama dengan arah rambat longitudinal sehingga menghasilkan partikel
medium yang membentuk suatu rapatan atau biasa disebut Strain dan tegangan
yang biasa disebut Strees. Proses lanjut yang menyebabkan terjadinya rapatan

51
dan regangan di dalam medium disebabkan oleh getaran partikel secara periodic
selama gelombang ultrasonic lainya.

Gelombang ultrasonic merambat melalui udara dengan kecepatan 344 meter per
detik, mengenai obyek dan memantul kembali ke sensor ultrasonik. Seperti yang
telah umum diketahui, gelombang ultrasonik hanya bisa didengar oleh makhluk
tertentu seperti kelelawar dan ikan paus. Kelelawar menggunakan gelombang
ultrasonic untuk berburu di malam hari sementara paus menggunakanya untuk
berenang di kedalaman laut yang gelap. Perhitungan waktu yang diperlukan
modul sensor Ping untuk menerima pantulan pada jarak tertentu mempunyai
rumus S= (tIN x V) : 2. Rumus diatas mempunyai keterangan sebagai berikut. (S)
adalah jarak antara sensor ultrasonik dengan obyekyang terdeteksi. (V) adalah
cepat rambat gelombang ultrasonik di udara dengan kecepatan normal (344
meter per detik) (tIN) adalah selisih waktu pemancaran dan penerimaan pantulan
gelombang.

Prinsip kerja dari sensor ultrasonik yaitu, sinyal dipancarkan melalui pemancar
gelombang ultrasonic. Sinyal yang dipancarkan akan merambat sebagai
gelombang bunyi dengan kecepatan bunyi berkisar 344 m/s. Dan yang terakhir
sinyal yang sudah diterima akan diproses untuk menghitung jaraknya.

4. Sensor Cahaya LDR (Light Dependent Resistor)

Sensor Cahaya LDR (Light Dependent Resistor) adalah salah satu jenis resistor
yang dapat mengalami perubahan resistansinya apabila mengalami perubahan
penerimaan cahaya. Besarnya nilai hambatan pada Sensor Cahaya LDR (Light
Dependent Resistor) tergantung pada besar kecilnya cahaya yang diterima oleh
LDR itu sendiri. LDR sering disebut dengan alat atau sensor yang berupa resistor
yang peka terhadap cahaya. Biasanya LDR terbuat dari cadmium sulfida yaitu
merupakan bahan semikonduktor yang resistansnya berupah-ubah menurut
banyaknya cahaya (sinar) yang mengenainya. Resistansi LDR pada tempat yang
gelap biasanya mencapai sekitar 10 MΩ, dan ditempat terang LDR mempunyai

52
resistansi yang turun menjadi sekitar 150 Ω. Seperti halnya resistor
konvensional, pemasangan LDR dalam suatu rangkaian sama persis seperti
pemasangan resistor biasa. Simbol LDR dapat dilihat seperti pada gambar
berikut. Simbol Dan Fisik Sensor Cahaya LDR (Light Dependent Resistor).

Gambar 2.10. Sensor LDR

a. Aplikasi Sensor Cahaya LDR (Light Dependent Resistor)

Sensor Cahaya LDR (Light Dependent Resistor) dapat digunakan sebagai :

 Sensor pada rangkaian saklar cahaya


 Sensor pada lampu otomatis
 Sensor pada alarm brankas
 Sensor pada tracker cahaya matahari
 Sensor pada kontrol arah solar cell
 Sensor pada robot line follower
Dan masih banyak lagi aplikasi rangkaian elektronika yang menggunakan
LDR (Light Dependent Resistor) sebagai sensor cahaya.

b. Karakteristik Sensor Cahaya LDR (Light Dependent Resistor)

Sensor Cahaya LDR (Light Dependent Resistor) adalah suatu bentuk


komponen yang mempunyai perubahan resistansi yang besarnya tergantung
pada cahaya. Karakteristik LDR terdiri dari dua macam yaitu Laju Recovery
dan Respon Spektral sebagai berikut :

53
1) Laju Recovery Sensor Cahaya LDR (Light Dependent Resistor)

Bila sebuah “Sensor Cahaya LDR (Light Dependent Resistor)” dibawa dari
suatu ruangan dengan level kekuatan cahaya tertentu ke dalam suatu
ruangan yang gelap, maka bisa kita amati bahwa nilai resistansi dari LDR
tidak akan segera berubah resistansinya pada keadaan ruangan gelap
tersebut. Na-mun LDR tersebut hanya akan bisa menca-pai harga di
kegelapan setelah mengalami selang waktu tertentu. Laju recovery meru-
pakan suatu ukuran praktis dan suatu ke-naikan nilai resistansi dalam waktu
tertentu. Harga ini ditulis dalam K/detik, untuk LDR tipe arus harganya lebih
besar dari 200K/detik (selama 20 menit pertama mulai dari level cahaya 100
lux), kecepatan tersebut akan lebih tinggi pada arah sebaliknya, yaitu pindah
dari tempat gelap ke tempat terang yang memerlukan waktu kurang dari 10
ms untuk mencapai resistansi yang sesuai den-gan level cahaya 400 lux.

2) Respon Spektral Sensor Cahaya LDR (Light Dependent Resistor)

Sensor Cahaya LDR (Light Dependent Resistor) tidak mempunyai


sensitivitas yang sama untuk setiap panjang gelombang cahaya yang jatuh
padanya (yaitu warna). Bahan yang biasa digunakan sebagai penghantar
arus listrik yaitu tembaga, aluminium, baja, emas dan perak. Dari kelima
bahan tersebut tembaga merupakan penghantar yang paling banyak,
digunakan karena mempunyai daya hantaryang baik (TEDC,1998)

3) Prinsip Kerja Sensor Cahaya LDR (Light Dependent Resistor)

Resistansi Sensor Cahaya LDR (Light Dependent Resistor) akan berubah


seiring den-gan perubahan intensitas cahaya yang mengenainya atau yang
ada disekitarnya. Dalam keadaan gelap resistansi LDR seki-tar 10MΩ dan
dalam keadaan terang sebe-sar 1KΩ atau kurang. LDR terbuat dari ba-han
semikonduktor seperti kadmium sul-fida. Dengan bahan ini energi dari
cahaya yang jatuh menyebabkan lebih banyak mua-tan yang dilepas atau
arus listrik meningkat. Artinya resistansi bahan telah men-galami penurunan.

54
KEGIATAN PEMBELAJARAN 3: ROBOT WHISKER

A. Tujuan

Peserta dapat menggabungkan beberapa disiplin ilmu seperti elektronika,


pemrograman, mekanika dan lain-lain menjadi satu kesatuan kerja proyek
bernama robot whisker. Dalam kegiatan ini dimaksudkan untuk tujuan :
1) Belajar bagaimana menggunakan dan memprogram pada Mikrokontroler
Arduino.
2) Mengetahui dasar-dasar elektronik dan akan mengerti untuk membuat
proyek-proyek berdasarkan mikrokontroler.
3) Mengetahui konsep kerja dan cara perakitan Whisker-BOT.
4) Memahami rangkaian dan pemrograman dari Whisker-BOT.
5) Memahami penggunaan whisker sebagai navigasi sentuhan.

B. Indikator Pencapaian Kompetensi

1) Merakit robot Whisker-BOT dan dapat bekerja dengan baik sesuai instruksi
program yang telah di-upload.
2) Menguji Sensor whisker l menghadapi halangan (tembok) sehingga Whisker-
BOT dapat beroperasi dengan benar.
3) Mengontrol motor servo kontinyu dengan tepat sehingga Whisker-BOT dapat
berjalan dan menjelajah dengan baik.
4) Memahami implementasi bahasa pemrograman untuk robot whisker.

C. Uraian Materi

1. Robot Whiskers

Navigasi dengan sentuhan digunakan dalam berbagai aplikasi robot termasuk :

a) Mendeteksi bila lengan robot menemukan objek


b) Menghitung objek pada jalur produksi
c) Menyelaraskan objek dalam suatu proses industri
d) Mendeteksi dinding sebagai robot menavigasi jalannya di lintasan

55
Gambar 3.1. Whisker pada Arduino-BOT

Whiskers memberi Arduino-BOT kemampuan untuk merasakan suatu kendala di


sekitarnya melalui sentuhan, seperti antena pada semut atau kumis pada kucing.

Bagaimana saklar whisker bekerja?

Karena setiap whisker terhubung ke digital I/O, Arduino dapat diprogram untuk
mendeteksi tegangan yang dikenakan setiap rangkaian, 5 V atau 0 V. Pertama,
atur setiap pin untuk masukan dengan pinMode (pin, mode), dan kemudian
mendeteksi kondisi pin tersebut, HIGH atau LOW, dengan fungsi digitalRead
(pin) .

Pada gambar 3.2 sebelah kiri, rangkaian sensor mengirim 5 V ketika whisker
tidak ditekan, sehingga digitalRead(7) kembali 1 (HIGH). Di sebelah kanan,
rangkaian mengirim 0 V ketika whisker ditekan, sehingga digitalRead(7) kembali
0 (LOW).

56
Nilai-nilai tersebut dapat disimpan kembali ke dalam variabel, seperti wLeft dan
wRight, dan kemudian menggunakannya untuk memicu tindakan atau membuat
keputusan.

Gambar 3.2. Sistem Kerja Saklar Whisker

Masing-masing whisker adalah ekstensi mekanik dan sambungan listrik saklar


normally open (off hingga ditekan), momentary (on hanya sembari ditekan),
single-pole (satu set titik kontak listrik), single-throw (hanya satu posisi
sambungan).

2. Kebutuhan Alat dan Bahan Perakitan Shield bot

Pertama, rakit shield bot menggunakan peralatan dan komponen.yang dapat


dibeli di toko elektronik sekitar. Kebutuhan alat dan bahan antara lain :

a) Obeng plus dan minus 1 buah


b) Kunci Pas no 8 1 buah
c) Tang Runcing 1 buah
d) Chassis Robot 1 set
e) Standoff, Mur, Karet Grommer 1 set
f) Servo dengan Putaran Kontinyu 2 buah
g) Roda Plastik berlapis Karet 1 buah
h) Bola Roda 1 buah
i) BOE-Shield board 1 buah

57
Gambar 3.3. Part Shield Bot

3. Merakit Komponen Robot Whisker

Ikutilah langkah-langkah berikut dengan merakit setiap komponen menjadi satu


kesatuan system sehingga membentuk robot whisker yang utuh.

58
a. Merakit motor servo kedalam chasis mekanik.

Gambar 3.4. Posisi servo pada chassis

59
b. Memasang wadah baterai pada chassis

Gambar 3.5. Wadah baterai pada chassis

c. Memasang roda pada chassis

Gambar 3.6. Roda pada chassis

60
d. Memasang BOE-Shield Board

Gambar 3.7. Pemasangan BOE-shield bot

4. Membuat dan Menguji Whisker

Selanjutnya buat rangkaian whisker dengan mengikuti langkah-langkah dibawah


inidan tulis kode untuk memeriksa kondisi masukannya sebelum digunakan.

Komponen :

kabel whisker 2 buah


7/8 " pan head 4-40 sekrup Phillips 2 buah
½ " spacer bulat 2 buah
nylon washers, ukuran # 4 2 buah
3-pin m / m header 2 buah
resistor, 220 Ω (merah-merah-coklat) 2 buah

61
resistor, 10 kΩ (coklat-hitam-oranye) 2 buah
(misc) kabel jumper

Gambar 3.8. Part list whiskers

Membuat Whiskers

 Lepaskan dua sekrup depan yang memegang papan untuk standoffs depan.

 Atur nylon washer dan ½ " spacer bulat pada masing-masing 7/8" sekrup.

 Pasang sekrup melalui lubang di papan ke dalam standoffs bawah, tapi


jangan dikencangkan terlebih dahulu.

 Selinapkan ujung bengkok dari kabel whisker pada sekitar sekrup, satu di
atas washer dan lainnya di bawah washer, posisikan sehingga menyeberang
satu sama lain tanpa menyentuh.

 Kencangkan sekrup ke dalam standoffs.

62
Gambar 3.9. Pemasangan whiskers

 Gunakan 220 Ω resistor (merah merah-coklat) untuk menghubungkan pin


digital 5 dan 7 untuk 3-pin yang sesuai header.

 Gunakan 10 kΩ resistor (coklat-hitam-oranye) untuk menghubungkan 5 V


untuk setiap 3-pin header.

 Pastikan untuk menyesuaikan setiap whisker tetap dekat, tetapi tidak


menyentuh header 3-pin pada breadboard. Disarankan berjarak sekitar 1/8 "
(3 mm).

Gambar 3.10. Rangkaian whiskers

63
Menguji Whiskers

Menampilkan nilai-nilai biner yang dikembalikan oleh digitalRead (5) dan


digitalRead (7).

Ketika whisker tidak ditekan terhadap 3-pin headernya, maka Serial Monitor akan
menampilkan dua kolom nilai biner, satu untuk setiap whisker.

Jika hanya whisker kanan yang ditekan, kolom kanan harus menampilkan 0, dan
display serial monitor akan terbaca 10. Begitu juga sebaliknya, dan tentu saja jika
kedua whisker ditekan, maka harus menampilkan 00.

Gambar 3.11. Pengujian whiskers pada serial monitor

Keluaran Aktif-Low

Whisker dirangkai untuk output active-low, yang berarti bahwa masing-masing


mengirimkan sinyal rendah ketika ditekan (aktif) dan sinyal tinggi ketika tidak
ditekan. Karena digitalRead menampilkan 0 untuk sinyal rendah dan 1 untuk
sinyal tinggi, maka 0 yang mengindikasikan ketika whisker ditekan, dan 1 ketika
whisker tidak ditekan.

 Masukkan, simpan, dan upload TestWhiskers ke Arduino.


 Hubungkan kabel USB dan atur saklar 3-posisi ke posisi 1.
 Begitu selesai di-upload, buka Serial Monitor.
 Biarkan kabel USB tetap terhubung sehingga Arduino dapat mengirim
pesan serial ke Serial Monitor.

64
/*
* Robotics with Whisker - DisplayWhiskerStates
* Display left and right whisker states in Serial Monitor.
* 1 indicates no contact; 0 indicates contact.
*/

void setup() // Built-in


initialization block
{
tone(4, 3000, 1000); // Play tone for 1
second
delay(1000); // Delay to finish
tone
pinMode(7, INPUT); // Set right whisker pin
to input
pinMode(5, INPUT); // Set left whisker pin
to input

Serial.begin(9600); // Set data rate to 9600


bps
}

void loop() // Main loop auto-


repeats
{
byte wLeft = digitalRead(5); // Copy left result to
wLeft
byte wRight = digitalRead(7); // Copy right result to
wRight

Serial.print(wLeft); // Display left whisker


state
Serial.println(wRight); // Display right whisker
state

delay(50); // Pause for 50 ms


}

65
5. Navigasi dengan Whisker
Membuat Arduino memonitor saklar whisker dan memicu aksi respons, juga
dapat memungkinkan Whisker-Bot berjalan dan memilih manuver sendiri jika
menabrak sesuatu.

Gambaran Navigasi Whisker

Whisker-Bot berjalan maju sembari memantau input whisker, hingga menemukan


sebuah rintangan dengan satu atau keduanya. Segera setelah Arduino
mengindera kontak listrik whisker, akan digunakan statement if... else if... else
untuk memutuskan apa yang harus dilakukan. Kode keputusan memeriksa
berbagai kombinasi whisker ditekan maupun tidak ditekan, dan memanggil fungsi
navigasi untuk menjalankan back up dan manuver belokannya. Kemudian,
Whisker-Bot bergerak maju kembali sampai menabrak suatu kendala lain.

 Atur saklar 3-posisi ke posisi 1.

 Hubungkan kembali baterai Whisker-Bot ke Arduino.

 Masukkan, simpan, dan upload RoamingWithWhiskers.

 Lepaskan Whisker-Bot dari kabel pemrogramannya, dan pasang


saklar power ke 2.

 Tempatkan Whisker-Bot di lantai, dan coba biarkan berjelajah. Ketika


menabrak atau bertemu rintangan di jalan dengan saklar whiskernya,
Whisker-Bot harus mundur kembali (back up), mengubah belokan,
dan kemudian berjelajah di arah yang baru.

66
Gambar 3.12. Ilustrasi Program Navigasi Whisker

// Robotics with Whisker - RoamingWithWhiskers


// Go forward. Back up and turn if whiskers indicate BOE
Shield bot
// bumpedinto something.

#include <Servo.h> // Include


servo library

Servo servoLeft; // Declare left and


right servos
Servo servoRight;

void setup() // Built-in


initialization block
{
pinMode(7, INPUT); // Set right whisker pin
to input
pinMode(5, INPUT); // Set left whisker pin
to input

tone(4, 3000, 1000); // Play tone for 1 second


delay(1000); // Delay to finish tone

67
servoLeft.attach(13); // Attach left signal to
pin 13
servoRight.attach(12); // Attach right signal to
pin 12
}

void loop() // Main loop auto-repeats


{
byte wLeft = digitalRead(5); // Copy left result to
wLeft
byte wRight = digitalRead(7); // Copy right result to
wRight

if((wLeft == 0) && (wRight == 0)) // If both


whiskers contact
{
backward(1000); // Back up 1
second
turnLeft(800); // Turn left about 120
degrees
}
else if(wLeft == 0) // If only left
whisker contact
{
backward(1000); // Back up 1
second
turnRight(400); // Turn right about 60
degrees
}
else if(wRight == 0) // If only right
whisker contact
{
backward(1000); // Back up 1
second
turnLeft(400); // Turn left about 60
degrees
}
else // Otherwise, no
whisker contact
{

68
forward(20); // Forward 1/50 of a
second
}
}

void forward(int time) // Forward


function
{
servoLeft.writeMicroseconds(1700); // Left wheel
counterclockwise
servoRight.writeMicroseconds(1300); // Right wheel
clockwise
delay(time); // Maneuver for
time ms
}

void turnLeft(int time) // Left turn


function
{
servoLeft.writeMicroseconds(1300); // Left wheel
clockwise
servoRight.writeMicroseconds(1300); // Right wheel
clockwise
delay(time); // Maneuver for
time ms
}

void turnRight(int time) // Right turn


function
{
servoLeft.writeMicroseconds(1700); // Left wheel
counterclockwise
servoRight.writeMicroseconds(1700); // Right wheel
counterclockwise
delay(time); // Maneuver for
time ms
}

void backward(int time) // Backward


function
{

69
servoLeft.writeMicroseconds(1300); // Left wheel
clockwise
servoRight.writeMicroseconds(1700); // Right wheel
counterclockwise
delay(time); // Maneuver for
time ms
}

6. Kecerdasan Buatan untuk Melarikan Diri dari Sudut

Whisker-Bot cenderung terjebak di sudut. Ketika memasuki sudut, whisker kiri


bersentuhan tembok di sebelah kiri, sehingga mundur (back up) dan belok
kanan. Ketika Whisker-Bot bergerak maju lagi, whisker kanan bersentuhan
tembok di sebelah kanan, sehingga mundur (back up) dan belok kiri. Kemudian
bersentuhan tembok bagian kiri lagi, dan lalu dinding kanan lagi, dan seterusnya,
hingga seseorang menyelamatkannya dari keadaan yang sulit.

Pemrograman untuk melarikan diri dari sudut

RoamingWithWhiskers dapat diperluas untuk mendeteksi masalah ini dan


bertindak berdasarkan itu. Triknya adalah menghitung jumlah berapa kali
alternatif whisker bersentuhan dengan objek. Untuk melakukan ini, sketsa harus
mengingat kondisi masing-masing whisker pada saat bersentuhan sebelumnya.
Kemudian, bandingkan kondisi tersebut terhadap kondisi kontak whisker saat itu.
Jika berlawanan, maka tambahkan 1 untuk counter. Jika counter berjalan di atas
ambang batas yang (programer) telah tentukan, maka saatnya untuk melakukan
belokan U (U-turn) dan melarikan diri dari sudut, dan juga mengatur ulang
counter.

/*
* Robotics with Whisker - EscapingCorners
* Count number of alternate whisker contacts, and if it exceeds
4, get out
* of the corner.
*/

70
#include <Servo.h> // Include servo
library

Servo servoLeft; // Declare left and right


servos
Servo servoRight;

byte wLeftOld; // Previous loop whisker


values
byte wRightOld;
byte counter; // For counting alternate
corners

void setup() // Built-in


initialization block
{
pinMode(7, INPUT); // Set right whisker pin
to input
pinMode(5, INPUT); // Set left whisker pin to
input
pinMode(8, OUTPUT); // Left LED indicator ->
output
pinMode(2, OUTPUT); // Right LED indicator ->
output

tone(4, 3000, 1000); // Play tone for 1


second
delay(1000); // Delay to finish
tone

servoLeft.attach(13); // Attach left signal


to pin 13
servoRight.attach(12); // Attach right signal
to pin 12

wLeftOld = 0; // Init. previous


whisker states
wRightOld = 1;
counter = 0; // Initialize counter
to 0
}

71
void loop() // Main loop auto-
repeats
{

// Corner Escape

byte wLeft = digitalRead(5); // Copy right result to


wLeft
byte wRight = digitalRead(7); // Copy left result to
wRight

if(wLeft != wRight) // One whisker


pressed?
{ // Alternate from
last time?
if ((wLeft != wLeftOld) && (wRight != wRightOld))
{
counter++; // Increase count by
one
wLeftOld = wLeft; // Record current for
next rep
wRightOld = wRight;
if(counter == 4) // Stuck in a corner?
{
wLeft = 0; // Set up for U-turn
wRight = 0;
counter = 0; // Clear alternate
corner count
}
}
else // Not alternate from
last time
{
counter = 0; // Clear alternate
corner count
}
}

// Whisker Navigation
if((wLeft == 0) && (wRight == 0)) // If both whiskers
contact

72
{
backward(1000); // Back up 1 second
turnLeft(800); // Turn left about
120 degrees
}
else if(wLeft == 0) // If only left whisker
contact
{
backward(1000); // Back up 1 second
turnRight(400); // Turn right about
60 degrees
}
else if(wRight == 0) // If only right
whisker contact
{
backward(1000); // Back up 1 second
turnLeft(400); // Turn left about 60
degrees
}
else // Otherwise, no
whisker contact
{
forward(20); // Forward 1/50 of a
second
}
}

void forward(int time) // Forward function


{
servoLeft.writeMicroseconds(1700); // Left wheel
counterclockwise
servoRight.writeMicroseconds(1300); // Right wheel
clockwise
delay(time); // Maneuver for time
ms
}

void turnLeft(int time) // Left turn function


{
servoLeft.writeMicroseconds(1300); // Left wheel
clockwise

73
servoRight.writeMicroseconds(1300); // Right wheel
clockwise
delay(time); // Maneuver for time
ms
}

void turnRight(int time) // Right turn


function
{
servoLeft.writeMicroseconds(1700); // Left wheel
counterclockwise
servoRight.writeMicroseconds(1700); // Right wheel
counterclockwise
delay(time); // Maneuver for time
ms
}

void backward(int time) // Backward function


{
servoLeft.writeMicroseconds(1300); // Left wheel
clockwise
servoRight.writeMicroseconds(1700); // Right wheel
counterclockwise
delay(time); // Maneuver for time
ms
}

D. Aktifitas Pembelajaran

Peserta belajar untuk mempelajari prinsip kerja robot whisker, kemudian


mengecek kebutuhan alat dan bahan untuk praktik. Selanjutnya peserta diminta
untuk merakit komponen mekanik dan elektronik robot whisker dan menguji
komponen system secara terintegrasi dan terakhir peserta belajar untuk
memprogram robot whisker dengan menggunakan bahasa C melalui software
Arduino IDE

74
E. Latihan

1. a) Apa jenis sambungan listrik pada whisker ?


b) Ketika whisker ditekan, berapa tegangan yang akan timbul pada I / O pin
itu? Apa nilai biner yang akan ditampilkan kembali pada fungsi
digitalRead? Jika pin digital 8 digunakan untuk memantau rangkaian
whisker, apa nilai yang digitalRead tampilkan ketika whisker ditekan, dan
apa nilai yang akan muncul ketika whisker tidak ditekan?
c) Jika digitalRead(7)== 1, apa artinya? Apa artinya jika digitalRead(7)==
0? Bagaimana dengan digitalRead(5)== 1 dan digitalRead(5)== 0?
d) Apa saja statement yang digunakan pada kegiatan ini untuk memanggil
fungsi navigasi yang berbeda berdasarkan keadaan whisker?
e) Apa tujuan dari memiliki fungsi bersarang (nested) statement if?
2. a)Tulis program yang menggunakan variabel tunggal bernama whiskers
untuk melacak kontak whisker. Simpan nilai 3 bila tidak ada whiskers
yang tersentuh, 2 jika whisker kanan tersentuh, 1 jika whisker kiri
tersentuh, atau 0 jika kedua whiskers terhubung.
Petunjuk: kalikan hasilnya dengan dua.

b) Modifikasi fungsi loop dalam RoamingWithWhiskers sehingga


membuat Whisker-Bot berhenti dan tidak me-restart ketika kedua
whiskers tersentuh pada waktu yang sama.
c) Tambahkan fungsi bernama pause untuk RoamingWithWhiskers, buat
Whisker-Bot tinggal diam untuk waktu tertentu.
d) Modifikasi fungsi loop sehingga Whisker-Bot tetap diam selama 0,5
detik sebelum back up dan berputar.

F. Rangkuman

Pembuatan robot menggunakan sistem sensor whisker, yang memungkinkan


robot untuk bermanuver sendiri dengan navigasi berupa whisker yang
bersentuhan dengan dinding atau kendala lain saat di lintasan. Robot didukung
dengan motor servo jenis kontinyu sebagai penggerak putaran roda yang
kecepatan dan keakuratan sudutnya dikontrol oleh Arduino. Manfaat dari

75
kegiatan ini, diharapkan pembaca dapat memahami bagaimana cara
membangun robot whisker sederhana dengan menggunakan mikrokontroler
Arduino

G. Umpan Balik dan Tindak Lanjut

Selamat Saudara telah menyelesaikan kegiatan pembelajaran 3 yaitu tentang


perakitan robot whiskermulai dari prinsip kerja robot whisker, mempersiapkan lat
dan bahan, merakit komponen robot whisker, memprogram dan mengusji system
terintegrasi. Selanjutnya silahkan melanjutkan kegiatan pembelajaran 4 dengan
membaca petunjuk dan tujuan kegiatan pembelajaran.

76
KEGIATAN PEMBELAJARAN 4: ROBOT LINE
FOLLOWER

A. TUJUAN

Adapun tujuan dari kegiatan pembelajaran ini agar peserta mampu:

1. Mengetahui cara pembuatan robot line follower


2. Mengetahui kebutuhan dan konsep atau proses kerja dari robot line follower
3. Merangkai dan memprogram keseluruhan dari robot line follower
4. Memahami bagaimana robot tersebut bisa membaca garis hitam dan juga
bisa mengikuti garis tersebut menggunakan sensor infrared.

B. Indikator Pencapaian Kompetensi

1. Merakit robot Line Follower sehingga dapat bekerja mengikuti garis hitam
dengan lancar.
2. Mengkalibrasi sensor untuk mendeteksi garis hitam.
3. Merancang Driver Motor DC untuk membangun robot line follower.
4. Mendesain program mikrokontroller untuk robot line follower.

C. Uraian Materi

Robot line follower merupakan robot yang bertujuan untuk menelusuri jejak
(garis) secara otomatis, dimana jejak atau garis tersebut berupa garis yang
dibentuk dari warna hitam. Meskipun demikian robot ini dapat dikatakan
robot cukup cerdas karena robot line follower ini mampu melakukan penelusuran
garis dengan sendirinya. Sebenarnya prinsip dari robot line follower dapat
dikatakan project sederhana, yaitu kinerja dari robot ini ditentukan oleh
komponen elektronikanya yang terdiri dari sensor dan motor driver.

Selain itu juga diperlukan beberapa komponen lain untuk menunjang kebutuhan
robot line follower tersebut. Misalnya untuk pergerakan dari robot sebagai
kakinya bisa menggunakan motor (motor dc). Namun motor tersebut harus

77
menggunakan rangkaian lain seperti menggunakan rangkaian IC (motor driver),
agar bisa memperlambat ataupun mempercepat perputaran motor bahkan motor
tersebut bisa bergerak maju ataupun mundur.Selain itu pergerakan motor juga
akan di kontrol menggunakan microcontroller yaitu Arduino.

Motor driver merupakan sebuah rangkaian elektronika yang biasa dihubungkan


dengan Arduino untuk mengatur pergerakan motor dc dan juga bisa untuk
mengukur penyerapan arus antara motor dc dengan komponen lain yang
terpasang.

Gambar 4.1. robot line follower

Line follower robot adalah robot yang bisa bergerak mengikuti jalur panduan
garis. Garis pandu yang di gunakan dalam hal ini adalah garis putih yang di
tempatkan pada permukaan berwaran gelap, atupun sebaliknya, garis hitam
yang ditempatkan pada permukaan berwarna putih.

Sedangkan untuk elektronik robot yaitu sebuah robot yang meliputi adanya
rangkaian pengendali utama (main controller), rangkaian sensor, dan rangkaian
driver. Dan sistem yang penting dalam pembuatan robot line follower yaitu
bahasa pemrogram (software).

Ada dua macam robot line follower yaitu line follower biasa tanpa menggunakan
program dan line follower dengan program microkontroler. hanya saja yang
menggunakan program microkontroler lebih komplek dan lebih sempurna jika di
banding line follower yang tanpa menggunakan program.

78
Prinsip kerjanya sederhana, hanya memanfaatkan sifat cahaya yang akan
dipantulkan jika mengenai benda berwarna terang dan akan diserap jika
mengenai benda berwarna gelap. Sebagai sumber cahaya kita gunakan LED
(Light Emiting Diode) yang akan memancarkan cahaya merah dan untuk
menangkap pantulan cahaya LED kita gunakan photodiode. Jika sensor
berada diatas garis hitam maka photodioda akan menerima sedikit sekali cahaya
pantulan. Tetapi jika sensor berada diatas garis putih maka photodioda akan
menerima banyak cahaya pantulan.

1. IC L293D (Motor Driver)

IC L293D adlah IC yang didesain khusus sebagai driver motor DC dan


dapat dikendalikan dengan rangkaian TTL maupun mikrokontroler. Motor DC
yang dikontrol dengan driver IC L293D dapat dihubungkan ke ground maupun ke
sumber tegangan positif karena di dalam driver L293D sistem driver yang
digunakan adalah totem pool. Dalam 1 unit chip IC L293D terdiri dari 4 buah
driver motor DC yang berdiri sendiri sendiri dengan kemampuan mengalirkan
arus 1 Ampere tiap drivernya. Sehingga dapat digunakan untuk membuat driver
H-bridge untuk 2 buah motor DC. Konstruksi pin driver motor DC IC l293D adalah
sebagai berikut.

Gambar 4.2. IC L293

79
Gambar 4.3. pin IC motor driver L293D

Fungsi Pin Driver Motor DC IC L293D sebagai berikut:

 Pin EN (Enable, EN1.2, EN3.4) berfungsi untuk mengijinkan driver


menerima perintah untuk menggerakan motor DC.
 Pin In (Input, 1A, 2A, 3A, 4A) adalah pin input sinyal kendali motor DC
 Pin Out (Output, 1Y, 2Y, 3Y, 4Y) adalah jalur output masing-masing driver
yang dihubungkan ke motor DC
 Pin VCC (VCC1, VCC2) adalah jalur input tegangan sumber driver motor
DC, dimana VCC1 adalah jalur input sumber tegangan rangkaian
kontrol dirver dan VCC2 adalah jalur input sumber tegangan untuk motor
DC yang dikendalikan.
 Pin GND (Ground) adalah jalu yang harus dihubungkan ke ground, pin
GND ini ada 4 buah yang berdekatan dan dapat dihubungkan ke sebuah
pendingin kecil.

Fitur Driver Motor DC IC L293D Driver motor DC IC L293D memiliki fitur yang
lengkap untuk sebuah driver motor DC sehingga dapat diaplikasikan dalam
beberapa teknik driver motor DC dan dapat digunakan untuk mengendalikan
beberapa jenis motor DC. Feature yang dimiliki driver motor DC IC L293D
sesuai dengan datasheet adlah sebagai berikut:

•Wide Supply-Voltage Range: 4.5 V to 36 V

•Separate Input-Logic Supply

•Internal ESD Protection

80
•Thermal Shutdown

• High-Noise-Immunity Inputs

• Functionally Similar to SGS L293 and SGS L293D

• Output Current 1 A Per Channel (600 mA for L293D)

•Peak Output Current 2 A Per Channel (1.2 A for L293D)

•Output Clamp Diodes for Inductive Transient Suppression (L293D)

Gambar 4.4. Block diagram motor driver L293D

2. Sensor Photodiode

Sensor photodiode adalah salah satu jenis sensor peka cahaya (photodetector).
Photodiode akan mengalirkan arus yang membentuk fungsi linear terhadap
intensitas cahaya yang diterima. Arus ini umumnya teratur terhadap power
density (Dp). Perbandingan antara arus keluaran dengan power density disebut
sebagai current responsitivity. Arus yang dimaksud adalah arus bocor ketika
photodiode tersebut disinari dan dalam keadaan dipanjar mundur.

Hubungan antara keluaran sensor photodiode dengan intensitas cahaya yang


diterimanya ketika dipanjar mundur adalah membentuk suatu fungsi yang linier.
Hubungan antara keluaran sensor photodiode dengan intensitas cahaya
ditunjukkan pada Gambar berikut.

81
Gambar 4.5. Output photodiode terhadap intensitas cahaya

3. Mekanisme Perancangan Sensor Garis

LED superbright berfungsi sebagai pengirim cahaya ke garis untuk dipantulkan


lalu dibaca oleh sensor photodiode. Sifat dari warna putih (permukaan terang)
yang memantulkan cahaya dan warna hitam (permukaan gelap) yang tidak
memantulkan cahaya digunakan dalam aplikasi ini. Gambar dibawah ini adalah
ilustrasi mekanisme sensor garis.

Gambar 4.6. Ilustrasi mekanisme sensor garis

Prinsip Kerja Sensor

Pada rancangan sensor photodiode dibawah ini, nilai resistansinya akan


berkurang bila terkena cahaya dan bekerja pada kondisi riverse bias. Untuk

82
pemberi pantulan cahayanya digunakan LED superbright, komponen ini
mempunyai cahaya yang sangat terang, sehingga cukup untuk mensuplai
pantulan cahaya ke photodiode. Berikut ini prinsip dan gambaran kerja dari
sensor photodiode.

KE MIKROKONTROLLER

Gambar 4.7. Sensor photodiode tidak terkena cahaya

Saat photodiode tidak terkena cahaya, maka nilai resistansinya akan besar
atau dapat diasumsikan tak hingga. Sehingga tidak ada arus bocor yang
mengalir menuju mikrokontroller.

KE MIKROKONTROLLER

Gambar 4.8. Sensor photodiode terkena cahaya

Saat photodiode terkena cahaya, maka photodiode akan bersifat sebagai


sumber tegangan dan nilai resistansinya akan menjadi kecil, sehingga akan ada
arus bocor yang mengalir ke mikrokontroller.

83
4. Motor DC

Pada dasarnya beberapa aplikasi yang menggunakan motor DC harus dapat


mengatur kecepatan dan arah putar dari motor DC itu sendiri. Untuk dapat
melakukan pengaturan kecepatan motor DC dapat menggunakan metode PWM
(Pulse Width Modulation) sedangkan untuk mengatur arah putarannya dapat
menggunakan rangkaian H-bridge yang tersusun dari 4 buah transistor. Tetapi
dipasaran telah disediakan IC L293D sebagai driver motor DC yang dapat
mengatur arah putar dan disediakan pin untuk input yang berasal dari PWM
untuk mengatur kecepatan motor DC.Sebelum membahas tentang IC L293D,
alangkah baiknya jika kita membahas driver motor DC menggunakan rangkaian
analog terlebih dahulu.

Jika diinginkan sebuah motor DC yang dapat diatur kecepatannya tanpa dapat
mengatur arah putarnya, maka kita dapat menggunakan sebuah transistor
sebagai driver. Untuk mengatur kecepatan putar motor DC digunakan PWM yang
dibangkitkan melalui fitur Timer pada mikrokontroler. Sebagian besar power
supply untuk motor DC adalah sebesar 12V, sedangkan output PWM dari
mikrokontroler maksimal sebesar 5V. Oleh karena itu digunakan transistor
sebagai penguat tegangan. Dibawah ini adalah gambar driver motor DC
menggunakan transistor.

Gambar 4.9. Driver searah motor DC

Sedangkan jika diinginkan sebuah motor DC yang dapat diatur kecepatan atau
arah putarnya maka digunakanlah rangkaian H-brigde yang tersusun dari 4 buah
transistor.

84
Gambar 4.10. Driver bolak-balik motor DC

Dari gambar diatas jika diinginkan motor DC berputar searah jarum jam maka
harus mengaktifkan transistor1 dan transistor4 dengan cara memberikan logika
high pada kaki Basis transistor tersebut. Sedangkan untuk berputar berlawanan
arah jarum jam maka harus mengaktifkan transistor2 dan transistor 3 dengan
cara memberikan logika high pada kaki Basis transistor tersebut. Untuk lebih
jelasnya perhatikan gambar dibawah ini.

Dari gambar diatas terlihat jelas bahwa dengan mengaktifkan transistor1 dan
transistor4 akan menyebabkan motor DC berputar searah jarum jam. Dimana
arus listrik akan mengalir dari power supply (12 V) melalui transistor1, lalu ke
motor DC, lalu ke transistor4 dan akan berakhir di ground. Begitu juga sebaliknya
untuk putaran berlawanan arah jarum jam.

85
Sedangkan untuk pengaturan kecepatannya anda dapat menghubungkan output
PWM ke kaki basis transistor1 untuk putaran searah jarum jam. Dan untuk
putaran berlawanan arah jarum jam, output PWM dapat dihubungkan kekaki
basis transistor2.

D. Aktivitas Pembelajaran

Pembelajaran diarahkan untuk mencapai kompetensi yang disyaratkan dalam


IPK standar kompetensi guru dan sebagai proses pengembangan potensi dan
pembangunan karakter setiap peserta diklat, yaitu memberikan kesempatan
kepada peserta diklat untuk mengembangkan potensi menjadi kemampuan yang
semakin lama semakin meningkat dalam sikap (spiritual dan sosial),
pengetahuan, dan keterampilan.

Untuk mengembangkan potensi kemampuan pendidik, Saudara dapat mengikuti


langkah-langkah project membuat robot line followers melalui beberapa tahapan
berikut:

1. Perancangan Mekanik dan Konsep Kerja

Robot line followers ini pada dasarnya dirancang untuk mengikuti garis hitam
pada permukaan yang putih. Robot ini juga dapat digunakan untuk mengikuti
konfigurasi berlawanan (garis putih) dengan sedikit perubahan yang diperlukan
dalam perangkat lunak.Berikut adalah desain dari robot Line Follower yang
besarnya kurang lebih 20 cm x 7 cm:

86
Gambar 4.11. rangka Robot Line Follower

Gambar 4.12. Mekanik Robot Line follower tampak 3D

Kemudian Seluruh perangkat keras robot line followers sederhana ini


menggunakan arduino dan dapat dibagi menjadi tiga bagian. Sensor, papan
arduino dan sirkuit motor driver.

87
a. Merakit Sensor

Gambar 4.13. Komponen Sensor

Pada robot line follower, sensor robot yang dapat digunakan ada 3 jenis,
yaitu LDR (Light Dependent Resistor), Photo Dioda, dan Photo Transistor.
Gambar di atas adalah 1 pasang sensor yang akan kita gunakan pada robot
line follower. Bentuknya mirip seperti LED, yang berwarna ungu bernama
receiver (photo dioda) dan yang berwarna bening bernama transmitter
(infrared). Untuk membuat robot ini, kita gunakan 5 pasang sensor seperti di
kanan.

Kemudian, setelah kita mengetahui sensor apa yang akan kita pakai, coba
buat dulu rangkaian seperti di bawah ini untuk setiap 1 pasang sensor:

Gambar 4.14. Rangkaian Sensor Line Follower

88
Gambar 4.15. Cara Kerja Sensor

Ketika transmitter (infrared) memancarkan cahaya ke bidang berwarna putih,


cahaya akan dipantulkan hampir semuanya oleh bidang berwarna putih
tersebut. Sebaliknya, ketika transmitter memancarkan cahaya ke bidang
berwarna gelap atau hitam, maka cahaya akan banyak diserap oleh bidang
gelap tersebut, sehingga cahaya yang sampai ke receiver tinggal sedikit.
Perbedaan cahaya yang diterima oleh receiver akan menyebabkan
hambatan yang berbeda-beda di dalam receiver (photo dioda) tersebut.
Ilustrasinya seperti gambar di bawah ini:

Setelah kita tahu ilustrasi sensor,


tinjau kembali rangkaian sensornya, bisa kita analogikan seperti gambar berikut:

89
Gambar 4.16. Analogi Sensor

Tadi kita tahu kalau hambatan receiver berubah-ubah, jadi otomatis rangkaian
sensor yang bagian kanan bisa kita analogikan seperti gambar. Receiver bisa
kita analogikan dengan resistor variabel, yaitu resistor yang nilai hambatannya
bisa berubah. Otomatis, dengan pembagi tegangan, nilai tegangan di output
rangkaian juga akan berubah-ubah bukan? Jadi, baca putih akan mengeluarkan
output dengan tegangan rendah (sekitar 0 Volt) dan baca hitam akan
mengeluarkan output dengan tegangan tinggi (mendekati Vcc = 5 Volt).

2. Konsep desain pergerakan robot

Berikut contoh pergerakan robot line follower dengan menggunakan dua modul
sensor IR. Gerak pada motor nantinya akan berpengaruh pada pembacaan
sensor. Berikut penjelasannya:

 Ketika kiri dan kanan sensor mendeteksi putih robot bergerak


maju.

90
 Ketika sensor kiri berada pada garis hitam maka robot akan
belok ke kiri.

 Ketika sensor kanan berada pada garis hitam maka robot akan
belok ke kanan.

Dengan contoh diatas dengan menggunakan dua sensor maka bisa kita
aplikasikan dengan 4 sensor yang nantinya terdapat 2 sensor kiri dan 2 sensor
kanan dimana ketika salah satu sensor dari sensor kiri (sensor jauh) terkena
garis maka akan membuat robot kembali dengan cepat karena peputaran motor
kanan yang semakin cepat.

3. Konsep Motor DC

Saatnya membahas tentang IC L293D, untuk lebih jelasnya dapat dibaca di


datasheet. Disini akan di jelaskan sedikit dasar teori tentang IC L293D, tetapi
akan lebih banyak di fokuskan tentang bagaimana cara penggunaannya.

91
Sekarang saya akan membuat sebuah aplikasi yang akan mengatur kecepatan
dan arah putar sebuah motor DC menggunakan IC L293D jika di hubungkan
dengan mikrokontroler Arduino UNO

Dari gambar diatas pin EN1 merupakan sebuah pin yang difungsikan untuk
meng-enable-kan motor DC (ON/OFF motor DC), oleh karena itu pin EN1 dapat
dihubungkan dengan output PWM dari mikrokontroler. Sedangkan pin IN1 dan
IN2 digunakan sebagai input logika untuk mengatur putaran motor DC dan dapat
juga digunakan untuk memberhentikan motor DC secara cepat (fast motor stop).
Untuk lebih jelas tentang pin IN1 dan IN2 dapat dilihat pada tabel berikut.

Tabel 4.1. Tabel Kebenaran Driver Motor

IN1 IN2 KONDISI MOTOR

0 0 Fast motor stop

0 1 Putar searah jarum jam

1 0 Putar berlawanan jarum jam

1 1 Fast motor stop

Jika diinginkan motor berputar searah jarum jam, maka pin mikrokontroler 22
(IN1) diberi logika low dan 23 (IN2) diberi logika high. Sedangkan EN1
dihubungkan dengan output PWM mikrokontroler PORT 3 (PWM OUTPUT).

92
Dalam pengoperasian Line follower dengan satu arah maka IN1 dan IN3
disambungkan dengan vcc dan IN2 dan IN4 dengan masukan digital sehingga
akan mengakibatkan motor hanya memiliki 2 kemungkinan yaitu memutar satu
arah jarum jam dan berhenti. Berikut gambar beserta tabel nya:

IN1/IN3 IN2/IN4 KONDISI MOTOR

1 0 RUN

1 1 STOP

Diagram Blok Line Follower


Dari penjelasan diatas, berikut diagram blok dari robot line follower:

93
Gambar 4.17. Diagram Blok Line Follower

Rangkaian Robot Line Follower


Rangkaian yang akan dibuatkan terlihat lebih sederhana dikarenakan
pembuatan robot line follower ini untuk memfasilitasi kinerja motornya
menggunakan motor driver. Pertama kita hubungkan pin-pin motor driver
pada arduino sesuai kebutuhan dan skema, setelah itu lalu hubungkan
pin motor driverkemotor DC.DanhubungkanpinsensorkepindigitalArduino.

94
Langkah langkahnya:
 Hubungkan kedua Pin VCC Sensor dengan Pin 5V Arduino.
 Hubungkan kedua Pin Gnd Sensor dengan Pin Gnd Arduino.

 Hubungkan Pin Data Sensor Tengah dengan Pin A0 Arduino.


 Hubungkan Pin Data Sensor Kanan1 dengan Pin A1 Arduino.
 Hubungkan Pin Data Sensor Kanan2 dengan Pin A2 Arduino.
 Hubungkan Pin Data Sensor Kiri1 dengan Pin A3 Arduino.
 Hubungkan Pin Data Sensor Kiri2 dengan Pin A4 Arduino.

 Hubungkan Pin En1 Driver DC Motor dengan Pin 5 Arduino.


 Hubungkan Pin En2 Driver DC Motor dengan Pin 6 Arduino.
 Hubungkan Pin In1 In3 Driver DC Motor dengan VCC.
 Hubungkan Pin In2 In4 Driver DC Motor dengan pin D0 dan D1
Arduino
 Hubungkan Pin 5volt Driver DC Motor dengan Pin 5v Arduino.

 Hubungkan Out Kanan Driver DC Motor dengan DC Motor Kanan.


 Hubungkan Out Kiri Driver DC Motor dengan DC Motor Kiri.

Flowchart
Flowchart program robot line follower ini terdiri atas 3 bagian yaitu bagian
utama, bagian membaca dan kalkulasi sensor dan output sensor.
Sebelum ke flowchart alangkah baiknya melihat tabel perhitungan
kecepatan berikut ini:

Tabel 4.2. Desain Kecepatan Motordc

Motor
Nilai/Jumlah i Motor kiri Direction1 Direction2
kanan
0 255 HIGH LOW
i=1 ≤ i=3
i=4 ≤ i=7 0 128 HIGH LOW
i=8 128 128 LOW LOW
i=9 ≤ i=12 128 0 LOW HIGH
i=13 ≤ i=24 255 0 LOW HIGH

95
Nilai i dipengaruhi oleh berapa jumlah i yang mendeteksi garis hitam
dengan perhitungan sensor1=1, sensor2=2, sensor3=4, sensor4=8,
sensor5=12. Kemudian kecepatan maksimal motor 255 dan direction
LOW motor berjalan. Berikut flowchart sesuai dengan tabelnya:

1. Bagian utama 2. Membaca dan kalkulasi nilai sensor

96
3. Output sensor

97
Program Arduino
//Blok Pertama Deklarasi dan Inisialisasi Variable
//Inisialisasi Sensor
int sensorKiri1 = A0;
int sensorKiri2 = A1;
int sensorTengah = A2;
int sensorKanan1 = A3;
int sensorKanan2 = A4;

//Inisialisasi Motor DC
int motorKanan = 11;
int motorKiri = 12;
int direction1 = 2;
int direction2 = 3;

//insialisasi variabel i
int i=0;

//Blok Kedua Seting Input dan Output


void setup()
{
pinMode (sensorKiri1,INPUT);
pinMode (sensorKiri2,INPUT);
pinMode (sensorTengah,INPUT);
pinMode (sensorKanan1,INPUT);
pinMode (sensorKanan2,INPUT);

pinMode (motorKanan,OUTPUT);
pinMode (motorKiri,OUTPUT);
pinMode (direction1,OUTPUT);
pinMode (direction2,OUTPUT);
}

//Blok Ketiga Program Utama


void loop()
{
//mengosongkan isi variabel
i=0;

if (digitalRead(A0)==HIGH )
{
i=i+1;}
if (digitalRead(A1)==HIGH )
{
i=i+2;}
if (digitalRead(A2)==HIGH )
{
i=i+4;}
if (digitalRead(A3)==HIGH )
{
i=i+8;}
if (digitalRead(A4)==HIGH )
{
i=i+16;}

98
//----------------------------------------------------------
-----------if ( (i>=1) && (1<=3) )
{
analogWrite (motorKanan,0);
analogWrite (motorKiri,255);
//diberikan high karna low agar posisi putar kanan (jalan
maju)
digitalWrite (direction1,HIGH);
digitalWrite (direction2,LOW);
}
//----------------------------------------------------------
-----------else if ( (i>=4) && (1<=7) )
{
analogWrite (motorKanan,0);
analogWrite (motorKiri,128);
digitalWrite (direction1,HIGH);
digitalWrite (direction2,LOW);
}
//----------------------------------------------------------
-----------else if ( (i>=8) )
{
analogWrite (motorKanan,128);
analogWrite (motorKiri,128);
digitalWrite (direction1,LOW);
digitalWrite (direction2,LOW);
}
//----------------------------------------------------------
-----------else if ( (i>=9) && (1<=12) )
{
analogWrite (motorKanan,128);
analogWrite (motorKiri,0);
digitalWrite (direction1,LOW);
digitalWrite (direction2,HIGH);
}
//----------------------------------------------------------
-----------else if ( (i>=13) && (1<=24) )
{
analogWrite (motorKanan,255);
analogWrite (motorKiri,0);
digitalWrite (direction1,LOW);
digitalWrite (direction2,HIGH);
}

delay(500);
}

99
E. Latihan

Rancanglah kontrol line follower melewati garis yang berupa


persilangan/perempatan dengan menggunakan library PID pada software
Arduino IDE?

F. Rangkuman

Pembuatan robot masih bersifat sederhana, karena masih menggunakan


komponen IC motor driver yang berdiri sendiri atau terpisah dari shield lainnya.
Robot juga didukung oleh motor DC sebagai pendorong putaran roda yang
kecepatannya dikontrol oleh motor driver & Arduino, sensor infrared sederhana
sebagai pembaca garis yang di kontrol oleh Atmega328 dari Arduino. Manfaat
dari pengerjaan kerja proyek ini, diharapkan dapat membantu siswa dalam
memahami bagaimana cara membangun robot line follower dengan
menggunakan microcontroller Atmega328 dari Arduino, motor driver, dan juga
menggunakan sensor-sensor yang diperlukan dalam bentuk komunikasi serial
analog dan/atau digital.

100
KEGIATAN PEMBELAJARAN 5: BOEBOT ROBOT

A. Tujuan

Peserta belajar untuk menggabungkan beberapa disiplin ilmu seperti elektronika,


pemrograman, mekanika dan lain-lain menjadi satu kesatuan kerja proyek
bernama robot BOEBOT. Dalam kegiatan ini dimaksudkan untuk tujuan :

1) Peserta menggunakan dan memprogram pada Mikrokontroler Arduino.


2) Peserta mengetahui dasar-dasar elektronik untuk membuat proyek secara
mandiri.
3) Peserta memahami jenis sensor yang digunakan pada perancangan BOE-
Shield bot.
4) Peserta dapat merancang sistem mekanik dan elektronik sebuah robot.
5) Peserta mampu menyusun software/program pada perancangan BOE-
Shield bot.

B. Indikator Kegiatan Proyek

1) Memahami instruksi pemrograman mikrokontroller pada BOE-Shield bot.


2) Mengkalibrasi Kepekaan sensor ultrasonik untuk mendeteksi objek sekitar
dan BOE-Shield dapat berjalan tanpa menabrak.
3) Merakitan dan memrogram robot BOE-BOT dengan benar sehingga kinerja
robot dapat berjalan seimbang dan sempurna.

C. Uraian Materi

Boe-bot merupakan singkatan dari Board of Education dimana banyak


digunakan di kelas robotik. Terdiri dari sirkuit utama (papan BOE) dan
breadboard, sebuah mikrokontroler p-Basic, dua servo, dan sasis alumunium.

101
Gambar 5.1. Robot BOE-BOT

1. Perakit Komponen BOE-BOT

Pembelajaran kali ini peserta belajar untuk mempelajari prinsip kerja BOE-BOT,
kemudian mengecek kebutuhan alat dan bahan untuk praktik. Selanjutnya
peserta diminta untuk merakit komponen mekanik dan elektronik robot BOE-BOT
dan menguji komponen system secara terintegrasi dan terakhir peserta belajar
untuk memprogram robot whisker dengan menggunakan bahasa C melalui
software Arduino IDE

Persiapkan alat dan bahan berikut untuk merakit komponen-komponen sehingga


membentuk system robot BOE-BOT.

Peralatan :

a. Obeng
b. Kunci pas
c. Tang runcing
d. Robot chassis
e. Standoff, mur, karet grommer
f. Servo dengan putaran kontinyu
g. Roda plastik berlapis karet
h. Bola roda
i. BOE-Shield board

102
Selanjutnya rakitlah chasis robot
BOE-BOT dengan komponen servo

103
Memasang servo pada chassis

104
Memasang wadah baterai pada chassis Memasang roda pada chassis

105
Memasang papan BOE-Shield

106
2. Menguji Manuver Dasar BOE Shield-bot

a. Gerakan maju
Untuk membuat gerakan maju pada robot BOEBOT, maka putaran motor
satu harus dibuat berkebalikan. Hal ini karena pemasangan posisi motor
pada roda saling berlawanan, untuk itu motor kanan harus diputar kiri
sedangkan motor kiri harus diputar kanan.

// Robotics with the BOE Shield - ForwardThreeSeconds


// Make the BOE Shield-Bot roll forward for three seconds, then
stop.

#include <Servo.h> // Include servo


library

Servo servoLeft; // Declare left and


right servos
Servo servoRight;

void setup() // Built-in


initialization block
{
tone(4, 3000, 1000); // Play tone for 1
second
delay(1000); // Delay to finish
tone

107
servoLeft.attach(13); // Attach left signal
to pin 13
servoRight.attach(12); // Attach right
signal to pin 12

// Full speed forward


servoLeft.writeMicroseconds(1700); // Left wheel
counterclockwise
servoRight.writeMicroseconds(1300); // Right wheel
clockwise
delay(3000); // ...for 3 seconds

servoLeft.detach(); // Stop sending servo


signals
servoRight.detach();
}

void loop() // Main loop auto-


repeats
{ // Empty, nothing
needs repeating
}

b. Menyetel Manuver dasar


Cobalah untuk menulis program pada sketch yang menginstruksikan BOE
Shield-Bot untuk berjalan maju dengan kecepatan penuh selama lima belas
detik. Kemudian amati apakah gerakan robot sedikit melenceng ke arah kiri
atau kanan? Gerakan robot yang melenceng dapat disebabkan dua hal yaitu
mekanik yang kurang tepat atau karena kecepatan kedua motor sedikit
berbeda. Jika gerakan melenceng tersebut karena kesalahan mekanik maka
dapat diperbaiki dengan menggunakan obeng atau tang. Akan tetapi jika
gerakan melenceng tersebut dikarenakan perbedaan kecepatan anatara
kedua motor, maka hal tersebut dapat diperbaiki dengan menyesuaikan
kecepatan kedua motor dengan mengubah program pada mikrokontroller

108
c. Menyesuaikan kecepatan Servo untuk meluruskan jalan BOE
Shield-Bot
Jika gerakan BOE Shield-Bot melenceng dikarenakan kecepatan kedua
motor berbeda, maka kita dapat merubah program untuk memperlambat
roda yang lebih cepat. Ingat dari grafik kurva transfer servo bahwa Anda
memiliki kontrol kecepatan terbaik atas servo di kisaran 1400-1600 µs.

// Robotics with the BOE Shield - ForwardTenSeconds


// Make the BOE Shield-Bot roll forward for ten seconds, then
stop.

#include <Servo.h> // Include servo


library

Servo servoLeft; // Declare left and


right servos
Servo servoRight;

void setup() // Built-in


initialization block
{
tone(4, 3000, 1000); // Play tone for 1
second
delay(1000); // Delay to finish
tone

servoLeft.attach(13); // Attach left signal


to pin 13
servoRight.attach(12); // Attach right
signal to pin 12

// Full speed forward


servoLeft.writeMicroseconds(1700); // Left wheel
counterclockwise
servoRight.writeMicroseconds(1300); // Right wheel
clockwise
delay(10000); // ...for 10 seconds

servoLeft.detach(); // Stop sending servo


signals

109
servoRight.detach();
}

void loop() // Main loop auto-


repeats
{ // Empty, nothing
needs
}

3. Menghitung Jarak

Dalam banyak dunia Robotika, semakin presisi navigasi robot berarti nilai yang
dihasilkan akan lebih baik. Dalam proyek Robotika sederhana sering kali
dijumpai tugas untuk membuat robot menuju ke suatu lokasi yang telah
ditentukan dan kemudian kembali ke tempat
semula.

>> Cara menghitung untuk BOE-Shield

110
// Robotics with the BOE Shield - ForwardOneSecond
// Make the BOE Shield-Bot roll forward for one seconds, then
stop.

#include <Servo.h> // Include servo


library

Servo servoLeft; // Declare left and


right servos
Servo servoRight;

void setup() // Built-in


initialization block
{
tone(4, 3000, 1000); // Play tone for 1
second
delay(1000); // Delay to finish
tone

servoLeft.attach(13); // Attach left signal


to pin 13
servoRight.attach(12); // Attach right
signal to pin 12
// Full speed forward
servoLeft.writeMicroseconds(1700); // Left wheel
counterclockwise
servoRight.writeMicroseconds(1300); // Right wheel
clockwise
delay(1000); // ...for 1 second

111
servoLeft.detach(); // Stop sending servo
signals
servoRight.detach();
}

void loop() // Main loop auto-


repeats
{ // Empty, nothing
needs
}

4. Menjalankan Manuver

Diagram di bawah menunjukkan contoh tentang bagaimana meningkatkan


kecepatan sampai dengan kecepatan penuh. Untuk loop menyatakan sebuah
variabel int bernama “speed”, melakukan perulangan hingga 50 kali ( kelipatan 2
dari 0 hingga 100). Dengan masing-masing pengulangan loop, nilai kecepatan
meningkat 2 satuan karena sintaks + = 2 . Kecepatan robot dipengaruhi variable
“speed” dalam setiap panggilan “writeMicroseconds” setiap kali untuk mengulang
loop. Delay 20 ms pada setiap perulangan akan membuat program mengulangi
di rentang 50 kali per detik. Artinya dibutuhkan 100 kali perulangan program
menambahkan kecepatan dalam 1 detik, dan pada saat itu, kedua servos akan
melaju dengan kecepatan penuh.

Mari kita lihat proses loop pada diagram tersebut

a. Pertama jalan: variable “speed” adalah 0, sehingga kedua panggilan


writeMicroseconds berakhir dengan parameter 1500.

112
b. Perulangan kedua: variable “speed” adalah 2, jadi kita memiliki
servoLeft.writeMicroseconds(1502) dan
servoRight.writeMicroseconds(1498).
c. Perulangan ketiga: variable “speed” adalah 4, jadi kita memiliki
servoLeft.writeMicroseconds(1504) dan
servoRight.writeMicroseconds(1496).

// Robotics with the BOE Shield - StartAndStopWithRamping


// Ramp up, go forward, ramp down.

#include <Servo.h> // Include servo


library

Servo servoLeft; // Declare left and


right servos
Servo servoRight;

void setup() // Built-in


initialization block
{
tone(4, 3000, 1000); // Play tone for 1
second
delay(1000); // Delay to finish tone

servoLeft.attach(13); // Attach left signal


to pin 13
servoRight.attach(12); // Attach right signal
to pin 12

for(int speed = 0; speed <= 100; speed += 2 // Ramp up to full


speed.
{
servoLeft.writeMicroseconds(1500+speed); // us =
1500,1502,...1598,1600
servoRight.writeMicroseconds(1500-speed); // us =
1500,1498,...1402,1400
delay(20); // 20 ms at each
speed
}

113
delay(1500); // Full speed for
1.5 seconds

for(int speed = 100; speed >= 0; speed -= 2) // full speed to


stop
{
servoLeft.writeMicroseconds(1500+speed); // us =
1500,1502,...1598,1600
servoRight.writeMicroseconds(1500-speed); // us =
1500,1498,...1402,1400
delay(20); // 20 ms at each
speed
}

servoLeft.detach(); // Stop sending


servo signals
servoRight.detach();
}

void loop() // Main loop auto-


repeats
{ // Empty, nothing
to repeat
}

114
5. Menyederhanakan navigasi dengan fungsi

Salah satu cara untuk memudahkan untuk menjalankan program manuver


adalah dengan membuat fungsi sub program(). BOE Shield-Bot melakukan
manuver untuk menghindari rintangan dengan mengeksekusi sub program()
manuver tersebut.

Fungsi setup dan loop di dalam bahasa C pada Arduino adalah komponen
utama, tapi Anda dapat menambahkan lebih banyak fungsi untuk melakukan
tugas-tugas tertentu dengan membuat program bagian berupa sub program().
Pembelajaran kali ini memperkenalkan bagaimana menambahkan fungsi sub
program untuk mengeksekusi program menjalan BOE BOT.

// Robotics with the BOE Shield – SimpleFunctionCall


// This sketch demonstrates a simple function call.

void setup() {
Serial.begin(9600);

Serial.println("Before example function call.");


delay(1000);

example(); // This is the function


call

Serial.println("After example function call.");


delay(1000);
}

void loop() {
}

void example() // This is the function


{
Serial.println("During example function call.");
delay(1000);
}

115
6. Fungsi Manuver Kustom

Perhatikan aturan-aturan untuk speedLeft dan speedRight di bawah ini. Sub


program maneuver memiliki tiga variabel komponen. void maneuver(int
speedLeft, int speedRight, int msTime), variable speedLeft adalah variable
untuk mengatur laju putaran motor kiri, variable speedRight untuk mengatur laju
putaran motor kanan dan variable msTime untuk mengatur lama waktu program
berjalan. Perhatikan aturan penulisan variable tersebut dibawah ini:

a. Nilai positif untuk mengatur gerak maju robot


b. Nilai negatif untuk mengatur gerak mundur robot
c. 200 untuk kecepatan penuh maju ke depan
d. -200 untuk kecepatan penuh mundur ke belakang
e. 0 untuk berhenti
f. 100 sampai -100 rentang untuk kendali linier merubah kecepatan

Aturan untuk msTime adalah :

a. Nilai positif pada ms untuk menjalankan manuver


b. -1 untuk menonaktifkan sinyal servo

Berikut adalah contoh fungsi untuk maju-mundur-kiri-kanan-berhenti

maneuver(200, 200, 2000); // maju 2 detik


maneuver(-200, 200, 600); // kiri 0.6 detik
maneuver(200, -200, 600); // kanan 0.6 detik
maneuver(-200, -200, 2000); // mundur 2 detik
maneuver(0, 0, -1); // Disable servos

// Robotics with the BOE Shield - TestManeuverFunction


// Move forward, left, right, then backward with maneuver
function.

#include <Servo.h> // Include servo


library

Servo servoLeft; // Declare left and


right servos

116
Servo servoRight;

void setup() // Built-in


initialization block
{
tone(4, 3000, 1000); // Play tone for 1
second
delay(1000); // Delay to finish
tone

servoLeft.attach(13); // Attach left signal


to pin 13
servoRight.attach(12); // Attach right
signal to pin 12

maneuver(200, 200, 2000); // Forward 2 seconds


maneuver(-200, 200, 600); // Left 0.6 seconds
maneuver(200, -200, 600); // Right 0.6 seconds
maneuver(-200, -200, 2000); // Backward 2 seconds
maneuver(0, 0, -1); // Disable servos
}

void loop() // Main loop auto-


repeats
{ // Empty,
}

void maneuver(int speedLeft, int speedRight, int msTime)


{
// speedLeft, speedRight ranges: Backward Linear Stop
Linear Forward
// -200 -
100......0......100 200
servoLeft.writeMicroseconds(1500 + speedLeft); // Set Left
servo speed
servoRight.writeMicroseconds(1500 - speedRight); // Set right
servo speed
if(msTime==-1) // if msTime =
-1
{

117
servoLeft.detach(); // Stop servo
signals
servoRight.detach();
}
delay(msTime); // Delay for
msTime

D. Aktifitas Pembelajaran

Pembelajaran diarahkan untuk mencapai kompetensi yang disyaratkan dalam


IPK standar kompetensi guru dan sebagai proses pengembangan potensi dan
pembangunan karakter setiap peserta diklat, yaitu memberikan kesempatan
kepada peserta diklat untuk mengembangkan potensi menjadi kemampuan yang
semakin lama semakin meningkat dalam sikap (spiritual dan sosial),
pengetahuan, dan keterampilan.

Setiap tahapan pembelajaran dikondisikan adanya proses interaksi antar peserta


diklat, antara peserta diklat dengan widyaiswara dan sumber belajar.

Pelaksanaan pembelajaran dilakukan melalui pembelajaran langsung, yaitu


peserta diklat melakukan kegiatan:

1. Mengamati dengan indra meliputi membaca uraian materi, mendengar


penjelasan widyaiswara pengampu materi rekayasa teknik robotika,
menyimak permasalahan terkait dengan topik kegiatan pembelajaran.

2. Membuat dan mengajukan pertanyaan terkait dengan informasi yang belum


dipahami atau perlu klarifikasi.

3. Mengeksplorasi melalui diskusi kelompok dan membaca sumber lain.

4. Mengolah informasi yang sudah dikumpulkan yaitu menganalisis data dalam


bentuk membuat kategori, mengasosiasi atau menghubungkan
fenomena/informasi yang terkait dan menyimpulkan

5. Menyajikan laporan yaitu menyusun laporan tertulis meliputi proses, hasil,


dan kesimpulan.

118
E. Latihan / Tugas

1. Buatlah perintah bagaimana BOE-Shield bot mundur dengan kecepatan


penuh selama 2,5 detik
2. Bagaimana membuat BOE-Shield bot jalan maju, kemudian berputar-putar di
tempat lalu kemudian jalan lurus lagi
3. Setelah dlakukan percobaan, servo memerlukan waktu 1,2 detik untuk belok
memutar 180o. Dengan informasi ini, buatlah BOE-Shield bot dengan
putaran 30o, 45o dan 60o

F. Rangkuman

Pengaturan navigasi robot BOEBOT mengajarkan peserta didik untuk


bereksperimen dengan berbagai macam strategi pemrograman rekayasa dan
keterampilan Robotika antara lain :

1. Programming

a. Menyederhanakan navigasi dengan menciptakan fungsi sub program


bagian “maneuver” dan bagaimana memanggil fungsi-fungsi tersebut.
b. Menggunakan perulangan dan menghitung langkah tahap-pertahapan
perulangan dan diimplementasikan pada program maneuver.
c. Bagaimana variabel lokal dapat dibuat sebagai parameter dalam
deklarasi fungsi
d. Bagaimana menginisialisasi tipe data int dan char array serta
menggunakannya pada pemrograman mikrokontroller Arduino
e. Bagaimana mengelola program aliran kontrol, menggunakan do-while
dan switch/case
f. Cara menggunakan operator increment (++) dalam loop bersyarat
g. Cara menggunakan operator tidak-sama dengan (! =) sebagai kondisi
dalam sebuah loop

2. Kemampuan Robotik

a. Bagaimana mengatur gerak robot dengan mengendalikan kecepatan


roda dan arah putarannya.

119
b. Mengenali perbedaan perubahan kecepatan secara bertahap, berbelok
pivot dan berputar-di-tempat, serta mengatur kecepatan gerak robot.
c. Menghitung langkah gerak putaran roda dalam konteks navigasi entry-
level Robotika
d. Mengendalikan robot manuver memutar ke sudut tertentu dan bergerak
dalam waktu tertentu
e. Kompensasi varians hardware dengan menyesuaikan kecepatan servo
untuk gerakan lurus

3. Kemampuan Teknis

a. Membuat pengamatan dan pengukuran untuk memperoleh konstanta


rumus sederhana yang mencirikan hubungan sebab-akibat antara
sistem input dan output sistem.
b. Perbedaan antara penyesuaian perangkat keras dan penyesuaian
perangkat lunak
c. Uji proses berulang-ulang, dan menggunakannya untuk pengujian
penyesuaian perangkat lunak

120
KEGIATAN PEMBELAJARAN 6: ROBOT QUAD
CRAWLER

A. Tujuan

Adapun tujuan dari kegiatan pembelajaran ini adalah:


1. Peserta mengetahui cara pembuatan robot quad crawler.
2. Peserta mengetahui proses kerja dari robot quad crawler.
3. Peserta dapat menghitung sudut kaki robot crawler.
4. Peserta dapat memprogram koordinasi gerak kaki robot crawler

B. Indikator Pencapaian Kompetensi

Adapun indikator dari kegiatan pembelajaran ini adalah:


1. Menjalankan Quad crawler berdasar instruksi program yang telah di
downloadkan ke dalam control robot.
2. Mendesain program yang efisien dan mudah dipahami.
3. Merakit robot quad crawler yang dapat berjalan dengan halus.

C. Uraian Materi

1. Perakitan Dasar Mekanik

Dalam mendesain robot quad crawler terlebih dahulu siapkan beberapa


komponen sebagai berikut :
Motor servo DC 4 buah
Rangka chasis quad crawler 1 set
Set kaki quad crawler 4 set
Arduino mega2560 1 buah
Kabel dan jumper secukupnya

121
Gambar 6.1. Komponen robot quad crawler

a. Membangun Kaki Kiri depan

Catatan: Perhatikan orientasi dari


setiap bagian kaki, kaki kiri & kanan
akan terlihat sedikit berbeda. Semua
sekrup, ring dan komponen lain
tersedia pada set plastic yang telah
disediakan oleh manufaktur. (jika
saudara membangun secara mandiri,
maka dapat menyesuaikan). Pastikan
semua komponen kaki kiri depan
telah tersambung antara mekanik,
servo dan pengikatnya.
Gambar 6.2. Kaki kiri depan terakit

122
b. Membangun kaki kanan depan
Proses merakit kaki kanan adalah
sama dengan kaki kiri; yang
membedakan hanya orientasi nya
saja. Perhatikan orientasi kaki depan
kanan dari setiap bagian pada saat
merakit.
Gambar 6.3. Kaki kanan depan
terakit

c. Kaki yang telah terakit


Gambar disamping memperlihatkan
bagian kaki depan sisi kanan dan sisi
kiri setelah selesai dirakit. Untuk
merakit kaki belakang lanjutkan
dengan cara yang sama dengan
ketika merakit kaki bagian depan.

Gambar 6.4. Rakitan kaki kanan kiri


depan
d. Memasang Kaki padachasis
Selanjutnya silahkan memasang
servos pada sudut 45 derajat ke
setiap bagian dari chasis

Gambar 6.5. Merakit kaki kiri depan pada


chasis

123
e. Prototype Setelah Jadi

Gambar 6.6. Robot quad crawler yang telah terakit

2. Implementasi rangkaian mekanik

Robot memiliki empat buah kaki dengan masing masing memiliki tiga derajad
kebebasan. Mekanik robot dipilih dari bahan plastic akrilik karena ringan, kuat,
dan mudah dibentuk.

Gambar 6.7. Desain Mekanik. robot dilihat dari depan(a), robot dilihat dari atas (b)

a. Mencari sudut pada ruas kaki


Apabila posisi yang diinginkan adalah x, y, z dengan nilai panjang dari a, b,
n, m, diketahui maka besarnya sudutdapat dicari dengan analisa
trigonometri sebagai berikut:

124

Gambar 6.8. Analisa pada bidang horizontal (a), dan pada bidang vertikal(b)

Dengan melihat gambar 5a dapat dicari nilai pada bidang horizontal dengan
persamaan-persamaan pada di bawah ini:

besar sudut atan (xf / yf) (1)

panjang r adalah

r = (xf2+yf2)xf / cosyf / sin    

nilai sudut asin (m/r) (3)

sudut 900 – (      

maka besar n+c = r cos (     

c = r cos (n. (6)

Sudut  adalah sudut yang yang harus dibentuk oleh motor pada body (join
N) robot.

Sedangkan ada bidang vertikal, dengan melihat gambar 5b dapat dihitung


nilai dari persamaan-persamaan di bawah ini:

besar sudut atan (zf / c) (7)

panjang d adalah

d = (zf2+c2)c coszf sin    

125
Dengan memakai aturan cosinus maka dapat dihitung besar sudut sebagai

acos [ ( b2 + d2 - a2 ) / ( 2bd ) ] (9)

Sudut yang harus dibentuk sumbu pada bahu (joint B) adalah

 = 900 –(). (10)

Sedangkan sudut yang harus dibentuk sumbu pada siku (joint A) adalah
(dengan aturan cosinus)

acos [ ( a2 + b2 - d2 ) / ( 2ab ) ] (11)

b. Rotasi pada sumbu x

a b

Gambar 6.9. Peletakan robot pada diagram Cartesian (a), salah satu kaki
robot diputar sebesar dengan sumbu rotasi x (b).

Apabila titik yang merupakan koordinat kaki (x1, y1, z1) dirotasikan sebesar
dengan poros rotasi adalah garis (x, 0, 0) maka perhitungan koordinat
yang baru adalah

 = atan (z1/y1) (12)

r = (z12+y12) (13)

126
x’1 = x1 (14)

y’1 = r sin (

 (z12+y12) sin (atan (z1/y1)    

z’1 = r cos (

 = (z12+y12) cos (atan (z1/y1)    

Apabila nilai y, dan z dari poros rotasi tidak sama dengan 0,0 namun
memiliki nilai sebesar ys, zs maka

 = atan ((z1-zs)/ (y1-ys)) (17)

r = [(z1-zs)2+(y1-ys)2] (18)

x’1 = x1 (19)

y’1 = ys + r sin (      

ys + [(z1-zs)2+(y1-ys)2] sin {atan [ (z1-zs)/ (y1-ys)]+

z’1 = zs + r cos (      

 zs + [(z1-zs)2+(y1-ys)2] cos {atan [(z1-zs)/ (y1-ys)+

c. Rotasi pada sumbu y


Apabila titik yang merupakan koordinat kaki (x1, y1, z1) dirotasikan
sebesardengan poros rotasi rotasi adalah garis (xs, y, zs) maka dengan
teknik yang sama pada perhitungan rotasi pada sumbu x perhitungan
koordinat yang

x’1 = xs + ((x1-xs)2+(z1-zs)2) sin { atan [(z1-zs)/(x1-xs)]+ 

y'1 = y1 (23)

z’1 = zs + ((x1-xs)2+(z1-zs)2) cos { atan [(z1-zs)/(x1-xs)]+ 

127

d. Rotasi pada sumbu z


Apabila titik yang merupakan koordinat kaki (x1, y1, z1) dirotasikan
sebesardengan poros rotasi rotasi adalah garis (xs, ys,z) maka
perhitungan koordinat yang baru adalah

x’1 xs + ((x1-xs)2+(y1-ys)2) sin { atan [(y1-ys)/(x1-xs)]+  

y’1  ys + ((x1-xs)2+(y1-ys)2) cos { atan [(y1-ys)/(x1-xs)]+  

z’1= z’1 (27)

e. Translasi lengan pada sumbu x, y, z

Gambar 6.10. Kaki digeser sebesar (x, y, z)

Apabila titik yang merupakan koordinat kaki (x1, y1, z1) ditranlasikan
sebesar (x, y, z) maka koordinat yang baru adalah

x’1 = x1 +x
(28)

y’1 = y1 +y
(29)

z’1 = z1 +z
(30)

128
Perhitungan di atas merupakan perhitungan dasar, namun begitu pemberian
nilai (x1, y1, z1) tidak bisa sembarangan karena pergerakan lengan juga
dibatasi oleh daya jangkau dari lengan (workspace), serta kemungkinan
tabrakan dengan material lain, sehingga perlu diberikan batasan atau jalan
keluar lain bila hal ini terjadi.

3. Implementasi Rangkaian Elektronik

Secara elektronik robot terdiri dari 12 motor DC servo sebagai actuator dengan
masing masing kaki terdiri dari 3 motor DC servo, sebuah IC mikrokontroler tipe
ARM, sebuah port PS2, dan sebuah port UART sebagai interface ke dunia luar,
sensor kemiringan sebagi feedback kestabilan posisi robot dan catu daya berupa
switchingregulator untuk mencatu sistem.

Motor Motor Motor Motor


Servo Servo Servo Servo
1 2 3 12

CATU
DAYA MICROCONTROLLER UART

sensor PS2
kemiringan

Gambar 6.11. Desain blok sistem

129
D. AKTIFITAS PEMBELAJARAN

Realisasi Algoritma Locomotion

Gambar 6.12. workspace keempat lengan robot

Algoritma locomotion yang akan dipakai secara garis besar sebagai berikut, robot
pertama-tama akan menentukan urutan pergerakan kaki disesuaikan dengan
arah hadap robot dan arah pergerakan robot (dalam kerangka Cartesian).
Langkah berikutnya adalah memberikan nilai koordinat set poin pada masing
masing lengan dengan memperhitungkan besar dan arah perpindahan yang
akan dilakukan. Dari sini kemudian diperkirakan apakah posisi lengan masih
berada pada luasan workspace atau tidak. Luasan workspace bisa dilihat di
gambar 6.12, sebagai luasan seperempat lingkaran yang diarsir. Hal ini dipakai
untuk menentukan perlu tidaknya perubahan kondisi lengan, apabila ternyata
lengan berada diluar jangkauan workspace, ganti posisi set poin lengan.

Point paling penting dari algoritma ini adalah robot akan melakukan simulasi
terlebih dahulu untuk menguji kestabilan urutan sebelum memutuskan
melakukan langkah yang diharapkan. Pengujian kestabilan dilakukan secara
perhitungan matematis dengan cara seolah-olah salah satu kakinya diangkat.
Robot kemudian akan mencari skenario urutan langkah aman sampai kondisi
yang diharapkan tepenuhi. Apabila dalam simulasi pertama ternyata gagal
karena syarat kestabilan tidak terpenuhi, robot akan mencari alternatif lain
dengan cara mengubah urutan dan melakukan simulasi kembali sampai kondisi

130
akhir yang diharapkan terpenuhi dan tetap dalam kondisi stabil. Apabila hal ini
tercapai, robot akan merealisasikan hasil akhir ini dengan benar-benar
melakukan langkah sesuai dengan urutan simulasi. Proses simulasi dilakukan
sampai beberapa kali, dan apabila ternyata sampai batas akhir tidak diperoleh
penyelesaian, robot akan bergerak translasi untuk memindahkan pusat massa ke
daerah lain yang lebih aman dan melakukan urutan diatas kembali. Diagram alir
penjelasan ini dapat dilihat pada gambar 6.13 dan gambar 6.14.

Gambar 6.13. Diagram alir untuk gerak Gambar 6.14. Diagram alir
translasi untuk melakukan langkah

131
Penjelasan mengenai algoritma simulasi dapat dilihat pada gambar 6.15. Di sini
robot akan melangkah kedepan dengan konfigurasi awal seperti gambar 6.15.a .

Angka-angka pada lengan menunjukkan urutan jadwal apabila lengan tersebut


dipindah, sedangkan lengan yang benar-benar akan melangkah menuju
koordinat baru adalah lengan dengan urutan dua dan tiga, maka lengan yang
harus diangkat pertama adalah lengan dua , kemudian lengan tiga. Namun pada
saat lengan dua diangkat, robot dalam kondisi tidak stabil (bisa dilihat di gambar
6.15.a) , sehingga apabila ini tetap dilakukan, robot akan terjatuh.

Oleh karena itu robot akan mengkalkulasi skenario urutan pengangkatan ini
sehingga robot dapat berpindah tanpa terjatuh. apabila salah satu kaki diangkat
kodisi robot tidak stabil ( perhitungan hanya dilakukan dalam simulasi tanpa
benar benar menggerakkkan lengan) maka robot akan mencari urutan
dibawahnya (urutan satu) untuk diposisikan mendekati lengan tersebut( urutan
dua) dengan tujuan menjaga kestabilan saat lengan tersebut diangkat. namun
sebelum mengangkat urutan satu robot juga harus mempertimbangkan kondisi
kestabilan saat lengan ini di angkat. apabila ternyata labil, robot akan melihat
kaki ke empat untuk diproses. Namun pada gambar robot cukup stabil bila kaki
satu diangkat (dilihat di gambar 15.b), maka kaki satu akan diangkat (masih
dalam simulasi) dan diletakkan mendekat ke kaki dua. dengan kondisi yang baru
ini, robot akan stabil bila kaki dua diangkat (gambar 15.c), maka kaki dua akan
diangkat (dalam simulasi) dan diletakkan ke posisi yang baru.

a b c d

132
e

Gambar 6. 15 Urutan skenario gerakan kaki

Secara sederhana apabila hanya lengan tiga yang akan dipindah maka dapat
dijelaskan sebagai berikut cek kestabilan lengan tiga, bila stabil angkat lengan
ini, bila tidak stabil, dengan urutan ke bawah, cek kestabilan lengan dua dan
kestabilanya, lalu lengan satu, apabila lengan 1 ternyata stabil diangkat,
posisikan lengan satu mendekati lengan dua , kemudian posisikan lengan dua
mendekati lengan tiga, dan baru lengan tiga dapat diangkat. namun bila dengan
urutan ini tidak mendapatkan kondisi stabil, ubah urutan ke atas dengan
mengecek kondisi kestabilan lengan empat lalu kondisi lengan satu. Proses ini
dilakukan dengan teknik recursif untuk mengurangi kompleksitas yang mungkin
ditimbulkan.

Program

#include <Servo.h>

#define rightFront 1
#define rightBack 2
#define leftFront 3
#define leftBack 4

double coxa = 1.619;


double femur = 2;
double tibia = 4.664;

double pi = 3.14;

//The following variables determine how wide the legs are spread
from each //otherdefault postion for Y

133
double centerY = 4;
//default postion for X
double centerX = 3;

double xVal=-pi/4;
double RFx2,RFy2,RFz2;

//These are almost always the current position of the quarduped's


leg. double RFx,RFy,RFz;
double RBx,RBy,RBz;
double LFx,LFy,LFz;
double LBx,LBy,LBz;

//Right Front Servos (1)


Servo RF0;
Servo RF1;
Servo RF2;

//Right Back Servos (2)


Servo RB0;
Servo RB1;
Servo RB2;

//Left Front Servos (3)


Servo LF0;
Servo LF1;
Servo LF2;

//Left Back Servos (4)


Servo LB0;
Servo LB1;
Servo LB2;

unsigned long tNow = 0;


unsigned long tOld = 0;

134
unsigned long tNowSM = 0;
unsigned long tOldSM = 0;

unsigned long tNow1 = 0;


unsigned long tOld1 = 0;

//counters
int j = 0;
int counter = 0;

char inByte;

void setup(){
//attach all the servos
RB0.attach(7);
RB1.attach(6);
RB2.attach(5);

RF0.attach(8);
RF1.attach(9);
RF2.attach(13);

LB0.attach(10);
LB1.attach(11);
LB2.attach(12);

LF0.attach(2);
LF1.attach(3);
LF2.attach(4);

Serial.begin(9600);

//Starting position at power up


fullMove(0,0,4);
}

void loop(){

135
//Checks to see if there is new serial data
if(Serial.available()){
inByte = Serial.read();
Serial.println(inByte);
}
//moves the robot body around in a circle
if(inByte== 'a'){
around(1.5,3);
else if(inByte=='c'){
fullMove(0,0,4);
}
}

//Move a leg from current position to new position smoothly by


using small //angle chages broken up into "steps" every t1
milliseconds

void smoothMove(int servoNumber, double x, double y, double z, int


t1, int steps){

//RF
if(servoNumber == 1){
//how big each step is
double dx = (x-RFx)/steps;
double dy = (y-RFy)/steps;
double dz = (z-RFz)/steps;

//moves the leg along each axis by the corresponding delta, waits
t1 then //repeats

for(int i=0;i<=steps;i++){
RFx+=dx;
RFy+=dy;
RFz+=dz;
moveServos2RF(RFx,RFy,RFz);
delay(t1);
}
}

136
//RB
else if(servoNumber == 2)
{
double dx = (x-RBx)/steps;
double dy = (y-RBy)/steps;
double dz = (z-RBz)/steps;
for(int i=0;i<=steps;i++){
RBx+=dx;
RBy+=dy;
RBz+=dz;
moveServos2RB(RBx,RBy,RBz);
delay(t1);
}
}

//LF
if(servoNumber == 3)
{
double dx = (x-LFx)/steps;
double dy = (y-LFy)/steps;
double dz = (z-LFz)/steps;
for(int i=0;i<=steps;i++){
LFx+=dx;
LFy+=dy;
LFz+=dz;
moveServos2LF(LFx,LFy,LFz);
delay(t1);
}
}

//LB
else if(servoNumber == 4)
{
double dx = (x-LBx)/steps;
double dy = (y-LBy)/steps;
double dz = (z-LBz)/steps;
for(int i=0;i<=steps;i++){

137
LBx+=dx;
LBy+=dy;
LBz+=dz;
moveServos2LB(LBx,LBy,LBz);
delay(t1);
}
}
else if(servoNumber == 0){

}
}

//Moves the entire robot body to position x,y,z. Note this results
in very //jerky movements

void fullMove(double x, double y, double z){

double rightY = centerY-y;


double leftY = centerY+y;

double frontX=x-centerX;
double backX=x+centerX;

RFx=x-centerX;
RFy=centerY-y;
RFz=z;

RBx=x+centerX;
RBy=centerY-y;
RBz=z;

LFx=x-centerX;
LFy=centerY+y;
LFz=z;

LBx=x+centerX;
LBy=centerY+y;

138
LBz=z;

moveServosRF(gamma(RFx,RFy,RFz),alpha(RFx,RFy,RFz),beta(RFx,RFy,RF
z));

moveServosRB(gamma(RBx,RBy,RBz),alpha(RBx,RBy,RBz),beta(RBx,RBy,RB
z));

moveServosLF(gamma(LFx,LFy,LFz),alpha(LFx,LFy,LFz),beta(LFx,LFy,LF
z));

moveServosLB(gamma(LBx,LBy,LBz),alpha(LBx,LBy,LBz),beta(LBx,LBy,LB
z));

/**Move Functions**/

//The following "moveServos2XX" move the tip of the corresponding


legs to the //points x,y,z. This probably could have been combined
with the
//"moveServosXX" functions but were written after so they simply
call those //functions.

void moveServos2RB(double x, double y, double z){


//
RBx=x;
RBy=y;
RBz=z;

moveServosRB(gamma(RBx,RBy,RBz),alpha(RBx,RBy,RBz),beta(RBx,RBy,RB
z));
}

void moveServos2RF(double x, double y, double z){


RFx=x;
RFy=y;
RFz=z;

moveServosRF(gamma(RFx,RFy,RFz),alpha(RFx,RFy,RFz),beta(RFx,RFy,RF
z));

139
}
void moveServos2LB(double x, double y, double z){
LBx=x;
LBy=y;
LBz=z;
// Serial.print("alpha");
// Serial.println(alpha(LBx,LBy,LBz));

moveServosLB(gamma(LBx,LBy,LBz),alpha(LBx,LBy,LBz),beta(LBx,LBy,LB
z));

}
void moveServos2LF(double x, double y, double z){
LFx=x;
LFy=y;
LFz=z;

moveServosLF(gamma(LFx,LFy,LFz),alpha(LFx,LFy,LFz),beta(LFx,LFy,LF
z));
}

//The following "moveServosXX" functions move the servos in one


leg to the //given angles. gamma (g), alpha (a), and beta (b) as
defined in the IK model

void moveServosRB(int g, int a, int b){


//The following calibrations were determined experimentally to get
the //angles to line up with the IK equations
g=(g);
a=(180-a+10);
b=(b+10);

RB0.write(g);
RB1.write(a);
RB2.write(b);
//if out of range
if(g>180||g<0||a>180||a<0||b>180||b<0)
Serial.println("RB error");
// print3(g,a,b);

140
}

//move the joints in the RF servo to angles g, a, and b

void moveServosRF(int g, int a, int b){


//The following calibrations were determined experimentally to get
the //angles to line up with the IK equations
g=(g);
a=(180-a+10);
b=(b+10);

RF0.write(g);
RF1.write(a);
RF2.write(b);
//if out of range
if(g>180||g<0||a>180||a<0||b>180||b<0)
Serial.println("RF error");
}

//move the joints in the LB servo to angles g, a, and b

void moveServosLB(int g, int a, int b){


//The following calibrations were determined experimentally to get
the //angles to line up with the IK equations
g=180-g-10;
a=180-a+5;
b=b+5;
LB0.write(g);
LB1.write(a);
LB2.write(b);

//if out of range


if(g>180||g<0||a>180||a<0||b>180||b<0){
Serial.println("LB error");
}
}

141
//move the joints in the LF servo to angles g, a, and b

void moveServosLF(int g, int a, int b){


//The following calibrations were determined experimentally to get
the //angles to line up with the IK equations
g=180-g+5;
a=180-a-7;
b=b+15;
LF0.write(g);
LF1.write(a);
LF2.write(b);

//if out of range


if(g>180||g<0||a>180||a<0||b>180||b<0)
Serial.println("LF error");
}
/**WORK IN PROGRESS FUNCTIONS**/
//Moves the entire robot body to position x,y,z
void partMove(double x, double y, double z, int legNoMove){

double rightY = centerY-y;


double leftY = centerY+y;

double frontX=x-centerX;
double backX=x+centerX;

if(legNoMove==0){
RFx=x-centerX;
RFy=centerY-y;
RFz=z;

RBx=x+centerX;
RBy=centerY-y;
RBz=z;

LFx=x-centerX;
LFy=centerY+y;

142
LFz=z;

LBx=x+centerX;
LBy=centerY+y;
LBz=z;

moveServosRF(gamma(RFx,RFy,RFz),alpha(RFx,RFy,RFz),beta(RFx,RFy,RF
z));

moveServosRB(gamma(RBx,RBy,RBz),alpha(RBx,RBy,RBz),beta(RBx,RBy,RB
z));

moveServosLF(gamma(LFx,LFy,LFz),alpha(LFx,LFy,LFz),beta(LFx,LFy,LF
z));

moveServosLB(gamma(LBx,LBy,LBz),alpha(LBx,LBy,LBz),beta(LBx,LBy,LB
z));
}
//Move all legs but right front
else if (legNoMove==1){

RBx=x+centerX;
RBy=centerY-y;
RBz=z;

LFx=x-centerX;
LFy=centerY+y;
LFz=z;

LBx=x+centerX;
LBy=centerY+y;
LBz=z;
//
moveServosRF(gamma(RFx,RFy,RFz),alpha(RFx,RFy,RFz),beta(RFx,RFy,RF
z));

moveServosRB(gamma(RBx,RBy,RBz),alpha(RBx,RBy,RBz),beta(RBx,RBy,RB
z));

moveServosLF(gamma(LFx,LFy,LFz),alpha(LFx,LFy,LFz),beta(LFx,LFy,LF
z));

143
moveServosLB(gamma(LBx,LBy,LBz),alpha(LBx,LBy,LBz),beta(LBx,LBy,LB
z));
}

//Move all legs but right back


else if (legNoMove==2){
RFx=x-centerX;
RFy=centerY-y;
RFz=z;

LFx=x-centerX;
LFy=centerY+y;
LFz=z;

LBx=x+centerX;
LBy=centerY+y;
LBz=z;

moveServosRF(gamma(RFx,RFy,RFz),alpha(RFx,RFy,RFz),beta(RFx,RFy,RF
z));
//
moveServosRB(gamma(RBx,RBy,RBz),alpha(RBx,RBy,RBz),beta(RBx,RBy,RB
z));

moveServosLF(gamma(LFx,LFy,LFz),alpha(LFx,LFy,LFz),beta(LFx,LFy,LF
z));

moveServosLB(gamma(LBx,LBy,LBz),alpha(LBx,LBy,LBz),beta(LBx,LBy,LB
z));
}
// Move all legs but left front
else if (legNoMove==3){
RFx=x-centerX;
RFy=centerY-y;
RFz=z;

RBx=x+centerX;
RBy=centerY-y;
RBz=z;

144
LBx=x+centerX;
LBy=centerY+y;
LBz=z;

moveServosRF(gamma(RFx,RFy,RFz),alpha(RFx,RFy,RFz),beta(RFx,RFy,RF
z));

moveServosRB(gamma(RBx,RBy,RBz),alpha(RBx,RBy,RBz),beta(RBx,RBy,RB
z));
//
moveServosLF(gamma(LFx,LFy,LFz),alpha(LFx,LFy,LFz),beta(LFx,LFy,LF
z));

moveServosLB(gamma(LBx,LBy,LBz),alpha(LBx,LBy,LBz),beta(LBx,LBy,LB
z));
}

// Move all legs but left back


else if (legNoMove==4){
RFx=x-centerX;
RFy=centerY-y;
RFz=z;

RBx=x+centerX;
RBy=centerY-y;
RBz=z;

LFx=x-centerX;
LFy=centerY+y;
LFz=z;

moveServosRF(gamma(RFx,RFy,RFz),alpha(RFx,RFy,RFz),beta(RFx,RFy,RF
z));

moveServosRB(gamma(RBx,RBy,RBz),alpha(RBx,RBy,RBz),beta(RBx,RBy,RB
z));

moveServosLF(gamma(LFx,LFy,LFz),alpha(LFx,LFy,LFz),beta(LFx,LFy,LF
z));

145
//
moveServosLB(gamma(LBx,LBy,LBz),alpha(LBx,LBy,LBz),beta(LBx,LBy,LB
z));
}

E. Latihan

Buatlah program mikrokontroller dengan menggunakan arduino agar kaki-kaki


robot bergerak lebih halus/smooth

F. Rangkuman

Pembuatan robot quad crawler cukup mudah tapi membutuhkan ketelitian dan
kesabaran karena mempunyai mekanik yang cukup rumit. Untuk pemrogaman
cukup mudah karena tersediah library pada arduino. Cara kerja robot ini meniru
gerakan hewan bekaki 4. Cara jalan robot disebut Creep - kadang-kadang
dikenal sebagai Crawl Ini juga kadang-kadang disebut Langkah StaticStabil.
Dengan mengamati cara jalan kucing menggunakan langkah ini, mereka dapat
menjaga tubuh mereka sepenuhnya tegak, dan mengangkat setiap kaki tinggi
selama langkah untuk menghindari hambatan.

146
KEGIATAN PEMBELAJARAN 7: ROBOT CERDAS
PEMADAM API

A. Tujuan

Pada kegiatan pembelajaran kali ini diharapkan :

1. Peserta dapatmemahami jenis sensor yang di gunakan pada robot


pemadam api :
a. Sensor Ultrasonic (Sensor Jarak)
b. Sensor UVTron (Sensor pendeteksi api)
c. Sensor Magnetic Compass CMPS03
d. Sensor Garis
2. Peserta dapat mengetahui Rancangan Sistem Robot
a. Rancangan Bentuk Fisik Robot
b. Rancangan Mekanik Robot
c. Rancangan Elektronik Robot (Rangkaian Driver Motor)
3. Peserta dapat mengetahui Rancangan Perangkat Lunak robot
a. Cara membuat flowchart dan algoritma robot
b. Cara memprogram robot dengan menggunakan software Arduino

B. Indikator Kegiatan Praktek

1. Robot pemadam api dapat mengikuti instruksi sesuai program yang telah di
downloadkan ke dalam controller robot.
2. Sensor UVtron dapat mendeteksi adanya titik api dengan baik sesuai
dengan spesifikasi dan datasheet yang ada pada sensor.
3. metode left wall following untuk navigasi dengan bantuan sensor ultrasonik
dapat bekerja dengan baik untuk menunjukkan batas dinding sebagai acuan
untuk track robot.
4. Pemilihan jenis motor DC dan driver nya cocok dan responsive sebagai
penggerak robot.
5. Motor kipas dapat bekerja ketika sensor UVtron sudah mendeteksi sumber
api untuk di padamkan.

147
6. Proses perakitan robot mulai dari perancangan mekanik dan rangkaian
elektronik nya terpasang dengan benar sehingga keseimbangan robot dan
kerja dari rangkaian robot dapat berfungsi dengan baik.

C. Uraian Materi

1. Sensor Ultrasonik

a. Pengertian Sensor Ultrasonik

Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah


besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja
sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara
sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda
dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor
ini menggunakan gelombang ultrasonik (bunyi ultrasonik).

Gelombang ultrasonik adalah gelombang bunyi yang mempunyai frekuensi


sangat tinggi yaitu 20.000 Hz. Bunyi ultrasonik tidak dapat di dengar oleh
telinga manusia. Bunyi ultrasonik dapat didengar oleh anjing, kucing,
kelelawar, dan lumba-lumba. Bunyi ultrasonik nisa merambat melalui zat
padat, cair dan gas. Reflektivitas bunyi ultrasonik di permukaan zat padat
hampir sama dengan reflektivitas bunyi ultrasonik di permukaan zat cair.
Akan tetapi, gelombang bunyi ultrasonik akan diserap oleh tekstil dan busa.

b. Cara Kerja Sensor Ultrasonik

Pada sensor ultrasonik, ultrasonik (umumnya


gelombang ultrasonik berfrekuensi 40kHz) ketika
dibangkitkan melalui sebuah sebuah osilator diterapkan pada
alat yang disebut dengan benda tersebut. Secara umum,
piezoelektrik dengan frekuensi alat ini akan menembakkan
tertentu. Piezoelektrik ini akan gelombang ultrasonik menuju
menghasilkan gelombang suatu area atau suatu target.

148
Setelah gelombang menyentuh
permukaan target, maka target
akan memantulkan kembali
gelombang tersebut.
Gelombang pantulan dari target
akan ditangkap oleh sensor,
kemudian sensor menghitung
selisih antara waktu pengiriman
gelombang dan waktu
gelombang pantul diterima.

Gambar 7.1. Pengiriman gelombang


dan gelombang pantul

149
Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut:

 Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi tertentu dan dengan
durasi waktu tertentu. Sinyal tersebut berfrekuensi diatas 20kHz. Untuk mengukur jarak
benda (sensor jarak), frekuensi yang umum digunakan adalah 40kHz.

 Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan
sekitar 340 m/s. Ketika menumbuk suatu benda, maka sinyal tersebut akan
dipantulkan oleh benda tersebut.

 Setelah gelombang pantulan sampai di alat penerima, maka sinyal tersebut akan
diproses untuk menghitung jarak benda tersebut. Jarak benda dihitung berdasarkan
rumus :

S = 340.t/2

dimana S merupakan jarak antara sensor ultrasonik dengan benda (bidang pantul),
dan t adalah selisih antara waktu pemancaran gelombang oleh transmitter dan waktu
ketika gelombang pantul diterima receiver.

c. Rangkaian Sensor Ultrasonic

Piezoelektrik

Piezoelektrik berfungsi untuk mengubah energi listrik menjadi energi mekanik. Bahan
piezoelektrik adalah material yang memproduksi medan listrik ketika dikenai regangan atau
tekanan mekanis. Sebaliknya, jika medan listrik diterapkan, maka material tersebut akan
mengalami regangan atau tekanan mekanis. Jika rangkaian pengukur beroperasi pada
mode pulsa elemen piezoelektrik yang sama, maka dapat digunakan sebagai transmitter
dan reiceiver. Frekuensi yang ditimbulkan tergantung pada osilatornya yang disesuiakan
frekuensi kerja dari masing-masing transduser. Karena kelebihannya inilah maka tranduser
piezoelektrik lebih sesuai digunakan untuk sensor ultrasonik.

Transmitter

Transmitter adalah sebuah alat yang berfungsi sebagai pemancar gelombang ultrasonik
dengan frekuensi tertentu (misal, sebesar 40 kHz) yang dibangkitkan dari sebuah osilator.
Untuk menghasilkan frekuensi 40 KHz, harus di buat sebuah rangkaian osilator dan
keluaran dari osilator dilanjutkan menuju penguat sinyal. Besarnya frekuensi ditentukan
oleh komponen RLC / kristal tergantung dari disain osilator yang digunakan. Penguat sinyal
akan memberikan sebuah sinyal listrik yang diumpankan ke piezoelektrik dan terjadi reaksi
mekanik sehingga bergetar dan memancarkan gelombang yang sesuai dengan besar
frekuensi pada osilator.

Gambar 7.2. Rangkaian Transmiter Sensor Ultra Sonic

Receiver

Receiver terdiri dari transduser ultrasonik menggunakan bahan piezoelektrik, yang


berfungsi sebagai penerima gelombang pantulan yang berasal dari transmitter yang
dikenakan pada permukaan suatu benda atau gelombang langsung LOS (Line of Sight)
dari transmitter. Oleh karena bahan piezoelektrik memiliki reaksi yang reversible, elemen
keramik akan membangkitkan tegangan listrik pada saat gelombang datang dengan
frekuensi yang resonan dan akan menggetarkan bahan piezoelektrik tersebut.

151
Gambar 7.3. Rangkaian Receiver Sensor Ultra Sonic

d. Jenis Sensor Ultrasonik

Terdapat 2 jenis sensor ultrasonik yang beredar di pasaran yaitu :

 Sensor ultrasonik ping ( parallax )


 Sensor ultrsonik defantech ( SRF 04 ranger )
Sensor jarak ultrasonik ping adalah sensor 40 khz produksi parallax yang banyak
digunakan untuk aplikasi atau kontes robot cerdas. Kelebihan sensor ini adalah hanya
membutuhkan 1 sinyal ( SIG ) selain jalur 5 v dan ground.

Sensor PING mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik (
40 KHz ) selama t = 200 us kemudian mendeteksi pantulannya. Sensor PING
memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroller pengendali
( pulsa trigger dengan tout min 2 us ).

Spesifikasi sensor ultrasonik PING:

- Kisaran pengukuran 3 cm – 3 m
- Input trigger – positive TTL pulse, 2 us min, 5 us tipikal
- Echo hold off 750 us dari of trigger pulse
- Delay before next measurement 200 us
- Brust indikator LED menampilkan aktivitas sensor
Gelombang ini melalui udara dengan kecepatan 344 m/s kemudian mengenai obyek dan
memantul kembali ke sensor. Ping mengeluarkan pulsa output high pada pin SIG setelah
memancarkan gelombang ultrasonik dan setelah gelombang pantulan terdeteksi Ping akan
membuat output low pada pin SIG. Lebar pulsa High (tIN) akan sesuai dengan lama waktu
152
tempuh gelombang ultrasonik untuk 2x jarak ukur dengan obyek. Maka jarak yang diukur
ialah [(tIN s x 344 m/s) : 2] meter.

Sistem minimal mikrokontroller ATMega 8535 dan software basic stamp Editor diperlukan
untuk memprogram mikrokontroller dan mencoba sensor ini. Keluaran dari pin SIG ini yang
dihubungkan ke salah satu port di kit mikrokontroller. Berikut contoh aplikasi sensor PING
pada mikrokontroler BS2, dimana pin SIG terhubung ke pa pin7, dan memberikan catu
daya 5V dan ground. fungsi SIGOUT untukmentrigger ping, sedangkan
fungsi SIGIN digunakan untuk mengukur pulsa yang sesuai dengan jarak dari objek target.

Instalasi Sensor Ultrasonic Ping

Sensor ultrasonic ping akan bekerja jika mendapat suplay tegangan sebesar 5 V DC.
dimana tegangan 5 V DC dihubungkan dengan konektor Vcc dan ground pada sensor.
Untuk konektor SIG dapat dihubungkan dengan mikrokontroler. Konektor SIG adalah
sebagai control sensor ini dalam pendeteksian objek sekaligus pembacaan jarak objek
dengan sensor ini. progamer dapat mensetting sensor ini dengan jarak yang telah
ditentukan sesuai dengan ring deteksi dari sensor ultrasonic ping ini sesuai dengan
kebutuhan penggunaan dari sensor tersebut. Ketika sensor disetting jaraknya maka
dengan jarak yang telah ditentukanlah sensor akan bekerja dalam pendeteksian objek.
Kisaran jarak yang dapat di baca sensor ultrasonic ping ini adalah 3 cm sampai 3 m.

Selain range jarak antara 3 cm sampai 3 m yang mampu dideteksi oleh sensor ultrasonik
ping, sudut pancaran dari sensor jarak ultrasonic ping adalah dari 0o sampai dengan 30o

Salah satu tipe sensor ultrasonic jenis ping ini adalah HC-SR04

HC-SR04 adalah sebuah modul yang berfungsi untuk melakukan pengukuran jarak suatu
benda/ halangan dengan memanfaatkan sinyal suara ultrasonic. Performa yang stabil dan
akurasi yang tinggi dengan harga yang murah merupakan kelebihan dari HC-SR04. Karena
kelebihannya, HC-SR04 banyak dipakai dalam berbagai aplikasi pengukuran jarak.

Pada umumnya, sensor ultrasonic ini berbentuk papan elektronik berukuran kecil yang
dilengkapi dengan beberapa rangkaian elektronik dan dua buah transducer. Transducer
yang pertama berfungsi sebagai transmitter gelombang ultrasonic dan transducer yang
satunya berfungsi sebagai receiver. Pada beberapa produk kadang hanya ditemukan satu
buah transducer yang bertindak sebagai transmitter sekaligus receiver sekaligus.

153
Sensor ini bekerja dengan cara menghasilkan gelombang suara pada frekuensi tinggi yang
kemudian akan segera dipancarkan oleh tranducer yang bertindak sebagai transmitter.
Pantulan gelombang yang mengenai benda di depannya akan di tangkap oleh transducer
yang bertidak sebagai receiver. Dengan mengetahui lamanya waktu antara dipancarkannya
gelombang ultrasonic sampai dengan ditangkap kembali oleh receiver, maka akan
diketahui jarak dari benda yang terdapat di depan sensor tersebut.

Kecepatan suara adalah 340m/detik, lamanya waktu tempuh gelombang ultrasonic


dikalikan kecepatan suara, kemudian dibagi dua akan menghasilkan jarak antara sensor
tersebut dengan benda di depannya.Berikut adalah gambar dari sensor Ultrasonic HC-
SR04.

Gambar 7.4. Sensor Jarak Ultrasonik Devantech SRF04

Sensor jarak merupakan sensor yang wajib ada pada robot terkini. Devantech SRF04 adalah
salah satu sensor jarak yang paling banyak digunakan pada kontes robot di indonesia selain
ping Devantech. SRF04 ultrasonik range finder memberikan informasi jarak dari kisaran 3 cm –
3 m.

Kit ini sangat mudah untuk dirangkai dan membutuhkan sumber daya yang kecil sekali, yang
sangat ideal untuk aplikasi mobil robot pencari jarak ini bekerja dengan cara memancarkan
pulsa suara dengan kecepatan suara ( 0,9 ft/milidetik ).

2. Sensor Api Hamatsu UV TRON R2868

Sensor api Hamamatsu UV Tron R2868 adalah detector ultraviolet yang menggunakan efek
fotolistrik dari logam dan pelipat gandaan efek gas. Cara ini menghasilkan sensitivitas yang

154
sangat sempit 185-260 nm seperti ditunjukkan dalam Gambar 3. Bentuk fisik UV Torn R2868
ditunjukkan dalam Gambar 8.5. Meskipun ukurannya kecil, R2868 memiliki sensitivitas lebar
sudut seperti ditunjukkan dalam Gambar 8.6 dan memiliki respon cepat untuk mendeteksi
ultraviolet dengan radiasi lemah yang

dipancarkan dari api pada jarak lebih dari 5m. R2868 cocok untuk digunakan dalam detektor
api, alarm api dan juga pada deteksi fenomena pelepasan (discharge) yang tak nampak seperti
pelepasan korona tegangan tinggi pada jalur transmisi.

Gambar 7.5. Bentuk fisik UV TRON R2868

Aplikasi R2868 antara lain: detektor api, alarm api, monitor pembakaran pada alat pembakar,
Pemeriksaan kebocoran ultraviolet, Ultraviolet switching. Respon spektrum dan vareasi sumber
cahaya ditunjukkan dalam Gambar 7.7 Rekomendasi pemberian tegangan catu ditunjukkan
dalam Gambar 7.8.

Gambar 7.6. Luasan deteksi titik api sensor UVtron

155
Gambar 7.7. Sensitivitas Sudut

Gambar 7.8. Respon Spektrum Gambar 7.9. Rekomendasi


Pengoperasian Rangkaian

a. Rangkaian Driver UV Tron C3704

Rangkaian Driver UV Tron C3704 memiliki konsumsi arus yang rendah, bagian rangkaian
pemroses sinyal memiliki sensitifitas tinggi untuk mendeteksi ultra violet. Tegangan supplay
yang dipergunakan 5 Volt dan di dalamnya terdapat rangkaian DC to DC converter yang
menghasilkan tegangan keluaran 325 Volt yang dipergunakan untuk men supplay tabung
UV TRON seperti ditunjukkan dalam Gambar 8.10.

156
Gambar 7.10. Diagram Blok Driver UV Tron C3704

Keluaran driver UV Tron C3704 berupa pulsa dengan lebar 10 ms dengan frekuensi sesuai
dengan intensitas ultra violet yang ditangkap.

b. Pengambilan Data

Pengambilan data dilakukan dengan cara menghubungkan sensor UV Tron R2868 dengan
rangkaian driver UV Tron C3704. Keluaran driver UV Tron C3704 diukur dengan
oscilloscope. Lilin diletakkan mulai jarak terdekat hingga terjauh dari sensor seperti
ditunjukkan dalam Gambar 10. Hasil pengambilan data ditunjukkan dalam Gambar 8.11

Gambar 7.11. Sinyal Keluaran Driver UV Tron C3704

c. Pembuatan software

Landasan berfikir dalam proses coding berdasarkan pada karakter sinyal keluaran dari
driver UV Tron C3704 seperti ditunjukkan dalam Gambar 7.11. Durasi (pada kondisi tinggi)
= 10 ms, dan frekuensi tergantung pada intensitas sinar ultra violet yang ditangkap.

157
Semakin kecil intensitasnya frekuensi yang dihasilkan semakin kecil. Keluaran driver UV
Tron C3704 disambungkan ke pin interupsi dari Mikrokontroler.

Gambar 7.12. Konfigurasi Hardware

Interupsi akan ditanggapi oleh Mikrokontroler setiap tepi turun dari keluaran driver UV Tron
C3704 seperti ditunjukkan dalam Gambar 7.12.

Gambar 7.13. Logika Algoritma

Algoritma pemrograman adalah sebagai berikut:

a. Setiap tepi turun dari keluaran driver UV Tron C3704 Mikrokontroler melakukan STOP timer,
pengambilan register TCNT 0 dikali dengan jumlah overflow yang terjadi.
b. Kemudian Mikrokontroler melakukan START timer kembali.
c. Hal ini dilakukan secara periodik jika sensor menangkap api.
d. Jika dalam durasi waktu > dari frekuensi terpanjang (± lilin berjarak 6m dari sensor ) dan
tidak terjadi interupsi,maka dianggap tidak ada api.
e. Isi register TCNT0 dikali dengan jumlah over flow adalah merepresentasikan hasil konversi
dari intensitas sinar ultra violet.
158
3. Rangkaian Sensor Garis

Robot pemadam ini menggunakan sensor garis untuk mengetahui jarak maksimal antara robot
dengan sumber api saat pemadamam api akan dilakukan. Sensor garis yang digunakann pada
robot ini merupakan perpaduan antara LED dengan photodioda, dimana LED sebagai
pemancar dan photodioda sebagai penerima. Interfacing sensor ini dengan mikrokontroler
menggunakan Pin 47 rangkaian skematik sensor garis ini

ditunjukkan pada Gambar 7.14.

Gambar 7.14. Rangkaian Sensor Garis

Pada rangkaian sensor ini output yang di hasilkan dari sensor adalah logika digital 0 dan 1.

4. Motor DC dan driver menggunakan L293D

Motor DC adalah suatu motor penggerak yang dikendalikan dengan arus searah (DC). Bagian
motor DC yang paling penting adalah rotor dan stator, yang termasuk stator adalah badan
motor, sikat-sikat dan inti kutub magnet. Bagian rotor adalah bagian yang berputar dari motor
DC, yang termasuk rotor ialah lilitan jangkar, jangkar, komutator, tali, isolator, poros, bantalan
dan kipas. Bentuk fisik motor DC ditunjukkan pada Gambar 7.15.

159
Gambar 7.15. Bentuk Fisik Motor DC

Motor DC dapat dikelompokkan menjadi 5 macam:

a. Externally-excited DC motor

Motor DC ini kumparan eksitasi dan jangkar tidak terhubung langsung.

b. Series DC motor

Motor DC ini kumparan eksitasi dan jangkarnya terhubung secara seri. Motor ini mempunyai
torsi awa yang besar.

c. Shunt DC motor

Motor DC ini kumparan eksitasi dan jangkarnya dihitung secara pararel (shunt). Motor ini
digunakan untuk kecepatan konstan dan berubahubah.

d. Compound DC motor

Motor DC ini disebut juga cumulatively-compounded DC motor karena konstruksi motor DC


ini memiliki hubungan seri sekaligus shunt dan saling menjumlah.

e. Compounded DC motor

Motor DC ini disebut juga differential-compounded DC motor karena hubungan seri dan
shunt-nya saling berlawanan.

5. LCD 16x2

LCD merupakan salah satu perangkat penampil yang sekarang ini mulai banyak digunakan.
Penampil LCD mulai dirasakan menggantikan fungsi dari penampil CRT (Cathode Ray Tube),
yang sudah berpuluh-puluh tahun digunakan manusia sebagai penampil gambar/textbaik
monokrom (hitam dan putih), maupun yang berwarna. Teknologi LCD memberikan lebih

160
keuntungan dibandingkan dengan teknologi CRT, karena pada dasarnya CRT adalah tabung
triode yang digunakan sebelum transistor ditemukan [13]. Beberapa keuntungan LCD
dibandingkan dengan CRT adalah konsumsi daya yang relatif kecil, lebih ringan, dan tampilan
yang bagus, terlihat pada Gambar 8.16.

LCD memanfaatkan silikon atau galium dalam bentuk kristal cair sebagai pemendar cahaya.
Keunggulan lcd adalah hanya menarik arus yang kecil (beberapa mikro ampere), sehingga alat
atau sistem menjadi portable karena dapat menggunakan catu daya yang kecil. Keunggulan
lainnya adalah tampilan yang diperlihatkan dapat dibaca dengan mudah dibawah terang sinar
matahari. Dibawah sinar cahaya yang remang-remang atau dalam kondisi gelap, sebuah lampu
(berupa led) harus dipasang dibelakang layar tampilan.

Gambar 7.16. Bentuk Fisik LCD 16x2

Operasi dasar pada LCD terdiri dari empat, yaitu instruksi mengaksesproses internal, instruksi
menulis data, instruksi membaca kondisi sibuk, dan instruksi membaca data.

161
D. Aktivitas Pembelajaran

Pada aktifitas pembelajaran kali ini peserta diminta untuk mendesain hardware dan
software untuk membangun system robot cerdas sederhana. Runutan kegiatan berikut
menjelaskan langkah-langkah yang perlu dilalui untuk membuat system robot cerdas
sederhana. Kegiatan desain mekanik, elektronik dan software dapat dijadikan oleh
peserta sebagai bahan persiapan untuk mengajar praktik rekayasa system robotic di
kelas.

Perancangan Sistem Mekanik


Robot pemadam api ini memiliki dimensi panjang 24 cm, lebar 15 cm dan tinggi 17 cm. Body
robot menggunakan bahan dari akrilik setebal 5 mm. body robot dibuat menjadi 3 tingkat yaitu
tingkat dasar untuk gearbox dan roda tank, tingkat pertama untuk peletakan baterai dan tingkat
kedua untuk peletakan sensor-sensor dan minimum sistem robot. Desain body robot pemadam
api ditunjukkan pada Gambar 7.16.

162
Gambar 7.17. Desain 2 Dimensi Robot

Sedangkan gambar untuk desain 3 dimensinya adalah sebagai berikut :

Gambar 7.18. Desain 3 Dimensi Robot

Sistem Blok
Robot pemadam ini memiliki perencanaan perangkat keras sebagai berikut: mikrokontroler
Arduino mega 2560, 3 buah sensor Ping ultrasonik, 1 buah sensor UVTron flame detector, 1
buah LCD 16x2 sebagai penampil pembacaan sensor, 1 buah gearbox dengan 2 buah motor dc
beserta driver L293D dan 1 buah rangkaian kipas untuk memadamkan api. Blok diagram robot
pemadam api ditunjukkan pada Gambar 8.18.

163
Gambar 7.19. Blok diagram robot pemadam api

Rangkaian Keseluruhan Sistem


Rangkaian keseluruhan sistem dari robot pemadam api dapat dibagi menjadi 4 bagian utama
yaitu: bagian minimum sistem mikrokontroler, bagian input, bagian output dan bagian power
supply. Bagian minimum sistem mikrokontroler merupakan bagian dimana input-input dari
sensor akan diproses sesuai program yang digunakan kemudian diteruskan ke bagian output.
Bagian input merupakan sensor-sensor yang digunakan untuk pengambilan data terhadap
lingkungan yang kemudian akan menjadi dasar dari pergerakan robot. Bagian input terdiri dari 3
buah sensor ping ultrasonik, 1 buah sensor UVTron flame detector, dan 1 buah rangkaian
sensor garis. Bagian output terdiri dari 1 buah LCD 16x2 untuk mengetahui hasil pembacaan
sensor, 1 buah motor servo untuk menggerakkan dudukan sensor UVTron 2 buah motor dc
beserta driver-nya dan 1 buah motor dc dengan kipas untuk memadamkan api. Rangkaian
skematik robot pemadam api ditunjukkan pada Gambar 8.19.

164
Gambar 7.20. Rangkaian skematik robot pemadam api

Penjelasan Konfigurasi I/O Robot Pemadam Api

 Pin I/O Arduino Mega yang digunakan untuk robot pemadam api sebagai berikut: pin
yang di gunakan untuk interfacing LCD 16x2, yaitu pin
22(D7),23(D6),24(D5),25(D4),26(ENABLE),27(RS).
 Kemudian pin untuk interfacing dengan sensor Ping Ultrasonik yaitu pin 28(Trig sensor
ping kanan),29(Echo sensor ping kanan),30(Trig sensor ping depan),31(Echo sensor
ping depan),32(Trig sensor ping kiri),33(Echo sensor ping kiri).
 Kemudian pin untuk interfacing dengan sensor UVTron flame detector yaitu pin 3
 untuk interfacing dengan rangkaian motor dc kipas menggunakan pin 48
 Untuk interfacing dengan IC Driver Motor L293D yaitu motor 1 menggunakan pin
4(in1),pin 5(in2),pin 6(EN1),sedangkan untuk motor 2 menggunakan pin 8(EN2),pin
9(in3),pin 10(in4).
 Pin 49 di gunakan sebagai tombol start,dan reset berada pada pin reset arduino mega.
 Pin 47 sebagai input dari sensor garis.
165
Rangkaian Power Supply(Baterai)

Untuk menyeimbangkan penggunaan motor, sensor dan berat keseluruhan robot, digunakan
jenis baterai Lipo yang memiliki bobot ringan dengan tegangan 11,1 V dan arus sebesar
2200mAh. Digunakan sebagai suplai untuk sensor, motor dan mikrokontroler. Bentuk fisik
baterai dapat dilihat pada Gambar 8.20.

Gambar 7.21. Baterai Lipo

Untuk mensuplai tegangan mikrokontroler, sensor, dan motor digunakan regulator pembagi
tegangan sesuai dengan input yang dibutuhkan. Rangkaian regulator dapat dilihat pada
Gambar 7.21.

Gambar 7.22. Rangkaian Regulator

166
Tegangan input dari baterai adalah 11,1 volt, maka denga vn menggunakan rangkaian regulator
seperti pada Gambar 7.21. IC 7805 sesuai dengan spesifikasinya dapat menurunkan tegangan
menjadi 5 volt yang digunakan untuk suplai ke rangkaian pengontrol, rangkaian sensor dan
rangkaian penggerak.

Perancangan Software
Perancangan software merupakan proses perancangan pembuatan program yang nantinya
akan dijalankan oleh mikrokontroler. Program ini nantinya akan menjadi rutin yang akan selalu
dijalankan ketika mikrokontroler dinyalakan. Program ini akan disimpan pada EEPROM yang
ada didalam mikrokontroler, sehingga hanya perlu sekali men-downloadkan program ke
mikrokontroler karena walaupun sumber tegangan dimatikan program masih tersimpan pada
EEPROM.

Flowchart Program Robot Pemadam Api


Program robot pemadam api disesuakan dengan kondisi lapangan yang akan digunakan,
adapun bentuk dan arah gerak robot ditunjukkan pada Gambar 7.22.

Gambar 7.23. Bentuk lapangan uji coba robot

Keterangan :

S = Start Robot

A = Letak Titik Api (Lilin)

167
Berdasarkan bentuk lapangan dan arah gerak robot dapat dibuat flowchart program robot
sebagai panduan dalam membuat program robot. Flowchart program robot ditunjukkan gambar
7.23.

168 Gambar 7.24. Flowchart Program Robot Pemadam Api


Program menggunakan Arduino

// HC-SR04 Ping distance sensor:


//VCC to arduino 5v
//GND to arduino GND
//Echo to Arduino pin 7
//Trig to Arduino pin 8

//The circuit:
//* LCD RS pin to digital pin 27
//* LCD Enable pin to digital pin 26
//* LCD D4 pin to digital pin 25
//* LCD D5 pin to digital pin 24
//* LCD D6 pin to digital pin 23
//* LCD D7 pin to digital pin 22

#include <LiquidCrystal.h>
#define echoPin1 28 // trig Pin kanan
#define trigPin1 29 //echo pin kanan
#define echoPin2 30 // trig Pin depan
#define trigPin2 31 // echo pin depan
#define echoPin3 32 // trig Pin kiri
#define trigPin3 33// echo Pin kiri

LiquidCrystal lcd(27, 26, 25, 24, 23, 22);


int in1 = 4;
int in2 = 5;
int Enable1 = 6;
int in3 = 9;
int in4 = 10;
int Enable2 = 8;
int sensor_UV = 3;
int kipas= 48;
int start = 49;
int sensor_garis = 47 ;

169
long duration1, distance1 , duration2, distance2 , duration3, distance3;
// Duration used to calculate distance

void setup() {
Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("PEMADAM API GO");
delay (1000);
lcd.clear();
lcd.print("CLICK START");

void loop() {
/* The following trigPin/echoPin cycle is used to determine the
distance of the nearest object by bouncing soundwaves off of it. */
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);

digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);

digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin2, HIGH);
//========================================================
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);

digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);

170
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH);
//=======================================================
digitalWrite(trigPin3, LOW);
delayMicroseconds(2);

digitalWrite(trigPin3, HIGH);
delayMicroseconds(10);

digitalWrite(trigPin3, LOW);
duration3 = pulseIn(echoPin3, HIGH);

//Calculate the distance (in cm) based on the speed of sound.


distance1 = duration1/58.2;
distance2 = duration2/58.2;
distance3 = duration3/58.2;

if (digitalRead(start)==LOW){{maju();}
if (digitalRead(sensor_UV)==HIGH){
padamkan_api();}
}
else {
if (distance2 >= 7 && distance3 >= 7 && distance1 >= 7){maju();
lcd.setCursor(0, 0);
// print the number of seconds since reset:
lcd.print("KA= ");
lcd.print(distance1);
lcd.setCursor(0, 8);
lcd.print("KI= ");
lcd.print(distance3);
lcd.setCursor(1, 0);
lcd.print("DEPAN= ");
lcd.print(distance1);
while (digitalRead(sensor_garis)==HIGH){
maju();
delay(300);

171
if (digitalRead(sensor_UV)==HIGH){padamkan_api();}
}
}

else if (distance3 <= 7 && distance2 >= 10){putar_kanan();


lcd.setCursor(0, 0);
// print the number of seconds since reset:
lcd.print("KA= ");
lcd.print(distance1);
lcd.setCursor(0, 8);
lcd.print("KI= ");
lcd.print(distance3);
lcd.setCursor(1, 0);
lcd.print("DEPAN= ");
lcd.print(distance1);
while (digitalRead(sensor_garis)==HIGH){
maju();
delay(300);
if (digitalRead(sensor_UV)==HIGH){padamkan_api();}
}
}

else if (distance3 >= 11 && distance2 >= 10){putar_kiri();


lcd.setCursor(0, 0);
// print the number of seconds since reset:
lcd.print("KA= ");
lcd.print(distance1);
lcd.setCursor(0, 8);
lcd.print("KI= ");
lcd.print(distance3);
lcd.setCursor(1, 0);
lcd.print("DEPAN= ");
lcd.print(distance1);
while (digitalRead(sensor_garis)==HIGH){
maju();
delay(300);
if (digitalRead(sensor_UV)==HIGH){padamkan_api();}

172
}
}

else if (distance2 <= 7){putar_kanan();


lcd.setCursor(0, 0);
// print the number of seconds since reset:
lcd.print("KA= ");
lcd.print(distance1);
lcd.setCursor(0, 8);
lcd.print("KI= ");
lcd.print(distance3);
lcd.setCursor(1, 0);
lcd.print("DEPAN= ");
lcd.print(distance1);
while (digitalRead(sensor_garis)==HIGH){
maju();
delay(300);
if (digitalRead(sensor_UV)==HIGH){padamkan_api();}
}
}
}
}

void padamkan_api(){
digitalWrite (kipas,HIGH);
}
void maju(){
//motor kiri
digitalWrite(in1,HIGH); //motor kiri
digitalWrite(in2,LOW);
analogWrite(Enable1,175);
//motor kanan
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(Enable2,175);
}
void putar_kanan(){

173
//motor kiri
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(Enable1,175);
//motor kanan
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(Enable2,25);
}
void putar_kiri(){
//motor kiri
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(Enable1,25);
//motor kanan
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(Enable2,175);
}

void motor_stop(){
//motor kiri
digitalWrite(in1,HIGH);
digitalWrite(in2,HIGH);
analogWrite(Enable1,0);
//motor kanan
digitalWrite(in3,HIGH);
digitalWrite(in4,HIGH);
analogWrite(Enable2,0);
}

E. Latihan/Tugas

Untuk mengetahui posisi titik api di perlukan satu buah sensor kompas,carilah konfigurasi dan
tutorial cara penggunaan sensor kompas type CMPS03 dengan menggunakan mikrokontroller
arduino ?

174
F. Rangkuman

Robot sederhana biasanya umumnya memiliki empat blok utama, yaitu:

1. Kontroler

Kontroler merupakan pengendali sistem secara keseluruhan dimana masukan berupa analog
diolah menjadi proses digital, kontroler mengatur semua kinerja sistem higga menjadi
kesatuan yang saling bekerja sama. Kontroler terdiri atas input, proses data dan ouput.

2. Blok Sensor dan Pengkondisian Sinyal

Sensor adalah alat yang digunakan untuk mendeteksi dan sering berfungsi untuk mengukur
nilai sesuatu. Sensor termasuk jenis tranduser yang digunakan untuk mengubah variasi
mekanis, magnetis, panas, sinar dan kimia menjadi tegangan dan arus listrik Blok ini
berfungsi mendeteksi objek atau sinar yang dideteksi oleh sensor, lalu dikirim ke pengkondisi
sinyal sehingga outputnya yang dapat diolah oleh rangkaian driver motor, atau diolah terlebih
dahulu menggunakan mikroprosesor atau mikrokontroler untuk robot yang lebih komplek.

3. Blok Driver Motor

Blok ini merupakan bagian pengontrol motor yang mengatur putaran motor, arah putaran
motor dan kecepatan motor. Blok ini akan mengaktifkan motor dc jika menerima input
berlogika tinggi dan pengkondisian sinyal. Biasanya menggunakan IC atau transistor.

4. Aktuator

Merupakan alat yang digunakan untuk sistem pergerakan robot. Biasanya motor merupakan
penggerak yang paling sering ditemukan pada sebuah robot, motor yang banyak digunakan
adalah motor servo, stepper dan motor dc.

5. Catu Daya

Merupakan rangkaian penyedia daya bagi semua blok yang membutuhkancatu daya. Catu
daya untuk mikrokontroler adalah tegangan searah (DC).

175
G. Umpan Balik Dan Tindak Lanjut

Selamat Saudara telah menyelesaikan kegiatan pembelajaran 7 yaitu tentang


perancangan robot cerdas. Selanjutnya silahkan melanjutkan kegiatan pembelajaran 8
dengan membaca petunjuk dan tujuan kegiatan pembelajaran

176
DAFTAR PUSTAKA

Supriyanto, R.dkk “ ROBOTIKA ”. Gunadharma Press. Jakarta, 2010.

Zhen, J.W. Nguong, “Autonomous Transportation Robot with Localization”. UTM. Kuala
lumpur, Maaysia, 2013.

http://www.arduino.cc/en/Main/HomePage

Putranto, A. “Teknik Otomasi Industri Untuk Sekolah Menengah Kejuruan”. Direktorat


Pembinaan Sekolah Menengah dan Kejuruan. Jakarta, 2008.

Kusuf, W. “Buku Siswa Teknik Pemrograman 1”. Kementrian Pendidikan dan Kebudayaan.
Jakarta, 2014.

Kusuf, W. “Buku Siswa Teknik Pemrograman 2”. Kementrian Pendidikan dan Kebudayaan.
Jakarta, 2014

177
178
GLOSARIUM

Aplikasi: Aplikasi adalah program yang dirancang untuk melakukan tugas tertentu.

Arithmetic Logic Unit (ALU): Arithmetic Logic Unit adalah sirkuit inti matematika yang berlaku
untuk semua komputer central processing unit (CPU). ALU matematis dan logis menghitung
hasil data biner.

Baudrate : adalah berapa banyak bit dapat mengirim atau menerima per detik. Secara teknis,
baud mengacu pada jumlah kali per detik bahwa sinyal pembawa bergeser nilai. Sebagai
contoh, modem bit-per-detik 1500 benar-benar berjalan di 375 baud, tetapi bergerak 4 bit per
baud (4 x 375 = 1500 bit per detik).

Bit - Binary Digit: Bagian terkecil dari kode biner, yang diwakili secara logis oleh 0 dan 1 dan
elektrik oleh 0 dan 5 volt.

Direct X: Dikembangkan oleh Microsoft untuk sistem operasi Windows. Teknologi ini dirancang
untuk memberikan game yang lebih luas atau lingkungan multimedia. Dalam versi DirectX, lebih
memperhatikan grafis 3D telah diterapkan. Ia bekerja dengan memberikan pengembang
perangkat lunak akses langsung ke fungsi tingkat rendah peripheral PC dengan menyediakan
satu set antarmuka pemrograman aplikasi (API).

Graphical User Interface (GUI): Sebuah antarmuka program yang mengambil keuntungan dari
kemampuan grafis komputer untuk membuat program lebih mudah digunakan. Dirancang
dengan baik antarmuka pengguna grafis dapat membebaskan pengguna dari belajar bahasa
perintah yang kompleks.

Kilobyte (KB): Ini adalah sekitar seribu byte ruang. Pada kenyataannya, itu dua kekuatan 10
atau 1.024 byte.

179
Pixel: Pendek untuk Gambar Elemen, pixel adalah titik tunggal dalam gambar grafis. Monitor
grafis menampilkan gambar dengan membagi layar menjadi ribuan (atau jutaan) piksel, diatur
dalam baris dan kolom.

Programmed Input-Output (PIO): Sebuah metode transfer data di mana mikroprosesor tuan
transfer data ke dan dari memori melalui I / O port komputer.

Programmable Logic Perangkat (PLD): Sebuah sirkuit terpadu digital yang dapat diprogram
oleh pengguna untuk melakukan berbagai operasi logis.

Processor: Prosesor adalah perangkat yang memproses instruksi yang diprogram dan
melakukan tugas-tugas. Prosesor Anda mengirim dan menerima informasi dari bagian yang
berbeda dari sistem (dari perangkat keras dan perangkat lunak). Kecepatan di mana CPU
memproses informasi internal diukur dalam megahertz (MHz) dan gigahertz (GHz). 1 GHz sama
dengan 1.000 MHz.

Program: Sebuah set instruksi atau langkah-langkah memberitahu komputer bagaimana untuk
menangani masalah atau tugas.

Serial: Transfer data karakter satu bit pada satu waktu, secara berurutan, menggunakan jalur
listrik tunggal.

Sinkronis: Synchronous dapat merujuk pada: (1) Sebuah metode komunikasi yang
mengirimkan sekelompok karakter sebagai blok data daripada sebagai karakter individu.

Sistem: Kombinasi hardware, software, dan firmware. Suatu sistem biasanya terdiri dari
komponen (atau elemen) yang dihubungkan bersama-sama untuk mencapai fungsi tertentu
atau set fungsi.

Subroutine: Prosedur yang melakukan fungsi tertentu, biasanya suatu proses yang mungkin
diperlukan beberapa kali atau rutin yang dapat digunakan dalam beberapa program yang
berbeda.

180
Terminal: Sebuah perangkat yang keyboard dan layar yang digunakan untuk mengirim dan
menerima data melalui link.

VBScript: Bahasa pemrograman Visual Basic

Virtual Machine: Sebuah lingkungan operasi mandiri yang berperilaku seolah-olah itu adalah
komputer yang terpisah.

181
182
LAMPIRAN
Kunci Jawaban KB 1

1. Robot merupakan gabungan suatu sistem untuk mengadopsi satu atau dua dari sistem
yang ada pada diri manusia. Robotika adalah disiplin ilmu yang mempelajari tentang
robot.
2. Meningkatkan produksi dan akurasi di sektor industry, untuk melaksanakan tugas-tugas
yang berbahaya, kotor dan beresiko, untuk pendidika, untuk membersihkan rumah dll.
3. Mekanik, elektronika, teknik kontrol dan program.
4. Manipulator, Sensor, Aktuator, dan Kontroler.
5. Kontrol loop terbuka tidak memiliki sensor sebagai feedback ke controller seperti halnya
pada control loop tertutup.
6. sensor merupakan alat yang digunakan untuk merasakan/mendeteksi objek/lingkungan
sekitar, contoh : LDR. Aktuator adalah alat yang bertugas untuk menggerakan suatu
komponen pada robot.
7. tingkat interaksi manusia dengan robot :
 Manusia sebagai kontroler robot sepenuhnya,
 Manusia sebagai manager dari operasi robot, dan
 Manusia dan robot berada dalam kesetaraan.

KUNCI JAWABAN KB 3
1. Pertanyaan
a) Normally open, sesaat (momentary), single-pole, single-throw tactile switch.

b) Nol (0) volt, menghasilkan biner nol (0) yang ditampilkan oleh digitalRead.
digitalRead(8) == 0 ketika whisker ditekan.

digitalRead(8) == 1 ketika whisker tidak ditekan.

c) digitalRead(7) == 1 berarti whisker kanan tidak ditekan.

digitalRead(7) == 0 berarti whisker kanan ditekan.

digitalRead(5) == 1 berarti whisker kiri tidak ditekan.

digitalRead(5) == 0 berarti whisker kiri ditekan.

d) Pada kegiatan ini digunakan statement if, if ... else, dan if ... else if ... else untuk
mengevaluasi kondisi whisker dan memanggil fungsi-fungsi navigasi yang lain.
183
e) Jika satu syarat ternyata benar, kode mungkin perlu mengevaluasi kondisi lain dengan
statement if bersarang (nested).

2. Pertanyaan
a) Karena digitalRead menampilkan 1 atau 0, kode dapat mengalikan digitalRead(5)
dengan 2 dan menyimpan hasilnya dalam variabel whiskers. Kemudian dapat
menambahkan hasil digitalRead(7) ke dalam variabel whiskers dan hasilnya akan 3
untuk tanpa whiskers.

// Robotics with Whisker, Exercise 1


// Value from 0 to 3 indicates whisker states:
// 0 = both, 1 = left, 2 = right, 3 = neither.

void setup() // Built-in initialization block


{
tone(4, 3000, 1000); // Play tone for 1 second
delay(1000); // Delay to finish tone

pinMode(7, INPUT); // Set right whisker pin to input


pinMode(5, INPUT); // Set left whisker pin to input

Serial.begin(9600); // Set data rate to 9600 bps


}

void loop() // Main loop auto-repeats


{
byte whiskers = 2 * digitalRead(5);
whiskers += digitalRead(7);

Serial.println(whiskers); // Display wLeft

delay(50); // Pause for 50 ms


}

184
b) Dalam blok if ((wLeft == 0) && (Wright == 0)), hapus fungsi backward dan
turnLeft dan menggantinya dengan memanggil ke servoLeft.detach dan
servoRight.detach.

void loop() // Main loop auto-repeats


{
byte wLeft = digitalRead(5); // Copy right result to wLeft
byte wRight = digitalRead(7); // Copy left result to wRight

if((wLeft == 0) && (wRight == 0)) // If both whiskers contact


{
pause(500); // Pause motion for 0.5 seconds
backward(1000); // Back up 1 second
turnLeft(800); // Turn left about 120 degrees
}
else if(wLeft == 0) // If only left whisker contact
{
pause(500); // Pause motion for 0.5 seconds
backward(1000); // Back up 1 second
turnRight(400); // Turn right about 60 degrees
}
else if(wRight == 0) // If only right whisker contact
{
pause(500); // Pause motion for 0.5 seconds
backward(1000); // Back up 1 second
turnLeft(400); // Turn left about 60 degrees
}
else // Otherwise, no whisker contact
{
forward(20); // Forward 1/50 of a second
}
}

185
c) Solusi membuat Whisker-Bot tinggal diam untuk waktu tertentu.

void pause(int time) // Pause drive wheels


{
servoLeft.writeMicroseconds(1500); // Left wheel stay still
servoRight.writeMicroseconds(1500); // Right wheel stay still
delay(time); // Maneuver for time ms
}

d) Pastikan untuk tidak memanggil jeda ini dalam kondisi else karena fungsi
forward hanya seharusnya untuk maju selama 20 ms sebelum memeriksa
whiskers lagi.

void loop() // Main loop auto-repeats


{
byte wLeft = digitalRead(5); // Copy right result to wLeft
byte wRight = digitalRead(7); // Copy left result to wRight

if((wLeft == 0) && (wRight == 0)) // If both whiskers contact


{
pause(500); // Pause motion for 0.5 seconds
backward(1000); // Back up 1 second
turnLeft(800); // Turn left about 120 degrees
}
else if(wLeft == 0) // If only left whisker contact
{
pause(500); // Pause motion for 0.5 seconds
backward(1000); // Back up 1 second
turnRight(400); // Turn right about 60 degrees
}
else if(wRight == 0) // If only right whisker contact
{
pause(500); // Pause motion for 0.5 seconds
backward(1000); // Back up 1 second
turnLeft(400); // Turn left about 60 degrees
}
else // Otherwise, no whisker contact

186
{
forward(20); // Forward 1/50 of a second
}
}

Kunci Jawaban KB 4
PID merupakan kontrol sederhana, namun sangat efektif, di mana sejumlah fisik dan listrik
tertentu adalah dikontrol, dan membuat setara dengan nilai yang ditetapkan yang disebut 'set-
point'. Dalam kasus ini, kita akan mengontrol kecepatan motor kanan dan kiri dari robot, dengan
prinsip PID. Hal ini dilakukan dengan menghitung jumlah penyimpangan robot dari pusat dari
garis menggunakan sensor IR.

Koneksi:

4. Menghubungkan 5 sensor IR digital analog input (Anda masih dapat membaca nilai
digital dari analog input).
5. Hubungkan Pin motor kiri ke pin digital 4 dan 5
6. Hubungkan kanan motor PIN ke pin digital 6 dan 7
7. Hubungkan Pin PWM ke pin 9 dan 10

Karena kita menggunakan digital sensor IR, output dari sensor akan 0 jika mendeteksi putih dan
1 jika mendeteksi hitam. Seperti pada tabel berikut ini:

Sensor nilai Posisi

00100 Tengah dari garis

10000 Kanan dari garis

00001 Kiri dari garis

 Insialiasi:
Kita menginisialisasi variabel 0 di awal, dan biarkan kecepatan motor awal 100. Juga
menginisialisasi Port. Anda dapat menggunakan serial monitor untuk melihat nilai-nilai
variabel yang berbeda secara langsung untuk tuning.

187
 Kalkulasi Error
Kita akan menggunakan metode nilai-nilai yang sering keluar (terbesar), yaitu kita akan
menetapkan nilai yang berbeda untuk kombinasi yang berbeda dari nilai-nilai sensor dan
menggunakannya untuk menghitung deviasi dari pusat. Gunakan kondisi switch sederhana
sesuai dengan tabel berikut ini:

Sensor Array Values Error Value

00001 4

00011 3

00010 2

00110 1

00100 0

01100 -1

01000 -2

11000 -3

10000 -4

00000 -5 or 5 (depending on the previous value)

Program kontrol robot Line Follower dengan menggunakan PID.

float Kp=0,Ki=0,Kd=0;
float error=0, P=0, I=0, D=0, PID_value=0;
float previous_error=0, previous_I=0;
int sensor[5]={0, 0, 0, 0, 0};
int initial_motor_speed=100;

188
void read_sensor_values(void);
void calculate_pid(void);
void motor_control(void);

void setup()
{
pinMode(9,OUTPUT); //PWM Pin 1
pinMode(10,OUTPUT); //PWM Pin 2
pinMode(4,OUTPUT); //Left Motor Pin 1
pinMode(5,OUTPUT); //Left Motor Pin 2
pinMode(6,OUTPUT); //Right Motor Pin 1
pinMode(7,OUTPUT); //Right Motor Pin 2
Serial.begin(9600); //Enable Serial Communications
}

void loop()
{
read_sensor_values();
calculate_pid();
motor_control();
}

void read_sensor_values()
{
sensor[0]=digitalRead(A0);
sensor[1]=digitalRead(A1);
sensor[2]=digitalRead(A2);
sensor[3]=digitalRead(A3);
sensor[4]=digitalRead(A4);

if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[4]==0)&&(sensor[4]
==1))
error=4;
else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[4]==1)&&(sensor[4]
==1))
error=3;

189
else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[4]==1)&&(sensor[4]
==0))
error=2;
else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==1)&&(sensor[4]==1)&&(sensor[4]
==0))
error=1;
else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==1)&&(sensor[4]==0)&&(sensor[4]
==0))
error=0;
else
if((sensor[0]==0)&&(sensor[1]==1)&&(sensor[2]==1)&&(sensor[4]==0)&&(sensor[4]
==0))
error=-1;
else
if((sensor[0]==0)&&(sensor[1]==1)&&(sensor[2]==0)&&(sensor[4]==0)&&(sensor[4]
==0))
error=-2;
else
if((sensor[0]==1)&&(sensor[1]==1)&&(sensor[2]==0)&&(sensor[4]==0)&&(sensor[4]
==0))
error=-3;
else
if((sensor[0]==1)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[4]==0)&&(sensor[4]
==0))
error=-4;
else
if((sensor[0]==0)&&(sensor[1]==0)&&(sensor[2]==0)&&(sensor[4]==0)&&(sensor[4]
==0))
if(error==-4) error=-5;
else error=5;}

void calculate_pid()
{
P = error;
I = I + previous_I;
D = error-previous_error;

PID_value = (Kp*P) + (Ki*I) + (Kd*D);

190
previous_I=I;
previous_error=error;}

void motor_control()
{
// Calculating the effective motor speed:
int left_motor_speed = initial_motor_speed-PID_value;
int right_motor_speed = initial_motor_speed+PID_value;

// The motor speed should not exceed the max PWM value
constrain(left_motor_speed,0,255);
constrain(right_motor_speed,0,255);

analogWrite(9,initial_motor_speed-PID_value); //Left Motor Speed


analogWrite(10,initial_motor_speed+PID_value); //Right Motor Speed
//following lines of code are to make the bot move forward
/*The pin numbers and high, low values might be different
depending on your connections */
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
}

KUNCI JAWABAN KB 5
a. Program untuk mundur dengan kecepatan penuh selama 2,5 detik
servoLeft.writeMicroseconds(1300);
servoRight.writeMicroseconds(1700);
delay(2500);

b. Program untuk maju, berputar dan kemudian maju lagi


// forward 1 second
servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1700);
delay(1000);

// ramp into pivot

191
for(int speed = 0; speed <= 100; speed+=2)
{
servoLeft.writeMicroseconds(1500);
servoRight.writeMicroseconds(1500+speed);
delay(20);
};

// ramp out of pivot


for(int speed = 100; speed >= 0; speed-=2)
{
servoLeft.writeMicroseconds(1500);
servoRight.writeMicroseconds(1500+speed);
delay(20);
}

// forward again
servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1700);
delay(1000);

c. Performa BOE-Shield bot pada sudut30o, 45o dan 60o


// 30/180 = 1/6, so use 1200/6 = 200
servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1700);
delay(200);

// alternate approach
servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1700);
delay(1200 * 30 / 180);

// 45/180 = 1/4, so use 1200/4 = 300


servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1700);
delay(300);

192
// 60/180 = 1/3, so use 1200/3 = 400
servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1700);
delay(400);

Kunci Jawaban KB 6
Untuk membuat gerakan mejadi smooth di tambah intruksi dan progam bagian sebagai berikut:

Intruksi:

if(Serial.available()){
inByte = Serial.read();
Serial.println(inByte);
}
if(inByte=='q'){
shiftWalk(50,10);
}
else if(inByte=='w'){
shiftWalk(25,10);
}
else if(inByte=='e'){
shiftWalk(13,10);
}

Program bagian:

//This is the primary creep gait that I've developed. It uses the smoothMove
//functions broken up into a number of "steps" with a delay "time" between
//each step
void shiftWalk(int steps,int time){
//starting vertical position
double z = 3;
//How far to raise the leg for each movement
double dz = -2;

193
//shift entire body forward and to the left. This causes the robot to
//move forward 1 inchnd prepares for the left legs to move
smoothFullMove(2,-1,z,2,1,z,steps*2,time);
print3(LBx,LBy,LBz);

//Moves left back leg up then forward then down


smoothMove(4,LBx,LBy,z+dz,steps,time);//moveServos2LB(3,5,1);
smoothMove(4,1,5,z+dz,steps,time);//moveServos2LB(1,5,1);
smoothMove(4,1,5,z,steps,time);//moveServos2LB(0,5,3);

//Moves left front leg up then forward then down


smoothMove(3,-1,5,z+dz,steps,time);//moveServos2LF(-1,5,0);
smoothMove(3,-3,5,z+dz,steps,time);//moveServos2LF(-3,5,1);
smoothMove(3,-3,5,z,steps,time);//moveServos2LF(-3,5,3);

//shift entire body forward and to the right. This causes the robot to
//move forward 1 inchand prepares for the right legs to move
smoothFullMove(2,1,z,2,-1,z,steps*2,time);

//Moves right back leg up then forward then down


smoothMove(2,3,5,z+dz,steps,time);//moveServos2LB(3,5,1);
smoothMove(2,1,5,z+dz,steps,time);//moveServos2LB(1,5,1);
smoothMove(2,1,5,z,steps,time);//moveServos2LB(0,5,3);

//Moves right front leg up then forward then down


smoothMove(1,-1,5,z+dz,steps,time);//moveServos2LF(-1,5,0);
smoothMove(1,-3,5,z+dz,steps,time);//moveServos2LF(-3,5,1);
smoothMove(1,-3,5,z,steps,time);//moveServos2LF(-3,5,3);
}

//Moves the entire body from x0,y0,z0 to x,y,z smoothly with "steps" steps
//separated by t1 milliseconds. This is usefully for shifting the center of
//gravity

void smoothFullMove(double x0, double y0, double z0, double x, double y,


double z, int t1, int steps){
double dx = (x-x0)/steps;
double dy = (y-y0)/steps;
double dz = (z-z0)/steps;
194
for(int i=0;i<steps;i++){
x0+=dx;
y0+=dy;
z0+=dz;
fullMove(x0,y0,z0);
delay(t1);
}
}

Kunci jawaban KB 7

Kontrol Sensor Magnetic Compass CMPS03 Menggunakan I2C pada Arduino Mega 2560

Magnetic Compass CMPS03 ini didesain khusus untuk bidang robotik untuk tujuan navigasi
robot. Kompas ini menggunakan dua sensor medan magnet KMZ51 buatan Philips yang cukup
peka untuk mendeteksi medan magnet bumi. Dua sensor ini dipasang saling bersilangan. Pada
modul kompas telah dipasang rangkaian pengkondisi sinyal dan mikrokontroler. Sehingga dapat
mengakses berapa derajat posisi kompas
sekarang secara langsung. berikut ini gambar
sensor CMPS03 dan konfigurasi pin-pinnya .

Penjelasan Pin-pin pada CMPS03

Pin Supply : Pin Output :


- Pin 1 : +5VDC -Pin 2 & 3 : I2C, tanpa pull-up
- Pin 0 : GND -Pin 4 : PWM

Konsumsi arus sekitar 15mA Pin reduksi error :


-Pin 7 (Pull-up on-board untuk reduksi
60Hz, Beri logika low untuk reduksi 50Hz)
Pin No-Connect :
-Pin 5 & 8
Pin kalibrasi:
-Pin 6 (Pull-up on-board)

cara menggunakan CMPS03 ini menggunakan I2C pada arduino Mega 2050 dengan acuan
diagram I2C Berikut ini.

195
Berikut adalah program di arduino cara pembacaan kompas dan di tampilkan menggunakan
LCD 16x2 :

#include <Wire.h> //memangil fungsi I2C


#include <LiquidCrystal.h> //memangil fungsi LCD
#define addr 0x60 //Inisialisasi alamat register

LiquidCrystal lcd(22,23,24,25,26,27); //konfigurasi LCD

byte hb,lb; //variabel hb=highbyte, lb=lowbyte

void setup()
{
lcd.begin(16,2); //instalasi LCD 16x2
Wire.begin(); //memulai I2C
}

void loop()
{
Wire.beginTransmission(addr); //memulai transmisi dengan mengirim reg 0x60
Wire.write(2); //menuliskan nilai 2
Wire.endTransmission(); //mengakhiri transmisi
Wire.requestFrom(addr,2); //meminta data dari sensor
while(Wire.available()<2);
hb=Wire.read(); //membaca nilai highbyte dari sensor
lb=Wire.read(); //membaca nilai lowbyte dari sensor
int kompas =((hb<<8)+lb)/10; //kalkulasi untuk mendapatkan nilai dari
sensor
lcd.setCursor(0,0); //mengatur koordinat lcd
lcd.print(kompas); //tampilkan nilai sensor pada lcd
delay(100); //tunda 100ms
}

196
52

Anda mungkin juga menyukai