9 - I Teknik Elektronika Industri - Perekayasaan Sistem Robotik [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Penulis



:



Weldan Kusuf, 081333008876, email: [email protected]



Penelaah



:



Editor



:



Arie Eric Rawung



Copyright  2016 Pusat Pengembangan dan Pemberdayaan Pendidik dan Tenaga Kependidikan Bidang Otomotif dan Elektronika, Direktorat Jenderal Guru dan Tenaga Kependidikan Hak Cipta Dilindungi Undang-Undang Dilarang mengcopy sebagian atau keseluruhan isi buku ini untuk kepentingan komersial tanpa izin tertulis dari Kementerian Pendidikan dan Kebudayaan



KATA SAMBUTAN Peran guru professional dalam proses pembelajaran sangat penting sebagai kunci keberhasilan belajar siswa. Guru professional adalah guru yang kompeten membangun proses pembelajaran yang baik sehingga dapat menghasilkan pendidikan yang berkualitas. Hal tersebut menjadikan guru sebagai komponen yang menjadi focus perhatian pemerintah pusat maupun pemerintah daerah dalam peningkatan mutu pendidikan terutama menyangkut kompetensi guru. Pengembangan profesionalitas guru melalui program Guru Pembelajar (GP) merupakan upaya peningkatan kompetensi untuk semua guru. Sejalan dengan hal tersebut, pemetaan kompetensi guru telah dilakukan melalui uji kompetensi guru (UKG) nuntuk kompetensi pedagogic dan professional pada akhir tahun 2015. Hasil UKG menunjukkan peta kekuatan dan kelemahan kompetensi guru dalam penguasaan pengetahuan. Peta kompetensi guru tersebut dikelompokkan menjadi 10 (sepuluh) kelompok kompetensi. Tindak lanjut pelaksanaan UKG diwujudkan dalam bentuk pelatihan guru pasca UKG melalui program Guru Pembelajar. Tujuannya untuk meningkatkan kompetensi guru sebagai agen perubahan dan sumber belajar utama bagi peserta didik. Program Guru Pembelajar dilaksanakan melalui pola tatap muka, daring (online), dan campuran (blended) tatap muka dengan online. Pusat Pengembangan dan Pemberdayaan Pendidik dan Tenaga Kependidikan (PPPPTK), Lembaga Pengembngan dan Pemberdayaan Pendidik dan Tenaga Kependidikan Kelautan Perikanan Teknologi Informasi dan Komunikasi (LP3TK KPTK), dan Lembaga Pengembangan dan Pemberdayaan Kepala Sekolah (LP2KS) merupakan Unit Pelaksana Teknis di lingkungan Direktorat Jenderal Guru dan Tenaga Kependidikan yang bertanggungjawab dalam mengembangkan perangkat dan melaksanakan peningkatan kompetensi guru sesuai bidangnya. Adapun perangkat pembelajaran yang dikembangkan tersebut adalah modul untuk program Guru Pembelajar (GP) tatap muka dan GP online untuk semua mata pelajaran dan kelompok kompetensi. Dengan modul ini diharapkan program GP memberikan sumbangan yang sangat besar dalam peningkatan kualitas kompetensi guru. Mari kita sukseskan program GP ini untuk mewujudkan Guru Mulia Karena Karya. Jakarta, Februari 2016 Direktur Jenderal Guru dan Tenaga Kependidikan



Sumarna Surapranata, Ph.D. NIP 195908011985031002



i



ii



DAFTAR ISI KATA SAMBUTAN .............................................................................................. i DAFTAR ISI ....................................................................................................... iii DAFTAR GAMBAR ........................................................................................... vii DAFTAR TABEL ................................................................................................ xi DAFTAR LAMPIRAN ........................................................................................ xii PENDAHULUAN ................................................................................................. 1 A. Latar belakang .............................................................................................. 1 B. Tujuan........................................................................................................... 2 C. Peta Kompetensi .......................................................................................... 3 D. Ruang Lingkup.............................................................................................. 3 E. Saran Cara Penggunaan Modul .................................................................... 4 Kegiatan Pembelajaran I: Dasar - Dasar Robotika .......................................... 5 A. Tujuan........................................................................................................... 5 B. Indikator Pencapaian Kompetensi................................................................. 5 C. Uraian Materi ................................................................................................ 5 1.



Pendahuluan ......................................................................................... 5



2.



Sejarah dan Perkembangan Teknologi Robot....................................... 6



3.



Penelitian di Bidang Robotika ................................................................ 8



4.



Jenis Robot ......................................................................................... 11



5.



Sistem Kontrol Robotik ........................................................................ 21



6.



Sensor ................................................................................................. 22



7.



Aktuator ............................................................................................... 24



8.



Interaksi Manusia dan Robot ............................................................... 25



D. Aktivitas Pembelajaran ............................................................................... 29 E. Latihan ........................................................................................................ 29 F.



Rangkuman ................................................................................................ 30



G. Umpan Balik dan Tindak Lanjut .................................................................. 31 KEGIATAN PEMBELAJARAN 2: KONTROLER, SENSOR DAN AKTUATOR 33 A. Tujuan......................................................................................................... 33 B. Indikator Pencapaian Kompetensi............................................................... 33 C. Uraian Materi .............................................................................................. 33 1.



Microcontroller ..................................................................................... 33 iii



a.



Arduino ................................................................................................ 34



b.



Arduino Uno......................................................................................... 35



c.



Arduino Mega 2560 ............................................................................. 39



2.



AktuatorMotor Servo ............................................................................ 47



3.



Sensor ultrasonik ................................................................................. 51



4.



Sensor Cahaya LDR (Light Dependent Resistor) ................................. 52



KEGIATAN PEMBELAJARAN 3: ROBOT WHISKER ...................................... 55 A. Tujuan......................................................................................................... 55 B. Indikator Pencapaian Kompetensi ............................................................... 55 C. Uraian Materi .............................................................................................. 55 1.



Robot Whiskers ................................................................................... 55



2.



Kebutuhan Alat dan Bahan Perakitan Shield bot ................................. 57



3.



Merakit Komponen Robot Whisker ...................................................... 58



4.



Membuat dan Menguji Whisker............................................................ 61



5.



Navigasi dengan Whisker .................................................................... 66



6.



Kecerdasan Buatan untuk Melarikan Diri dari Sudut ............................ 70



D. Aktifitas Pembelajaran ................................................................................ 74 E. Latihan ........................................................................................................ 75 F.



Rangkuman ................................................................................................ 75



G. Umpan Balik dan Tindak Lanjut .................................................................. 76 KEGIATAN PEMBELAJARAN 4: ROBOT LINE FOLLOWER.......................... 77 A. TUJUAN ..................................................................................................... 77 B. Indikator Pencapaian Kompetensi ............................................................... 77 C. Uraian Materi .............................................................................................. 77 1.



IC L293D (Motor Driver)..................................................................... 79



2.



Sensor Photodiode .............................................................................. 81



3.



Mekanisme Perancangan Sensor Garis............................................... 82



4.



Motor DC ............................................................................................. 84



D. Aktivitas Pembelajaran................................................................................ 86 1.



Perancangan Mekanik dan Konsep Kerja ............................................ 86



2.



Konsep desain pergerakan robot ......................................................... 90



3.



Konsep Motor DC ................................................................................ 91



E. Latihan ...................................................................................................... 100 F. iv



Rangkuman .............................................................................................. 100



KEGIATAN PEMBELAJARAN 5: BOEBOT ROBOT...................................... 101 A. Tujuan....................................................................................................... 101 B. Indikator Kegiatan Proyek ......................................................................... 101 C. Uraian Materi ............................................................................................ 101 1.



Perakit Komponen BOE-BOT ............................................................ 102



2.



Menguji Manuver Dasar BOE Shield-bot ........................................... 107



3.



Menghitung Jarak .............................................................................. 110



4.



Menjalankan Manuver ....................................................................... 112



5.



Menyederhanakan navigasi dengan fungsi ........................................ 115



6.



Fungsi Manuver Kustom .................................................................... 116



D. Aktifitas Pembelajaran .............................................................................. 118 E. Latihan / Tugas ......................................................................................... 119 F.



Rangkuman .............................................................................................. 119



KEGIATAN PEMBELAJARAN 6: ROBOT QUAD CRAWLER ....................... 121 A. Tujuan....................................................................................................... 121 B. Indikator Pencapaian Kompetensi............................................................. 121 C. Uraian Materi ............................................................................................ 121 1.



Perakitan Dasar Mekanik ................................................................... 121



2.



Implementasi rangkaian mekanik....................................................... 124



3.



Implementasi Rangkaian Elektronik ................................................... 129



D. AKTIFITAS PEMBELAJARAN .................................................................. 130 E. Latihan ...................................................................................................... 146 F.



Rangkuman .............................................................................................. 146



KEGIATAN PEMBELAJARAN 7: ROBOT CERDAS PEMADAM API ............ 147 A. Tujuan....................................................................................................... 147 B. Indikator Kegiatan Praktek ........................................................................ 147 C. Uraian Materi ............................................................................................ 148 1.



Sensor Ultrasonik .............................................................................. 148



2.



Sensor Api Hamatsu UV TRON R2868.............................................. 154



3.



Rangkaian Sensor Garis.................................................................... 159



4.



Motor DC dan driver menggunakan L293D........................................ 159



5.



LCD 16x2 .......................................................................................... 160



D. Aktivitas Pembelajaran ............................................................................. 162 E. Latihan/Tugas ........................................................................................... 174 v



F.



Rangkuman .............................................................................................. 175



G. Umpan Balik Dan Tindak Lanjut ................................................................ 176 Daftar Pustaka................................................................................................ 177 GLOSARIUM ................................................................................................... 179 LAMPIRAN ...................................................................................................... 183



vi



DAFTAR GAMBAR Gambar 1.1. Robot Lengan Sederhana ............................................................. 11 Gambar 1.2. Sistem Robot Industry ................................................................... 12 Gambar 1.3. Robot Manipulator ......................................................................... 13 Gambar 1.4. Konfigurasi Polar ........................................................................... 14 Gambar 1. 5. Konfigurasi Silinder ...................................................................... 15 Gambar 1. 6. Konfigurasi Cartesian ................................................................... 15 Gambar 1.7. Konfigurasi Sendi-Lengan ............................................................. 16 Gambar 1.8. Flying Robot (Robot Terbang) ....................................................... 18 Gambar 1.9. Under Water Robot (Robot Dalam Air) .......................................... 18 Gambar 1.10. Robot Kombinasi Mobile dan Non-mobile Mars-Rovers NASA .... 19 Gambar 1.11 Robot Humanoid .......................................................................... 20 Gambar 1. 12 Kontrol robot loop terbuka ........................................................... 21 Gambar 1. 13 Kontrol Robot Loop Tertutup ....................................................... 22 Gambar 1. 14 Sistem remote control pada robot................................................ 26 Gambar 1. 15 Sistem Remote Control pada manipulator ................................... 27 Gambar 2. 1 Chip Mikrokontroller ATMega2560 ................................................ 34 Gambar 2.2 Bentuk Fisik Arduino Uno ............................................................... 36 Gambar 2.3 Arduino Mega2560 R3 Bagian Depan ............................................ 40 Gambar 2.4 Pin Arduino Mega2560 R3 ............................................................. 41 Gambar 2.5 Tampilan IDE Arduino dengan sebuah sketch................................ 47 Gambar 2.6. Contoh Motor Servo ...................................................................... 48 Gambar 2.7. Komponen-Komponen pada Motor Servo ..................................... 49 Gambar 2.8. Pulsa control Servo ....................................................................... 50 Gambar 2.9. Sensor Ultrasonik .......................................................................... 51



vii



Gambar 2.10. Sensor LDR................................................................................. 53 Gambar 3.1. Whisker pada Arduino-BOT........................................................... 56 Gambar 3.2. Sistem Kerja Saklar Whisker ......................................................... 57 Gambar 3.3. Part Shield Bot .............................................................................. 58 Gambar 3.4. Posisi servo pada chassis ............................................................. 59 Gambar 3.5. Wadah baterai pada chassis ......................................................... 60 Gambar 3.6. Roda pada chassis ........................................................................ 60 Gambar 3.7. Pemasangan BOE-shield bot ........................................................ 61 Gambar 3.8. Part list whiskers ........................................................................... 62 Gambar 3.9. Pemasangan whiskers .................................................................. 63 Gambar 3.10. Rangkaian whiskers .................................................................... 63 Gambar 3.11. Pengujian whiskers pada serial monitor ...................................... 64 Gambar 3.12. Ilustrasi Program Navigasi Whisker ............................................. 67 Gambar 4.1. robot line follower .......................................................................... 78 Gambar 4.2. IC L293 ......................................................................................... 79 Gambar 4.3. pin IC motor driver L293D ............................................................. 80 Gambar 4.4. Block diagram motor driver L293D ................................................ 81 Gambar 4.5. Output photodiode terhadap intensitas cahaya.............................. 82 Gambar 4.6. Ilustrasi mekanisme sensor garis .................................................. 82 Gambar 4.7. Sensor photodiode tidak terkena cahaya....................................... 83 Gambar 4.8. Sensor photodiode terkena cahaya ............................................... 83 Gambar 4.9. Driver searah motor DC ................................................................ 84 Gambar 4.10. Driver bolak-balik motor DC ........................................................ 85 Gambar 4.11. rangka Robot Line Follower ......................................................... 87 Gambar 4.12. Mekanik Robot Line follower tampak 3D ..................................... 87 Gambar 4.13. Komponen Sensor....................................................................... 88 viii



Gambar 4.14. Rangkaian Sensor Line Follower ................................................. 88 Gambar 4.15. Cara Kerja Sensor....................................................................... 89 Gambar 4.16. Analogi Sensor ............................................................................ 90 Gambar 4.17. Diagram Blok Line Follower......................................................... 94 Gambar 5.1. Robot BOE-BOT ......................................................................... 102 Gambar 6.1. Komponen robot quad crawler .................................................... 122 Gambar 6.2. Kaki kiri depan terakit .................................................................. 122 Gambar 6.3. Kaki kanan depan terakit ............................................................. 123 Gambar 6.4. Rakitan kaki kanan kiri depan...................................................... 123 Gambar 6.5. Merakit kaki kiri depan pada chasis ............................................. 123 Gambar 6.6. Robot quad crawler yang telah terakit ......................................... 124 Gambar 6.7. Desain Mekanik. robot dilihat dari depan(a), robot dilihat dari atas (b) .................................................................................................................... 124 Gambar 6.8. Analisa pada bidang horizontal (a), dan pada bidang vertikal(b) . 125 Gambar 6.9. Peletakan robot pada diagram Cartesian (a), salah satu kaki robot diputar sebesar dengan sumbu rotasi x (b). .................................................. 126 Gambar 6.10. Kaki digeser sebesar (x, y, z) ............................................. 128 Gambar 6.11. Desain blok sistem .................................................................... 129 Gambar 6.12. workspace keempat lengan robot .............................................. 130 Gambar 6.13. Diagram alir untuk gerak translasi ............................................. 131 Gambar 6.14. Diagram alir untuk melakukan langkah ...................................... 131 Gambar 6. 15 Urutan skenario gerakan kaki .................................................... 133 Gambar 7.1. Pengiriman gelombang dan gelombang pantul ........................... 149 Gambar 7.2. Rangkaian Transmiter Sensor Ultra Sonic................................... 151 Gambar 7.3. Rangkaian Receiver Sensor Ultra Sonic ..................................... 152 Gambar 7.4. Sensor Jarak Ultrasonik Devantech SRF04 ................................ 154 ix



Gambar 7.5. Bentuk fisik UV TRON R2868 ..................................................... 155 Gambar 7.6. Luasan deteksi titik api sensor UVtron ........................................ 155 Gambar 7.7. Sensitivitas Sudut........................................................................ 156 Gambar 7.8. Respon Spektrum ....................................................................... 156 Gambar 7.9. Rekomendasi Pengoperasian Rangkaian.................................... 156 Gambar 7.10. Diagram Blok Driver UV Tron C3704 ......................................... 157 Gambar 7.11. Sinyal Keluaran Driver UV Tron C3704 ..................................... 157 Gambar 7.12. Konfigurasi Hardware ................................................................ 158 Gambar 7.13. Logika Algoritma ....................................................................... 158 Gambar 7.14. Rangkaian Sensor Garis ........................................................... 159 Gambar 7.15. Bentuk Fisik Motor DC .............................................................. 160 Gambar 7.16. Bentuk Fisik LCD 16x2 .............................................................. 161 Gambar 7.17. Desain 2 Dimensi Robot ............................................................ 163 Gambar 7.18. Desain 3 Dimensi Robot ............................................................ 163 Gambar 7.19. Blok diagram robot pemadam api .............................................. 164 Gambar 7.20. Rangkaian skematik robot pemadam api................................... 165 Gambar 7.21. Baterai Lipo ............................................................................... 166 Gambar 7.22. Rangkaian Regulator................................................................. 166 Gambar 7.23. Bentuk lapangan uji coba robot ................................................. 167 Gambar 7.24. Flowchart Program Robot Pemadam Api .................................. 168



x



DAFTAR TABEL Tabel 1. 1 Spesifikasi kemampuan bekerja manusia vs robot ............................ 28 Tabel 4.1. Tabel Kebenaran Driver Motor .......................................................... 92 Tabel 4.2. Desain Kecepatan Motordc ............................................................... 95



xi



DAFTAR LAMPIRAN Kunci Jawaban KB 1 ……………………………………………….…………. 183 Kunci Jawaban KB 3 ……………………………………………….…………. 183 Kunci Jawaban KB 4 ……………………………………………….…………. 187 Kunci Jawaban KB 5 ……………………………………………….…………. 191 Kunci Jawaban KB 6 ……………………………………………….…………. 193 Kunci Jawaban KB 7 ……………………………………………….…………. 195



xii



xiii



PENDAHULUAN



A. Latar belakang Dewasa ini penggunaan robot sudah menjadi kebutuhan di berbagai bidang industri baik industri permesinan, manufaktur, pengerjaan logam, kayu maupun di dunia otomotif.Mengapa teknologi robot dapat berkembang cepat dan sangat banyak digunakan di industri? Hal itudisebabkankarena dengan sistem robotmampu memberikan jawaban atas efisiensi terhadap suatu hasil produksi dengan keunggulan utama antara lain : kecepatan, kualitas yang merata dan terjamin



dan



mampu



diaplikasikan



diberbagai



kondisi



ekstrem



untuk



meminimalisirkan resiko pekerjaan pada manusia. Dalam aplikasinya rekayasa sistem robotik sangat luas mulai dari rancang bangun mekanik kontrol terkait dengan berbagai gerakan mekanik, pemilihan aktuator seperti jenis motor, silinder,coil dll., pemilihan jenis sensor yang disesuaikan dengan kebutuhan masing-masing robot seperti sensor suhu,, warna, jarak, gyro dll. Rangkaian elektronik berupa driver aktuator, rangkaian pengkondisi sinyal sensor, rangkaian mikrokontroller, wiring pengkabelan dll. Kontrol sistem berupa penerapan hukum logika maupun kontrol cerdas seperti PID, fuzzy, NN dll. Aplikasi rekayasa sistem robotik banyak digunakan dalam sistem manufaktur otomotif, fungsi utama adalah melakukan fungsi khusus dalam proses kegiatan produksi, contoh memasang baut, mengelas, mengecat dll. Pada industri manufaktur robot lengan atau biasa disebut manipulator robot sangat populer digunakan karena kehandalan sistemnya dalam melakukan tugas yang membutuhkan kecepatan dan kepresisian yang tinggi.



1



Gambar 1. Sistem Robot Manufaktur Industri



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



B. Tujuan Setelah mengikuti pembelajaran pada modul ini peserta diklat diharapkan dapat : 1.



Mengenali



Robot



(sejarah,



arsitektur



sederhana,



struktur/



susunan,



komponen). 2.



Memahami kinematik dan Dinamik Robot.



3.



Memahami jenis Power Supply untuk Robot (sumber AC/ Catu daya; Batery; Sel Surya/solar cell)



4.



Mensimulasi dan mengujiSistem Penggerak /Aktuator Robot



5.



Mengujicobakan sensor-sensor untuk Robotik



6.



Mempraktikan beberapa Jenis Robot (Line tracking/line follower; Boe Bot; Whisker; Cerdas dengan Boe Bot; Berkaki Quad Crawler; Berkaki dan Lengan)



7.



Memahami dan mempraktikan jenis Kontrol Robot.



8.



Menerapkan pembuatan & pemrogram kontrol Robotik.



2



C. Peta Kompetensi



D. Ruang Lingkup 1. Perkembangan Robot 2. Mengenal Jenis Robot 3. Jenis-Jenis Aktuator dan rangkaian driver. 4. Jenis-jenis sensor dan rangkaian pengkondisi sinyal 5. Mikrokontroller sebagai unit pengolah utama 6. Prosedur pemecahan masalah dituangkan dalam flowchart 7. Pembuatan program berdasarkan prosedur pemecahan masalah. 8. Pemrograman aplikasi berbasis I/O pada robotik



3



E. Saran Cara Penggunaan Modul Untuk memperoleh hasil belajar secara maksimal, dalam menggunakan modul ini maka langkah-langkah yang perlu dilaksanakan antara lain :



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



2. Kerjakan setiap tugas formatif (soal latihan) untuk mengetahui seberapa besar pemahaman yang telah dimiliki terhadap materi-materi yang dibahas dalam setiap kegiatan belajar.



3. Untuk kegiatan belajar yang terdiri dari teori dan praktik, perhatikanlah halhal berikut: a. Perhatikan petunjuk-petunjuk keselamatan kerja yang berlaku. b. Pahami setiap langkah kerja (prosedur praktikum) dengan baik. c. Sebelum melaksanakan praktikum, identifikasi (tentukan) peralatan dan bahan yang diperlukan dengan cermat. d. Gunakan alat sesuai prosedur pemakaian yang benar. e. Untuk melakukan kegiatan praktikum yang belum jelas, harus meminta ijin widyaiswara atau instruktur terlebih dahulu. f. Setelah selesai, kembalikan alat dan bahan ke tempat semula g. Jika belum menguasai level materi yang diharapkan, ulangi lagi pada kegiatan belajar sebelumnya atau bertanyalah kepada instruktur yang mengampu kegiatan pembelajaran yang bersangkutan.



4



KEGIATAN PEMBELAJARAN I: DASAR - DASAR ROBOTIKA A. Tujuan Setelah mengikuti dan atau menyelesaikan materi Perkembangan Teknologi Mikroprosesor, Melalui diskusi kelompok peserta dapat: -



Mengenal sejarah perkembangan robot



-



Mengetahui fungsi aplikasi robot dalam kehidupan sehari-hari dan



-



Memahami jenis-jenis robot berdasarkan klasifikasi-nya.



B. Indikator Pencapaian Kompetensi -



Memahami sejarah perkembangan robot



-



Menyebutkan jenis robot berdasar beberapa klasifikasi



-



Menyebutkan fungsi dan aplikasi robot dalam dunia sehari-hari



C. Uraian Materi 1. Pendahuluan Istilah robot berasal dari bahasa Cekoslowakia. Kata robot berasal dari kosakata “Robota” yang berarti “kerja cepat”. Sedangkan pengertian robot secara tepat adalah sistem atau alat yang dapat berperilaku atau meniru perilaku manusia dengan tujuan untuk menggantikan dan mempermudah kerja/aktifitas manusia. Untuk dapat diklasifikasikan sebagai robot, maka robot harus memiliki dua macam kemampuan yaitu:



1) Bisa mendapatkan informasi dari sekelilingnya. 2) Bisa



