TUGAS AKHIR
Oleh :
Saya menyatakan bahwa laporan tugas akhir ini adalah hasil karya sendiri, kecuali
beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
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%
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%
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:
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
DAFTAR PUSTAKA 56
LAMPIRAN
BAB 1
PENDAHULUAN
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.
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.
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.
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.
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).
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.
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.
• 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
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 :
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.
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.
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.
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.
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
BAB 3
PERANCANGAN DAN PEMBUATAN SISTEM
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.
START
INISIALISASI
PROGRAM
SENSOR MPU6050
MEMBERI INPUT DATA
SELESAI
ARDUINO MENERIMA
INPUTAN SINYAL DARI
NRF24L01
TIDAK
DRIVER L298N IN 1 = 0
APAKAH DRIVER L298N IN 2 = 0
MAJU? DRIVER L298N IN 3 = 0
DRIVER L298N IN 4 = 0
YA
DRIVER L298N IN 1 = 0
DRIVER L298N IN 2 = 1
DRIVER L298N IN 3 = 0
DRIVER L298N IN 4 = 1
TIDAK
APAKAH DRIVER L298N IN 1 = 0
MUNDUR? DRIVER L298N IN 2 = 0
DRIVER L298N IN 3 = 0
YA DRIVER L298N IN 4 = 0
DRIVER L298N IN 1 = 1
DRIVER L298N IN 2 = 0
DRIVER L298N IN 3 = 1
DRIVER L298N IN 4 = 0
TIDAK
APAKAH
DRIVER L298N IN 1 = 0
KANAN?
DRIVER L298N IN 2 = 0
DRIVER L298N IN 3 = 0
YA 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
TIDAK
DRIVER L298N IN 1 = 0
APAKAH
DRIVER L298N IN 2 = 0
KIRI?
DRIVER L298N IN 3 = 0
DRIVER L298N IN 4 = 0
YA
DRIVER L298N IN 1 = 1
DRIVER L298N IN 2 = 0
DRIVER L298N IN 3 = 0
DRIVER L298N IN 4 = 1
SELESAI
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.
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);
}
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);
}
}
1 5 Terkirim
2 10 Terkirim
3 15 Terkirim
4 25 Terkirim
5 30 Terkirim
#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))
delay(500);
mpu.calibrateGyro();
mpu.setThreshold(3);
checkSettings();
void checkSettings()
Serial.println();
switch(mpu.getClockSource())
switch(mpu.getScale())
Serial.print(mpu.getGyroOffsetX());
Serial.print(" / ");
Serial.print(mpu.getGyroOffsetY());
Serial.print(" / ");
Serial.println(mpu.getGyroOffsetZ());
Serial.println();
Jika Motor berputar kekanan selama 5 detik dan kekiri selama 5 detik, maka
driver dapat bekerja dengan baik.
//Define the object to access and cotrol the Gyro and Accelerometer (We don't use
the Gyro data)
MPU6050 mpu;
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);
void setup(void){
Serial.begin(9600);
Wire.begin();
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.
//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.
radio.write(data, sizeof(data));
1 Depan 0101
2 Belakang 1010
3 Kanan 0110
4 Kiri 1010
//Define the object to access and cotrol the Gyro and Accelerometer (We don't use
the Gyro data)
MPU6050 mpu;
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);
void setup(void){
Serial.begin(9600);
Wire.begin();
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.
//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.
radio.write(data, sizeof(data));
#include <SPI.h>
#include "RF24.h"
int data[2];
RF24 radio(9,10);
void setup(){
pinMode(enbA, OUTPUT);
pinMode(enbB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, pipe);
//Sets the address of the transmitter to which the program will receive data.
radio.startListening();
void loop(){
if (radio.available()){
radio.read(data, sizeof(data));
//forward
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
//backward
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
//left
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
//right
analogWrite(enbA, RightSpd);
analogWrite(enbB, LeftSpd);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
if(data[0] > 330 && data[0] < 360 && data[1] > 130 && data[1] < 160){
//stop car
analogWrite(enbA, 0);
analogWrite(enbB, 0);
2 1010 Bergerak
Mundur
GND GND
INT PIN 2
SCL PIN A5
SDA PIN A4
ENA PWM 3
ENB PWM 5
IN1 PIN 4
IN2 PIN 2
IN3 PIN 7
IN4 PIN 6
BAB 4
Dari Tabel diatas dapat diketahui bahwa jangkauan sinyal NRF24L01 hanya
dapat mengirim sinyal sejauh 30 meter dengan kecepatan rata – rata 0,457m/s.
Berdasarkan pada tabel diatas dapat diketahui bahwa persen error pada modul
MPU-6050 di sudut X adalah 0,32% .
Berikut Grafik modul MPU-6050 pada sudut X :
Tabel 4.3 Perbandingan sudut Y pada modul MPU-6050 dengan sudut sebenarnya
Sudut Sudut Y pada MPU-6050 Sudut
No pada rata-rata Error %
busur 1 2 3 MPU-
6050
1 20 ° 20.03 20.13 20.10 20.08 0.4 %
2 40 ° 40.20 40.06 40.08 40.11 0.27 %
3 60 ° 60.29 60.60 60.20 60.20 0.57 %
4 80 ° 80.41 80.04 80.10 80.10 0.22 %
5 100 ° 100.10 100.20 100.23 100.23 0.17 %
6 120 ° 120.54 121.09 121.94 121.94 0.62 %
7 140 ° 140.70 140.39 140.86 140.86 0.91 %
8 160 ° 160.52 160.21 160.34 160.34 0.56 %
9 180 ° 180.62 180.59 180.31 180.30 0.88 %
Total Error = 0,48 %
Berdasarkan pada tabel diatas dapat diketahui bahwa persen error pada modul
MPU-6050 di sudut Y adalah 0,48% .
Berikut Grafik modul MPU-6050 pada sudut Y :
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan pengimplementasian yang telah dilakukan dapat diambil
kesimpulan yaitu Sistem Robot dan gestur tangan yang dirancang telah dapat bekerja
seperti yang telah direncanakan.
1. MPU-6050 berfungsi sebagai sensor perintah untuk menjalankan perintah yang
bekerja pada sudut Y dengan sinyal analog 27.42° saat melaju
2. MPU-6050 memiliki Sumbu X dan Y dengan nilai error pada X sebesar 0,32 %
dan Y sebesar 0,48 %
3. NRF24L01 berfungsi sebagai perintah untuk mengirim dan menerima sinyal
data yang bekerja dengan jangkauan maksimal 30 meter atau 0,457 m/s
4. Mikrokontroller Arduino berfungsi sebagai pengontrol, penerima, pengirim dan
pengolah data pada Robot Beroda yang dikendalikan oleh Kendali Gestur
Tangan.
5.2 Saran
Beberapa hal saran yang harus disampaikan pada pengimplementasian ini
adalah:
1. Modul MPU-6050 tidak bisa menentukan kecepatan berdasarkan sudut pada
modul MPU-6050 yaitu sudut X dan Y
2. Sinyal yang dihasilkan pada NRF24L01 terbatas hanya bisa sampai 30 meter.
DAFTAR PUSTAKA
Hasan, U. Z., Asif, A. J., Khan, M. A. & Safwan, T. F., 2018. A simple and effective
way of controlling a robot by hand gesture. International Conference on Intelligent
Computing and Control Systems (ICICCS), 11 January.p. 1.
S., R. P. & B. A., 2016. Sistem Pengenalan Gestur Tangan Untuk Kendali Gerak
Mobile Robot Berbasis Pengolahan Citra. Volume 4.
Christina, M., Javier, V., Ramon, M. & Fransisco, P. J., 2015. Real-Time Hand
Tracking and Gesture Recognition for Human-Computer Interaction. 5(3).
Firmansyah, S, 2015. Proyek Robotik Keren dengan Arduino. Jakarta: PT. Elex
Media Komputindo.
https://www.nyebarilmu.com/tutorial-arduino-mengakses-module-accelorometer-
gyroscope-mpu6050/
https://www.nyebarilmu.com/cara-mengakses-module-wireless-nrf24l01-
menggunakan-arduino/
https://www.nyebarilmu.com/tutorial-arduino-mengakses-driver-motor-l298n/