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
Mari kita sukseskan program GP ini untuk mewujudkan Guru Mulia Karena
Karya.
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.10. Robot Kombinasi Mobile dan Non-mobile Mars-Rovers NASA .... 19
vii
Gambar 2.10. Sensor LDR................................................................................. 53
viii
Gambar 4.14. Rangkaian Sensor Line Follower ................................................. 88
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
ix
Gambar 7.5. Bentuk fisik UV TRON R2868 ..................................................... 155
Gambar 7.6. Luasan deteksi titik api sensor UVtron ........................................ 155
x
DAFTAR TABEL
Tabel 1. 1 Spesifikasi kemampuan bekerja manusia vs robot ............................ 28
xi
DAFTAR LAMPIRAN
Kunci Jawaban KB 1 ……………………………………………….…………. 183
xii
xiii
PENDAHULUAN
A. Latar belakang
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.
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 :
2
C. Peta Kompetensi
D. Ruang Lingkup
1. Perkembangan Robot
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.
3. Untuk kegiatan belajar yang terdiri dari teori dan praktik, perhatikanlah hal-
hal berikut:
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
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.
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.
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.
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
10
manfaatnya sangat besar dalam aplikasi di dunia kedokteran dan rekayasa
genetika.
4. Jenis Robot
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
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
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).
12
yang bekerja sebagai open loop hingga prinsip umpan balik yang melibatkan
kecerdasan buatan.
Konfigurasi Manipulator
1) Polar
13
yaitu mampu memanipulasi ruang kerja yang berbentuk bola dengan
algoritma gerak yang paling sederhana dibanding tipe konfigurasi yang lain.
2) Silinder
14
Gambar 1. 5. Konfigurasi Silinder
3) 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.
c. Mobile Robot
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.
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)
Robot ini digunakan di bawah laut untuk memonitor kondisi bawah laut dan
juga untuk mengambil sesuatu di bawah laut.
18
Gambar 1.10. Robot Kombinasi Mobile dan Non-mobile Mars-Rovers NASA
e. Humanoid
19
mensimulasikan struktur, perilaku manusia dan sistem otonomi, sebagian
besar robot humanoid lebih kompleks dibandingkan jenis robot lainnya.
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.
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.
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.
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).
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
22
perencanaan dan pengendalian), sensor berperan penting dalam paradigma
robot .
Exteroceptive Sensor
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.
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.
24
8. Interaksi Manusia dan Robot
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.
Secara umum sistem remote control dapat diilustrasikan seperti Gambar 1.14.
Mata menggantikan fungsi sensor, sedangkan tangan menggantikan fungsi
pemberi sinyal control kepada aktuator.
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.
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.
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
E. Latihan
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. 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.
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:
C. Uraian Materi
1. Microcontroller
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.
a. Arduino
34
Processing project, dimana terdapat beberapa bahasa pemprograman
termasuk C, C++ dan Java .
b. Arduino Uno
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.
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.
3V3: Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus
maximumnya adalah 50mA
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:
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
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.
Pemetaan Pin
40
Gambar 2.4 Pin Arduino Mega2560 R3
Ringkasan Spesifikasi
Mikrokontroler ATmega2560
Tegangan Operasi 5V
Input Voltage
7-12V
(disarankan)
41
Arus DC untuk pin 3.3V 50 mA
SRAM 8 KB
EEPROM 4 KB
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.
Pin tegangan yang tersedia pada papan Arduino adalah sebagai berikut:
42
tegangan untuk papan melalui jack power, kita bisa
mengakses/mengambil tegangan melalui pin ini.
Memori
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.
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
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.
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 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.
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.
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
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.
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).
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.
54
KEGIATAN PEMBELAJARAN 3: ROBOT WHISKER
A. Tujuan
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
55
Gambar 3.1. Whisker pada Arduino-BOT
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.
57
Gambar 3.3. Part Shield Bot
58
a. Merakit motor servo kedalam chasis mekanik.
59
b. Memasang wadah baterai pada chassis
60
d. Memasang BOE-Shield Board
Komponen :
61
resistor, 10 kΩ (coklat-hitam-oranye) 2 buah
(misc) kabel jumper
Membuat Whiskers
Lepaskan dua sekrup depan yang memegang papan untuk standoffs depan.
Atur nylon washer dan ½ " spacer bulat pada masing-masing 7/8" sekrup.
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.
62
Gambar 3.9. Pemasangan whiskers
63
Menguji Whiskers
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.
Keluaran Aktif-Low
64
/*
* Robotics with Whisker - DisplayWhiskerStates
* Display left and right whisker states in Serial Monitor.
* 1 indicates no contact; 0 indicates contact.
*/
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.
66
Gambar 3.12. Ilustrasi Program Navigasi Whisker
67
servoLeft.attach(13); // Attach left signal to
pin 13
servoRight.attach(12); // Attach right signal to
pin 12
}
68
forward(20); // Forward 1/50 of a
second
}
}
69
servoLeft.writeMicroseconds(1300); // Left wheel
clockwise
servoRight.writeMicroseconds(1700); // Right wheel
counterclockwise
delay(time); // Maneuver for
time ms
}
/*
* 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
71
void loop() // Main loop auto-
repeats
{
// Corner Escape
// 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
}
}
73
servoRight.writeMicroseconds(1300); // Right wheel
clockwise
delay(time); // Maneuver for time
ms
}
D. Aktifitas Pembelajaran
74
E. Latihan
F. Rangkuman
75
kegiatan ini, diharapkan pembaca dapat memahami bagaimana cara
membangun robot whisker sederhana dengan menggunakan mikrokontroler
Arduino
76
KEGIATAN PEMBELAJARAN 4: ROBOT LINE
FOLLOWER
A. TUJUAN
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.
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.
79
Gambar 4.3. pin IC motor driver L293D
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:
80
•Thermal Shutdown
• High-Noise-Immunity Inputs
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.
81
Gambar 4.5. Output photodiode terhadap intensitas cahaya
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
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
83
4. Motor DC
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.
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
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
87
a. Merakit 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:
88
Gambar 4.15. Cara Kerja Sensor
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).
Berikut contoh pergerakan robot line follower dengan menggunakan dua modul
sensor IR. Gerak pada motor nantinya akan berpengaruh pada pembacaan
sensor. Berikut penjelasannya:
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
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.
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:
1 0 RUN
1 1 STOP
93
Gambar 4.17. Diagram Blok Line Follower
94
Langkah langkahnya:
Hubungkan kedua Pin VCC Sensor dengan Pin 5V Arduino.
Hubungkan kedua Pin Gnd Sensor dengan Pin Gnd Arduino.
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:
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:
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;
pinMode (motorKanan,OUTPUT);
pinMode (motorKiri,OUTPUT);
pinMode (direction1,OUTPUT);
pinMode (direction2,OUTPUT);
}
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
F. Rangkuman
100
KEGIATAN PEMBELAJARAN 5: BOEBOT ROBOT
A. Tujuan
C. Uraian Materi
101
Gambar 5.1. Robot 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
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.
107
servoLeft.attach(13); // Attach left signal
to pin 13
servoRight.attach(12); // Attach right
signal to pin 12
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.
109
servoRight.detach();
}
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.
110
// Robotics with the BOE Shield - ForwardOneSecond
// Make the BOE Shield-Bot roll forward for one seconds, then
stop.
111
servoLeft.detach(); // Stop sending servo
signals
servoRight.detach();
}
4. Menjalankan Manuver
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).
113
delay(1500); // Full speed for
1.5 seconds
114
5. Menyederhanakan navigasi dengan fungsi
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.
void setup() {
Serial.begin(9600);
void loop() {
}
115
6. Fungsi Manuver Kustom
116
Servo servoRight;
117
servoLeft.detach(); // Stop servo
signals
servoRight.detach();
}
delay(msTime); // Delay for
msTime
D. Aktifitas Pembelajaran
118
E. Latihan / Tugas
F. Rangkuman
1. Programming
2. Kemampuan Robotik
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
120
KEGIATAN PEMBELAJARAN 6: ROBOT QUAD
CRAWLER
A. Tujuan
C. Uraian Materi
121
Gambar 6.1. Komponen robot quad crawler
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
123
e. Prototype Setelah Jadi
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)
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:
panjang r adalah
Sudut adalah sudut yang yang harus dibentuk oleh motor pada body (join
N) robot.
panjang d adalah
125
Dengan memakai aturan cosinus maka dapat dihitung besar sudut sebagai
Sedangkan sudut yang harus dibentuk sumbu pada siku (joint A) adalah
(dengan aturan cosinus)
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
r = (z12+y12) (13)
126
x’1 = x1 (14)
Apabila nilai y, dan z dari poros rotasi tidak sama dengan 0,0 namun
memiliki nilai sebesar ys, zs maka
r = [(z1-zs)2+(y1-ys)2] (18)
x’1 = x1 (19)
y'1 = y1 (23)
127
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.
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.
CATU
DAYA MICROCONTROLLER UART
sensor PS2
kemiringan
129
D. AKTIFITAS PEMBELAJARAN
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 .
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
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 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;
134
unsigned long tNowSM = 0;
unsigned long tOldSM = 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);
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);
}
}
//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
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**/
moveServosRB(gamma(RBx,RBy,RBz),alpha(RBx,RBy,RBz),beta(RBx,RBy,RB
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));
}
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
}
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");
}
141
//move the joints in the LF servo to angles g, a, and b
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));
}
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));
}
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
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
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
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.
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.
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.
Receiver
151
Gambar 7.3. Rangkaian Receiver Sensor Ultra Sonic
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 ).
- 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.
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.
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 ).
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.
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.
155
Gambar 7.7. Sensitivitas Sudut
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
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.
Interupsi akan ditanggapi oleh Mikrokontroler setiap tepi turun dari keluaran driver UV Tron
C3704 seperti ditunjukkan dalam Gambar 7.12.
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
Pada rangkaian sensor ini output yang di hasilkan dari sensor adalah logika digital 0 dan 1.
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
a. Externally-excited DC motor
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
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.
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.
162
Gambar 7.17. Desain 2 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
164
Gambar 7.20. Rangkaian skematik 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.
Untuk mensuplai tegangan mikrokontroler, sensor, dan motor digunakan regulator pembagi
tegangan sesuai dengan input yang dibutuhkan. Rangkaian regulator dapat dilihat pada
Gambar 7.21.
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.
Keterangan :
S = Start Robot
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.
//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
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);
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();}
}
}
172
}
}
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
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.
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.
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
176
DAFTAR PUSTAKA
Zhen, J.W. Nguong, “Autonomous Transportation Robot with Localization”. UTM. Kuala
lumpur, Maaysia, 2013.
http://www.arduino.cc/en/Main/HomePage
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.
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.
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.
184
b) Dalam blok if ((wLeft == 0) && (Wright == 0)), hapus fungsi backward dan
turnLeft dan menggantinya dengan memanggil ke servoLeft.detach dan
servoRight.detach.
185
c) Solusi membuat Whisker-Bot tinggal diam untuk waktu tertentu.
d) Pastikan untuk tidak memanggil jeda ini dalam kondisi else karena fungsi
forward hanya seharusnya untuk maju selama 20 ms sebelum memeriksa
whiskers lagi.
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:
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:
00001 4
00011 3
00010 2
00110 1
00100 0
01100 -1
01000 -2
11000 -3
10000 -4
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;
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);
KUNCI JAWABAN KB 5
a. Program untuk mundur dengan kecepatan penuh selama 2,5 detik
servoLeft.writeMicroseconds(1300);
servoRight.writeMicroseconds(1700);
delay(2500);
191
for(int speed = 0; speed <= 100; speed+=2)
{
servoLeft.writeMicroseconds(1500);
servoRight.writeMicroseconds(1500+speed);
delay(20);
};
// forward again
servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1700);
delay(1000);
// alternate approach
servoLeft.writeMicroseconds(1700);
servoRight.writeMicroseconds(1700);
delay(1200 * 30 / 180);
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);
//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 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
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 .
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 :
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