melakukan



sesuatu



secara



fisik



seperti



bergerak



atau



memanipulasi objek. Untuk dapat dikatakan sebagai robot sebuah sistem tidak perlu untuk meniru semua tingkah laku manusia, namun suatu sistem tersebut dapat mengadopsi satu atau dua dari sistem yang ada pada diri manusia saja sudah dapat



5



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



Meningkatkan produksi, akurasi dan daya tahan. Robot ini banyak digunakan di industri.



b.



Untuk tugas-tugas yang berbahaya, kotor dan beresiko. Robot ini digunakan ketika manusia tidak mampu masuk ke daerah yang beresiko. Seperti Robot Untuk menjelajah planet, robot untuk mendeteksi limbah nuklir, robot militer dll.



c.



Untuk pendidikan. Banyak robot yang digunakan untuk menarik pelajar belajar teknologi seperti robot lego, dll.



d.



Untuk menolong manusia. Seperti di rumah untuk membersihkan rumah pakai penghisap debu otomatis, di rumah sakit untuk menghantar makanan, membantu operasi, dll.



2. Sejarah dan Perkembangan Teknologi Robot Penelitian dan pengembangan pada tahun



pertama yang berbuah produk



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



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



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



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



Robotika memiliki unsur yang sedikit berbeda dengan ilmu-ilmu dasar atau terapan yang lain dalam berkembang. Ilmu dasar biasanya berkembang dari suatu



hipotesis



yang



kemudian



diteliti



secara



metodis.



Ilmu



terapan



dikembangkan setelah ilmu-ilmu yang mendasarinya berkembang dengan baik. Sedangkan ilmu robotika lebih sering berkembang melalui pendekatan secara praktis. Kemudian melalui suatu pendekatan dari hasil pengamatan perilaku mahluk hidup atau benda/mesin/peralatan bergerak lainnya dikembangkanlah penelitian secara teoritis. Dari teori kembali kepada praktis, dan dari robot berkembang menjadi lebih canggih.



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



3. Penelitian di Bidang Robotika Perkembangan suatu ilmu tak lepas dari peran para peneliti kalau tak dapat dikatakan



bahwa



justru



penelitilah



yang



menyebabkan



suatu



ilmu



itu



berkembang. Perkembangan penelitian di bidang robotika lazimnya dapat segera diketahui dengan mencermati aplikasinya di dunia industri atau produk kegiatan penelitian skala laboratorium di group-group penelitian yang tersebar di berbagai institusi pendidikan dan penelitian di negara-negara maju. Dengan mudahnya mengakses internet sekarang ini dan banyaknya sumber-sumber informasi masa kini yang tersebar secara terbuka di situs-situs penelitian. Keterkaitan seluruh komponen atau sub-domain dalam ruang lingkup penelitian di bidang robotika. Secara garis besar penelitian di bidang robotika dapat dilakukan dengan memilih tema berdasarkan alur dalam 4 tahapan, yaitu klasifikasi, obyek penelitian, fokus penelitian dan target penelitian. Dari blok klarifikasi, struktur robot dapat diketahui berada dalam kelompok mana. Dari sini, obyek penelitian dapat ditentukan dan dijabarkan secara detil parameterparameternya.



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 & nonmobile) 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 modelbased control.



