IMPLEMENTASI ROBOT BERODA MENGGUNAKAN DRIVER L298N MELALUI MPU-6050 SEBAGAI KENDALI GESTUR
TANGAN
TUGAS AKHIR
PARIS FAHDZ ABDUL AZIS 172408047
PROGRAM STUDI D-III FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATRA UTARA
MEDAN 2020
TUGAS AKHIR
IMPLEMENTASI ROBOT BERODA MENGGUNAKAN DRIVER L298N MELALUI MPU-6050 SEBAGAI KENDALI GESTUR
TANGAN
Diselesaikan sebagai salah satu syarat
untuk menyelesaikan Program Pendidikan Diploma 3
Oleh :
PARIS FAHDZ ABDUL AZIS 172408047
PROGRAM STUDI D-III FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATRA UTARA
MEDAN 2020
PERNYATAAN ORISINALITAS
IMPLEMENTASI ROBOT BERODA MENGGUNAKAN DRIVER L298N MELALUI MPU-6050 SEBAGAI KENDALI GESTUR
TANGAN
LAPORAN TUGAS AKHIR
Saya menyatakan bahwa laporan tugas akhir ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 19 Agustus 2020
Paris Fahdz Abdul Azis 172408047
IMPLEMENTASI ROBOT BERODA MENGGUNAKAN DRIVER L298N DENGAN MPU-6050 MELALUI KENDALI GESTUR
TANGAN
ABSTRAK
Telah dirancang sebuah robot beroda melalui kendali gestur tangan. Robot telah didesain untuk bergerak maju,mundur,kanan dan kiri dengan menggunakan perintah gestur tangan. Agar gestur tangan dapat mengtrol pergerakan robot dibutuhkan sebuah Modul MPU6050 yang dapat membaca sinyal analog pada sudut X dan Y.
Pada perancangan ini robot dapat melaju dengan kecepatan rata-rata 0.457m/s pada sudut Y dengan jarak terbatas yaitu 30 meter. Modul MPU6050 memiliki sumbu X dengan nilai error 0,32% dan Y dengan nilai error 0,48%
Kata Kunci : Robot, MPU6050, Arduino, Gestur Tangan
IMPLEMENTATION OF WHEEL ROBOTS USING L298N DRIVER THROUGH MPU-6050
AS A HAND GESTURE
ABSTRACT
A wheeled robot through hand gesture control has been designed. The robot has been designed to move forward, backward, right and left using the hand gesture command.
In order for the hand gesture to control the movement of the robot, a MPU6050 Module that can read analog signals at X and Y angles is needed. In this design the robot can go with an average speed of 0.457m / s at an angle Y with a limited distance of 30 meters. The MPU6050 module has an X axis with an error value of 0.32% and Y with an error value of 0.48%
Keywords: Robots, MPU6050, Arduino, Hand Gesture
KATA PENGHARGAAN
Assalamu’alaikum Wr. Wb.
Puji syukur kehadirat Allah SWT yang telah memberikan rahmat serta hidayah-Nya, sehingga penulis dapat menyelesaikan tugas akhir ini, yang berjudul
“IMPLEMENTASI ROBOT MELALUI KENDALI GESTUR TANGAN MENGGUNAKAN MPU6050 DAN NRF24L01 BERBASIS ARDUINO NANO”
dengan lancar.
Tugas akhir ini tidak mungkin tersusun dengan baik dan benar tanpa adanya bimbingan dan dukungan dari berbagai pihak. Untuk itu pada kesempatan ini penulis mengucapkan terima kasih kepada:
1. Allah SWT dengan segala Rahmat serta karunianya yang memberikan kekuatan pada penulis dalam menyelesaikan Tugas Proyek ini.
2. Bapak Dr. Kerista Sebayang, MS selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
3. Bapak Drs.Takdir Tamba,M.Eng.Sc selaku Ketua Program Studi D-III Fisika Fakultas MIPA Universitas Sumatra Utara.
4. Bapak Azhari, S.pd., M.si selaku Pembimbing yang telah membimbing dan mengarahkan Kepada Penulis dalam menyelesaikan Laporan Proyek.
5. Babah dan Mamak yang saya sayangi yang selalu berjuang agar anak-anak nya tetap menjalankan pendidikan hingga saat ini dan saudari saya Kak Dira, Ica, Filza, icin dan Kak Ana
6. Seluruh Staf Pengajar/Pegawai Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatra Utara.
7. Teman yang selalu menjadi tempat saya mengeluh dan selalu ada dikala susah dan senang, Khairun Nisa somoga kita akan tetap selalu bersama, amiin
8. The Secret Sahabat seperjuangan gang.cipto Naufal, Ilham, Ade Yaksa, Farhan, Juanda, Andiko, dan Bobi sebagai sahabat yang selalu menjadi curahan hati saya, semoga kita dipertemukan dalam keadaan sukses.
9. Team Micro Solar Matic tempat saya mengasah ilmu dan skill baik individu maupun Team terkhusunya kepada Bang Armansyah Putra, Kak Dara, Ade Yaksa, Novia, Rika, Pindi dan kepada senior senior lainnya yang tidak bisa saya sebutkan namanya satu persatu
10. Serta masih banyak lagi pihak-pihak yang sangat berpengaruh dalam proses penyelesaian laporan proyek yang tidak bisa penulis sebutkan satu persatu.
Semoga Tuhan Yang Maha Esa senantiasa membalas semua kebaikan yang telah diberikan kepada Penulis. Semoga laporan proyek ini dapat bermanfaat bagi penulis umumnya kepada para pembaca.
Medan, 22 Juni 2020
Paris Fahdz Abdul Azis
DAFTAR ISI
Halaman
HALAMAN SAMPUL i
LEMBAR
PENGESAHAN ii
PERNYATAAN iii
PENGHARGAAN v
ABSTRAK vi
ABSTRAKS vii
DAFTAR ISI ix
DAFTAR TABEL x
DAFTAR GAMBAR
BAB 1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Tujuan Penulisan 2
1.4 Batasan Masalah 2
1.5 Manfaat 3
1.6 Sistematika Penulisan 3
BAB 2 LANDASAN TEORI 5
2.1 Robotika 5
2.1.1Peran Robot Bagi Kehidupan Manusia Dan Industri 6
2.1.2 Jenis Jenis Robot 8
2.2 Arduino Nano 10
2.3 Downloader 12
2.4 NRF24L01 13
2.5 Driver L298N 14
2.6 Baterai Li-Ion (Lithium-Ion) 17
2.7 Motor DC 17
2.7.1 Prinsip Kerja Motor DC 18
2.7.2 Bagian Atau Komponen Utama Motor DC 20
2.7.3 Kelebihan Motor DC 21
2.8 Gyroscope MPU-6050 21
BAB 3 PERANCANGAN ALAT DAN PEMBUATAN SISTEM 25
3.1 Metodologi Perancangan 25
3.2 Tahap Persiapan 25
3.2.1 Diagram Blok Sistem 26
3.2.2 Perancangan Rangkaian 27
3.2.2.1 Rangkaian Mikrokontroler ATMega328 27 3.4.2.2 Rangkaian Transmitter Dan Receiver 27
3.4.2.3 Rangkain MPU-6050 28
3.2.2.4 Rangkaian Driver Motor 28
3.2.3 Perancangan Perangkat Lunak Sistem
29
3.2.3.1 Flowchart Sistem
30 3.3 Pengujian Rangkaian Dan Pengukuran Hasil Sistem 33 3.3.1 Pengujian Rangkaian Mikrokontroler 33 3.3.2 Pengujian Modul 2,4GHz nRF24L01 33
3.3.3 Pengujian MPU-6050 36
3.3.4 Pengujian Motor Driver 39
3.3.5 Pengujian Gestur Tangan 39
3.3.6 Pengujian Mikrokontroler Arduino Pada Robot 44 3.4 Perancangan dan Pembuatan Sistem Gestur Tangan (RX) 50 3.5 Perancangan dan Pembuatan Sistem Robot (TX) 51 BAB 4 PENGUJIAN DAN ANALISA DATA
53
4.1 Pengujian Kecepatan Laju Pada Robot 53
4.2
Perbandingan Sudut Pembacaan Modul MPU-6050 Dengan
Sudut Sebenarnya Pada Sumbu X dan Y 54
4.3
Perbandingan Sudut Y Pada Modul MPU-6050 Dengan
Sudut Sebenarnya 55
BAB 5 KESIMPULAN DAN SARAN 56
5.1 Kesimpulan 56
5.2 Saran 56
DAFTAR PUSTAKA 56
LAMPIRAN
DAFTAR GAMBAR
Nomor Judul Halaman
Gambar
2.1 Robot Avoider 8
2.2 Robot Jaringan 8
2.3 Arduino Nano 10
2.4 Downloader 12
2.5 NRF24L01 13
2.6 Driver L298L 16
2.7 Baterai Li-Ion 17
2.8 Motor DC 18
2.9 Prinsip Kerja Motor DC 19
2.10 MPU6050 21
2.11 Data Sheet MPU6050 23
3.1 Diagram Blok 25
3.2 Rangkaian ATMega328 26
3.3 Rangkaian RX Dan TX 27
3.4 Rangkaian MPU6050 28
3.5 Driver Motor 28
3.6 Tampilan Arduino 29
3.7 Pengujian nRF24L01 34
3.8 Pengujian Sistem Gestur Tangan 41
3.9 Pengujian Sistem Robot 48
3.10 Sistem RX 50
3.11 Sistem TX 51
4.1 Grafik Sudut X Pada MPU6050 53
4.2 Grafik Sudut Y Pada MPU6050 54
DAFTAR TABEL
Nomor Judul Halaman
Tabel
3.1 Pengujian NRF24L01 35
3.2 Pengujian Sistem Gestur Tangan 41
3.3 Pengujian Sistem Robot 48
3.4 MPU6050 Ke Arduino 49
3.5 NRF24L01 Ke Arduino 49
3.6 Motor Driver L298N Ke Arduino 50
4.1 Data Pengujian Pada Laju Kecepatan Robot 52 4.2 Perbandingan Sudut X Pada Modul MPU6050 53 4.3 Perbandingan Sudut Y Pada Modul MPU6050 54
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi saat ini sangat pesat, demikian pula dengan perkembangan teknologi elektronika. Robotika merupakan bukti peradaban manusia yang semakin maju dari waktu ke waktu. Wujud robot bukan hanya sebuah bentuk yang menyerupai manusia atau binatang tertentu yang bergerak menyerupai bentuk yang ditirunya. Robot pada dasarnya merupakan suatu sistem terintegrasi yang membuat sebuah sistem mampu mengerjakan suatu tindakan berdasarkan masukan yang diterimanya.
Pada dasarnya manusia lebih terbiasa berinteraksi menggunakan suara, posisi tubuh dan gestur (gerakan) tangan. Penerapan gestur tangan mudah dilakukan karena proses pembelajaran relatif lebih singkat serta lebih alami dan interaktif. Untuk menggantikan peran perangkat kendali input seperti mouse, keyboard dan joystick yang digunakan untuk interaksi manusia dengan komputer. Namun, perangkat tersebut memerlukan pengontrolan yang cukup dekat serta tidak alami bagi manusia.
Berbagai macam jenis robot telah dikembangkan dan dibuat untuk memenuhi keinginan penggunaannya. Seiring dengan perkembangan dalam pembuatan robot membuat beberapa mahasiswa ingin mempelajari dan mengembangkan ilmunya mengenai pengetahuan robot, mulai dari prototype sampai sistem yang sebenarnya.
Untuk memenuhi keinginan tersebut dibuatlah suatu tugas akhir dengan judul
“Implementasi Robot Beroda dengan Kendali Gestur Tangan Menggunakan Sensor MPU-6050 Berbasis Arduino Nano” Seperti pada judul tersebut, sistem kendali robot menggunakan accelerometer. Gerakan gestur tangan untuk mengendalikan robot dapat berupa gerakan ke atas, bawah, kiri dan kanan.
Kecepatan robot juga dikendalikan selama gerakan oleh gestur tangan
Implementasi Robot Dengan Kendali Gestur Tangan Menggunakan MPU6050 Berbasis Arduino Nano ini menggunakan Accelerometer (MPU6050) sebagai variabel nya.
Modul MPU-6050 digunakan untuk mengubah perbedaan gestur tangan menjadi sinyal data. Kontrol navigasi robot menggunakan media komunikasi wireless.
Sebuah sarung tangan berbasis mikrokontroller yang dilengkapi dengan sensor MPU6050 dibangun untuk dapat mendeteksi setiap gestur tangan yang dihasilkan.
Hasil pengimplementasian ini diharapkan dapat menunjukan bahwa sebuah sistem pengontrolan navigasi robot berdasarkan gerakan tangan dapat diimplementasikan dan diaplikasikan dengan secara nyata, sehingga dapat memberikan pengalaman baru dalam berinteraksi dengan robot.
1.2 Rumusan Masalah
Berdasarkan uraian diatas, untuk merancang sebuah robot yang dapat dikendalikan oleh gerakan non-verbal yaitu gerakan dari tangan manusia berbasis mikrokontroller Atmega 328p pada Arduino Nano. Dimana pada perancangan ini akan dirumuskan masalah sebagai berikut :
1. Bagaimana mengimplementasikan sistem kontrol menggunakan gerakan non- verbal sebagai pengontrolan pada sistem pergerakan robot .
2. Bagaimana mengimplementasikan mikrokontroller Arduino Nano sebagai pengontrol pada sistem elektronika robot.
3. Bagaimana mengimplementasikan sensor MPU-6050 sebagai media komunikasi antara gerakan gestur tangan dan Driver L298N sebagai pergerakan Pada sistem Robot .
1.3 Tujuan
Adapun tujuan dalam tugas akhir ini adalah :
1. Memanfaatkan gestur tangan sebagai sistem pengendali gerakan robot.
2. Mengaplikasikan Mikrokontroler Arduino Nano sebagai pusat kontrol dalam sistem elektronika.
3. Mengaplikasikan Sensor MPU-6050 sebagai media pergerakan robot antara gestur tangan dengan sistem elektronika robot.
1.4 Batasan Masalah
Perancangan yang dilakukan dibatasi pada ruang lingkup yang lebih rinci agar sesuai dengan topik. Adapun batasan masalah pada tugas akhir ini adalah:
1. Rangakaian mikrokontroller yang di gunakan adalah Arduino Nano
2. Sistem berbasis Arduino Nano yang bertugas mengatur seluruh kegiatan sistem yang dirakit.
3. Sensor MPU-6050 berfungsi sebagai media Pergerakan antara sistem robot dengan sistem pengendali gerakan non-verbal pada robot.
4. Gerakan non-verbal yaitu gerakan gestur tangan yang digunakan sebagai pengontrol gerakan robot.
1.5 Manfaat
1. Implementasian penggunaan robot berperan penting untuk membantu mengurangi resiko kegiatan manusia seperti bidang kesehatan, misalnya robot dapat mengantar suatu barang ke tempat yang rentan terhadap infeksi virus.
2. Robot juga dapat mengantar suatu barang yang sulit dijangkau oleh manusia, seperti pengantaran barang yang melewati daerah suhu tingi atau daerah yang dipenuhi benda-benda tajam.
1.6 Sistematika Penulisan
Untuk mempermudah penulisan tugas akhir ini, penulis membuat suatu sistematika penulisan yang terdiri dari :
A. BAB 1: PENDAHULUAN
Bab ini akan membahas latar belakang tugas akhir, identifikasi masalah, batasan masalah, tujuan, metode penelitian, tinjauan pustaka, dan sistematika penulisan.
B. BAB 2: TINJAUAN PUSTAKA
Bab ini akan menjelaskan tentang teori pendukung yang digunakan untuk pembahasan.
C. BAB 3: PERANCANGAN ALAT
Bab ini membahas tentang perencanaan dan pembuatan sistem secara keseluruhan.
D. BAB 4: HASIL DAN PEMBAHASAN
Membahas tentang uji coba alat yang telah dibuat, pengoperasian dan spesifikasi alat dan lain-lain.
E. BAB 5: KESIMPULAN DAN SARAN
Sebagai bab terakhir penulis akan menguraikan beberapa kesimpulan dari uraian bab-bab sebelumnya, dan penulis akan berusaha memberikan saran yang mungkin bermanfaat.
F. DAFTAR PUSTAKA
Pada bagian ini akan dipaparkan tentang sumber-sumber literatur yang digunakan dalam pembutan Laporan Tugas Akhir ini.
BAB 2
LANDASAN TEORI
2.1 Robotika
Kata robot berasal dari bahasa Ceko yaitu robota, yang berarti pekerja. Menurut arti Bahasa, robot adalah alat mekanik yang dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, atau menggunakan program yang telah didefenisikan terlebih dahulu. Robot diperkenalkan pertama kali oleh Wright Karl Capek pada tahun 1920 melalui sandiwara komedi yang berjudul RUR (Rossum’s Universal Robots). Dalam sandiwara ini, diceritakan seorang tokoh ilmu pengetahuan bernama Rossum yang menciptakan bahan tiruan daging dan tulang melalui proses biologi dan elaktronik.
Pada tahun 1941, penulis fiksi ilmiah Isaac Asimov memperkenalkan istilah robotics dalam teknologi robot. Robotics diterima sebagai istilah atau kata untuk mendeskripsikan semua kemajuan teknologi yang berhubungan dengan robot. Pada tahun 1956, Georde Devil Joseph Engelberger membentuk perusahaan robot untuk pertama kalinya. Beberapa tahun berikutnya tepatnya pada tahun 1961, general motor pertama kali menggunakan robot untuk pabrik otomotifnya. Robot industri kemudian berkembang pesat dan mulai banyak digunakan pada tahun 1980 oleh perusahaan selain otomotif. Pada tahun inilah perkembangan elektronik dan komputer telah melahirkan robot modern.
Robot adalah sebuah sistem mekanik yang mempunyai fungsi gerak analog untuk fungsi gerak organisme hidup, atau kombinasi dari banyak fungsi gerak dengan fungsi intelligent, yang dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, ataupun menggunakan program yang telah didefinisikan terlebih dulu (kecerdasan buatan). Perkembangan robotika pada awalnya bukan dari disiplin elektronika melainkan berasal dari ilmuwan biologi dan pengarang cerita novel maupun pertunjukan drama pada sekitar abad XVIII. Para ilmuwan biologi pada saat itu ingin menciptakan makhluk yang mempunyai karakteristik seperti yang mereka inginkan dan menuruti segala apa yang mereka perintahkan, dan sampai sekarang makhluk yang mereka ciptakan tersebut tidak
pernah terwujud menjadi nyata, tapi matrak menjadi bahan pada novel-novel maipun naskah sandiwara pangung maupun film.
Baru sekitar abad XIX robot mulai dikembangkan oleh insinyur teknik, pada saat itu berbekal keahlian mekanika untuk membuat jam mekanik mereka membuat boneka tiruan manusia yang bisa bergerak pada bagian tubuhnya.
Pada tahun 1920 robot mulai berkembang dari disiplin ilmu elektronika, lebih spesifiknya pada cabang kajian disiplin ilmu elektronika yaitu teknik kontrol otomatis, tetapi pada masa-masa itu komputer yang merupakan komponoen utama pada sebuah robot yang digunakan untuk pengolaan data masukan dari sensor dan kendali aktuator belum memiliki kemmpuan komutasi yang cepat selain ukuran fisik komputer pada masa itru masih cukup besar.
Robot-robot cerdas mulai berkembang pesat seiring berkembagnya komputer pada sekitar tahun1950-an. Dengan semakin cepatya kemampuan komputasi komputer dan semakin kecilnya ukuran fisiknya,maka robot-robot yang dibuat semakin memiliki kecerdasan yang cukup baik untuk melakukan pekerjan-pekerjan yang biasa dilakukan olaeh manusia. Pada awal diciptakaanya, komputer sebagai alat hitung saja, perkembangan algoritma pemrograman menjadikan komputer sebagai instrumentasi yang memiliki kemammpauankemampuan seperti otak manusia.
Artificial intelegent atau kecerdasan buatan adalah algoritma pemrograman yang membuat komputer memiliki kecerdasan seperti manusia yang mampu menalar, mengambil kesimpulan dan keputusan berdasarkan pengalaman yang dimiliki.
2.1.1 Peran Robot Bagi Kehidupan Manusia dan industri
Dalam kehidupan manusia masa kini robot sudah banyak diaplikasikan dalam berbagai bidang. Secara umum robot berfungsi sebagai alat bantu manusia dalam menyelesaikan tugas yang terkadang sulit untuk diselesaikan karena membutuhkan konsentrasi dan resiko kecelakaan yang cukup besar. Bahkan ada juga robot bermain yang diciptakan hanya untuk menemani manusia dalam aktifitasnya sehari-hari.
Dengan adanya robot tersebut manusia dapat terhibur ketika merasakan sedih, kesepian bahkan kejenuhan yang timbul disela-sela aktifitas yang padat. Bentuk robot sangat bervariasi disesuaikan dengan kegunaanya masing-masing. Ada yang berbentuk seperti manusia, hewan, kendaraan dan sebagainya. Sebuah robot tidak
perlu meniru semua tingkah laku manusia namun cukup dengan mengadopsi dua atau tiga sistem yang ada pada diri manusia seperti pendengaran, penglihatan, dan gerakan. Dalam dunia industri, robot telah mengambil peran penting dalam menggantikan tugas manusia dalam beberapa bidang seperti industri perakitan mobil, elektronik dan industri pengemasan. Robot dalam dunia industri memberi banyak manfaat seperti mempercepat proses produksi serta kualitas produk yang dihasilkan lebih terjamin. Lain halnya dalam dunia medis, robot mengambil peran penting dalam membantu tenaga medis dalam melakukan tindakan operasi bedah misalnya bedah jantung, kanker dan operasi mata. Namun dalam dunia medis robot masih jarang dibiarkan untuk melakukan operasi secara otomatis atau tanpa dikendalikan oleh dokter. Dalam dunia antariksa robot telah digunakan untuk meneliti kehidupan di luar angkasa seperti robot Phoenix Lander yang diluncurkan pada tahun 2007 dalam misi penelitian di planet mars.
Robotika dalam industri sebenarnya sudah ada sejak lama, mulai sekitar abad 19 awal. Perlahan tapi pasti, robot pun akhirnya jadi andalan untuk menggantikan peran yang tak mungkin bisa dikerjakan manusia. Robot pertama yang dikenal dibangun pada 1937, diprogram untuk menyusun balok-balok kayu. Robot industri ini diciptakan dengan tujuan untuk mempercepat proses di pabrik, meningkatkan produktivitas pabrik. Seiring waktu, teknologinya bertumbuh semakin maju, aplikasi robotika juga semakin mutakhir dan maju. Mulai dari sekadar memilih dan meletakkan, hingga pada proses perakitan dan pengelasan. Pabrik yang otomatis berarti mengimplementasikan berbagai sistem kontrol yang mengelola peralatan dan mesin. Tujuan otomatisasi adalah untuk mengoperasikan pabrik secara lebih efisien, produktif, dan menghasilkan output yang memiliki kualitas lebih tinggi.
Menginstal robot ke dalam pabrik membantu bagian-bagian yang otomatis dalam lini produksi. Pekerjaan-pekerjaan yang otomatis diselesaikan dalam waktu yang lebih singkat, robot tak hanya bergerak dengan cepat dan kecepatan yang konsisten, tapi juga mampu berfungsi di luar jam kerja untuk memenuhi tenggat waktu produksi.
Tren teranyar dalam robot industri itu sama dengan saat bangkitnya komputer pada 1980-an. Walaupun komputer mengotomatisasi tugas-tugas yang biasanya menjadi tanggung jawab para sekretaris, ini tidak berarti bahwa pekerjaan sekretaris
itu terancam keberadaannya. Sebaliknya, komputer adalah alat yang dipakai oleh para sekretaris untuk menyelesaikan tugas-tugas mereka secara lebih produktif.
Seperti itu juga robot industri adalah alat yang bisa dipakai pabrik untuk membantu para pekerjanya di lini produksi. Mengingat manfaat yang bisa dihasilkan dari robot- robot, mereka juga akan membantu pabrik menciptakan lapangan kerja. Sebuah laporan pada 2013 oleh Metra Martech telah memperlihatkan bahwa robot industri diramalkan akan menciptakan antara 900.000 sampai 1,5 juta lapangan kerja dari 2012 sampai 2016. Sebagai contoh, perusahaan-perusahaan yang merasakan manfaat menjadi perusahaan yang semakin kompetitif sebagai hasil langsung karena memakai robot, cenderung juga akan mempekerjakan lebih banyak pekerja di masa depan untuk mendukung ekspansi produksi mereka. Robot tak hanya menciptakan lapangan kerja, tapi juga membuat tempat kerja makin atraktif. Robot industri bisa diatur untuk membantu pekerja di tempat kerja yang berbahaya di pabrik, seperti adanya bahan kimia berbahaya atau benda-benda berat.
2.1.2 Jenis-jenis Robot
Secara umum, robot memiliki dua jenis yaitu robot terkontrol (controlled robot) yang dikendalikan oleh remote control dan robot automatis (autonomous robot) yang mampu mengambil keputusan sendiri. Tidak semua robot memiliki bentuk seperti manusia (robot humanoid) yang mempunyai tangan, kaki dan kepala.
Ada beberapa robot yang hanya mempunyai tangan (robot manipulator), robot beroda (mobile robot), robot yang dapat terbang (flying robot), dan robot yang menyerupai binatang (robot animalia). Dalam hal ini robot-robot tersebut mempunyai kekurangan dan kelebihannya masing-masing dan Berbagai macam robot tersebut diciptakan sesuai dengan kebutuhan atau bertugas menyelesaikan pekerjaan yang lebih spesifik.
Robot sendiri memiliki beberapa jenis berdasarkan bentuk dan fungsinya masing– masing, berikut akan di jelaskan beberapa jenis dari robot :
a. Robot Avoider
Robot avoider adalah robot beroda atau berkaki yang diprogram untuk dapat menghindar jika ada halangan, misalnya dinding. Robot avoider minimal membutuhkan tiga buah sensor untuk mendeteksi penghalang yaitu sensor depan,
sudut kanan dan kri. Dalam hal ini sensor yang dipergunakan adalah sensor ultrasonik. Robot membutuhkan sensor yang banyak untuk hasil pendeteksian penghalang yang lebih baik. Hal ini dikarenakan keterbatasan sudut pancaran sensor (biasanya sekitar 150).
Gambar 2.1 Robot Avoider b. Robot Jaringan
Robot jaringan adalah pendekatan baru untuk melakukan kontrol robot menggunakan jaringan internet dengan protokol TCP/IP. Perkembangan robot jaringan dipicu oleh kemajuan jaringan dan internet yang pesat. Dengan koneksi jaringan, proses kontrol dan monitoring, termasuk akuisisi data bila ada, seluruhnya dilakukan melalui jaringan. Keuntungan lain, koneksi ini bisa dilakukan secara nirkabel.
Gambar 2.2 Robot Jaringan
2.2 Arduino Nano
Mikrokontroler adalah suatu chip berupa IC (Integrated Circuit) yang dapat menerima sinyal input, mengolahnya dan memberikan sinyal output sesuai dengan program yang diisikan ke dalamnya. Sinyal input mikrokontroler berasal dari sensor yang merupakan informasi dari lingkungan sedangkan sinyal output ditujukan kepada aktuator yang dapat memberikan efek ke lingkungan. Jadi secara sederhana mikrokontroler dapat diibaratkan sebagai otak dari suatu perangkat/produk yang mempu berinteraksi dengan lingkungan sekitarnya. Mikrokontroler pada dasarnya adalah komputer dalam satu chip, yang di dalamnya terdapat mikroprosesor, memori, jalur Input/Output (I/O) dan perangkat pelengkap lainnya. Kecepatan pengolahan data pada mikrokontroler lebih rendah jika dibandingkan dengan PC. Pada PC kecepatan mikroprosesor yang digunakan saat ini telah mencapai orde GHz, sedangkan kecepatan operasi mikrokontroler pada umumnya berkisar antara 1 – 16 MHz. Begitu juga kapasitas RAM dan ROM pada PC yang bisa mencapai orde Gbyte, dibandingkan dengan mikrokontroler yang hanya berkisar pada orde byte/Kbyte.
Meskipun kecepatan pengolahan data dan kapasitas memori pada mikrokontroler jauh lebih kecil jika dibandingkan dengan komputer personal, namun kemampuan mikrokontroler sudah cukup untuk dapat digunakan pada banyak aplikasi terutama karena ukurannya yang kompak. Mikrokontroler sering digunakan pada sistem yang tidak terlalu kompleks dan tidak memerlukan kemampuan komputasi yang tinggi.
Penggunaan mikrokontroler antara lain terdapat pada bidang-bidang berikut ini : a. Otomotif : Engine Control Unit, Air Bag, fuel control, Antilock Braking System,
sistem pengaman alarm, transmisi automatik, hiburan, pengkondisi udara, speedometer dan odometer, navigasi, suspensi aktif.
b. Perlengkapan rumah tangga dan perkantoran : sistem pengaman alarm, remote control, mesin cuci, microwave, pengkondisi udara, timbangan digital, mesin foto kopi, printer, mouse.
c. Pengendali peralatan di industri 4.0 robotika.
Arduino Nano adalah salah satu papan pengembangan mikrokontroler yang berukuran kecil, lengkap dan mendukung penggunaan breadboard. Arduino Nano diciptakan dengan basis mikrokontroler ATmega328 (untuk Arduino Nano versi 3.x)
atau ATmega 168 (untuk Arduino versi 2.x). Arduino Nano kurang lebih memiliki fungsi yang sama dengan Arduino Duemilanove, tetapi dalam paket yang berbeda.
Arduino Nano tidak menyertakan colokan DC berjenis Barrel Jack, dan dihubungkan ke komputer menggunakan port USB Mini-B. Arduino Nano dirancang dan diproduksi oleh perusahaan Gravitech.
Gambar 2.3 Arduino Nano
Banyak bahasa pemrograman yang biasa digunakan untuk program mikrokontroler, misalnya bahasa assembly. Namun dalam pemrograman Arduino bahasa yang dipakai adalah bahasa C. Bahasa C adalah bahasa yang sangat lazim dipakai sejak awal komputer diciptakan dan sangat berperan dalam perkembangan software.
Di internet banyak Library Bahasa C untuk Arduino yang bisa didownload dengan gratis. Setiap library Arduino biasanya disertai dengan contoh pemakaiannya, keberadaan library-library ini bukan hanya membantu kita membuat proyek mikrokontroler, tetapi bisa dijadikan sarana untuk mendalami pemrograman Bahasa C pada mikrokontroler. Berikut ini adalah penjelasan mengenai karakter bahasa C dan software Arduino:
a. Struktur : Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.
• Void setup() { }
Semua kode di dalam kurung kuraal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
• Void loop() { }
Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus- menerus sampai catu daya (power) dilepaskan.
b. Syntax : Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan.
• //(komentar satu baris)
• /* */(komentar banyak baris)
• { } (kurung kurawal)
• ; (titik koma)
c. Variabel : Sebuah program secara garis besar dapat didefenisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variable inilah yang digunakan untuk memindahkannya. Integer, Long, Boolean, Float, Char, Byte, Unsignt int, Unsign long, Double, String, Array.
d. Operator Matematika : operator yang digunakan untuk memanipulasi angka.
e. Operator Pembanding : digunakan untuk membandingkan nilai logika.
f. Struktur Pengaturan : Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini elemen dasar pengaturan: if, else dan for.
g. Digital :
• PinMode(pin, mode)
• digitalWrite(pin, value)
• digitalRead(pin)
h. Analog : Arduino adalah mesin digital, tetapi mempunyai kemampuan untuk beroperasi di dalam analog.
• analogWrite(pin, value)
• analogRead(pin)
2.3 Downloader
Downloader atau programmer dalam dunia mikrokontroler dikenal sebagai alat yang dapat digunakan untuk mengisi (flashing) program ke dalam chip mikrokontroler. Downloader atau programmer merupakan alat atau tools wajib yang harus Anda miliki ketika ingin ngoprek mikrokontroler. Downloader mikrokontroler
banyak jenisnya, tertantung  merek mikrokontroler apa yang Anda gunakan.
Masing-masing pabrik mikrokontroler biasanya menjual programmernya secara terpisah. Anda dapat membelinya sesuai dengan chip mikrokontroler apa yang Anda gunakan. Downloader atau programmer mikrokontroler dapat juga dibuat sendiri.
Banyak sekali rangkaian downloader mikrokontroler atau programer mikrokontroler yang dapat Anda lihat di internet. Salah satunya adalah downloader mikrokontroler AVR yang bernama USBasp. USBasp merupakan salah satu downloader mikrokontroler AVR yang sifatnya open source.
Gambar 2.4 Downloader
2.4 NRF24L01
Modul Wireless NRF24L01 adalah sebuah modul komunikasi jarak jauh yang memanfaatkan pita gelombang RF 2.4GHz ISM (Industrial, Scientific and Medical).
Modul ini menggunakan antarmuka SPI untuk berkomunikasi. Tegangan kerja dari modul ini adalah 5V DC.
NRF24L01 memiliki baseband logic Enhanced ShockBurst hardware protocol accelerator yang support “high-speed SPI interface for the application controller”.
NRF24L01 memiliki true ULP solution, yang memungkinkan daya tahan baterai berbulan-bulan hingga bertahun-tahun. Modul ini dapat digunakan untuk pembuatan 15 pheriperal PC, piranti permainan, piranti fitnes dan olahraga, mainan anak-anak dan alat lainnya.
Modul ini memiliki 8 buah pin, diantaranya :
1. VCC (3.3V DC) 2. GND
3. CE 4. CSN 5. MOSI 6. MISO 7. SCK 8. IR
• Kecepatan operasi maksimum hingga 2Mbps, modulasi GFSK yang efisiensi, kemampuan Anti-gangguan, Sanizgat cocok untuk aplikasi kontrol industri.
• Built-in hardware dan link layer Respon otomatis dan fungsi transmisi otomatis.
• Wireless rate: 1 atau 2 Mbps.
• Antarmuka SPI rate: 0 - 8Mbps.
• Saluran waktu switching yang sangat singkat, dapat digunakan untuk frekuensi hopping
• Tegangan kerja: 1.9 - 3.6 V.
• Pita frekuensi ISM terbuka global, 0dBm ditransmisikan tegangan, bebas lisensi maksimum untuk menggunakan.
• Transmisi jarak hingga 100 Meter di ruangan terbuka.
Gambar 2.5 NRF24L01
2.5 Driver L298N
Driver motor L298N merupakan module driver motor DC yang paling banyak digunakan atau dipakai di dunia elektronika yang difungsikan untuk mengontrol kecepatan serta arah perputaran motor DC. IC L298 merupakan sebuah IC tipe H- bridge yang mampu mengendalikan beban-beban induktif seperti relay, solenoid,
motor DC dan motor stepper. Pada IC L298 terdiri dari transistor-transistor logik (TTL) dengan gerbang nand yang berfungsi untuk memudahkan dalam menentukan arah putaran suatu motor dc maupun motor stepper. Untuk dipasaran sudah terdapat modul driver motor menggunakan ic l298 ini, sehingga lebih praktis dalam penggunaannya karena pin I/O nya sudah terpackage dengan rapi dan mudah digunakan. Kelebihan akan modul driver motor L298N ini yaitu dalam hal kepresisian dalam mengontrol motor sehingga motor lebih mudah untuk dikontrol.
L298 adalah jenis IC driver motor yang dapat mengendalikan arah putaran dan kecepatan motor DC ataupun Motor stepper. Mampu mengeluarkan output tegangan untuk Motor dc dan motor stepper sebesar 50 volt. IC l298 terdiri dari transistor- transistor logik (TTL) dengan gerbang nand yang memudahkan dalam menentukkan arah putaran suatu motor dc dan motor stepper. Dapat mengendalikan 2 untuk motor dc namun pada hanya dapat mengendalikan 1 motor stepper. Penggunaannya paling sering untuk robot line follower. Bentuknya yang kecil memungkinkan dapat meminimalkan pembuatan robot line follower. Sesuai dengan namanya, Module L298N Dual H-Bridge Driver Motor ini berfungsi untuk "mendrive" atau menyetir atau dengan kata lain mempermudah kita dalam urusan mengontrol motor DC menggunakan mikrokontroler. Kita tau bahwa logic level output dari mikrokontroler yaitu 3.3V dan 5V dengan arus yang sangat terbatas, sehingga kita tidak bisa mengendalikan motor secara langsung apalagi motor tersebut membutuhkan level tegangan dan arus yang lebih besar, jika motor DC kecil sih bisa sajah tpi itu juga beresiko. Oleh sebab itu dalam mengendalikan motor menggunakan mikrokontroler maka diperlukan sebuah Driver.
Driver L298N Memiliki spesifikasi sebagai berikut : a. Tipe : Dual H-Bridge
b. IC Driver : L298N c. Logic voltage : 5V DC d. Drive voltage : 5-35V DC e. Logical current : 0mA-36mA
f. Driving current : 2A (MAX single bridge) g. Temperatur : -20 C – 135 C
h. Power maksimum: 25W
i. Berat : 30g
j. Ukuran : 43 x 43 x 27mm ;
• Type : Dual H-Bridge, Atau dapat kita katakan bahwa dengan Module Driver ini kita dapat mengontrol dua buah motor sekaligus
• IC Driver : L298N.
• Logic Voltage : 5V, Yang artinya untuk mengontrol Module Driver ini butuh logic kontrol tengan tegangan 5V (jika HIGH maka setara dengan 5V atau 0V ketika berlogika LOW ).
• Drive voltage : 5-35V DC, yang artinya kita bisa mengendalikan motor DC dengan tegangan antara 5-35V.
• Logical current : 0mA-36mA, artinya arus dari logic tegangan cukup hanya 0mA sampai dengan 36mA (contoh arus dari Pin Digital arduino maksimal adalah 40mA yang artinya lebih dari cukup).
• Driving current : 2A (MAX single bridge) Artinya Modul ini mampu untuk mendrive motor DC dengan arus memcapai 2A dengan syarat hanya menggunakan satu motor saja.
• Temperatur : -20 C – 135 C, Module ini mampu bekerja di suhu -20'C sampai 135'C menurut datasheet (Sebagai acuan, air membeku pada suhu 0'C dan mendidih pada suhu 100'C).
• Power maksimum: 25W, Artinya daya yang mampu di-drive oleh Driver motor L298N ini adalah sebesar maksimum 25W.
• Berat : 30g.
• Ukuran : 43mm x 43mm x 27mm, Cukup berukuran minimalis dan memiliki desain yang menarik juga kokoh.
Gambar 2.6 Driver L298N
2.6 Baterai Li-Ion (Lithium-Ion)
Baterai jenis Li-Ion (Lithium-Ion) merupakan jenis Baterai yang paling banyak digunakan pad a peralatan Elektronika portabel seperti Digital Kamera, Handphone, Video Kamera ataupun Laptop. Baterai Li-Ion memiliki daya tahan siklus yang tinggi dan juga lebih ringan sekitar 30% serta menyediakan kapasitas yang lebih tinggi sekitar 30% jika dibandingkan dengan Baterai Ni-MH. Rasio Self-discharge adalah sekitar 20% per bulan. Baterai Li-Ion lebih ramah lingkungan karena tidak mengandung zat berbahaya Cadmium. Sama seperti Baterai Ni-MH (Nickel- Metal Hydride), Meskipun tidak memiliki zat berbahaya Cadmium, Baterai Li-Ion tetap mengandung sedikit zat berbahaya yang dapat merusak kesehatan manusia dan Lingkungan hidup, sehingga perlu dilakukan daur ulang (recycle) dan tidak boleh dibuang di sembarang tempat.
Baterai ion litium (biasa disebut Baterai Li-ion atau LIB) adalah salah satu anggota keluarga baterai isi ulang (rechargable battery). Di dalam baterai ini, ion litium bergerak dari elektroda negatif ke elektroda positif saat dilepaskan, dan kembali saat diisi ulang. Baterai Li-ion memakai senyawa litium interkalasi sebagai bahan elektrodanya, berbeda dengan litium metalik yang dipakai di baterai litium non-isi ulang. Baterai ion litium umumnya dijumpai pada barang-barang elektronik konsumen. Baterai ini merupakan jenis baterai isi ulang yang paling populer untuk peralatan elektronik portabel, karena memiliki salah satu kepadatan energi terbaik, tanpa efek memori, dan mengalami kehilangan isi yang lambat saat tidak digunakan.
Selain digunakan pada peralatan elektronik konsumen, LIB juga sering digunakan oleh industri militer, kendaraan listrik, dan dirgantara. Sejumlah
penelitian berusaha memperbaiki teknologi LIB tradisional, berfokus pada kepadatan energi, daya tahan, biaya, dan keselamatan intrinsik. Karakteristik kimiawi, kinerja, biaya, dan keselamatan jenis-jenis LIB cenderung bervariasi. Barang elektronik genggam biasanya memakai LIB berbasis litium kobalt oksida (LCO) yang memiliki kepadatan energi tinggi, namun juga memiliki bahaya keselamatan yang cukup terkenal, terutama ketika rusak.
Litium besi fosfat (LFP), litium mangan oksida (LMO), dan litium nikel mangan kobalt oksida (NMC) memiliki kepadatan energi yang lebih rendah, tetapi hidup lebih lama dan keselamatannya lebih kuat. Bahan kimia ini banyak dipakai oleh peralatan listrik, perlengkapan medis, dan lain-lain. NMC adalah pesaing utama di industri otomotif. Litium nikel kobalt alumunium oksida (NCA) dan litium titanat (LTO) adalah desain khusus yang ditujukan pada kegunaan-kegunaan tertentu.
Dengan dimikian dapat disimpulkan bahwa Baterai Li-On memiliki keunggulan yang baik seperti memiliki daya yang lebih besar, Perawatan lebih mudah dan tidak memiliki efek memori, lebih tahan lama bisa sampai ratusan kali isi ulang, dan sangat cocok untuk perangkat alat elektronik dan alat-alat elektronika yang membutuhkan daya yang lebih besar dan hemat pemakaian.
Gambar 2.7 Baterai Li-Ion (Lithium-Ion)
2.7 Motor DC
Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan
medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Motor arus searah, sebagaimana namanya, menggunakan arus langsung yang tidak langsung/directunidirectional.
Motor DC adalah piranti elektronik yang mengubah energi listrik menjadi energi mekanik berupa gerak rotasi. Pada motor DC terdapat jangkar dengan satu atau lebih 23 kumparan terpisah. Tiap kumparan berujung pada cincin belah (komutator).
Dengan adanya insulator antara komutator, cincin belah dapat berperan sebagai saklar kutub ganda (double pole, double throw switch). Motor DC bekerja berdasarkan prinsip gaya Lorentz, yang menyatakan ketika sebuah konduktor beraliran arus diletakkan dalam medan magnet, maka sebuah gaya (yang dikenal dengan gaya Lorentz) akan tercipta secara ortogonal diantara arah medan magnet dan arah aliran arus. Motor DC tersusun dari dua bagian yaitu bagian diam (stator) dan bagian bergerak (rotor). Stator motor arus searah adalah badan motor atau kutub magnet (sikat-sikat), sedangkan yang termasuk rotor adalah jangkar lilitanya. Pada motor, kawat penghantar listrik yang bergerak tersebut pada dasarnya merupakan lilitan yang berbentuk persegi panjang yang disebut kumparan.
Gambar 2.8 Motor DC
2.7.1 Prinsip kerja Motor DC
Pada sebuah motor DC terdapat dua bagian utama yakni rotor dan stator. Rotor adalah bagian pada motor DC yang berputar. Bagian ini terdiri dari kumparan jangkar. Sedangkan stator adalah bagian pada motor DC yang diam alias tidak bergerak. Bagian ini terdiri dari rangka dan juga kumparan medan. Dan dari dua
bagian utama motor DC tadi masih bisa dibagi-bagi menjadi banyak bagian lain seperti Yoke (kerangka magnet), Field winding (kumparan medan magnet), Poles (kutub motor), Armature Winding (Kumparan Jangkar), Brushes (kuas/sikat arang), dan juga Commutator (Komutator). Prinsip kerja dari motor DC sebenarnya sangat sederhana, yakni menggunakan prinsip elektromagnetik dimana pada saat arus listrik diberikan, maka permukaan kumparan yang bersifat utara akan bergerak ke selatan, dan permukaan kumparan yang bersifat selatan akan bergerak ke utara dan menghasilkan sebuah putaran. Dan pada saat arus bergenti dialirkan, kutub utara kumparan akan bertemu kutub selatan magnet dan menyebabkan saling tarik menarik sehingga motor berhenti berputar.
Gambar 2.10 Prinsip Kerja Motor DC
2.7.2 Bagian Atau Komponen Utama Motor DC
Kutub medan. Motor DC sederhana memiliki dua kutub medan: kutub utara dan kutub selatan. Garis magnetik energi membesar melintasi ruang terbuka diantara kutub-kutub dari utara ke selatan. Untuk motor yang lebih besar atau lebih komplek terdapat satu atau lebih elektromagnet.
Kumparan Motor DC. Bila arus masuk menuju kumparan motor DC, maka arus ini akan menjadi elektromagnet. kumparan motor DC yang berbentuk silinder, dihubungkan ke as penggerak untuk menggerakan beban. Untuk kasus motor DC yang kecil, kumparan motor DC berputar dalam medan magnet yang dibentuk oleh kutub-kutub, sampai kutub utara dan selatan magnet berganti lokasi. Jika hal ini terjadi, arusnya berbalik untuk merubah kutub-kutub utara dan selatan kumparan
motor DC. Komutator Motor DC . Komponen ini terutama ditemukan dalam motor DC. Kegunaannya adalah untuk membalikan arah arus listrik dalam 9 kumparan motor DC dan juga membantu dalam transmisi arus antara kumparan motor DC dan sumber daya.
2.7.3 Kelebihan Motor DC
Keuntungan utama motor DC adalah dalam hal pengendalian kecepatan motor DC tersebut, yang tidak mempengaruhi kualitas pasokan daya. Motor ini dapat dikendalikan dengan mengatur :
▪ Tegangan kumparan motor DC – meningkatkan tegangan kumparan motor DC akan meningkatkan kecepatan
▪ Arus medan – menurunkan arus medan akan meningkatkan kecepatan.
Motor DC tersedia dalam banyak ukuran, namun penggunaannya pada umumnya dibatasi untuk beberapa penggunaan berkecepatan rendah, penggunaan daya rendah hingga sedang seperti peralatan mesin dan rolling mills, sebab sering terjadi masalah dengan perubahan arah arus listrik mekanis pada ukuran yang lebih besar. Juga, motor tersebut dibatasi hanya untuk penggunaan di area yang bersih dan tidak berbahaya sebab resiko percikan api pada sikatnya.
2.8 Gyroscope MPU-6050
Gyroscope merupakan sensor yang berfungsi untuk menentukan orientasi gerak dengan bertumpu pada roda yang berotasi dengan cepat pada sumbu yang berdasarkan momentum sudut. Gyroscope memiliki keluaran berupa kecepatan sudut dari arah 3 sumbu yaitu, sumbu x yang nantinya akan menjadi sudut phi (kanan dan kiri) dari sumbu y nantinya menjadi sudut theta (atas dan bawah), dan sumbu z nantinya menjadi sudut psi (depan dan belakang).
MPU 6050 adalah chip IC inverse yang didalamnya terdapat sensor Accelerometer dan Gyroscope yang sudah terintergrasi. Accelerometer digunakan untuk mengukur percepatan, percepatan gerakan dan juga percepatan gravitasi.
Accelerometer sering digunakan untuk menghitung sudut kemiringan, dan hanya dapat melakukan dengan nyata ketika statis dan tidak bergerak. Untuk mendapatkan sudut akurat kemiringan, sering dikombinasikan dengan satu atau lebih gyro dan
kombinasi data yang digunakan untuk menghitung sudut. Gyroscope adalah perangkat untuk mengukur atau mempertahankan orientasi, yang berlandaskan pada prinsip-prinsip momentum sudut.
Gambar 2.11 MPU-6050
Kemampuan sensor ini dapat dikatakan akurat karena terdapat hardware yang bekerja untuk mengkonversi data analog ke digital yang memiliki resolusi 16-bit pada masing-masing chanelnya. Sehingga modul ini mampu untuk membaca data dari chanel X, Y, dan Z secara bersamaan dalam 1 waktu.
MPU-6050 Module adalah sebuah modul berinti MPU-6050 yang merupakan 6 axis Motion Processing Unit dengan penambahan regulator tegangan dan beberapa komponen pelengkap lainnya yang membuat modul ini siap dipakai dengan tegangan supply sebesar 3-5 VDC. Modul ini memiliki interface I2C yang dapat disambungkan langsung ke MCU yang memiliki fasilitas I2C.
Sensor MPU-6050 berisi sebuah MEMS Accelerometer dan sebuah MEMS Gyro yang saling terintegrasi. Sensor ini sangat akurat dengan fasilitas hardware internal 16 bit ADC untuk setiap kanalnya. Sensor ini akan menangkap nilai kanal axis X, Y dan Z bersamaan dalam satu waktu.
Berikut adalah spesifikasi dari Modul ini :
• Berbasis Chip MPU-6050
• Supply tegangan berkisar 3-5V
• Gyroscope range + 250 500 1000 2000 ° / s
• Acceleration range: ± 2 ± 4 ± 8 ± 16 g
• Communication standard I2C
• Chip built-in 16 bit AD converter, 16 bits data output
• Jarak antar pin header 2.54 mm
• Dimensi modul 20.3mm x 15.6mm
Sensor Gyroscope adalah perangkat untuk mengukur atau mempertahankan orientasi, dengan prinsip ketetapan momentum sudut. Mekanismenya adalah sebuah roda berputar dengan piringan di dalamnya yang tetap stabil. Gyroscope sering digunakan pada robot atau helikopter dan alat-alat canggih lainnya. Gyroscope adalah berupa sensor gyro untuk menentukan orientasi gerak dengan berumpu pada roda atau cakram yang berotasi dengan cepat pada sumbu. Dengan menggunakan kombinasi Accelerometer dan Gyroscope pada suatu sistem maka Accelerometer dapat memberikan pengukuran sudut saat sistem berada pada kondisi diam.
Sedangkan pada saat sistem berotasi Accelerometer tidak bisa bekerja secara maksimal karena memiliki respon yang lambat. Kelemahan inilah yang dapat diatasi oleh Gyroscope karena sensor ini dapat membaca kecepatan sudut yang dinamis.
Namun Gyroscope juga memiliki kelemahan yaitu proses perpindahan kecepatan sudut dalam jangka waktu yang panjang menjadi tidak akurat karena ada efek bias yang dihasilkan oleh Gyroscope. Contoh aplikatif kombinasi Accelerometer dan Gyroscope yaitu pada perangkat iPhone yang mengkombinasikan 2 sensor tersebut.
Dari kombinasi Accelerometer dan Gyroscope didapatkan 6 sumbu pendeteksian yaitu 3 sumbu rotasi (x, y, z) dan 3 sumbu linier (atas-bawah, kanan-kiri, depan- belakang). Output dari kombinasi sensor ini berupa gambar yang sangat detail dan halus gerakannya dibandingkan dengan smartphone yang hanya menggunakan Accelerometer saja. Inertial Measurement Unit (IMU) merupakan alat yang memanfaatkan sistem pengukuran seperti gyroskop dan akselerometer untuk memperkirakan posisi relatif, kecepatan, dan akselerasi dari gerakan motor. IMU adalah bagian dari navigasi system yang dikenal sebagai Inertial Navigation System atau INS. Pertama kali didemonstrasikan oleh C.S. Draper tahun 1949, IMU menjadi komponen navigasi umum dari bidang dan kapal. GY-521 adalah sebuah modul Inertial Measurement Unit (IMU) yang menggunakan chip MPU-6050 dari InvenSense. MPU-6050 sendiri adalah chip dengan 3-axis Accelerometer (sensor percepatan) dan 3-axis Gyroscope (pengatur keseimbangan), atau dengan kata lain 6 degrees of freedom (DOF) IMU.
Gambar 2.12 Data Sheet MPU-6050
Selain itu MPU-6050 sendiri sudah memiliki Digital Motion Processors (DMP), yang akan mengolah data mentah dari masing-masing sensor. Sejumlah data tersebut akan diolah menjadi data dalam bentuk quaternions (4 Dimensi). DMP pada MPU-6050 juga berfungsi meminimalisasi error yang dihasilkan.
BAB 3
PERANCANGAN DAN PEMBUATAN SISTEM
3.1 Metodologi Perancangan
Proses implementasi dimulai dari studi pustaka,yaitu mengumpulkan teori-teori pendukung pengimplementasian. Langkah selanjutnya adalah perancangan sistem berdasarkan teori-teori yang didapat. Analisa kebutuhan meliputi kebutuhan perangkat lunak dan perangkat keras sesuai dengan rancangan yang telah dibuat.
Setelah semua komponen telah tersedia maka akan dilakukan proses integrasi perancangan sistem perangkat lunak dan perangkat keras secara terpisah. Setelah sistem perangkat lunak dan perangkat keras telah berhasil dibuat. Selanjutnya akan dilakukan proses pengujian sistem,jika pengujian berhasil maka setiap komponen akan siap digunakan. selanjutnya akan dilakukan proses pengimplementasian, yaitu penggabungan sistem perangkat lunak dan perangkat keras menjadi satu sistem yang saling berhubungan.
3.2 Tahap Persiapan
Pada tahap persiapan, ada beberapa kebutuhan yang harus dipersiapkan agar perancangan berhasil sempurna. Kebutuhan kebutuhan yang harus dipersiapkan adalah sebagai berikut:
- Baterai 9V - Baterai 3.7 V - Papan Triplek - Mikrokontroler - Kabel Jumper - NRF24L01
- Driver NRF24L01 - MPU6050
- Motor Driver L298N - Motor DC
3.2.1 Diagram Blok Sistem
Untuk mempermudah perancangan sistem diperlukan sebuah program diagram blok sistem dimana setiap blok mempunyai fungsi dan cara kerja tertentu.
Gambar 3.1 Diagram Blok
MPU-6050 Berfungsi sebagai media pergerakan pada sistem elektronika pada robot dimana Pergerakan laju robot (kanan, kiri, atas, bawah) dikendalikan oleh MPU-6050. Arduino nano berfungsi sebagai pengontrol pada sistem robot yang meliputi MPU-6050, Motor Driver L298N, dan NRF24L01. NRF24L01 Berfungsi sebagai media komunikasi yang terhubung antara gerakan sistem robot dan sistem gerakan gestur tangan. Motor Driver L298N bergerak sesuai sinyal yang dikirim oleh sensor MPU-6050. Motor Driver L298N berfungsi sebagai media output yang terhubung ke Motor DC. Motor Driver L298N akan memerintah motor DC bergerak sesuai sinyal yang dikirim oleh modul MPU-6050.
3.2.2 Perancangan Rangkaian
3.2.2.1 Rangkaian Mikrokontroler ATMega328
Rangkaian sistem minimum mikrokontoler ATMEGA 328 terdiri dari
Rangkaian sistem minimum dan rangkaian I/O. Rangkaian minimum mikrokontroler terdiri dari rangkaian clock dan rangkaian reset. Rangkaian clock pada mikrokontroler ATMEGA328 membutuhkan osilator kristal dan 2 buah kapasitor non polar agar dapat berosilasi. Pada perancangan ini, besar frekuensi osilator kristal yang digunakan adalah 16 MHzdan besar kapasitas kapasitor adalah 22 pF.
Pemilihan frekuensi dan Besar kapasitor tersebut dirancang berdasarkan datasheet mikrokontroler ATMEGA328. Rangkaian reset pada mikrokontroler ATMEGA328 berfungsi untuk mengembalikan mikrokontroler pada program awal (vektor reset).
Gambar 3.2 Rangkaian Mikrokontroler ATMega328
3.2.2.2 Rangkaian Tansmitter Dan Receiver
Rangkaian Transmitter adalah rangkian yang berfungsi sebagai pengirim data hasil pengukuran sensor berat dan dikirim kepada sistem Receiver dengan menggunakan sistem komunikasi wireless.
Rangkaian Receiver adalah rangkian yang berfungsi sebagai penerima data hasil pengukuran sensor berat dan dikirim oleh transmitter dengan menggunakan sistem komunikasi wireless.
Gambar 3.3 Rangkaian Transmitter Dan Receiver 3.2.2.3 Rangkaian MPU-6050
Robot ini menggunakan sensor modul GY-521 dan sensor yang digunakan adalah MPU6050, berikut rangkaian modul Gy-521.Sensor ini dapat mendeteki 3 axis sudut dan 3 axis kecepatan sudut, untuk 3 axis sudut adalah sudut x, y dan z.
Gambar 3.4 Rangkaian MPU-6050 3.2.2.4 Rangkaian Driver Motor
Dual H-bridge adalah driver motor menggunakan MOSFET, dimana untuk dapat menggerakan satu buah motor terdiri dari dua buah MOSFET kanal N dan dua buah MOSFET kanal P. disebut dual H-bridge karena memiliki kemampuan untuk
mengendalikan dua buah motor. Keunggulan dari driver MOSFET adalah memiliki kemampuan mengalirkan arus yang besar dan memiliki disipasi daya yang kecil.
Selain itu jenis driver MOSFET hanya memerlukan dua pin untuk dapat mengendalikan kecepatan dan arah putar motor.
L298 adalah jenis IC driver motor yang dapat mengendalikan arah putaran dan kecepatan motor DC ataupun Motor stepper. Mampu mengeluarkan output tegangan untuk Motor dc dan motor stepper sebesar 50 volt. IC l298 terdiri dari transistor-transistor logik (TTL) dengan gerbang nand yang memudahkan dalam menentukkan arah putaran suatu motor dc dan motor stepper. Dapat mengendalikan 2 untuk motor dc namun pada hanya dapat mengendalikan 1 motor stepper.
Gambar 3.5 Driver Motor
Gambar 3.5 Driver Motor
3.2.3 Perancangan Perangkat Lunak Sistem
Arduino AVR merupakan software C-cross compiler, dimana program dapa ditulis menggunakan bahasa C. Dengan menggunakan pemrograman bahasa C diharapkan waktu disain (developing time) akan menjadi lebih singkat. Setelah program dalam bahasa C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Mikrokontroler AVR mendukung sistem download secara In Sistem Programming (ISP). Untuk selanjutnya fasilitas- fasilitas lainnya dapat disetting sesuai kebutuhan dari pemrograman.
Gambar 3.6 Tampilan Jendela Program Arduino AVR
Untuk memprogram board Arduino, kita butuh aplikasi IDE (Integrated Development Environment) bawaan dari Arduino. Aplikasi ini berguna untuk membuat, membuka, dan mengedit source code Arduino. Sketch merupakan source code yang berisi logika dan algoritma yang akan diupload ke dalam IC mikrokontroller (Arduino).
3.2.3.1 Flowchart Sistem
Flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program. Dalam pembuatan sistem yang dilakukan menghasilkan flowchart sebagai berikut :
A. Flowchart sistem transmitter
MOTOR DC 1 PIN 1 = 0 MOTOR DC1 PIN 2 = 1 MOTOR DC2 PIN 1 = 0
MOTOR DC 2 PIN 2 = 1 DEPAN
KANAN BELAKANG
KIRI MOTOR DC 1 PIN 1 = 1 MOTOR DC 1
PIN 2 = 0 MOTOR DC 2 PIN 1 = 1 MOTOR DC 2 PIN 2 = 0
MOTOR DC 1 PIN 1 = 1 MOTOR DC1 PIN 2 = 0 MOTOR DC 2 PIN 1 = 0 MOTOR DC2 PIN 2 = 1
MOTOR DC 1 PIN 1 = 0 MOTOR DC 1 PIN 2 = 1 MOTOR DC 2 PIN 1 = 1 MOTOR DC 2 PIN 2 = 0
INISIALISASI PROGRAM START
SELESAI SENSOR MPU6050 MEMBERI INPUT DATA
B. flowchart sistem receiver
DRIVER L298N IN 1 = 0 DRIVER L298N IN 2 = 1 DRIVER L298N IN 3 = 0 DRIVER L298N IN 4 = 1
DRIVER L298N IN 1 = 1 DRIVER L298N IN 2 = 0 DRIVER L298N IN 3 = 1 DRIVER L298N IN 4 = 0
DRIVER L298N IN 1 = 0 DRIVER L298N IN 2 = 1 DRIVER L298N IN 3 = 1 DRIVER L298N IN 4 = 0
DRIVER L298N IN 1 = 1 DRIVER L298N IN 2 = 0 DRIVER L298N IN 3 = 0 DRIVER L298N IN 4 = 1 INISIALISASI
PROGRAM
SELESAI ARDUINO MENERIMA INPUTAN SINYAL DARI
NRF24L01
APAKAH MAJU?
DRIVER L298N IN 1 = 0 DRIVER L298N IN 2 = 0 DRIVER L298N IN 3 = 0 DRIVER L298N IN 4 = 0
APAKAH MUNDUR?
APAKAH KANAN?
APAKAH KIRI?
DRIVER L298N IN 1 = 0 DRIVER L298N IN 2 = 0 DRIVER L298N IN 3 = 0 DRIVER L298N IN 4 = 0
DRIVER L298N IN 1 = 0 DRIVER L298N IN 2 = 0 DRIVER L298N IN 3 = 0 DRIVER L298N IN 4 = 0 DRIVER L298N IN 1 = 0 DRIVER L298N IN 2 = 0 DRIVER L298N IN 3 = 0 DRIVER L298N IN 4 = 0
YA YA YA YA
TIDAK TIDAK
TIDAK TIDAK
3.3 Pengujian Rangkaian Dan Pengukuran Hasil Sistem 3.3.1 Pengujian rangkaian mikrokontroler
Agar dapat mengetahui rangkaian mikrokontroler yang dibuat memang sudah dapat beroperasi, maka dilakukanlah pengujian rangkaian mikrokontroler. Pengujian dilakukan dengan cara memasukkan program ke mikrokontroler, dan kemudian melihat apakah mikrokontroler dapat mengeksekusi program yang dibuat. Berikut merupakan program yang dimasukkan pada saat pengujian rangkaian mikrokontroler:
void setup() {
pinMode(4, OUTPUT);
}
void loop() {
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
}
Program ditujukan untuk mengedipkan Led yang terhubung pada pin 4 pada rangkaian mikrokontroler dengan jeda waktu kedip 1 detik. Jika led yang terhubung pada pin 4 sudah dapat berkedip dengan jeda 1 detik ketika program tersebut dieksekusi mikrokontroler, maka dapat dikatakan rangkaian mikrokontroler yang dibuat sudah dapat bekerja dengan normal.
3.3.2 Pengujian Modul 2,4GHz nRF24L01
Untuk mengetahui apakah rangkaian interface antara module nRF24L01 dengan mikrokontroler sudah dapat bekerja dengan baik, maka dilakukanlah pengujian. Pengujian ini dilakukan dengan cara membuat rangkaian pengirim data dan penerima data sesuai dengan gambar rangkaian yang sudah diberikan
sebelumnya. Setelah itu, pada rangkaian pengirim data diupload program ke mikrokontroler sebagai berikut:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 8
const byte address[6] = "00001";
void setup() {
radio.begin();
radio.openWritingPipe(address);
radio.stopListening();
}
void loop() {
const char text[] = "Hello World";
radio.write(&text, sizeof(text));
delay(1000);
}
Setelah itu, diupload program berikut ini ke mikrokontroler rangkaian penerima data:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 8);
const byte address[6] = "00001";
void setup() {
while (!Serial);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.startListening();
}
void loop() {
if (radio.available()) {
char text[32] = {0};
radio.read(&text, sizeof(text));
Serial.println(text);
} }
Kemudian diperhatikan pada serial monitor akan terdapat data sebagai berikut:
Gambar 3.7 Pengujian NRF24L01 dengan adanya halangan dengan tampilan serial monitor
Tabel 3.1 Pengujian NRF24L01
No Jarak (m) Status Data
1 5 Terkirim
2 10 Terkirim
3 15 Terkirim
4 25 Terkirim
5 30 Terkirim
6 30.1 Tidak Terkirim
3.3.3 Pengujian MPU-6050
Untuk mengetahui sensor ini dapat bekerja dengan baik, maka dilakukan pengujian dengan memprogram mikrokontroller, dengan tujuan untuk memastikan sensor dapat mendeteksi Accelerometer atau tidak. Program dapat dilihat sebagai berikut:
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
void setup() {
Serial.begin(115200);
Serial.println("Initialize MPU6050");
Serial.println("Initialize MPU6050");
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {
Serial.println("Could not find a valid MPU6050 sensor, check wiring!");
delay(500);
}
mpu.calibrateGyro();
mpu.setThreshold(3);
checkSettings();
}
void checkSettings() {
Serial.println();
Serial.print(" * Sleep Mode: ");
Serial.println(mpu.getSleepEnabled() ? "Enabled" : "Disabled");
Serial.print(" * Clock Source: ");
switch(mpu.getClockSource()) {
case MPU6050_CLOCK_KEEP_RESET: Serial.println("Stops the clock and keeps the timing generator in reset"); break;
case MPU6050_CLOCK_EXTERNAL_19MHZ: Serial.println("PLL with external 19.2MHz reference"); break;
case MPU6050_CLOCK_EXTERNAL_32KHZ: Serial.println("PLL with external 32.768kHz reference"); break;
case MPU6050_CLOCK_PLL_ZGYRO: Serial.println("PLL with Z axis gyroscope reference"); break;
case MPU6050_CLOCK_PLL_YGYRO: Serial.println("PLL with Y axis gyroscope reference"); break;
case MPU6050_CLOCK_PLL_XGYRO: Serial.println("PLL with X axis gyroscope reference"); break;
case MPU6050_CLOCK_INTERNAL_8MHZ: Serial.println("Internal 8MHz oscillator"); break;
}
Serial.print(" * Gyroscope: ");
switch(mpu.getScale()) {
case MPU6050_SCALE_2000DPS: Serial.println("2000 dps"); break;
case MPU6050_SCALE_1000DPS: Serial.println("1000 dps"); break;
case MPU6050_SCALE_500DPS: Serial.println("500 dps"); break;
case MPU6050_SCALE_250DPS: Serial.println("250 dps"); break;
}
Serial.print(" * Gyroscope offsets: ");
Serial.print(mpu.getGyroOffsetX());
Serial.print(" / ");
Serial.print(mpu.getGyroOffsetY());
Serial.print(" / ");
Serial.println(mpu.getGyroOffsetZ());
Serial.println();
}
3.3.4 Pengujian Motor Driver
Driver motor yang digunakan menggunakan IC IRF540 dan di rangkai secara H bridge. Pada rangkaian ini menggunakan 2 Motor sehingga membutuhkan 2 rangkaian H bridge. Untuk pengujian rangkaian H bridge ini membuathkan 2 pin PWM, jadi dengan dua motor membutuhkan 4 pin PWM, unutk pengujian driver motor ini dengna program sebagai berikut:
int ENA=9; int ENB=6; int ENC=10; int END=5; void setup(){
pinMode(ENA,OUTPUT);
pinMode(ENB,OUTPUT);
pinMode(ENC,OUTPUT);
pinMode(END,OUTPUT);
} void loop(){
analogWrite(ENA, 0);
analogWrite(ENB,100);
analogWrite(ENC, 0);
analogWrite(END,100);
delay(5000); analogWrite(ENA, 200); analogWrite(ENB,125);
analogWrite(ENC, 200);
analogWrite(END,125);
delay(5000);
}
Jika Motor berputar kekanan selama 5 detik dan kekiri selama 5 detik, maka driver dapat bekerja dengan baik.
3.3.5 Pengujian gestur tangan
pengujian gerakan robot dilakukan dengan memprogram sistem menggunakan bahasa pemrograman arduino dan diuji menggunakan gestur tangan sebagai pengontrol gerakan robot sebagai berikut:
#include <SPI.h> //SPI library for communicate with the nRF24L01+
#include "RF24.h" //The main library of the nRF24L01+
#include "Wire.h" //For communicate
#include "I2Cdev.h" //For communicate with MPU6050
#include "MPU6050.h" //The main library of the MPU6050
//Define the object to access and cotrol the Gyro and Accelerometer (We don't use the Gyro data)
MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
//Define packet for the direction (X axis and Y axis) int data[2];
//Define object from RF24 library - 9 and 10 are a digital pin numbers to which signals CE and CSN are connected.
RF24 radio(9,10);
//Create a pipe addresses for the communicate const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void){
Serial.begin(9600);
Wire.begin();
mpu.initialize(); //Initialize the MPU object
radio.begin(); //Start the nRF24 communicate
radio.openWritingPipe(pipe); //Sets the address of the receiver to which the program will send data.
}
void loop(void){
//With this function, the acceleration and gyro values of the axes are taken.
//If you want to control the car axis differently, you can change the axis name in the map command.
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
//In two-way control, the X axis (data [0]) of the MPU6050 allows the robot to move forward and backward.
//Y axis (data [0]) allows the robot to right and left turn.
data[0] = map(ax, -17000, 17000, 300, 400 ); //Send X axis data data[1] = map(ay, -17000, 17000, 100, 200); //Send Y axis data radio.write(data, sizeof(data));
}
Gambar 3.8 Pengujian sistem gestur tangan Tabel 3.2 Pengujian Gerak gestur tangan
No Gerak Gerstur Data Driver L298N 1
1 Depan 0101
2 Belakang 1010
3 Kanan 0110
4 Kiri 1010
#include <SPI.h> //SPI library for communicate with the nRF24L01+
#include "RF24.h" //The main library of the nRF24L01+
#include "Wire.h" //For communicate
#include "I2Cdev.h" //For communicate with MPU6050