Pada kasus dinamik robot yang rumit seringkali dibutuhkan bantuan kecerdasan buatan untuk mengidentifikasi model matematiknya. Lindan Goldenberg(2001) menggunakan



jaringan



saraf



tiruan



(artificial



neural



network)



untuk



mengidentifikasi model dan kontrol yang sesuai untuk sebuah mobile manipulator. Sedangkan Sakka dan Chochron (2001) menggunakan algorithma 9



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



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



a. Mekatronik vs Robotik Mekatronik terdiri dari 4 disiplin ilmu, yaitu mekanik (mechanics), elektronik, teknik kontrol berbasis prosesor dan pemrograman seperti halnya pada bidang robotika. Sebuah produk mekatronik belum tentu robotika, namun robot adalah bagian dari mekatronik.



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



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



10



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



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



b. Non-mobile Robot Robot ini tidak dapat berpindah posisi dari satu tempat ke tempat lainnya, sehingga robot tersebut hanya dapat menggerakkan beberapa bagian dari tubuhnya dengan fungsi tertentu yang telah dirancang. Contoh : Robot Industri Anatomi robot industri secara umum dapat diilustrasikan seperti pada gambar 1.1. Robot industri yang diilustrasikan ini adalah robot tangan yang memiliki dua lengan (dilihat dari persendian), dan pergelangan. Di ujung pergelangan dapat diinstal berbagai tool sesuai dengan fungsi yang diharapkan. Jika dipandang dari sudut pergerakan maka terdiri dari tiga pergerakan utama, yaitu badan robot yang dapat berputar ke kiri dan kanan, lengan yang masing-masing dapat bergerak rotasi ke arah atas dan bawah, dan gerak pergelangan sesuai dengan sifat tool.



Gambar 1.1. Robot Lengan Sederhana



11



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



Manipulator Sensor Aktuator, dan Kontroler



Gambar 1.2. Sistem Robot Industry



Manipulator



adalah bagian mekanik yang dapat



difungsikan untuk



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



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



Kontroler adalah rangkaian elektronik berbasis mikroprosesor yang berfungsi sebagai pengatur seluruh komponen dalam membentuk fungsi kerja. Tipe pengaturan yang bisa diprogramkan mulai dari prinsip pengurut (sequencer)



12



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



Gambar 1.3. Robot Manipulator



Konfigurasi Manipulator



Secara klasik konfigurasi robot manipulator dapat dibagi dalam 4 kelompok, yaitu polar, silindris, cartesian dan sendi-lengan (joint-arm).



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



Kemampuan jangkauan ke atas dan bawah kurang bagus karena badan tidak mengangkat lengan secara vertikal, namun memiliki gerakan yang khas



13



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



Gambar 1.4. Konfigurasi Polar



2) Silinder Konfigurasi silinder mempunyai jangkauan berbentuk ruang silinder yang lebih baik, meskipun sudut lengan terhadap garis penyangga tetap. Konfigurasi ini banyak diadopsi untuk sistem gantry atau crane karena strukturnya yang kokoh untuk tugas mengangkat beban.



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



14



Gambar 1. 5. Konfigurasi Silinder



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



Gambar 1. 6. Konfigurasi Cartesian



15



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



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



Gambar 1.7. Konfigurasi Sendi-Lengan



c. Mobile Robot Mobile dapat diartikan bergerak, sehingga robot ini dapat memindahkan dirinya dari satu tempat ke tempat lain. Robot ini merupakan robot yang 16



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



Robot line tracker merupakan robot yang dapat bergerak mengikuti track berupa garis hitam setebal ±3 cm. Untuk membaca garis, robot dilengkapi dengan sensor proximity yang dapat membedakan antara garis hitam dengan



lantai



putih.



Sensor



proximity



ini



dapat



dikalibrasi



untuk



menyesuaikan pembacaan sensor terhadap kondisi pencahayaan ruangan. Sehingga pembacaan sensor selalu akurat.



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



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



17



Gambar 1.8. Flying Robot (Robot Terbang)



Under Water Robot (Robot dalam air) Robot ini digunakan di bawah laut untuk memonitor kondisi bawah laut dan juga untuk mengambil sesuatu di bawah laut.



Gambar 1.9. Under Water Robot (Robot Dalam Air)



d. Kombinasi Mobile dan Non-Mobile Robot



Robot ini merupakan penggabungan dari fungsi-fungsi pada robot mobile dan non-mobile. Sehingga keduanya saling melengkapi dimana robot nonmobile dapat terbantu fungsinya dengan bergerak dari satu tempat ke tempat yang lain.



18



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



e. Humanoid



Sebuah robot humanoid adalah robot otonom yang dapat beradaptasi dengan perubahan lingkungan atau dirinya sendiri. Ini merupakan perbedaan utama antara jenis humanoid dan jenis robot.



Dalam konteks, robot humanoid dapat mencakup, antara lain:  Dapat merawat dirinya sendiri (seperti pengisian sumber tenaga sendiri)  Dapat



belajar



otonom



(belajar



atau



memiliki



kemampuan



baru



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



Seperti robot mekanis lainnya, humanoid mengacu pada komponen dasar sebagai



berikut



(Perencanaan)



: dan



Sensing



(Penginderaan),



Controling



Actuating,



(Pengendalian).



Karena



Planning untuk 19



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



Gambar 1.11 Robot Humanoid



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



20



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



5. Sistem Kontrol Robotik



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



Gambar 1. 12 Kontrol robot loop terbuka



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



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



membutuhkan control



yang



lebih



komplek



dan membutuhkan 21



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



Gambar 1. 13 Kontrol Robot Loop Tertutup



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



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



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



6. Sensor Sebuah sensor adalah sebuah perangkat yang mengukur beberapa atribut lingkungan. Menjadi salah satu dari tiga hal terpenting dalam robotika (selain 22



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



Exteroceptive Sensor Exteroceptive Memungkinkan



sensor pada



memberikan robot



untuk



informasi tentang berinteraksi



lingkungan sekitar.



dengan



dunia.



Sensor



exteroceptive diklasifikasikan menurut fungsi mereka.



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



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



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



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



23



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



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



Aktuator piezoelectric menghasilkan gerakan kecil dengan kemampuan kekuatan tinggi ketika tegangan diberikan. Aktuator piezoelectric dapat digunakan untuk penentuan posisi gerak



yang



tepat



dan untuk menghasilkan maupun



penanganan dengan kekuatan yang tinggi atau tekanan dalam situasi statis atau dinamis.



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



Pneumatik aktuator beroperasi berdasarkan gas kompresibilitas. Aktuator ini digunakan untuk kecepatan rendah dan aplikasi beban rendah / menengah. Aktuator pneumatik terdiri dari : silinder ,valve , mesin pneumatik, motor stepper pneumatik dan selang-selang pneumatik.



24



8. Interaksi Manusia dan Robot Kehadiran robot dalam kehidupan manusia semakin hari disadari semakin banyak manfaatnya. Robotika tidak lagi dipandang sebagai ilmu yang berkembang hanya dalam konteks teknologi (fisik) saja, namun semakin hari semakin banyak masalah yang berkaitan dengan lingkungan hidup manusia yang perlu juga diambil perhatian.



Seperti telah diketahui, robot berkembang dari aplikasi-aplikasi di industri dalam struktur lingkungan yang lebih dikondisikan sebagai kawasan pabrik. Sehingga robot lebih banyak didisain dalam bentuk yang relatif khas sesuai dengan kebutuhan pabrik, seperti manipulator, dan kebanyakan tidak bersifat mobile atau tidak otonomous. Namun kehadiran robot di lingkungan yang bersifat lebih fleksibel, seperti misalnya rumah sakit, rumah tangga, perkantoran, eksplorasi hutan, dan pembangunan kawasan-kawasan berbahaya (plant nuklir, kimia, dsb.) telah membuat manusia harus menata ulang definisi, konstruksi dan fungsi robot. Keadaan ini telah menempatkan robot sebagai kehidupan keseharian sehingga dikenal istilah human-robot interaction. Interaksi antara manusia dengan robot atau mesin (human-machine interactions) dapat dinyatakan dalam 3 tingkatan, yaitu: 



Manusia sebagai kontroler robot sepenuhnya,







Manusia sebagai manager dari operasi robot, dan







Manusia dan robot berada dalam kesetaraan.



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



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



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



Gambar 1. 14 Sistem remote control pada robot



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



Gambar 1.15 menunjukkan sebuah robot manipulator yang dikontrol sepenuhnya oleh operator melalui kabel (cable remote control).



26



Gambar 1. 15 Sistem Remote Control pada manipulator



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



Contoh aplikasi dapat dijumpai dalam peralatan militer. Robot penjinak bom (bom disposal robot) justru dianggap lebih aman jika dikendalikan oleh operator. Setidaknya hingga sekarang, masih belum dijumpai robot penjinak bom yang sepenuhnya



dapat



bergerak



secara



otomatis.Alasannya



adalah



bahwa



penggunaan robot otomatis dapat lebih mencelakakan jika robot gagal berfungsi dan dapat bertindak liar.



Pada tingkatan berikutnya, manusia bertindak sebagai “manajer” bagi robot. Tugas secara detil dilakukan sendiri oleh robot, sedangkan tugas secara keseluruhan diatur oleh operator. Dalam hal tertentu robot sudah dimuati kemampuan kontrol otomatis (umpan balik), seperti kontrol posisi setiap sendi, kontrol kecepatan rotasi dan kontrol torsi (reaktif terhadap pembebanan).



27



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



Konteks interaksi manusia dengan robot dalam kesetaraan (dengan tentunya tetap berpegang pada prinsip bahwa robot adalah pembantu manusia) perlu dijabarkan lebih rinci dengan beberapa alasan yang dapat ditunjukkan seperti dalam tabel berikut ini. Tabel 1. 1 Spesifikasi kemampuan bekerja manusia vs robot



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



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



D. Aktivitas Pembelajaran Setelah selesai membaca sumber bacaan tentang dasar-dasar robotik yang meliputi sejarah perkembangan robot, fungsi dan aplikasi robot dalam dunia sehari-hari dan jenis-jenis robot berdasarkan klasifikasinya. Pembelajaran diarahkan untuk mencapai kompetensi yang disyaratkan dalam IPK standar kompetensi guru dan sebagai proses pengembangan potensi dan pembangunan karakter setiap peserta diklat, yaitu memberikan kesempatan kepada peserta diklat untuk mengembangkan potensi menjadi kemampuan yang semakin lama semakin meningkat dalam sikap (spiritual dan sosial), pengetahuan, dan keterampilan. Setiap tahapan pembelajaran dikondisikan adanya proses interaksi antar peserta diklat, antara peserta diklat dengan widyaiswara dan sumber belajar. Pelaksanaan pembelajaran dilakukan melalui pembelajaran langsung, yaitu peserta diklat melakukan kegiatan: 1. Mengamati dengan indra meliputi membaca uraian materi, mendengar penjelasan



widyaiswara



pengampu



materi



rekayasa



teknik



robotika,



menyimak permasalahan terkait dengan topik kegiatan pembelajaran. 2. Membuat dan mengajukan pertanyaan terkait dengan informasi yang belum dipahami atau perlu klarifikasi. 3. Mengeksplorasi melalui diskusi kelompok dan membaca sumber lain. 4. Mengolah informasi yang sudah dikumpulkan yaitu menganalisis data dalam bentuk



membuat



kategori,



mengasosiasi



atau



menghubungkan



fenomena/informasi yang terkait dan menyimpulkan. 5. Menyajikan laporan yaitu menyusun laporan tertulis meliputi proses, hasil, dan kesimpulan.



E. Latihan 1.



Apa yang dimaksud dengan Robot dan Robotika, Jelaskan berikut contohnya! 29



2.



Sebutkan dan jelaskan aplikasi atau penerapan robot dalam berbagai bidang yang ada hingga saat ini!



3.



Disiplin ilmu apa saja yang terkait dengan robotika dan apa peranan bidang ilmu tersebut dalam menunjang kemajuan robotika?



4.



Sebutkan dan jelaskan komponen-komponen utama dari sebuah robot!



5.



Jelaskan perbedaan antara sistem kontrol loop terbuka dengan system kontrol loop tertutup!



6.



Apa yang dimaksud dengan sensor dan aktuator berikan contohnya masingmasing?



7.



Sebutkan dan jelaskan tiga tingkatan interkasi antara manusia dan robot!



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



Untuk dapat diklasifikasikan sebagai robot, maka robot harus memiliki dua macam kemampuan yaitu: 1) Bisa mendapatkan informasi dari sekelilingnya. 2) Bisa melakukan sesuatu secara fisik seperti bergerak atau memanipulasi objek.



Ada beberapa fungsi robot, sehingga manusia memerlukan kehadirannya yaitu: 1.



Meningkatkan produksi, akurasi dan daya tahan. Robot ini banyak digunakan di industri.



2.



Untuk tugas-tugas yang berbahaya, kotor dan beresiko. Robot ini digunakan ketika manusia tidak mampu masuk ke daerah yang beresiko. Seperti Robot Untuk menjelajah planet, robot untuk mendeteksi limbah nuklir, robot militer dll.



30



3.



Untuk pendidikan. Banyak robot yang digunakan untuk menarik pelajar belajar teknologi seperti robot lego, dll.



4.



Untuk menolong manusia. Seperti di rumah untuk membersihkan rumah pakai penghisap debu otomatis, di rumah sakit untuk menghantar makanan, membantu operasi, dll.



G. Umpan Balik dan Tindak Lanjut Selamat saudara telah menyelesaikan kegiatan pembelajaran 1 yaitu tentang dasar-dasar robotika yang meliputi sejarah perkembangan robot, fungsi dan aplikasi robot di dunia sehari-hari serta klasifikasi jenis-jenis robot. Selanjutnya silahkan melanjutkan kegiatan pembelajaran 2 dengan membaca petunjuk dan tujuan kegiatan pembelajaran.



31



32



KEGIATAN PEMBELAJARAN 2: KONTROLER, SENSOR DAN AKTUATOR



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



-



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



-



Mengenal dan mempraktikan fungsi kerja actuator seperti motor DC dan motor servo



-



Memahami jenis-jenis sensor robot



B. Indikator Pencapaian Kompetensi -



Memahami sejarah perkembangan robot



-



Menyebutkan jenis robot berdasar beberapa klasifikasi



-



Menyebutkan fungsi dan aplikasi robot dalam dunia sehari-hari



C. Uraian Materi 1. Microcontroller Mikrokontrolleradalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena di dalam sebuah mikrokontroler umumnya juga telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O, sedangkan di dalam mikroprosesor umumnya hanya berisi CPU saja. Microcontroller dianggap sebagai suatu terobosan teknologi mikroprosesor atau mikrokomputer merupakan teknologi baru untuk memenuhi kebutuhan pasar.



33



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



Gambar 2. 1 Chip Mikrokontroller ATMega2560



a.



Arduino



Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan integrated development environment (IDE)nya berdasarkan 34



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



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



Arduino yang akan digunakan pada kegiatan-kegiatan belajar modul ini adalah arduino Uno dan Mega 2560. Dimana Arduino Uno board adalah mikrokontroller yang berbasis ATmega 321P sedangkan Arduino Mega2560 board mikrokontroler yang berbasis ATmega2560.



b. Arduino Uno Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan program didalamnya. Platform Arduino sekarang ini menjadi sangat populer dengan pertambahan jumlah pengguna baru yang terus meningkat. Hal ini karena kemudahannya dalam penggunaan dan penulisan kode. Tidak seperti kebanyakan papan sirkuit pemrograman sebelumnya, Arduino tidak lagi membutuhkan perangkat keras terpisah (disebut programmer atau downloader) untuk memuat atau meng-upload kode baru ke dalam mikrokontroler. Cukup dengan menggunakan kabel USB untuk mulai menggunakan Arduino. Selain itu, Arduino IDE menggunakan bahasa pemrograman C++ dengan versi yang telah disederhanakan, sehingga lebih mudah dalam belajar pemrograman. Arduino akhirnya berhasil menjadi papan sirkuit pemrograman paling disukai hingga menjadikannya sebagai bentuk standar dari fungsi mikrokontroler dengan paket yang mudah untuk diakses.



35



Gambar 2.2 Bentuk Fisik Arduino Uno



Gambar diatas menunjukan papan Arduino Uno yang merupakan salah satu papan paling populer diantara keluarga Arduino dan papan ini merupakan pilihan yang sangat cocok bagi para pemula. Arduino Uno adalah salah satu kit mikrokontroler yang berbasis pada ATmega328P-PU. Modul ini sudah dilengkapi dengan berbagai hal yang dibutuhkan



untuk



mendukung



mikrokontroler



untuk



bekerja,



hanya



sambungkan ke power supply atau sambungkan melalui kabel USB ke PCmu Arduino Uno ini sudah siap sedia. Arduino Uno ini memilki 14 pin digital input/output, 6 analog input, sebuah resonator keramik 16MHz, koneksi USB, colokan power input, ICSP header, dan sebuah tombol reset. Arduino adalah sebuah platform open source (sumber terbuka) yang digunakan untuk membuat proyek-proyek elektronika. Arduino terdiri dari dua bagian utama yaitu sebuah papan sirkuit fisik (sering disebut juga 36



dengan mikrokontroler) dan sebuah perangkat lunak atau IDE (Integrated Development Environment) yang berjalan pada komputer. Perangkat lunak ini sering disebut Arduino IDE yang digunakan untuk menulis dan mengupload kode dari komputer ke papan fisik (hardware) Arduino. Ketika membicarakan Arduino maka ada dua hal yang terlintas dalam pikiran para penggunanya, yaitu hardware dan software. Dua bagian ini seakan satu kesatuan utuh yang tidak bisa di pisahkan. Bahasa



pemrograman



arduino



merupakan



bahasa



C



yang



sudah



disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami mikrokontroller.



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



37



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



jika



tegangan



suplai



menggunakan



power



jack,



aksesnya



menggunakan pin ini.  5V: Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh USB atau supply regulasi 5V lainnya.  3V3: Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya adalah 50mA  Pin Ground: berfungsi sebagai jalur ground pada Arduino  Memori: ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM. Input & Output Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum 40 mA dan memiliki internal pull-up resistor (disconnected oleh default) 20-50K Ohm. Beberapa pin memiliki fungsi sebagai berikut: 



Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang koresponding dari USB ke TTL chip serial.







Interupt eksternal: 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger sebuah interap pada low value, rising atau falling edge, atau perubahan nilai.







PWM: 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan fungsi analogWrite().



38







SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport komunikasi SPI, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino.







LED: 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati.



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



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



Arduino Mega2560 Revisi 3 memiliki fitur-fitur baru berikut: 



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



39



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



Sirkuit RESET.







Chip ATmega16U2 menggantikan chip ATmega8U2.



Gambar 2.3 Arduino Mega2560 R3 Bagian Depan



Pemetaan Pin Dibawah ini pemetaan pin ATmega2560 dengan Arduino Mega2560:



40



Gambar 2.4 Pin Arduino Mega2560 R3



Ringkasan Spesifikasi Dibawah ini spesifikasi sederhana dari Arduino Mega2560: Mikrokontroler



ATmega2560



Tegangan Operasi



5V



Input Voltage (disarankan)



7-12V



Input Voltage (limit)



6-20V



Pin Digital I/O



54 (yang 15 pin digunakan sebagai output PWM)



Pins Input Analog



16



Arus DC per pin I/O



40 mA



41



Arus DC untuk pin 3.3V



50 mA



Flash Memory



256 KB (8 KB digunakan untuk bootloader)



SRAM



8 KB



EEPROM



4 KB



Clock Speed



16 MHz



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



Papan Arduino ATmega2560 dapat beroperasi dengan pasokan daya eksternal 6 Volt sampai 20 volt. Jika diberi tegangan kurang dari 7 Volt, maka, pin 5 Volt mungkin akan menghasilkan tegangan kurang dari 5 Volt dan ini akan membuat papan menjadi tidak stabil. Jika sumber tegangan menggunakan lebih dari 12 Volt, regulator tegangan akan mengalami panas berlebihan dan bisa merusak papan. Rentang sumber tegangan yang dianjurkan adalah 7 Volt sampai 12 Volt. Pin tegangan yang tersedia pada papan Arduino adalah sebagai berikut: 



VIN



:



Adalah



input



tegangan



untuk



papan



Arduino



ketika



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



42



tegangan



untuk



papan



melalui



jack



power,



kita



bisa



mengakses/mengambil tegangan melalui pin ini. 



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







3V3 : Sebuah pin yang menghasilkan tegangan 3,3 Volt. Tegangan ini dihasilkan oleh regulator yang terdapat pada papan (on-board). Arus maksimum yang dihasilkan adalah 50 mA.







GND : Pin Ground atau Massa.







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



Memori Arduino ATmega2560 memiliki 256 KB flash memory untuk menyimpan kode (yang 8 KB digunakan untuk bootloader), 8 KB SRAM dan 4 KB EEPROM (yang dapat dibaca dan ditulis dengan perpustakaan EEPROM). Input dan Output Masing-masing dari 54 digital pin pada Arduino Mega dapat digunakan sebagai input atau output, menggunakan fungsi pinMode() , digitalWrite() , dan digitalRead(). Arduino Mega beroperasi pada tegangan 5 volt. Setiap pin dapat memberikan atau menerima arus maksimum 40 mA dan memiliki resistor pull-up internal (yang terputus secara default) sebesar 20-50 kOhms. Selain itu, beberapa pin memiliki fungsi khusus, antara lain: 43







Serial : 0 (RX) dan 1 (TX); Serial 1 : 19 (RX) dan 18 (TX); Serial 2 : 17 (RX) dan 16 (TX); Serial 3 : 15 (RX) dan 14 (TX). Digunakan untuk menerima (RX) dan mengirimkan (TX) data serial TTL. Pins 0 dan 1 juga terhubung ke pin chip ATmega16U2 Serial USB-to-TTL.







Eksternal Interupsi : Pin 2 (interrupt 0), pin 3 (interrupt 1), pin 18 (interrupt 5), pin 19 (interrupt 4), pin 20 (interrupt 3), dan pin 21 (interrupt 2). Pin ini dapat dikonfigurasi untuk memicu sebuah interupsi pada nilai yang rendah, meningkat atau menurun, atau perubah nilai.







SPI : Pin 50 (MISO), pin 51 (MOSI), pin 52 (SCK), pin 53 (SS). Pin ini mendukung komunikasi SPI menggunakan perpustakaan SPI. Pin SPI juga terhubung dengan header ICSP, yang secara fisik kompatibel dengan Arduino Uno, Arduino Duemilanove dan Arduino Diecimila.







LED : Pin 13. Tersedia secara built-in pada papan Arduino ATmega2560. LED terhubung ke pin digital 13. Ketika pin diset bernilai HIGH, maka LED menyala (ON), dan ketika pin diset bernilai LOW, maka LED padam (OFF).







TWI : Pin 20 (SDA) dan pin 21 (SCL). Yang mendukung komunikasi TWI menggunakan perpustakaan Wire. Perhatikan bahwa pin ini tidak di lokasi yang sama dengan pin TWI pada Arduino Duemilanove atau Arduino Diecimila.



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



Ada beberapa pin lainnya yang tersedia, antara lain:



44







AREF : Referensi tegangan untuk input analog. Digunakan dengan fungsi analogReference().







RESET : Jalur LOW ini digunakan untuk me-reset (menghidupkan ulang)



mikrokontroler.



Jalur



ini



biasanya



digunakan



untuk



menambahkan tombol reset pada shield yang menghalangi papan utama Arduino. Komunikasi Arduino Mega2560 memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, dengan Arduino lain, atau dengan mikrokontroler lainnya. Arduino mega2560 menyediakan 4 hardware komunikasi serial UART TTL (5 Volt). Sebuah chip ATmega16U2 (ATmega8U2 pada papan Revisi 1 dan Revisi 2) yang terdapat pada papan digunakan sebagai media komunikasi serial melalui USB dan muncul sebagai COM Port Virtual (pada Device komputer) untuk berkomunikasi dengan perangkat lunak pada komputer, untuk sistem operasi Windows masih tetap memerlukan file inf, tetapi untuk sistem operasi OS X dan Linux akan mengenali papan sebagai port COM secara otomatis. Perangkat lunak Arduino termasuk didalamnya serial monitor memungkinkan data tekstual sederhana dikirim ke dan dari papan Arduino. LED RX dan TX yang tersedia pada papan akan berkedip ketika data sedang dikirim atau diterima melalui chip USB-to-serial yang terhubung melalui USB komputer (tetapi tidak untuk komunikasi serial seperti pada pin 0 dan 1). Sebuah perpustakaan SoftwareSerial memungkinkan untuk komunikasi serial pada salah satu pin digital Mega2560. ATmega2560 juga mendukung komunikasi TWI dan SPI. Perangkat lunak Arduino termasuk perpustakaan Wire digunakan untuk menyederhanakan penggunaan bus TWI. Untuk komunikasi SPI, menggunakan perpustakaan SPI.



d. Software Arduino 45



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



IDE Arduino adalah software yang sangat canggih ditulis dengan menggunakan Java. IDE Arduino terdiri dari: a)



Editor program, sebuah window yang memungkinkan pengguna menulis dan mengeditprogram dalam bahasa Processing.



b)



Compiler, sebuah modul yang mengubah kode program (bahasa Processing)



menjadi



kode



biner.



Bagaimanapun



sebuah



mikrokontroler tidak akan bisa memahami bahasa Processing. Yang bisa dipahami oleh mikrokontroler adalah kode biner. Itulah sebabnya compiler diperlukan dalam hal ini. c)



Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam memory didalam papan Arduino.



Sebuah kode program Arduino umumnya disebut dengan istilah sketch. Kata“sketch” digunakan secara bergantian dengan “kode program” dimana keduanya memiliki arti yang sama.



46



Gambar 2.5 Tampilan IDE Arduino dengan sebuah sketch



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



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



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



Motor servo merupakan sebuah motor DC yang dilengkapi rangkaian kendali dengan sistem closed feedback yang terintegrasi dalam motor tersebut. Pada motor servo posisi putaran sumbu (axis) dari motor akan diinformasikan kembali kerangkaian kontrol yang ada di dalam motor servo.



Gambar 2.6. Contoh Motor Servo



Motor servo disusun dari sebuah motor DC, gearbox, variabel resistor (VR) atau potensiometer



dan



rangkaian



kontrol.



Potensiometer



berfungsi



untuk



menentukan batas maksimum putaran sumbu (axis) motor servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang pada pin kontrol motor servo.



48



Gambar 2.7. Komponen-Komponen pada Motor Servo



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



Motor Servo Standar 180˚ Motor servo jenis ini hanya mampu bergerak dua arah (CW dan CCW) dengan defleksi masing-masing sudut mencapai 90˚ sehingga total defleksi sudut kanan-tengah-kiri adalah 180 ˚.



2)



Motor Servo Continous Motor servo jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batas andefleksi sudut putar (dapat berputar secara kontinyu).



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



49



Proses kendali motor servo dilakukan dengan memberikan pulsa PWM pada bagian data dari motor servo. Tampak pada gambar bahwa pada konektor motor servo terdapat 3 jalur yaitu VCC sebagai sumber tegangan positif, GND sebagai sumber tegangan negatif dan DATA sebagai input PWM. Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Adapun kondisi yang terdapat pada motor servo standar 1800 adalah: a)



Pada saat Ton duty cycle 1,5 ms, maka rotor dari motor akan berhenti tepat di tengah-tengah (sudut 00 / netral).



b)



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



c)



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



Gambar 2.8. Pulsa control Servo



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



servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang



dimilikinya (rating torsi servo).



Namun motor



servo tidak



akan



mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20 ms (mili detik) untuk menginstruksikan agar posisi poros motor servo tetap bertahan pada posisinya.



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



Gambar 2.9. Sensor Ultrasonik



Ada beberapa penjelasan mengenai gelombang ultrasonic. Sifat dari gelombang ultrasonik yang melalui medium menyebabkan getaran partikel dengan medium aplitudo sama dengan arah rambat longitudinal sehingga menghasilkan partikel medium yang membentuk suatu rapatan atau biasa disebut Strain dan tegangan yang biasa disebut Strees. Proses lanjut yang menyebabkan terjadinya rapatan



51



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



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



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



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



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



Gambar 2.10. Sensor LDR



a.



Aplikasi Sensor Cahaya LDR (Light Dependent Resistor)



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



Karakteristik Sensor Cahaya LDR (Light Dependent Resistor)



Sensor Cahaya LDR (Light Dependent Resistor) adalah suatu bentuk komponen yang mempunyai perubahan resistansi yang besarnya tergantung pada cahaya. Karakteristik LDR terdiri dari dua macam yaitu Laju Recovery dan Respon Spektral sebagai berikut :



53



1)



Laju Recovery Sensor Cahaya LDR (Light Dependent Resistor)



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



2)



Respon Spektral Sensor Cahaya LDR (Light Dependent Resistor)



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



3)



Prinsip Kerja Sensor Cahaya LDR (Light Dependent Resistor)



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



54



KEGIATAN PEMBELAJARAN 3: ROBOT WHISKER A. Tujuan Peserta dapat menggabungkan beberapa disiplin ilmu seperti elektronika, pemrograman, mekanika dan lain-lain menjadi satu kesatuan kerja proyek bernama robot whisker. Dalam kegiatan ini dimaksudkan untuk tujuan : 1)



Belajar bagaimana menggunakan dan memprogram pada Mikrokontroler Arduino.



2)



Mengetahui dasar-dasar elektronik dan akan mengerti untuk membuat proyek-proyek berdasarkan mikrokontroler.



3)



Mengetahui konsep kerja dan cara perakitan Whisker-BOT.



4)



Memahami rangkaian dan pemrograman dari Whisker-BOT.



5)



Memahami penggunaan whisker sebagai navigasi sentuhan.



B. Indikator Pencapaian Kompetensi 1)



Merakit robot Whisker-BOT dan dapat bekerja dengan baik sesuai instruksi program yang telah di-upload.



2)



Menguji Sensor whisker l menghadapi halangan (tembok) sehingga WhiskerBOT dapat beroperasi dengan benar.



3)



Mengontrol motor servo kontinyu dengan tepat sehingga Whisker-BOT dapat berjalan dan menjelajah dengan baik.



4)



Memahami implementasi bahasa pemrograman untuk robot whisker.



C. Uraian Materi 1. Robot Whiskers Navigasi dengan sentuhan digunakan dalam berbagai aplikasi robot termasuk : a)



Mendeteksi bila lengan robot menemukan objek



b)



Menghitung objek pada jalur produksi



c)



Menyelaraskan objek dalam suatu proses industri



d)



Mendeteksi dinding sebagai robot menavigasi jalannya di lintasan



55



Gambar 3.1. Whisker pada Arduino-BOT



Whiskers memberi Arduino-BOT kemampuan untuk merasakan suatu kendala di sekitarnya melalui sentuhan, seperti antena pada semut atau kumis pada kucing.



Bagaimana saklar whisker bekerja? Karena setiap whisker terhubung ke digital I/O, Arduino dapat diprogram untuk mendeteksi tegangan yang dikenakan setiap rangkaian, 5 V atau 0 V. Pertama, atur setiap pin untuk masukan dengan pinMode (pin, mode), dan kemudian mendeteksi kondisi pin tersebut, HIGH atau LOW, dengan fungsi digitalRead (pin) . Pada gambar 3.2 sebelah kiri, rangkaian sensor mengirim 5 V ketika whisker tidak ditekan, sehingga digitalRead(7) kembali 1 (HIGH). Di sebelah kanan, rangkaian mengirim 0 V ketika whisker ditekan, sehingga digitalRead(7) kembali 0 (LOW).



56



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



Gambar 3.2. Sistem Kerja Saklar Whisker



Masing-masing whisker adalah ekstensi mekanik dan sambungan listrik saklar normally open (off hingga ditekan), momentary (on hanya sembari ditekan), single-pole (satu set titik kontak listrik), single-throw (hanya satu posisi sambungan).



2. Kebutuhan Alat dan Bahan Perakitan Shield bot Pertama, rakit shield bot menggunakan peralatan dan komponen.yang dapat dibeli di toko elektronik sekitar. Kebutuhan alat dan bahan antara lain : a) Obeng plus dan minus



1 buah



b) Kunci Pas no 8



1 buah



c) Tang Runcing



1 buah



d) Chassis Robot



1 set



e) Standoff, Mur, Karet Grommer



1 set



f)



2 buah



Servo dengan Putaran Kontinyu



g) Roda Plastik berlapis Karet



1 buah



h) Bola Roda



1 buah



i)



1 buah



BOE-Shield board



57



Gambar 3.3. Part Shield Bot



3. Merakit Komponen Robot Whisker Ikutilah langkah-langkah berikut dengan merakit setiap komponen menjadi satu kesatuan system sehingga membentuk robot whisker yang utuh.



58



a.



Merakit motor servo kedalam chasis mekanik.



Gambar 3.4. Posisi servo pada chassis



59



b. Memasang wadah baterai pada chassis



Gambar 3.5. Wadah baterai pada chassis



c. Memasang roda pada chassis



Gambar 3.6. Roda pada chassis



60



d. Memasang BOE-Shield Board



Gambar 3.7. Pemasangan BOE-shield bot



4. Membuat dan Menguji Whisker Selanjutnya buat rangkaian whisker dengan mengikuti langkah-langkah dibawah inidan tulis kode untuk memeriksa kondisi masukannya sebelum digunakan. Komponen : kabel whisker



2 buah



7/8 " pan head 4-40 sekrup Phillips



2 buah



½ " spacer bulat



2 buah



nylon washers, ukuran # 4



2 buah



3-pin m / m header



2 buah



resistor, 220 Ω (merah-merah-coklat)



2 buah 61



resistor, 10 kΩ (coklat-hitam-oranye)



2 buah



(misc) kabel jumper



Gambar 3.8. Part list whiskers



Membuat Whiskers 



Lepaskan dua sekrup depan yang memegang papan untuk standoffs depan.







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







Pasang sekrup melalui lubang di papan ke dalam standoffs bawah, tapi jangan dikencangkan terlebih dahulu.







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







62



Kencangkan sekrup ke dalam standoffs.



Gambar 3.9. Pemasangan whiskers







Gunakan 220 Ω resistor (merah merah-coklat) untuk menghubungkan pin digital 5 dan 7 untuk 3-pin yang sesuai header.







Gunakan 10 kΩ resistor (coklat-hitam-oranye) untuk menghubungkan 5 V untuk setiap 3-pin header.







Pastikan untuk menyesuaikan setiap whisker tetap dekat, tetapi tidak menyentuh header 3-pin pada breadboard. Disarankan berjarak sekitar 1/8 " (3 mm).



Gambar 3.10. Rangkaian whiskers



63



Menguji Whiskers Menampilkan nilai-nilai biner yang dikembalikan oleh digitalRead (5) dan digitalRead (7).



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



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



Gambar 3.11. Pengujian whiskers pada serial monitor



Keluaran Aktif-Low Whisker dirangkai untuk output active-low, yang berarti bahwa masing-masing mengirimkan sinyal rendah ketika ditekan (aktif) dan sinyal tinggi ketika tidak ditekan. Karena digitalRead menampilkan 0 untuk sinyal rendah dan 1 untuk sinyal tinggi, maka 0 yang mengindikasikan ketika whisker ditekan, dan 1 ketika whisker tidak ditekan. 



Masukkan, simpan, dan upload TestWhiskers ke Arduino.







Hubungkan kabel USB dan atur saklar 3-posisi ke posisi 1.







Begitu selesai di-upload, buka Serial Monitor.







Biarkan kabel USB tetap terhubung sehingga Arduino dapat mengirim pesan serial ke Serial Monitor.



64



/* * Robotics with Whisker - DisplayWhiskerStates * Display left and right whisker states in Serial Monitor. * 1 indicates no contact; 0 indicates contact. */ void setup() initialization block



// Built-in



{ tone(4, 3000, 1000); second



// Play tone for 1



delay(1000); tone



// Delay to finish



pinMode(7, INPUT); to input



// Set right whisker pin



pinMode(5, INPUT); to input



// Set left whisker pin



Serial.begin(9600); bps



// Set data rate to 9600



} void loop() repeats



// Main loop auto-



{ byte wLeft = digitalRead(5); wLeft



// Copy left result to



byte wRight = digitalRead(7); wRight



// Copy right result to



Serial.print(wLeft); state



// Display left whisker



Serial.println(wRight); state



// Display right whisker



delay(50);



// Pause for 50 ms



}



65



5. Navigasi dengan Whisker Membuat Arduino memonitor saklar whisker dan memicu aksi respons, juga dapat memungkinkan Whisker-Bot berjalan dan memilih manuver sendiri jika menabrak sesuatu. Gambaran Navigasi Whisker Whisker-Bot berjalan maju sembari memantau input whisker, hingga menemukan sebuah rintangan dengan satu atau keduanya. Segera setelah Arduino mengindera kontak listrik whisker, akan digunakan statement if... else if... else untuk memutuskan apa yang harus dilakukan. Kode keputusan memeriksa berbagai kombinasi whisker ditekan maupun tidak ditekan, dan memanggil fungsi navigasi untuk menjalankan back up dan manuver belokannya. Kemudian, Whisker-Bot bergerak maju kembali sampai menabrak suatu kendala lain. 



Atur saklar 3-posisi ke posisi 1.







Hubungkan kembali baterai Whisker-Bot ke Arduino.







Masukkan, simpan, dan upload RoamingWithWhiskers.







Lepaskan Whisker-Bot dari kabel pemrogramannya, dan pasang saklar power ke 2.







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



66



Gambar 3.12. Ilustrasi Program Navigasi Whisker



// Robotics with Whisker - RoamingWithWhiskers // Go forward. Shield bot



Back up and turn if whiskers indicate BOE



// bumpedinto something. #include servo library Servo servoLeft; right servos



// Include



// Declare left and



Servo servoRight; void setup() initialization block



// Built-in



{ pinMode(7, INPUT); to input



// Set right whisker pin



pinMode(5, INPUT); to input



// Set left whisker pin



tone(4, 3000, 1000);



// Play tone for 1 second



delay(1000);



// Delay to finish tone



67



servoLeft.attach(13); pin 13



// Attach left signal to



servoRight.attach(12); pin 12



// Attach right signal to



} void loop()



// Main loop auto-repeats



{ byte wLeft = digitalRead(5); wLeft



// Copy left result to



byte wRight = digitalRead(7); wRight



// Copy right result to



if((wLeft == 0) && (wRight == 0)) whiskers contact



// If both



{ backward(1000); second turnLeft(800); degrees



// Back up 1 // Turn left about 120



} else if(wLeft == 0) whisker contact



// If only left



{ backward(1000); second turnRight(400); degrees



// Back up 1 // Turn right about 60



} else if(wRight == 0) whisker contact



// If only right



{ backward(1000); second turnLeft(400); degrees



// Back up 1 // Turn left about 60



} else whisker contact {



68



// Otherwise, no



forward(20); second



// Forward 1/50 of a



} } void forward(int time) function



// Forward



{ servoLeft.writeMicroseconds(1700); counterclockwise



// Left wheel



servoRight.writeMicroseconds(1300); clockwise



// Right wheel



delay(time); time ms



// Maneuver for



} void turnLeft(int time) function



// Left turn



{ servoLeft.writeMicroseconds(1300); clockwise



// Left wheel



servoRight.writeMicroseconds(1300); clockwise



// Right wheel



delay(time); time ms



// Maneuver for



} void turnRight(int time) function



// Right turn



{ servoLeft.writeMicroseconds(1700); counterclockwise



// Left wheel



servoRight.writeMicroseconds(1700); // Right wheel counterclockwise delay(time); time ms



// Maneuver for



} void backward(int time) function



// Backward



{



69



servoLeft.writeMicroseconds(1300); clockwise



// Left wheel



servoRight.writeMicroseconds(1700); // Right wheel counterclockwise delay(time); time ms



// Maneuver for



}



6. Kecerdasan Buatan untuk Melarikan Diri dari Sudut Whisker-Bot cenderung terjebak di sudut. Ketika memasuki sudut, whisker kiri bersentuhan tembok di sebelah kiri, sehingga mundur (back up) dan belok kanan. Ketika Whisker-Bot bergerak maju lagi, whisker kanan bersentuhan tembok di sebelah kanan, sehingga mundur (back up) dan belok kiri. Kemudian bersentuhan tembok bagian kiri lagi, dan lalu dinding kanan lagi, dan seterusnya, hingga seseorang menyelamatkannya dari keadaan yang sulit.



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



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



70



#include library Servo servoLeft; servos



// Include servo



// Declare left and right



Servo servoRight; byte wLeftOld; values



// Previous loop whisker



byte wRightOld; byte counter; corners



// For counting alternate



void setup() initialization block



// Built-in



{ pinMode(7, INPUT); to input



// Set right whisker pin



pinMode(5, INPUT); input



// Set left whisker pin to



pinMode(8, OUTPUT); output



// Left LED indicator ->



pinMode(2, OUTPUT); output



// Right LED indicator ->



tone(4, 3000, 1000); second



// Play tone for 1



delay(1000); tone



// Delay to finish



servoLeft.attach(13); to pin 13



// Attach left signal



servoRight.attach(12); to pin 12



// Attach right signal



wLeftOld = 0; whisker states



// Init. previous



wRightOld = 1; counter = 0; to 0



// Initialize counter



}



71



void loop() repeats



// Main loop auto-



{ // Corner Escape byte wLeft = digitalRead(5); wLeft



// Copy right result to



byte wRight = digitalRead(7); wRight



// Copy left result to



if(wLeft != wRight) pressed?



// One whisker



{ last time?



// Alternate from



if ((wLeft != wLeftOld) && (wRight != wRightOld)) { counter++;



// Increase count by



one wLeftOld = wLeft; next rep



// Record current for



wRightOld = wRight; if(counter == 4)



// Stuck in a corner?



{ wLeft = 0;



// Set up for U-turn



wRight = 0; counter = 0; corner count



// Clear alternate



} } else last time



// Not alternate from



{ counter = 0; corner count



// Clear alternate



} } // Whisker Navigation if((wLeft == 0) && (wRight == 0)) contact



72



// If both whiskers



{ backward(1000); turnLeft(800); 120 degrees



// Back up 1 second // Turn left about



} else if(wLeft == 0) contact



// If only left whisker



{ backward(1000);



// Back up 1 second



turnRight(400); 60 degrees



// Turn right about



} else if(wRight == 0) whisker contact



// If only right



{ backward(1000); turnLeft(400); degrees



// Back up 1 second // Turn left about 60



} else whisker contact



// Otherwise, no



{ forward(20); second



// Forward 1/50 of a



} } void forward(int time)



// Forward function



{ servoLeft.writeMicroseconds(1700); counterclockwise



// Left wheel



servoRight.writeMicroseconds(1300); clockwise



// Right wheel



delay(time);



// Maneuver for time



ms } void turnLeft(int time)



// Left turn function



{ servoLeft.writeMicroseconds(1300); clockwise



// Left wheel



73



servoRight.writeMicroseconds(1300); clockwise delay(time);



// Right wheel // Maneuver for time



ms } void turnRight(int time) function



// Right turn



{ servoLeft.writeMicroseconds(1700); counterclockwise servoRight.writeMicroseconds(1700); counterclockwise delay(time);



// Left wheel // Right wheel // Maneuver for time



ms } void backward(int time)



// Backward function



{ servoLeft.writeMicroseconds(1300); clockwise servoRight.writeMicroseconds(1700); counterclockwise delay(time);



// Left wheel // Right wheel // Maneuver for time



ms }



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



74



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



fungsi



loop



dalam



RoamingWithWhiskers



sehingga



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



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



75



kegiatan



ini,



diharapkan



pembaca



dapat



memahami



bagaimana



cara



membangun robot whisker sederhana dengan menggunakan mikrokontroler Arduino



G. Umpan Balik dan Tindak Lanjut Selamat Saudara telah menyelesaikan kegiatan pembelajaran 3 yaitu tentang perakitan robot whiskermulai dari prinsip kerja robot whisker, mempersiapkan lat dan bahan, merakit komponen robot whisker, memprogram dan mengusji system terintegrasi. Selanjutnya silahkan melanjutkan kegiatan pembelajaran 4 dengan membaca petunjuk dan tujuan kegiatan pembelajaran.



76



KEGIATAN PEMBELAJARAN 4: ROBOT LINE FOLLOWER



A. TUJUAN Adapun tujuan dari kegiatan pembelajaran ini agar peserta mampu: 1. Mengetahui cara pembuatan robot line follower 2. Mengetahui kebutuhan dan konsep atau proses kerja dari robot line follower 3. Merangkai dan memprogram keseluruhan dari robot line follower 4. Memahami bagaimana robot tersebut bisa membaca garis hitam dan juga bisa mengikuti garis tersebut menggunakan sensor infrared.



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



C. Uraian Materi Robot line follower merupakan robot yang bertujuan untuk menelusuri jejak (garis) secara otomatis, dimana jejak atau garis tersebut berupa garis yang dibentuk dari warna hitam. Meskipun demikian robot ini dapat dikatakan robot cukup cerdas karena robot line follower ini mampu melakukan penelusuran garis dengan sendirinya. Sebenarnya prinsip dari robot line follower dapat dikatakan project sederhana, yaitu kinerja dari robot ini ditentukan oleh komponen elektronikanya yang terdiri dari sensor dan motor driver. Selain itu juga diperlukan beberapa komponen lain untuk menunjang kebutuhan robot line follower tersebut. Misalnya untuk pergerakan dari robot sebagai kakinya bisa menggunakan motor (motor dc). Namun motor tersebut harus 77



menggunakan rangkaian lain seperti menggunakan rangkaian IC (motor driver), agar bisa memperlambat ataupun mempercepat perputaran motor bahkan motor tersebut bisa bergerak maju ataupun mundur.Selain itu pergerakan motor juga akan di kontrol menggunakan microcontroller yaitu Arduino. Motor driver merupakan sebuah rangkaian elektronika yang biasa dihubungkan dengan Arduino untuk mengatur pergerakan motor dc dan juga bisa untuk mengukur penyerapan arus antara motor dc dengan komponen lain yang terpasang.



Gambar 4.1. robot line follower



Line follower robot adalah robot yang bisa bergerak mengikuti jalur panduan garis. Garis pandu yang di gunakan dalam hal ini adalah garis putih yang di tempatkan pada permukaan berwaran gelap, atupun sebaliknya, garis hitam yang ditempatkan pada permukaan berwarna putih. Sedangkan untuk elektronik robot yaitu sebuah robot yang meliputi adanya rangkaian pengendali utama (main controller), rangkaian sensor, dan rangkaian driver. Dan sistem yang penting dalam pembuatan robot line follower yaitu bahasa pemrogram (software). Ada dua macam robot line follower yaitu line follower biasa tanpa menggunakan program dan line follower dengan program microkontroler. hanya saja yang menggunakan program microkontroler lebih komplek dan lebih sempurna jika di banding line follower yang tanpa menggunakan program. 78



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



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



Gambar 4.2. IC L293



79



Gambar 4.3. pin IC motor driver L293D



Fungsi Pin Driver Motor DC IC L293D sebagai berikut: 



Pin EN (Enable, EN1.2, EN3.4) berfungsi untuk mengijinkan driver menerima perintah untuk menggerakan motor DC.







Pin In (Input, 1A, 2A, 3A, 4A) adalah pin input sinyal kendali motor DC







Pin Out (Output, 1Y, 2Y, 3Y, 4Y) adalah jalur output masing-masing driver yang dihubungkan ke motor DC







Pin VCC (VCC1, VCC2) adalah jalur input tegangan sumber driver motor DC, dimana VCC1



adalah jalur



input



sumber tegangan rangkaian



kontrol dirver dan VCC2 adalah jalur input sumber tegangan untuk motor DC yang dikendalikan. 



Pin GND (Ground) adalah jalu yang harus dihubungkan ke ground, pin GND ini ada 4 buah yang berdekatan dan dapat dihubungkan ke sebuah pendingin kecil.



Fitur Driver Motor DC IC L293D Driver motor DC IC L293D memiliki fitur yang lengkap untuk sebuah driver motor DC sehingga dapat diaplikasikan dalam beberapa teknik driver motor DC dan dapat digunakan untuk mengendalikan beberapa jenis motor DC. Feature yang dimiliki driver motor DC IC L293D sesuai dengan datasheet adlah sebagai berikut: •Wide Supply-Voltage Range: 4.5 V to 36 V •Separate Input-Logic Supply •Internal ESD Protection



80



•Thermal Shutdown • High-Noise-Immunity Inputs • Functionally Similar to SGS L293 and SGS L293D • Output Current 1 A Per Channel (600 mA for L293D) •Peak Output Current 2 A Per Channel (1.2 A for L293D) •Output Clamp Diodes for Inductive Transient Suppression (L293D)



Gambar 4.4. Block diagram motor driver L293D



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



81



Gambar 4.5. Output photodiode terhadap intensitas cahaya



3. Mekanisme Perancangan Sensor Garis LED superbright berfungsi sebagai pengirim cahaya ke garis untuk dipantulkan lalu dibaca oleh sensor photodiode. Sifat dari warna putih (permukaan terang) yang memantulkan cahaya dan warna hitam (permukaan gelap) yang tidak memantulkan cahaya digunakan dalam aplikasi ini. Gambar dibawah ini adalah ilustrasi mekanisme sensor garis.



Gambar 4.6. Ilustrasi mekanisme sensor garis



Prinsip Kerja Sensor Pada rancangan sensor photodiode dibawah ini, nilai resistansinya akan berkurang bila terkena cahaya dan bekerja pada kondisi riverse bias. Untuk 82



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



KE MIKROKONTROLLER



Gambar 4.7. Sensor photodiode tidak terkena cahaya



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



KE MIKROKONTROLLER



Gambar 4.8. Sensor photodiode terkena cahaya



Saat photodiode terkena cahaya, maka photodiode akan bersifat sebagai sumber tegangan dan nilai resistansinya akan menjadi kecil, sehingga akan ada arus bocor yang mengalir ke mikrokontroller.



83



4. Motor DC Pada dasarnya beberapa aplikasi yang menggunakan motor DC harus dapat mengatur kecepatan dan arah putar dari motor DC itu sendiri. Untuk dapat melakukan pengaturan kecepatan motor DC dapat menggunakan metode PWM (Pulse Width Modulation) sedangkan untuk mengatur arah putarannya dapat menggunakan rangkaian H-bridge yang tersusun dari 4 buah transistor. Tetapi dipasaran telah disediakan IC L293D sebagai driver motor DC yang dapat mengatur arah putar dan disediakan pin untuk input yang berasal dari PWM untuk mengatur kecepatan motor DC.Sebelum membahas tentang IC L293D, alangkah baiknya jika kita membahas driver motor DC menggunakan rangkaian analog terlebih dahulu. Jika diinginkan sebuah motor DC yang dapat diatur kecepatannya tanpa dapat mengatur arah putarnya, maka kita dapat menggunakan sebuah transistor sebagai driver. Untuk mengatur kecepatan putar motor DC digunakan PWM yang dibangkitkan melalui fitur Timer pada mikrokontroler. Sebagian besar power supply untuk motor DC adalah sebesar 12V, sedangkan output PWM dari mikrokontroler maksimal sebesar 5V. Oleh karena itu digunakan transistor sebagai penguat tegangan. Dibawah ini adalah gambar driver motor DC menggunakan transistor.



Gambar 4.9. Driver searah motor DC



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



84



Gambar 4.10. Driver bolak-balik motor DC



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



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



85



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



D. Aktivitas Pembelajaran Pembelajaran diarahkan untuk mencapai kompetensi yang disyaratkan dalam IPK standar kompetensi guru dan sebagai proses pengembangan potensi dan pembangunan karakter setiap peserta diklat, yaitu memberikan kesempatan kepada peserta diklat untuk mengembangkan potensi menjadi kemampuan yang semakin



lama



semakin



meningkat



dalam



sikap



(spiritual



dan



sosial),



pengetahuan, dan keterampilan. Untuk mengembangkan potensi kemampuan pendidik, Saudara dapat mengikuti langkah-langkah project membuat robot line followers melalui beberapa tahapan berikut:



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



86



Gambar 4.11. rangka Robot Line Follower



Gambar 4.12. Mekanik Robot Line follower tampak 3D



Kemudian Seluruh perangkat keras robot line followers sederhana ini menggunakan arduino dan dapat dibagi menjadi tiga bagian. Sensor, papan arduino dan sirkuit motor driver.



87



a. Merakit Sensor



Gambar 4.13. Komponen Sensor



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



Gambar 4.14. Rangkaian Sensor Line Follower



88



Gambar 4.15. Cara Kerja Sensor



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



Setelah kita tahu ilustrasi sensor, tinjau kembali rangkaian sensornya, bisa kita analogikan seperti gambar berikut:



89



Gambar 4.16. Analogi Sensor



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



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



90



Ketika kiri dan kanan sensor mendeteksi putih robot bergerak maju.







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







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



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



3. Konsep Motor DC Saatnya membahas tentang IC L293D, untuk lebih jelasnya dapat dibaca di datasheet. Disini akan di jelaskan sedikit dasar teori tentang IC L293D, tetapi akan lebih banyak di fokuskan tentang bagaimana cara penggunaannya.



91



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



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



IN1



IN2



KONDISI MOTOR



0



0



Fast motor stop



0



1



Putar searah jarum jam



1



0



Putar berlawanan jarum jam



1



1



Fast motor stop



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



92



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



IN1/IN3



IN2/IN4



KONDISI MOTOR



1



0



RUN



1



1



STOP



Diagram Blok Line Follower Dari penjelasan diatas, berikut diagram blok dari robot line follower:



93



Gambar 4.17. Diagram Blok Line Follower



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



94



Langkah langkahnya:  



Hubungkan kedua Pin VCC Sensor dengan Pin 5V Arduino. Hubungkan kedua Pin Gnd Sensor dengan Pin Gnd Arduino.







Hubungkan Pin Data Sensor Tengah dengan Pin A0 Arduino.







Hubungkan Pin Data Sensor Kanan1 dengan Pin A1 Arduino.







Hubungkan Pin Data Sensor Kanan2 dengan Pin A2 Arduino.







Hubungkan Pin Data Sensor Kiri1 dengan Pin A3 Arduino.







Hubungkan Pin Data Sensor Kiri2 dengan Pin A4 Arduino.







Hubungkan Pin En1 Driver DC Motor dengan Pin 5 Arduino.







Hubungkan Pin En2 Driver DC Motor dengan Pin 6 Arduino.







Hubungkan Pin In1 In3 Driver DC Motor dengan VCC.







Hubungkan Pin In2 In4 Driver DC Motor dengan pin D0 dan D1 Arduino







Hubungkan Pin 5volt Driver DC Motor dengan Pin 5v Arduino.







Hubungkan Out Kanan Driver DC Motor dengan DC Motor Kanan.







Hubungkan Out Kiri Driver DC Motor dengan DC Motor Kiri.



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



Motor kanan



Nilai/Jumlah i



Motor kiri



Direction1



Direction2



i=1 ≤ i=3



0



255



HIGH



LOW



i=4 ≤ i=7 i=8 i=9 ≤ i=12 i=13 ≤ i=24



0 128 128 255



128 128 0 0



HIGH LOW LOW LOW



LOW LOW HIGH HIGH 95



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



1. Bagian utama



96



2. Membaca dan kalkulasi nilai sensor



3. Output sensor



97



Program Arduino //Blok Pertama Deklarasi dan Inisialisasi Variable //Inisialisasi Sensor int sensorKiri1 = A0; int sensorKiri2 = A1; int sensorTengah = A2; int sensorKanan1 = A3; int sensorKanan2 = A4; //Inisialisasi Motor DC int motorKanan = 11; int motorKiri = 12; int direction1 = 2; int direction2 = 3; //insialisasi variabel i int i=0; //Blok Kedua Seting Input dan Output void setup() { pinMode (sensorKiri1,INPUT); pinMode (sensorKiri2,INPUT); pinMode (sensorTengah,INPUT); pinMode (sensorKanan1,INPUT); pinMode (sensorKanan2,INPUT); pinMode pinMode pinMode pinMode }



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



//Blok Ketiga Program Utama void loop() { //mengosongkan isi variabel i=0; if (digitalRead(A0)==HIGH { i=i+1;} if (digitalRead(A1)==HIGH { i=i+2;} if (digitalRead(A2)==HIGH { i=i+4;} if (digitalRead(A3)==HIGH { i=i+8;} if (digitalRead(A4)==HIGH { i=i+16;}



98



) ) ) ) )



//--------------------------------------------------------------------if ( (i>=1) && (1=4) && (1=8) ) { analogWrite (motorKanan,128); analogWrite (motorKiri,128); digitalWrite (direction1,LOW); digitalWrite (direction2,LOW); } //--------------------------------------------------------------------else if ( (i>=9) && (1=13) && (1> Cara menghitung untuk BOE-Shield



110



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



// Include servo



Servo servoLeft; right servos



// Declare left and



Servo servoRight; void setup() initialization block



// Built-in



{ tone(4, 3000, 1000); second



// Play tone for 1



delay(1000); tone



// Delay to finish



servoLeft.attach(13); to pin 13



// Attach left signal



servoRight.attach(12); signal to pin 12



// Attach right // Full speed forward



servoLeft.writeMicroseconds(1700); counterclockwise



// Left wheel



servoRight.writeMicroseconds(1300); clockwise



// Right wheel



delay(1000);



// ...for 1 second



111



servoLeft.detach(); signals



// Stop sending servo



servoRight.detach(); } void loop() repeats



// Main loop auto-



{ needs



// Empty, nothing



}



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



Mari kita lihat proses loop pada diagram tersebut a.



Pertama jalan: variable “speed” adalah 0, sehingga kedua panggilan writeMicroseconds berakhir dengan parameter 1500.



112



Perulangan



b.



kedua:



variable



“speed”



adalah



2,



jadi



kita



memiliki



servoLeft.writeMicroseconds(1502)



dan



servoRight.writeMicroseconds(1498). Perulangan



c.



ketiga:



variable



“speed”



adalah



4,



jadi



kita



memiliki



servoLeft.writeMicroseconds(1504)



dan



servoRight.writeMicroseconds(1496). // Robotics with the BOE Shield - StartAndStopWithRamping // Ramp up, go forward, ramp down. #include library



// Include servo



Servo servoLeft; right servos



// Declare left and



Servo servoRight; void setup() initialization block



// Built-in



{ tone(4, 3000, 1000); second delay(1000);



// Play tone for 1 // Delay to finish tone



servoLeft.attach(13); to pin 13



// Attach left signal



servoRight.attach(12); to pin 12



// Attach right signal



for(int speed = 0; speed = 0; speed -= 2) // full speed to stop { servoLeft.writeMicroseconds(1500+speed); 1500,1502,...1598,1600



// us =



servoRight.writeMicroseconds(1500-speed); 1500,1498,...1402,1400



// us =



delay(20); speed



// 20 ms at each



} servoLeft.detach(); servo signals



// Stop sending



servoRight.detach(); } void loop() repeats



// Main loop auto-



{ to repeat



// Empty, nothing



}



114



5. Menyederhanakan navigasi dengan fungsi Salah satu cara untuk memudahkan untuk menjalankan program manuver adalah dengan membuat fungsi sub program(). BOE Shield-Bot melakukan manuver untuk menghindari rintangan dengan mengeksekusi sub program() manuver tersebut. Fungsi setup dan loop di dalam bahasa C pada Arduino adalah komponen utama, tapi Anda dapat menambahkan lebih banyak fungsi untuk melakukan tugas-tugas tertentu dengan membuat program bagian berupa sub program(). Pembelajaran kali ini memperkenalkan bagaimana menambahkan fungsi sub program untuk mengeksekusi program menjalan BOE BOT.



// Robotics with the BOE Shield – SimpleFunctionCall // This sketch demonstrates a simple function call. void setup() { Serial.begin(9600); Serial.println("Before example function call."); delay(1000); example(); call



// This is the function



Serial.println("After example function call."); delay(1000); } void loop() { } void example()



// This is the function



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



115



6. Fungsi Manuver Kustom Perhatikan aturan-aturan untuk speedLeft dan speedRight di bawah ini. Sub program maneuver memiliki tiga variabel komponen. void maneuver(int speedLeft, int speedRight, int msTime), variable speedLeft adalah variable untuk mengatur laju putaran motor kiri, variable speedRight untuk mengatur laju putaran motor kanan dan variable msTime untuk mengatur lama waktu program berjalan. Perhatikan aturan penulisan variable tersebut dibawah ini: a. Nilai positif untuk mengatur gerak maju robot b. Nilai negatif untuk mengatur gerak mundur robot c. 200 untuk kecepatan penuh maju ke depan d. -200 untuk kecepatan penuh mundur ke belakang e. 0 untuk berhenti f.



100 sampai -100 rentang untuk kendali linier merubah kecepatan



Aturan untuk msTime adalah : a. Nilai positif pada ms untuk menjalankan manuver b. -1 untuk menonaktifkan sinyal servo Berikut adalah contoh fungsi untuk maju-mundur-kiri-kanan-berhenti maneuver(200, 200, 2000);



// maju 2 detik



maneuver(-200, 200, 600);



// kiri 0.6 detik



maneuver(200, -200, 600);



// kanan 0.6 detik



maneuver(-200, -200, 2000);



// mundur 2 detik



maneuver(0, 0, -1);



// Disable servos



// Robotics with the BOE Shield - TestManeuverFunction // Move forward, left, right, then backward with maneuver function. #include library



// Include servo



Servo servoLeft; right servos



// Declare left and



116



Servo servoRight; void setup() initialization block



// Built-in



{ tone(4, 3000, 1000); second



// Play tone for 1



delay(1000); tone



// Delay to finish



servoLeft.attach(13); to pin 13



// Attach left signal



servoRight.attach(12); signal to pin 12



// Attach right



maneuver(200, 200, 2000);



// Forward 2 seconds



maneuver(-200, 200, 600);



// Left 0.6 seconds



maneuver(200, -200, 600);



// Right 0.6 seconds



maneuver(-200, -200, 2000);



// Backward 2 seconds



maneuver(0, 0, -1);



// Disable servos



} void loop() repeats



// Main loop auto-



{



// Empty,



} void maneuver(int speedLeft, int speedRight, int msTime) { // speedLeft, speedRight ranges: Backward Linear Forward



Linear



// 100......0......100



-



-200



Stop



200



servoLeft.writeMicroseconds(1500 + speedLeft); servo speed



// Set Left



servoRight.writeMicroseconds(1500 - speedRight); // Set right servo speed if(msTime==-1)



// if msTime =



-1 {



117



servoLeft.detach(); signals



// Stop servo



servoRight.detach(); } delay(msTime); msTime



// Delay for



D. Aktifitas Pembelajaran Pembelajaran diarahkan untuk mencapai kompetensi yang disyaratkan dalam IPK standar kompetensi guru dan sebagai proses pengembangan potensi dan pembangunan karakter setiap peserta diklat, yaitu memberikan kesempatan kepada peserta diklat untuk mengembangkan potensi menjadi kemampuan yang semakin



lama



semakin



meningkat



dalam



sikap



(spiritual



dan



sosial),



pengetahuan, dan keterampilan. Setiap tahapan pembelajaran dikondisikan adanya proses interaksi antar peserta diklat, antara peserta diklat dengan widyaiswara dan sumber belajar. Pelaksanaan pembelajaran dilakukan melalui pembelajaran langsung, yaitu peserta diklat melakukan kegiatan: 1. Mengamati dengan indra meliputi membaca uraian materi, mendengar penjelasan



widyaiswara



pengampu



materi



rekayasa



teknik



robotika,



menyimak permasalahan terkait dengan topik kegiatan pembelajaran. 2. Membuat dan mengajukan pertanyaan terkait dengan informasi yang belum dipahami atau perlu klarifikasi. 3. Mengeksplorasi melalui diskusi kelompok dan membaca sumber lain. 4. Mengolah informasi yang sudah dikumpulkan yaitu menganalisis data dalam bentuk membuat kategori, mengasosiasi atau menghubungkan fenomena/informasi yang terkait dan menyimpulkan 5. Menyajikan laporan yaitu menyusun laporan tertulis meliputi proses, hasil, dan kesimpulan.



118



E. Latihan / Tugas 1.



Buatlah perintah bagaimana BOE-Shield bot mundur dengan kecepatan penuh selama 2,5 detik



2.



Bagaimana membuat BOE-Shield bot jalan maju, kemudian berputar-putar di tempat lalu kemudian jalan lurus lagi



3.



Setelah dlakukan percobaan, servo memerlukan waktu 1,2 detik untuk belok memutar 180o. Dengan informasi ini, buatlah BOE-Shield bot dengan putaran 30o, 45o dan 60o



F. Rangkuman Pengaturan



navigasi



robot



BOEBOT



mengajarkan



peserta



didik



untuk



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



Programming a.



Menyederhanakan navigasi dengan menciptakan fungsi sub program bagian “maneuver” dan bagaimana memanggil fungsi-fungsi tersebut.



b.



Menggunakan perulangan dan menghitung langkah tahap-pertahapan perulangan dan diimplementasikan pada program maneuver.



c.



Bagaimana variabel lokal dapat dibuat sebagai parameter dalam deklarasi fungsi



d.



Bagaimana menginisialisasi tipe data int dan char array



serta



menggunakannya pada pemrograman mikrokontroller Arduino e.



Bagaimana mengelola program aliran kontrol, menggunakan do-while dan switch/case



f.



Cara menggunakan operator increment (++) dalam loop bersyarat



g.



Cara menggunakan operator tidak-sama dengan (! =) sebagai kondisi dalam sebuah loop



2. Kemampuan Robotik a.



Bagaimana mengatur gerak robot dengan mengendalikan kecepatan roda dan arah putarannya.



119



b.



Mengenali perbedaan perubahan kecepatan secara bertahap, berbelok pivot dan berputar-di-tempat, serta mengatur kecepatan gerak robot.



c.



Menghitung langkah gerak putaran roda dalam konteks navigasi entrylevel Robotika



d.



Mengendalikan robot manuver memutar ke sudut tertentu dan bergerak dalam waktu tertentu



e.



Kompensasi varians hardware dengan menyesuaikan kecepatan servo untuk gerakan lurus



3. Kemampuan Teknis a.



Membuat pengamatan dan pengukuran untuk memperoleh konstanta rumus sederhana yang mencirikan hubungan sebab-akibat antara sistem input dan output sistem.



b.



Perbedaan antara penyesuaian perangkat keras dan penyesuaian perangkat lunak



c.



120



Uji proses berulang-ulang, dan menggunakannya untuk pengujian penyesuaian perangkat lunak



KEGIATAN PEMBELAJARAN 6: ROBOT QUAD CRAWLER



A. Tujuan Adapun tujuan dari kegiatan pembelajaran ini adalah: 1.



Peserta mengetahui cara pembuatan robot quad crawler.



2.



Peserta mengetahui proses kerja dari robot quad crawler.



3.



Peserta dapat menghitung sudut kaki robot crawler.



4.



Peserta dapat memprogram koordinasi gerak kaki robot crawler



B. Indikator Pencapaian Kompetensi Adapun indikator dari kegiatan pembelajaran ini adalah: 1.



Menjalankan Quad crawler berdasar instruksi program yang telah di downloadkan ke dalam control robot.



2.



Mendesain program yang efisien dan mudah dipahami.



3.



Merakit robot quad crawler yang dapat berjalan dengan halus.



C. Uraian Materi 1. Perakitan Dasar Mekanik Dalam mendesain robot quad crawler terlebih dahulu siapkan beberapa komponen sebagai berikut : Motor servo DC



4 buah



Rangka chasis quad crawler



1 set



Set kaki quad crawler



4 set



Arduino mega2560



1 buah



Kabel dan jumper



secukupnya



121



Gambar 6.1. Komponen robot quad crawler



a.



Membangun Kaki Kiri depan



Catatan: Perhatikan orientasi dari setiap bagian kaki, kaki kiri & kanan akan terlihat sedikit berbeda. Semua sekrup, ring dan komponen lain tersedia pada set plastic yang telah disediakan



oleh



manufaktur.



(jika



saudara membangun secara mandiri, maka dapat menyesuaikan). Pastikan semua komponen kaki kiri depan telah tersambung antara mekanik, servo dan pengikatnya. Gambar 6.2. Kaki kiri depan terakit



122



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



Gambar 6.3. Kaki kanan depan terakit



c. Kaki yang telah terakit Gambar disamping memperlihatkan bagian kaki depan sisi kanan dan sisi kiri setelah selesai dirakit. Untuk merakit kaki belakang lanjutkan dengan cara yang sama dengan ketika merakit kaki bagian depan. Gambar 6.4. Rakitan kaki kanan kiri depan



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



Gambar 6.5. Merakit kaki kiri depan pada chasis



123



e. Prototype Setelah Jadi



Gambar 6.6. Robot quad crawler yang telah terakit



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



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



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



124



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



Dengan melihat gambar 5a dapat dicari nilai pada bidang horizontal dengan persamaan-persamaan pada di bawah ini: besar sudut atan (xf / yf)



(1)



panjang r adalah



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











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



 (3)



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























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























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



(6)



Sudut  adalah sudut yang yang harus dibentuk oleh motor pada body (join N) robot. Sedangkan ada bidang vertikal, dengan melihat gambar 5b dapat dihitung nilai dari persamaan-persamaan di bawah ini: besar sudut atan (zf / c)



(7)



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



















125



Dengan memakai aturan cosinus maka dapat dihitung besar sudut sebagai acos [ ( b2 + d2 - a2 ) / ( 2bd ) ]



(9)



Sudut yang harus dibentuk sumbu pada bahu (joint B) adalah  = 900 –().



(10)



Sedangkan sudut yang harus dibentuk sumbu pada siku (joint A) adalah (dengan aturan cosinus) acos [ ( a2 + b2 - d2 ) / ( 2ab ) ]



(11)



b. Rotasi pada sumbu x



a



b



Gambar 6.9. Peletakan robot pada diagram Cartesian (a),



salah satu kaki robot diputar sebesar dengan sumbu rotasi x (b).



Apabila titik yang merupakan koordinat kaki (x1, y1, z1) dirotasikan sebesar



dengan poros rotasi adalah garis (x, 0, 0) maka perhitungan koordinat yang baru adalah



126



 = atan (z1/y1)



(12)



r = (z12+y12)



(13)



x’1 = x1



(14)



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



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



































z’1 = r cos (  = (z12+y12) cos (atan (z1/y1)  Apabila nilai y, dan z dari poros rotasi tidak sama dengan 0,0 namun memiliki nilai sebesar ys, zs maka



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



(17)



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



(18)



x’1 = x1



(19)



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



























ys + [(z1-zs)2+(y1-ys)2] sin {atan [ (z1-zs)/ (y1-ys)]+ z’1 = zs + r cos (



























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



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



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







y'1 = y1



(23)



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



 127



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



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











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











z’1= z’1



(27)



e. Translasi lengan pada sumbu x, y, z



Gambar 6.10. Kaki digeser sebesar (x,



y, z)



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



x’1 = x1 +x (28) y’1 = y1 +y (29) z’1 = z1 +z (30) 128



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



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



CATU DAYA



Motor Servo 2



Motor Servo 3



Motor Servo 12



MICROCONTROLLER



sensor kemiringan



UART



PS2



Gambar 6.11. Desain blok sistem



129



D. AKTIFITAS PEMBELAJARAN Realisasi Algoritma Locomotion



Gambar 6.12. workspace keempat lengan robot



Algoritma locomotion yang akan dipakai secara garis besar sebagai berikut, robot pertama-tama akan menentukan urutan pergerakan kaki disesuaikan dengan arah hadap robot dan arah pergerakan robot (dalam kerangka Cartesian). Langkah berikutnya adalah memberikan nilai koordinat set poin pada masing masing lengan dengan memperhitungkan besar dan arah perpindahan yang akan dilakukan. Dari sini kemudian diperkirakan apakah posisi lengan masih berada pada luasan workspace atau tidak. Luasan workspace bisa dilihat di gambar 6.12, sebagai luasan seperempat lingkaran yang diarsir. Hal ini dipakai untuk menentukan perlu tidaknya perubahan kondisi lengan, apabila ternyata lengan berada diluar jangkauan workspace, ganti posisi set poin lengan. Point paling penting dari algoritma ini adalah robot akan melakukan simulasi terlebih dahulu untuk menguji kestabilan urutan sebelum memutuskan melakukan langkah yang diharapkan. Pengujian kestabilan dilakukan secara perhitungan matematis dengan cara seolah-olah salah satu kakinya diangkat. Robot kemudian akan mencari skenario urutan langkah aman sampai kondisi yang diharapkan tepenuhi. Apabila dalam simulasi pertama ternyata gagal karena syarat kestabilan tidak terpenuhi, robot akan mencari alternatif lain dengan cara mengubah urutan dan melakukan simulasi kembali sampai kondisi 130



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



Gambar 6.13. Diagram alir untuk gerak translasi



Gambar 6.14. Diagram alir untuk melakukan langkah



131



Penjelasan mengenai algoritma simulasi dapat dilihat pada gambar 6.15. Di sini robot akan melangkah kedepan dengan konfigurasi awal seperti gambar 6.15.a . Angka-angka pada lengan menunjukkan urutan jadwal apabila lengan tersebut dipindah, sedangkan lengan yang benar-benar akan melangkah menuju koordinat baru adalah lengan dengan urutan dua dan tiga, maka lengan yang harus diangkat pertama adalah lengan dua , kemudian lengan tiga. Namun pada saat lengan dua diangkat, robot dalam kondisi tidak stabil (bisa dilihat di gambar 6.15.a) , sehingga apabila ini tetap dilakukan, robot akan terjatuh. Oleh karena itu robot akan mengkalkulasi skenario urutan pengangkatan ini sehingga robot dapat berpindah tanpa terjatuh. apabila salah satu kaki diangkat kodisi robot tidak stabil ( perhitungan hanya dilakukan dalam simulasi tanpa benar benar menggerakkkan lengan) maka robot akan mencari urutan dibawahnya (urutan satu) untuk diposisikan mendekati lengan tersebut( urutan dua) dengan tujuan menjaga kestabilan saat lengan tersebut diangkat. namun sebelum mengangkat urutan satu robot juga harus mempertimbangkan kondisi kestabilan saat lengan ini di angkat. apabila ternyata labil, robot akan melihat kaki ke empat untuk diproses. Namun pada gambar robot cukup stabil bila kaki satu diangkat (dilihat di gambar 15.b), maka kaki satu akan diangkat (masih dalam simulasi) dan diletakkan mendekat ke kaki dua. dengan kondisi yang baru ini, robot akan stabil bila kaki dua diangkat (gambar 15.c), maka kaki dua akan diangkat (dalam simulasi) dan diletakkan ke posisi yang baru.



a



132



b



c



d



e Gambar 6. 15 Urutan skenario gerakan kaki



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



Program #include #define rightFront 1 #define rightBack 2 #define leftFront 3 #define leftBack 4 double coxa = 1.619; double femur = 2; double tibia = 4.664; double pi = 3.14; //The following variables determine how wide the legs are spread from each //otherdefault postion for Y



133



double centerY = 4; //default postion for X double centerX = 3; double xVal=-pi/4; double RFx2,RFy2,RFz2;



//These are almost always the current position of the quarduped's leg. double RFx,RFy,RFz; double RBx,RBy,RBz; double LFx,LFy,LFz; double LBx,LBy,LBz; //Right Front Servos (1) Servo RF0; Servo RF1; Servo RF2; //Right Back Servos (2) Servo RB0; Servo RB1; Servo RB2; //Left Front Servos (3) Servo LF0; Servo LF1; Servo LF2; //Left Back Servos (4) Servo LB0; Servo LB1; Servo LB2; unsigned long tNow = 0; unsigned long tOld = 0;



134



unsigned long tNowSM = 0; unsigned long tOldSM = 0; unsigned long tNow1 = 0; unsigned long tOld1 = 0; //counters int j = 0; int counter = 0; char inByte; void setup(){ //attach all the servos RB0.attach(7); RB1.attach(6); RB2.attach(5); RF0.attach(8); RF1.attach(9); RF2.attach(13); LB0.attach(10); LB1.attach(11); LB2.attach(12); LF0.attach(2); LF1.attach(3); LF2.attach(4); Serial.begin(9600); //Starting position at power up fullMove(0,0,4); } void loop(){



135



//Checks to see if there is new serial data if(Serial.available()){ inByte = Serial.read(); Serial.println(inByte); } //moves the robot body around in a circle if(inByte== 'a'){ around(1.5,3); else if(inByte=='c'){ fullMove(0,0,4); } } //Move a leg from current position to new position smoothly by using small //angle chages broken up into "steps" every t1 milliseconds void smoothMove(int servoNumber, double x, double y, double z, int t1, int steps){ //RF if(servoNumber == 1){ //how big each step is double dx = (x-RFx)/steps; double dy = (y-RFy)/steps; double dz = (z-RFz)/steps; //moves the leg along each axis by the corresponding delta, waits t1 then //repeats for(int i=0;i= 7){maju(); lcd.setCursor(0, 0); // print the number of seconds since reset: lcd.print("KA=



");



lcd.print(distance1); lcd.setCursor(0, 8); lcd.print("KI=



");



lcd.print(distance3); lcd.setCursor(1, 0); lcd.print("DEPAN=



");



lcd.print(distance1); while (digitalRead(sensor_garis)==HIGH){ maju(); delay(300);



171



if (digitalRead(sensor_UV)==HIGH){padamkan_api();} } } else if (distance3 = 10){putar_kanan(); lcd.setCursor(0, 0); // print the number of seconds since reset: lcd.print("KA=



");



lcd.print(distance1); lcd.setCursor(0, 8); lcd.print("KI=



");



lcd.print(distance3); lcd.setCursor(1, 0); lcd.print("DEPAN=



");



lcd.print(distance1); while (digitalRead(sensor_garis)==HIGH){ maju(); delay(300); if (digitalRead(sensor_UV)==HIGH){padamkan_api();} } } else if (distance3 >= 11 && distance2 >= 10){putar_kiri(); lcd.setCursor(0, 0); // print the number of seconds since reset: lcd.print("KA=



");



lcd.print(distance1); lcd.setCursor(0, 8); lcd.print("KI=



");



lcd.print(distance3); lcd.setCursor(1, 0); lcd.print("DEPAN=



");



lcd.print(distance1); while (digitalRead(sensor_garis)==HIGH){ maju(); delay(300); if (digitalRead(sensor_UV)==HIGH){padamkan_api();}



172



} } else if (distance2