TUGAS AKHIR
PENGONTROLAN ROBOT BERBASIS ARDUINO
MENGGUNAKAN ANDROID
Diajukan Guna Melengkapi Salah Satu Persyaratan Untuk Memperoleh
Gelar Sarjana (S1)
Disusun Oleh :
Nama
NIM
Program Studi
: Julpri Andika
: 41409010009
: Teknik Elektro
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS MERCU BUANA
JAKARTA
2013
LEMBAR PERNYATAAN
Saya yang bertanda tangan di bawah ini :
NAMA
:
JULPRI ANDIKA
NIM
:
41409010009
FAKULTAS
:
TEKNIK
JURUSAN
:
TEKNIK ELEKTRO
JUDUL TUGAS AKHIR
:
PENGONTROLAN ROBOT BERBASIS
ARDUINO MENGGUNAKAN
ANDROID
Dengan ini menyatakan bahwa hasil penulisan skripsi yang telah saya buat
dengan
judul
“PENGONTROLAN
ROBOT
BERBASIS
ARDUINO
MENGGUNAKANN ANDROID” ini merupakan hasil karya sendiri dan benar
keasliannya. Apabila ternyata dikemudian hari penulisan Skripsi ini merupakan
hasil plagiat atau penjiplakan terhadap karya orang lain maka saya bersedia
mepertanggungjawabkan sekaligus bersedia menerima sanksi berdasarkan aturan
tata tertib di Universitas Mercu Buana.
Demikian pernyataan ini saya buat dalam keadaan sadar dan tanpa paksaan
dari pihak manapun.
Jakarta, Juli 2013
(Julpri Andika)
ii
LEMBAR PENGESAHAN
PENGONTROLAN ROBOT BERBASIS ARDUINO MENGGUNAKAN
ANDROID
disusun oleh
JULPRI ANDIKA
41409010009
disetujui dan disahkan oleh :
Dosen Pembimbing Tugas Akhir,
(Dr. Ir. Andi Adriansyah, M.Eng.)
Mengetahui,
Koordinator Tugas Akhir/
Kepala Program Studi Teknik Elektro
(Yudhi Gunardi, ST. MT.)
iii
ABSTRAK
Perkembangan teknologi saat sekarang ini memiliki peranan yang sangat
penting dalam kemajuaan kehidupan manusia. Banyak peralatan dibuat yang
fungsinya mempermudah suatu pekerjaan menjadi lebih efisien dan cepat. Salah
satunya adalah pengontrolan alat jarak jauh (±10 m).
Untuk itu akan dibuat alat pengontrolan robot berbasis arduino
menggunakan Android. Dalam bahasa pemograman Arduino akan digunakan
bahasa C, karena lebih mudah dipelajari dan mempunyai struktur bahasa tingkat
tinggi yang lebih mudah dipahami. Sedangkan untuk pemrograman Android akan
digunakan aplikasi Java Eclipse. Penghubung komunikasi antara robot Arduino
dengan Android digunakan modul Bluetooth yang terlebih dahulu di-pairing
dengan Bluetooth Android. Robot ini akan dikontrol dengan tombol-tombol yang
ada di Android untuk bergerak maju, mundur, berbelok kanan, kiri dan berhenti.
Dari hasil pengujian yang telah dilakukan dapat disimpulkan bahwa robot
mobil ini dapat berjalan dengan baik pada saat bergerak maju, mundur, belok
kanan, belok kiri, serta berhenti. Robot ini bergerak sesuai dengan perintah yang
diberikan. Pada ruang terbuka robot ini dapat dikontrol hingga jarak sejauh 80
langkah kaki.
Kata kunci: Teknologi, pengontrolan, robot, Arduino, bahasa C, Android, Java
Eclipse, Bluetooth.
iv
KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa, karena atas rahmat dan
hidayah-Nya Tugas Akhir yang berjudul “PENGONTROLAN ROBOT
BERBASIS ARDUINO MENGGUNAKAN ANDROID” ini dapat diselesaikan
tepat waktu.
Tugas Akhir ini disusun guna memenuhi persyaratan dalam menyelesaikan
Studi Kesarjanaan (S1) Jurusan Teknik Elektro, Fakultas Teknik (FT), Universitas
Mercu Buana. Dalam pembuatan Tugas Akhir ini, banyak bantuan, dukungan,
doa, materi, dsb yang diberikan dari berbagai pihak, oleh karena itu ingin
mengucapkan banyak terima kasih yang tak terhingga kepada :
1. Orang Tua, Keluarga, dan Saudara yang telah membantu, mendoakan,
serta memotivasi sehingga Tugas Akhir ini selesai.
2. Bapak Dr. Ir. Andi Adriansyah, M.Eng. selaku Pembimbing yang telah
banyak memberikan bantuan, pengarahan serta motivasi sehingga Tugas
Akhir ini selesai.
3. Bapak Ir. Yudhi Gunardi, MT. selaku Kepala Program Studi Teknik
Elektro Universitas Mercu Buana.
4. Kawan-kawan seperjuangan mahasiswa elektro khususnya angkatan 2009
yang selalu setia memberikan motivasi, hiburan, dan semangat.
v
Berharap semoga Tugas Akhir ini meskipun sederhana dapat bermanfaat
khususnya bagi diri pribadi dan umumnya untuk orang lain. Menyadari Tugas
Akhir ini masih banyak memiliki kekurangan-kekurangan, karena itu membuka
diri untuk menerima saran atau kritik yang membangun guna perbaikan dimasa
mendatang.
Jakarta,
Juli 2013
Penulis
vi
DAFTAR ISI
Halaman Judul..................................................................................................
i
Halaman Pernyataan………………………………………………………….
ii
Lembar Pengesahan…………………………………………………………..
iii
Abstrak……………………………………………………………………….. iv
Kata Pengantar.................................................................................................. v
Daftar Isi...........................................................................................................
vii
Daftar Tabel….................................................................................................. x
Daftar Gambar………………………………………………………………..
BAB I
xi
PENDAHULUAN
1.1 Latar Belakang……………....................................................
1
1.2 Rumusan Masalah...................................................................
2
1.3 Batasan Masalah.....................................................................
3
1.4 Tujuan Penelitian……………….…….................................... 3
BAB II
1.5 Metode Penelitian....................................................................
3
1.6 Sistematika Penulisan..............................................................
4
LANDASAN TEORI
2.1 Robot……………..……………............................................
5
2.2 Bluetooth……………….………...........................................
7
2.3 Dasar Arduino………………………………………………
8
2.3.1 Soket USB…………….…..………………………….
12
2.3.2 Input/Output Digital……………….……...………….
12
2.3.3 Input Analog………………………………………….
12
2.3.4 Accu……………….………………………………….
13
2.3.5 Baterai/Adaptor………….…………………………...
13
2.4 Motor DC……………… ………………............................... 13
2.4.1 Prinsip Kerja Motor DC……………………………...
14
2.4.2 Pengendalian Motor DC……………………………...
14
2.5 Driver Motor (Motor Shield)……… ………………………
16
vii
BAB III
BAB IV
2.6 Android…………………………………………………….
17
2.7 Aplikasi Program Arduino IDE………………………….…
18
2.8 Arduino Programming Tool………………………………..
19
2.8.1 Serial Port…………………………………………...
22
2.9 Aplikasi Program Eclipse……………….………………….
23
2.10 Eclipse Programming Tool……………..………………….
24
PERANCANGAN DAN PEMBUATAN ALAT
3.1 Blok Diagram Rangkaian......................................................
26
3.2 Perancangan Alat Keras (Hardware).....................................
28
3.2.1 Modul Arduino UNO………………………………..
28
3.2.2 Driver Motor Shield....................................................
32
3.2.3 Perancangan Mekanik……………………………….
34
3.2.4 Sistem Penggerak Roda…………..…………………
36
3.3 Realisasi Rangkaian………………………..………………
36
3.3.1 Rangkaian Modul Bluetooth Dengan Arduino……..
36
3.3.2 Aplikasi Program Arduino UNO……………………
39
3.3.3 Aplikasi Program Eclipse……………………………
42
PENGUJIAN DAN ANALISA
4.1 Pengujian Perangkat..............................................................
45
4.2 Pengujian Setiap Blok……….……………………….…….
45
4.2.1 Pengujian Modul Bluetooth Dengan Arduino..............
46
4.2.2 Pengujian Program Arduino UNO IDE.......................
47
4.2.3 Pengujian Arduino UNO Pada Robot………………..
49
4.2.4 Pengujian Program Eclipse…………………………..
51
4.3 Pengujian Sistem Keseluruhan…………………………......
55
4.3.1 Pengujian Maju………………………………...…….
55
4.3.2 Pengujian Mundur……………………………………
56
4.3.3 Pengujian Belok Kanan………………………...…….
57
4.3.4 Pengujian Belok Kiri…………………………...…….
58
4.3.5 Pengujian Berhenti………..…………………...……..
59
viii
4.4 Pengjian Jarak………………………………………………
BAB V
60
PENUTUP
5.1 Kesimpulan……..................................................................... 61
5.2 Saran.......................................................................................
62
Daftar Pustaka................................................................................................... 63
Lampiran
ix
DAFTAR TABEL
Halaman
Tabel 2.1
Versi Android
18
Tabel 3.1
Penomoran Pin Pada Arduino UNO
30
Tabel 3.2
Ringkasan Arduino UNO
31
Tabel 3.3
Kondisi Putaran Motor
34
Tabel 3.4
Kondisi Putaran Motor Terhadap Arah
Tabel 4.1
Pergerakkan Motor
34
Bahan-bahan yang dipergunakan
45
x
DAFTAR GAMBAR
Halaman
Gambar 2.1
Contoh Sebuah Robot Mobil
6
Gambar 2.2
Logo Bluetooth
8
Gambar 2.3
Bentuk Fisik Arduino UNO
10
Gambar 2.4
Konstruksi Motor DC
14
Gambar 2.5
Polarisasi Tegangan Untuk Putaran Motor
Searah Jarum Jam
Gambar 2.6
15
Polarisasi Tegangan Untuk Putaran Motor
Berlawanan Dengan Arah Jarum Jam
15
Gambar 2.7
Driver Motor Shield L298
17
Gambar 2.8
Tampilan Program IDE
19
Gambar 2.9
Tampilan Utama Aplikasi Arduino
19
Gambar 2.10 Toolbar Pada Aplikasi Arduino
20
Gambar 2.11 Tools Serial Ports
23
Gambar 2.12 Tampilan Program Eclipse
23
Gambar 2.13 Tampilan Utama Pada Program Eclipse
24
Gambar 3.1
Diagram Blok Rangkaian Kontrol Bluetooth
27
Gambar 3.2
Rangkaian Arduino UNO
29
Gambar 3.3
Tampilan Atas Board Arduino UNO
31
Gambar 3.4
Rangkaian Driver Motor Shield
33
Gambar 3.5
Tampak Depan Motor
35
Gambar 3.6
Tampak Belakang Motor
35
Gambar 3.7
Sistem Perodaan Dan Motor DC
36
Gambar 3.8
Rangkaian Modul Bluetooth HC-05
37
Gambar 3.9
Pin-pin Pada Modul Bluetooth HC-05
37
Gambar 3.10 Pin-pin Yang Dihubungkan Ke Arduino
UNO
38
Gambar 3.11 Rangkaian Modul Bluetooth HC-05 Ke
Arduino UNO
38
Gambar 3.12 Program Arduino UNO IDE
39
xi
Gambar 3.13 Listing Program Pergerakkan Maju
39
Gambar 3.14 Listing Program Pergerakkan Mundur
40
Gambar 3.15 Listing Program Pergerakkan Belok Kanan
40
Gambar 3.16 Listing Program Pergerakkan Belok Kiri
41
Gambar 3.17 Listing Program Pergerakkan Berhenti
41
Gambar 3.18 Coding Untuk Main.xml
42
Gambar 3.19 Coding Untuk ControlActivity.java
42
Gambar 3.20 Coding Untuk Androidmanifest.xml
43
Gambar 4.1
Robot Mobil Hasil Perancangan
44
Gambar 4.2
Android Sedang Men-scan Modul
46
Bluetooth
Gambar 4.3
Modul Bluetooth Meminta PIN Untuk
Pairing Dengan Android
Gambar 4.4
46
Modul Bluetooth Sudah Pairing Dengan
Android
47
Gambar 4.5
Sketch Sedang Di-compile
48
Gambar 4.6
Sketch Selesai Di-compile
48
Gambar 4.7
Port Arduino UNO Terdeteksi Oleh
Komputer
49
Gambar 4.8
Port Arduino UNO
50
Gambar 4.9
Proses Upload Ke Arduino UNO
50
Gambar 4.10 Proses Uploading Selesai
51
Gambar 4.11 File-file Yang Di-coding
52
Gambar 4.12 Coding Program Pada Manifest.xml
53
Gambar 4.13 Coding Program Pada Main.xml
53
Gambar 4.14 Bentuk Graphical Layout Pada Aplikasi
Android
54
Gambar 4.15 Coding Program Pada Activity.java
54
Gambar 4.16 Robot Mobil Bergerak Maju
55
Gambar 4.17 Robot Mobil Bergerak Mundur
56
Gambar 4.18 Robot Mobil Bergerak Ke Arah Kanan
57
Gambar 4.19 Robot Mobil Bergerak Ke Arah Kiri
58
xii
Gambar 4.20 Robot Mobil Berhenti
59
xiii
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam bidang industri penggunaan mesin otomatis dan pemrosesan secara
otomatis
merupakan
hal
yang
umum.
Sistem
prengontrolan
dengan
elektromekanik yang menggunakan relay-relay mempunyai banyak kelemahan,
diantaranya kontak-kontak yang dipakai mudah haus karena panas / terbakar atau
karena hubung singkat, membutuhkan biaya yang besar saat instalasi,
pemeliharaan dan modifikasi dari sistem yang telah dibuat jika dikemudian hari
diperlukan modifikasi.
Perkembangan teknologi saat sekarang ini memiliki peranan yang sangat
penting dalam kemajuaan kehidupan manusia. Banyak peralatan dibuat yang
fungsinya mempermudah suatu pekerjaan menjadi lebih efisien dan cepat.
Mungkin banyak yang berpikir bahwa dibutuhkan keahlian yang sangat tinggi
untuk dapat mendesain, merancang, dan membuat suatu proyek, khususnya
elektronika. Membuat proyek elektronika dapat dimulai dari tingkat dasar dengan
cara yang cukup sederhana dan mudah untuk diaplikasikan dalam pembuatan
suatu peralatan. Untuk itu dibutuhkan suatu perancangan untuk membuat proyek
1
2
elektronika.
Pada Tugas Akhir ini akan dibuat alat pengontrolan robot berbasis arduino
menggunakan Android. Dalam bahasa pemograman Arduino akan digunakan
bahasa C, karena lebih mudah dipelajari karena mempunyai struktur bahasa
tingkat tinggi yang lebih mudah dipahami. Sedangkan untuk pemrograman
Android akan digunakan aplikasi Java Eclipse. Penghubung komunikasi antara
robot Arduino dengan Android digunakan modul Bluetooth yang terlebih dahulu
di-pairing dengan Bluetooth Android. Robot ini akan dikontrol dengan tomboltombol yang ada di Android untuk bergerak maju, mundur, berbelok kanan, kiri
dan berhenti.
Oleh karena itu, proses perancangan ini akan dibuat untuk menghindari
kesalahan-kesalahan dalam pembuatan robot. Robot yang akan dibuat akan
berguna dalam proses pengontrolan gerak alat. Dalam proses pembuatan robot
akan dilakukan pengujian-pengujian pada sistem yang mendukung.
1.2 Rumusan Masalah Penelitian
Berdasarkan latar belakang di atas, maka ditentukan permasalahan sebagai
berikut:
1. Bagaimanakah menghubungkan antara robot, Arduino, dan Bluetooth
module dengan android?
2. Bagaimanakah cara kerja Android dan Bluetooth module ketika
dihubungkan dengan Arduino?
3
1.3 Batasan Masalah
Untuk memperjelas permasalahan tugas akhir ini, maka perlu adanya
ruang lingkup pengujian, yaitu menjalankan program Arduino dengan Android
yang mengontrol robot untuk berjalan maju, mundur, berbelok kiri dan kanan
serta berhenti.
1.4 Tujuan Penelitian
Adapun tujuan yang diinginkan penulis dari penyusunan Tugas Akhir ini
adalah untuk merancang sebuah robot berbasis Arduino yang dapat dikontrol oleh
Android melalui komunikasi Bluetooth.
1.5 Metode Penelitian
Metode yang digunakan penulisan Tugas Akhir ini adalah:
1.
Metode Studi Literatur
Metode ini dilakukan dengan cara mempelajari dan berusaha
memahami buku-buku litiatur, laporan-laporan, pencarian menggunakan
internet dan bentuk penulisan lain yang berhubungan dengan penulisan ini.
2.
Perancangan Alat dan Eksperimen
Metode ini merupakan tahap pembuatan alat dan tindak lanjut dari
tahap perancangan adalah merealisasikan alat sesuai dengan tujuan melalui
eksperimen-eksperimen yang dilakukan, sehingga didapat data yang ingin
dicapai untuk ditarik kesimpulan untuk pengembangan lebih lanjut.
4
1.6 Sistematika Penulisan
Untuk membahas permasalahan yang telah disampaikan di atas maka
dalam Tugas Akhir ini dibuat sistematika penulisan. Adapun sistematika
penulisan Tugas Akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN
Pada bab ini akan disajikan latar belakang masalah, perumusan masalah,
tujuan penelitian, metode penelitian, pembatasan dan ruang lingkup permasalahan
serta sistematika penulisan.
BAB II LANDASAN TEORI
Menjelaskan tentang robot, komunikasi Bluetooth, teori dasar tentang
bahasa C pada Arduino UNO, serta Aplikasi Java Eclipse pada Android.
BAB III PERANCANGAN DAN PEMBUATAN ALAT
Berisi mengenai pembuatan mekanik robot dan perancangan coding
program pada aplikasi Arduino dan Java Eclipse.
BAB IV ANALISA DAN PENGUJIAN DATA
Menjelaskan tentang pengujian-pengujian yang dilakukan terhadap robot.
BAB V PENUTUP
Berisi kesimpulan-kesimpulan dan saran-saran yang diambil dari hasil
Tugas Akhir.
BAB II
LANDASAN TEORI
Pada bab ini akan dibahas mengenai teori-teori dasar yang digunakan
untuk menunjang terciptanya sebuah robot berbasis Arduino yang dapat dikontrol
dengan Android melalui komunikasi via Bluetooth.
2.1 Robot
Robot adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik
menggunakan pengawasan dan kontrol manusia, ataupun menggunakan program
yang telah didefinisikan terlebih dulu (kecerdasan buatan). Istilah robot berawal
bahasa Cheko “robota” yang berarti pekerja atau kuli yang tidak mengenal lelah
atau bosan. Robot biasanya digunakan untuk tugas yang berat, berbahaya,
pekerjaan yang berulang dan kotor. Biasanya kebanyakan robot industri
digunakan dalam bidang produksi. Penggunaan robot lainnya termasuk untuk
pembersihan limbah beracun, penjelajahan bawah air dan luar angkasa,
pertambangan, pekerjaan "cari dan tolong" (search and rescue), dan untuk
pencarian tambang. Belakangan ini robot mulai memasuki pasaran konsumen di
5
6
bidang hiburan, dan alat pembantu rumah tangga, seperti penyedot debu, dan
pemotong rumput.
Saat ini hampir tidak ada orang yang tidak mengenal robot, namun
pengertian robot tidaklah dipahami secara sama oleh setiap orang. Sebagian
membayangkan robot adalah suatu mesin tiruan manusia (humanoid), meski
demikian humanoid bukanlah satu-satunya jenis robot. Salah satunya adalah
Robot Mobil atau Mobile Robot yaitu konstruksi robot yang ciri khasnya adalah
mempunyai aktuator berupa roda untuk menggerakkan keseluruhan badan robot
tersebut, sehingga robot tersebut dapat melakukan perpindahan posisi dari satu
titik ke titik yang lain.
Robot mobil ini sangat disukai bagi orang yang mulai mempelajari robot.
Hal ini karena membuat robot mobil tidak memerlukan kerja fisik yang berat.
Untuk dapat membuat sebuah robot mobil minimal diperlukan pengetahuan
tentang mikrokontroler dan sensor-sensor elektronik. Dasar robot mobil dapat
dengan mudah dibuat dengan menggunakan plywood /triplek, akrilik sampai
menggunakan logam (aluminium).
Gambar 2.1 Contoh Sebuah Robot Mobil
7
2.2 Bluetooth
Nama "bluetooth" berasal dari nama raja di akhir abad sepuluh, Harald
Blatand (Abad 10) yang di Inggris juga dijuluki Harald Bluetooth kemungkinan
karena memang giginya berwarna gelap. Ia adalah raja Denmark yang telah
berhasil menyatukan suku-suku yang sebelumnya berperang, termasuk suku dari
wilayah yang sekarang bernama Norwegia dan Swedia. Bahkan wilayah Scania di
Swedia, tempat teknologi bluetooth ini ditemukan juga termasuk daerah
kekuasaannya. Kemampuan raja itu sebagai pemersatu juga mirip dengan
teknologi bluetooth sekarang yang bisa menghubungkan berbagai peralatan
seperti komputer personal dan telepon genggam. Sedangkan logo bluetooth
berasal dari penyatuan dua huruf Jerman yang analog dengan huruf H dan B
(singkatan dari Harald Bluetooth), yaitu
(Hagall) dan
(Blatand) yang
kemudian digabungkan.
Awal mula dari Bluetooth adalah sebagai teknologi komunikasi wireless
(tanpa kabel) yang beroperasi dalam pita frekuensi 2,4 GHz unlicensed ISM
(Industrial, Scientific and Medical) dengan menggunakan sebuah frequency
hopping tranceiver yang mampu menyediakan layanan komunikasi data dan suara
secara real-time antara host-host bluetooth dengan jarak jangkauan layanan yang
terbatas (sekitar 10 meter). Bluetooth berupa card yang menggunakan frekuensi
radio standar IEEE 802.11 dengan jarak layanan yang terbatas dan kemampuan
data transfer lebih rendah dari card untuk Wireless Local Area Network (WLAN).
Pembentukan Bluetooth dipromotori oleh 5 perusahaan besar Ericsson,
IBM, Intel, Nokia dan Toshiba membentuk sebuah Special Interest Group (SIG)
8
yang meluncurkan proyek ini. Pada bulan Juli 1999 dokumen spesifikasi
bluetooth versi 1.0 mulai diluncurkan. Pada bulan Desember 1999 dimulai lagi
pembuatan dokumen spesifikasi bluetooth versi 2.0 dengan tambahan 4 promotor
baru yaitu 3Com, Lucent Technologies, Microsoft dan Motorola. Saat ini, lebih
dari 1800 perusahaan di berbagai bidang bergabung dalam sebuah konsorsium
sebagai adopter teknologi bluetooth. Walaupun standar Bluetooth SIG saat ini
‘dimiliki’ oleh grup promotor tetapi ia diharapkan akan menjadi sebuah standar
IEEE (802.15).
Gambar 2.2 Logo Bluetooth
2.3 Dasar Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open source
yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler
dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu sendiri adalah chip
atau IC (integrated Circuit) yang bisa diprogram menggunakan komputer. Tujuan
menanamkan program pada mikrokontroler adalah agar rangkaian elektronik
dapat membaca input, proses, dan output sebuah rangkaian elektronik.
9
Arduino adalah inovasi dibidang elektronika yang telah membuat
perubahan besar dalam dunia mikrokontroler sehingga seorang yang awam
amatiran bisa membuat proyek-proyek elektronika atau robotika dengan relatif
mudah dan cepat. Arduino lahir dari lingkungan mahasiswa dan dosen yang
merasakan
sulitnya
mempelajari
mikrokontroler.
Kemudian
mereka
mengembangkan sebuah sistem minimum berbasis AVR yang dilengkapi dengan
bootloader dan software yang user friendly. Hasilnya adalah sebuah board
mikrokontroler yang bersifat open source yang bisa dipelajari atau dikembangkan
oleh mahasiswa, profesional, atau penggemar mikrokontroler di seluruh dunia.
Konon Arduino sudah lebih popular dibandingkan Basic Stamp yang lahir lebih
awal yang harganya relatif mahal dan close source. Penjualan board Arduino bisa
menghasilkan milyaran Rupiah pada penjualan kit online seperti Sparkfun.
Mikrokontroler ada pada perangkat elektronik di sekelililng kita. Misalnya
Handphone, MP3 player, DVD, televisi, AC, dll. Mikrokontroler juga dipakai
untuk keperluan mengendalikan robot.
Karena komponen utama Arduino adalah mikrokontroler, maka Arduino
pun dapat diprogram menggunakan komputer sesuai dengan kebutuhan kita.
Adapun data teknis board Arduino UNO sebagai berikut :
Mikrokontroler : Arduino UNO
Tegangan Operasi : 5 V
Tegangan Input (recommended) : 7 - 12 V
Tegangan Input (limit) : 6 - 20 V
Pin digital I/O : 14 ( 6 diantaranya pin PWM )
Pin analog input : 6
10
Arus DC per pin I/O : 40 mA
Arus DC untuk pin 3.3 V : 150 mA
Flash Memory : 32 KB dengan 0.5 KB digunakan untuk bootloader
SRAM : 2 KB
EEPROM : 1 KB
Kecepatan Pewaktu : 16 MHz
Gambar 2.3 Bentuk Fisik Arduino UNO
Dapat dibawa kemana-mana bersama laptop atau dimasukkan ke dalam
saku. Walaupun bahasa pemrograman Arduino adalah bahasa C/C++, tetapi
dengan penambahan library dan fungsi-fungsi standar membuat pemrograman
Arduino lebih mudah dipelajari dan manusiawi. Contoh, untuk mengirimkan nilai
HIGH pada pin 10 Arduino, cukup menggunakan fungsi digitalWrite (10, HIGH),
sedangkan kalau menggunakan bahasa C aslinya adalah PORTB I=(1<<2).
Tersedia library yang sangat banyak untuk menghubungkan Arduino
dengan macam-macam sensor, actuator maupun modul komunikasi. Misalnya
library untuk mouse, keyboard, servo, GPS, dsb. Berhubung Arduino adalah open
11
source, maka library- library ini juga open source dan dapat di-download secara
gratis di website Arduino. Dengan bahasa yang lebih mudah dan adanya library
dasar yang lengkap, maka mengembangkan aplikasi elektronik relatif lebih
mudah. Contoh, kalau kita ingin membuat robot wireless, cukup membeli sebuah
modul Bluetooth dan menyambungkan ke Arduino.
Arduino tidak membuat bahasa pemrograman khusus, melainkan
menggunakan bahasa C yang sudah ada, lebih tepatnya menggunakan bahasa C
yang menggunakan compiler AVG – GCC (AVR GNU C – Compiler). Bahasa C
adalah bahasa yang sangat lazim dipakai sejak awal-awal komputer diciptakan
dan sangat berperan dalam perkembangan software. Bahasa C telah banyak
membuat bermacam-macam sistem operasi Unix, linux, dsb. Bahasa C juga
biasanya digunakan di akademi dan perguruan tinggi selain bahasa pemrograman
basic atau pascal. Bahasa C adalah bahasa pemrograman yang sangat ampuh yang
kekuatannya mendekati bahasa assembler.
Bahasa C menghasilkan file kode objek yang sangat kecil dan dieksekusi
dengan sangat cepat. Karena itu bahasa C sering digunakan pada sistem operasi
dan pemrograman mikrokontroler. Bahasa C adalah multi-platform, bahasa C bisa
diterapkan pada lingkungan windows, Unix, Linux, atau sistem operasi lain tanpa
mengalami perubahan source code ( kalaupun ada perubahan, biasanya sangat
minim). Karena Arduino menggunakan bahasa C yang multi-platform, maka
software Ardunio pun bisa dijalankan pada semua sistem operasi yang umum,
misalnya : Windows, Linux, MacOs. Bahasa C mudah dipelajari. Maksud kata
mudah di sini adalah relatif, tergantung kemampuan dari tiap user. Kalau anda
sudah mengerti bahasa C, anda dapat melakukan pengembangan dengan board
12
lain atau mikrokontroler lain dengan lebih mudah. Diinternet banyak library
bahasa C untuk Arduino yang bias di-download secara gratis. Setiap library
Arduino biasanya disertai dengan contoh pemakaiannya. Keberadaan librarylibrary ini bukan hanya membantu kita membuat proyek mikrokontroler. Tetapi
bias dijadikan sarana untuk mendalami pemrograman bahasa C pada
mikrokontroler.
2.3.1 Soket USB
Soket USB adalah soket untuk kabel USB yang disambungkan ke
komputer atau laptop. Berfungsi untuk mengirimkan program ke Arduino dan
juga sebagai port komunikasi serial.
2.3.2 Input / Output Digital
Input/output digital atau digital pin adalah pin-pin untuk menghubungkan
Arduino dengan komponen atau rangkaian digital. Misalnya, kalau igin membuat
LED berkelip, LED tersebut dapat dipasang pada salah satu pin I/O digital dan
ground. Komponen lain yang menghasilkan output digital atau menerima input
digital bisa disambungkan ke pin-pin ini.
2.3.3 Input Analog
Input Analog atau analog pin adalah pin-pin yang berfungsi untuk
menerima sinyal dari komponen atau rangkaian analog. Misalnya dari
potensiometer, sensor suhu, sensor cahaya, dsb.
13
2.3.4 Accu
Accu adalah suatu alat yang menyimpan tegangan 12 VDC sesuai
keperluan yang akan dibutuhkan, accu menyuplai tegangan ke motor shield
dengan tegangan 12 VDC untuk menggerakan motor dc pada robot.
2.3.5 Baterai / Adaptor
Soket baterai atau adaptor digunakan untuk menyuplai Arduino dengan
tegangan dari baterai / adaptor 12 V pada saat Arduino sedang tidak
disambungkan ke komputer. Kalau Arduino sedang disambungkan ke komputer
melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu
memasang baterai atau adaptor saat memprogram Arduino.
2.4 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 DC berfungsi untuk mengubah tenaga listrik arus searah menjadi
tenaga gerak. Tenaga gerak tersebut berupa putaran dari rotor. Jadi motor DC
menerima arus DC dari jala-jala dirubah menjadi energi mekanik berupa putaran
yang nantinya akan dipakai oleh peralatan lain.
14
2.4.1 Prinsip Kerja Motor DC
Prinsip kerja pada motor DC adalah :
Adanya garis-garis gaya medan magnet (fluks) antara kutub yang berada
pada stator.
Penghantar yang dialiri arus ditempatkan pada jangkar yang berada dalam
medan magnet.
Pada penghantar timbul gaya yang menghasilkan torsi.
Konstruksi motor DC:
Gambar 2.4 Konstruksi Motor DC
2.4.2
Pengendalian Motor DC
Pembuatan robot berbasis Arduino yang dikontrol oleh Android melalui
Bluetooth ini agar dapat bergerak digunakan sebuah aktuator yaitu berupa motor
DC. Untuk dapat mengaplikasikan motor DC ini pada robot yang akan dibuat
maka diperlukan pengendalian motor DC. Terdapat dua jenis pengendalian yang
harus dilakukan untuk dapat mengaplikasikan motor DC, yaitu :
15
A. Pengendalian arah putar motor DC
Untuk mendapatkan arah putaran searah dengan jarum jam (clockwise, c)
maka motor DC harus diberikan tegangan dengan polaritas bagian atas motor
positif dan bawah negatif.
Gambar 2.5 Polarisasi Tegangan Untuk Putaran Motor Searah Jarum Jam
Sedangkan untuk mendapatkan arah putaran berlawanan arah dengan
jarum jam (counter clockwise, ccw) maka motor DC harus diberikan tegangan
dengan polaritas bagian atas motor negatif dan bawah positif.
Gambar 2.6 Polarisasi Tegangan Untuk Putaran Motor Berlawanan Dengan
Arah Jarum Jam
16
B. Pengendalian Kecepatan Motor DC
Pengendalian kecepatan putar motor DC dapat dilakukan dengan mengatur
besar tegangan terminal motor. Metode lain yang biasa digunakan untuk
mengendalikan kecepatan motor DC adalah dengan teknik modulasi lebar pulsa
atau Pulse Width Modulation (PWM) yang ada pada driver motor.
2.5 Driver Motor (Motor Shield)
Ada beberapa macam driver motor DC yang biasa dipakai seperti
menggunakan relay yang diaktifkan dengan transistor sebagai saklar, namun yang
demikian dianggap tidak efisien dan terlalu ribet “repot” dalam pengerjaan
hardware-nya. Dengan berkembangnya dunia IC, sekarang sudah ada H Bridge
yang dikemas dalam satu IC yang memudahkan dalam pelaksanaan hardware dan
kendalinya apalagi jika menggunakan mikrokontroler maka akan terrasa lebih
mudah lagi dalam penggunaannya. IC yang familiar seperti IC L298. IC ini
memiliki kelebihan dan kekurangan masing-masing. Modul yang menggunakan
IC driver L298 yang memiliki kemampuan menggerakkan motor DC sampai arus
4A dengan tegangan maksimum 46 VDC untuk satu kanalnya. Rangkaian driver
motor DC dengan IC L298 diperlihatkan pada gambar 2.5. Pin enable A dan B
untuk mengendalikan jalan atau kecepatan motor, pin input 1 sampai 4 untuk
mengendalikan arah putaran. Pin enable diberi VCC 5 volt untuk kecepatan penuh
dan PWM (Pulse Width Modulation) untuk kecepatan rotasi yang bervariasi
tergantung dari level high-nya.
17
Gambar 2.7 Driver Motor DC Shield dengan L298
2.6 Android
Android adalah sistem operasi bergerak (mobile operating system) yang
mengadopsi sistem operasi Linux, namun telah dimodifikasi. Android diambil alih
oleh Google pada tahun 2005 dari Android, Inc sebagai bagian strategi untuk
mengisi pasar sistem operasi bergerak. Google mengambil alih seluruh hasil kerja
Android termasuk tim yang mengembangkan Android.
Google menginginkan agar Android bersifat terbuka dan gratis, oleh
karena itu hamper setiap kode program Android diluncurkan berdasarkan lisensi
open-source Apache yang berarti bahwa semua orang yang ingin menggunakan
Android dapat men-download penuh source code-nya.
Di samping itu produsen perangkat keras juga dapat menambahkan
extension-nya sendiri ke dalam Android sesuai dengan kebutuhan produk mereka.
Model pengembangannya yang sederhana membuat Android menarik bagi
vendor-vendor perangkat keras.
Keuntungan utama dari Android adalah adanya pendekatan aplikasi secara
terpadu. Pengembang hanya berkonsentrasi pada aplikasi saja, aplikasi tersebut
18
bisa berjalan pada beberapa perangkat yang berbeda selama masih tenagai oleh
Android
(pengembang
tidak
perlu
mempertimbangkan
kebutuhan
jenis
perangkatnya).
Tabel 2.1 Versi Android
No Versi Android
Diluncurkan
Nama Kode
1
Beta
5 November 2007
2
1.0
23 September 2008
3
1.1
9 febuari 2009
4
1.5
30 April 2009
Cupcake
5
1.6
15 September 2009
Donut
6
2.0/2.1
26 Oktober 2009
Éclair
7
2.2
20 Mei 2010
Froyo
8
2.3
6 Desember 2010
Gingerbread
9
3.0
22 Febuari 2011
Honeycomb
10
4.0
19 Oktober 2011
Ice Cream Sandwich
11
4.1
Sekitar pertengahan 2012
Jelly Bean
Sekitar 2013
Key Lime Pie
12
2.7 Aplikasi Program Arduino IDE ( Integrated Development Environment )
Ketika kita membuka program Arduino IDE ( Integrated Development
Environment ), akan terlihat serupa dengan tampilan gambar 2.8. Jika
menggunakan Windows atau Linux, akan terlihat perbedaan, tetapi pada dasarnya
IDE akan sama, tidak perduli Operasi sistem apa yang digunakan.
19
Gambar 2.8 Tampilan Program IDE
2.8 Arduino Programming Tool
Arduino merupakan perangkat pemrograman mikrokontroler jenis AVR
yang tersedia secara bebas (open source) untuk membuat prototip elektronika
yang dapat berinteraksi dengan keadaan sekitarnya. Arduino dapat menerima
input dari berbagai jenis sensor dan mengendalikan sensor, servo, dan actuator
lainnya.
Toolbar
Coding Area
Application Status
Message
Gambar 2.9 Tampilan Utama Aplikasi Arduino
20
1.
Toolbar
a
b
c
d
e
f
g
Gambar 2.10 Toolbar Pada Aplikasi Arduino
a.
Verify
Tombol ini digunakan untuk meng-compile program yang telah dibuat.
Compile berguna untuk mengetahui apakah program yang telah dibuat benar atau
masih memilki kesalahan. Apabila ada kesalahan yang terjadi, bagian message
akan menampilkan letak kesalahan tersebut.
b.
Stop
Tombol ini digunakan untuk membatalkan proses verify yang sedang
berlangsung.
c.
New
Tombol ini digunakan untuk membuat coding pada layar baru.
d. Open
Tombol ini digunakan untuk membuka coding
yang sudah disimpan
sebelumnya.
e.
Save
Tombol ini digunakan untuk menyimpan coding yang sudah dikerjakan.
f.
Upload
Tombol ini digunakan untuk mengirim coding yang sudah dikerjakan ke
mikrokontroler.
21
g.
Serial Monitor
Tombol ini digunakan untuk melihat aktivitas komunikasi serial dari
mikrokontroler baik yang dikirm oleh user
ke mikrokontroler maupun
sebaliknya.
2.
Coding Area
Bagian ini merupakan tempat penulisan coding dengan menggunakan
bahasa pemrograman C. Coding di dalam Arduino memiliki dua bagian utama,
yaitu :
a.
Void Setup ( )
Bagian ini merupakan inisialisasi yang diperlukan sebelum program utama
dijalankan, contoh :
void setup ( )
{
Serial.begin (9600) ;
// Inisialisasi baudrate komunikasi serial
pinMode (6, INPUT) ; // set pin 6 Arduino sebagai input
pinMode (7, OUTPUT) ; // set pin 7 Arduino sebagai output
}
b. Void Loop ( )
Bagian ini merupakan fungsi utama yang dijalankan terus menerus selama
modul Arduino terhubung dengan power supply. Contoh :
void loop ( )
{
digitalWrite (6, HIGH) ;
// memberikan logic HIGH pada pin 6
22
delay (1000) ;
// menunda selama 1 detik
digitalWrite (6, LOW) ;
// memberikan logic LOW pada pin 6
delay (2000) ;
// menunda selama 2 detik
}
3.
Application Status
Bagian ini memberikan informasi kepada pengguna mengenai tugas yang
yang sedang dujalankan oleh aplikasi Arduino.
4.
Message
Bagian ini memberikan informasi kepada pengguna mengenai besarnya
ukuran file dari coding yang dibuat dan letak kesalahan yang terjadi pada coding.
2.8.1 Serial Port
Komunikasi serial digunakan untuk memprogram mikrokontroler langsung
dari aplikasi Arduino. Selain itu, komunikasi serial juga digunakan untuk
mengirim dan menerima data antara mikrokontroler dan komputer melalui
fasilitas serial monitor yang terdapat pada aplikasi Arduino.
23
Gambar 2.11 Tools Serial Ports
2.9 Aplikasi Program Eclipse
Ketika membuka program Eclipse (dalam pembuatan digunakan Eclipse
Galileo) akan terlihat serupa dengan tampilan gambar berikut.
Gambar 2.12 Tampilan Program Eclipse
24
2.10 Eclipse Programming Tools
Eclipse adalah sebuah IDE (Integrated Development Environment) untuk
mengembangkan perangkat lunak dan dapat dijalankan di semua platform
(platform-independent). Dalam Skripsi ini digunakan Android sebagai platformnya.
1
3
2
4
Gambar 2.13 Tampilan Utama Pada Eclipse
1. Toolbar
Pada bagian toolbar, terdapat shortcut perintah dalam bentuk icon.
Seperti Create New (project, folder), Save, Print, Open Android SDK
Manager, Open the Android Virtual Device Manager, Open a wizard ho help
create a new Android Project, Open a wizard ho help create a new Android
25
Test Project, Open a wizard ho help create a new Android XML file, Debug,
Run, Run Last Tool, New Java Project, New Java Package, New Java Class,
Open Type, Open Task, Search, Next Annotation, Previous Annotation, Last
Edit Location, Backward, dan Forward.
2. Package Explorer
Merupakan jendela yang menampilkan project-project yang sudah
dibuat dalam sebuah workspace. Jendela ini layaknya explore pada sistem
operasi windows, yang berguna untuk mengexplore project yang ada dalam
sebuah workspace.
3. Java Editor
Merupakan jendela yang menampilkan coding java yang sedang
dikerjakan. Pada bagian ini digunakan untuk mengetik perintah-perintah
dalam syntax java untuk membuat sebuah aplikasi.
4. Console
Merupakan jendela yang menampilkan hasil output dari aplikasi yang
telah buat. Agar hasil outputnya berjalan, tekan Run pada toolbar. Jika
muncul error, berarti aplikasi yang telah buat memang memiliki error, dan
console ini akan menunjukkan dimana letak error-nya.
BAB III
PERANCANGAN DAN PEMBUATAN ALAT
Dalam bab ini akan dibahas mengenai prinsip kerja rangkaian yang
disusun untuk merealisasikan sistem alat, dalam hal ini Bluetooth sebagai alat
komunikasi penghubung antara Android dengan Arduino. Adapun sistem alat
yang dibuat dan dirancang sesuai blok diagram. Pembahasan dititik beratkan pada
perancangan alat yang dibuat berdasarkan pemikiran dan mengacu pada sumber
yang berhubungan dengan alat, khususnya pada bagian komunikasi penghubung
yaitu modul Bluetooth pada robot yang berbasiskan mikrokontroler Atmega328
pada Arduino UNO.
3.1 Blok Diagram Rangkaian
Untuk merealisasikan robot yang akan diuji, maka secara sistem
keseluruhan rangkaian simulasi robot berbasis Arduino yang dikontrol oleh
Android menggunakan komunikasi via Bluetooth adalah seperti gambar 3.1.
26
27
Android
Baterai 12V
Bluetooth
Modul
Bluetooth
Motor
DC
Motor
DC
Driver
Motor
Shield
Arduino
UNO
L 298
Gambar 3.1 Diagram Blok Rangkaian Kontrol Bluetooth
Fungsi dari diagram blok rangkaian di atas adalah sebagai berikut :
1. Baterai
Baterai berfungsi sebagai sumber tegangan ke rangkaian Arduino UNO
dan driver motor shield. Ketika tegangan 12 VDC baterai masuk ke
Arduino UNO maka tegangan akan terbagi menjadi :
Tegangan supply 3.3 VDC untuk modul Bluetooth
Tegangan supply 5 VDC untuk IC L298.
2. Modul Bluetooth
Modul Bluetooth berfungsi sebagai penerima komunikasi dari Android
yang dikendalikan oleh user.
3. Arduino UNO
Arduino UNO berfungsi sebagai sistem kontrol dari semua rangkaian
pengontrol Bluetooth.
28
4. Motor Driver
Motor driver (motor shield) berfungsi sebagai pengatur tegangan dan
arus yang masuk ke motor DC.
5. Motor DC
Motor DC berfungsi sebagai penggerak roda pada robot.
6. Android
Berfungsi sebagai device pengirim komunikasi ke modul Bluetooth pada
robot.
3.2 Perancangan Perangkat Keras (Hardware)
Dalam perancangannya, robot ini menggunakan Arduino UNO sebagai
dasar utamanya, sehingga diperlukan sebuah modul Arduino UNO untuk menjadi
otak dasarnya. Perancangan perangkat keras ini dilakukan untuk mewujudkan
terciptanya sebuah kerangka robot mobil yang simple, agar dapar bergerak maju,
mundur, kiri, kanan, dan berhenti dengan leluasa.
3.2.1 Modul Arduino UNO
Arduino UNO adalah sebuah mikrokontroler yang didasarkan pada ATmega
328 (datasheet). Arduino UNO mempunyai 14 pin digital input/output (6
diantaranya dapat diguanakan sebagai output PWM), 6 input analog, sebuah
oscillator Kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ISCP
header, dan sebuah tombol reset. Arduino UNO memuat semua yang dibutuhkan
untuk menunjang mikrokontroler, mudah menghubungkannya ke sebuah
29
komputer dengan sebuah kabel USB atau mensuplainya dengan sebuah adaptor
AC ke DC atau dapat menggunakan baterai untuk memulainya.
Gambar 3.2 Rangkaian Arduino UNO
Setiap modul Arduino UNO menggunakan 2 (dua) buah koneksi dengan
komputer, paralel dan serial. Komunikasi paralel digunakan untuk burn
bootloader, program inisialisasi mikrokontroler agar dapat menggunakan koneksi
serial dalam hal pemrograman, sehingga mikrokontroler dapat diprogram secara
serial
maupun
komunikasi
data
antara
mikrokontroler
dan
komputer
menggunakan aplikasi Arduino UNO. Selain itu, komunikasi paralel juga dapat
digunakan untuk pemrograman mikrokontroler secara paralel. Tabel berikut ini
menunjukkan penomoran setiap pin pada Arduino UNO :
30
Tabel 3.1 Penomoran Pin pada Arduino UNO
PIN Arduino
PIN Atmega328
PIN Arduino
PIN ATmega328
UNO
1
UNO
15
9 (PWM)
2
0 (RX)
16
10 (PWM)
3
1 (TX)
17
11 (PWM)
4
2
18
12
5
3 (PWM)
19
13
6
4
20
7
21
8
22
9
23
1 analog IN
10
24
2 analog IN
11
5 (PWM)
25
3 analog IN
12
6 (PWM)
26
4 analog IN
13
7
27
5 analog IN
14
8
28
6 analog IN
31
Modul Arduino UNO yang paling sederhana adalah modul dengan tampilan
board sebagai berikut :
Digital Input/Output
Konektor USB
Mikrokontroler
Jack Untuk
Baterai/Adaptor
Power
Analog Input
Digital Output
Gambar 3.3 Tampilan Atas Board Arduino UNO
Sebagai referensi untuk menemukan pin pada mikrokontroler Atmega 328
yang dipakai pada aplikasi Arduino UNO yang digunakan, yaitu (tabel) ringkasan
Arduino UNO :
Tabel 3.2 Ringkasan Arduino UNO
Mikrokontroler
Tegangan Pengoperasian
Tegangan Input Yang
ATmega 328
5V
7 -12 V
Disarankan
Batas Tegangan Input
6 – 20 V
Jumlah Pin I/O Digital
14 (6 diantaranya menyediakan keluaran
32
PWM)
Jumlah Pin Input Analog
6
Arus DC Tiap Pin I/O
40 mA
Arus DC Untuk Pin 3.3 V
50 mA
Memory Flash
32 KB (ATmega 328), sekitar 0.5 KB
digunakan oleh bootloader
SRAM
2 KB (ATmega 328)
EEPROM
1 KB (ATmega 328)
Clock Speed
16 MHz
3.2.2 Driver Motor Shield
Untuk penggerak dari rangkaian roda pada robot menggunakan motor DC.
Pada motor DC sendiri dapat dikendalikan langsung oleh keluaran dari
mikrokontroler. Tegangan mikrokontroler hanya 5 Volt, sedangkan motor DC
yang digunakan pada robot ini membutuhkan tegangan 6 Volt agar dapat bekerja
dengan optimal. Rangkaian pengendali motor yang digunakan di sini adalah
rangkaian yang dikenal dengan sebutan Motor Driver (Motor Shield). Driver
motor ini dilengkapi dengan shield yang pin-pin keluarannya disesuaikan dengan
Arduino UNO. Jadi rangkaian ini dapat dipasangkan dengan mudah dengan
Arduino UNO tanpa menyolder lagi pin-pin keluaran IC 298. Rangkaian motor
driver yang digunakan terdapat pada gambar 3.4.
33
R1: 4,7 kohm
R2: 10 kohm
R3: 4,7 kohm
R4: 4,7 kohm
R5: 10 kohm
R6: 4,7 kohm
R7: 1 kohm
R8: 1 kohm
3.2.1
R9: 100 kohm
R10: 10 kohm
C1: 100 nF 100
C2: 100 µF 63 VL
C3: 22 µF 35 VL
U1: L298P
LD1: Led 5 mm R/G (L-57EGW)
LD2: Led 5 mm R/G (L-57EGW)
D1: 1N5819
D2: 1N5819
D3: 1N5819
D4: 1N5819
D5: 1N5819
D6: 1N5819
D7: 1N5819
D8: 1N5819
Gambar 3.7 Rangkaian Motor Driver Shield
T1: BC547
T2: BC547
Gambar 3.4 Rangkaian Driver Motor Shield
Rangkaian ini umum digunakan untuk mengatur putaran motor yang
diinginkan dengan memberikan logika yang sesuai dengan ketentuan pada kaki
inputnya seperti tabel 3.3.
34
Tabel 3.3 Kondisi Putaran Motor
Logika A
Logika B
Arah Putaran
0
0
Diam
0
1
Berlawanan Jarum Jam
1
0
Searah Jarum Jam
1
1
Dilarang
Berikut adalah tabel kondisi putaran motor DC terhadap arah pergerakan
robot, yaitu :
Tabel 3.4 Kondisi Putaran Motor Terhadap Arah Pergerakkan Motor
Motor Kiri
Motor Kanan
Arah Pergerakkan
Maju
Putar Kanan
Putar Kiri
Mundur
3.2.3 Perancangan Mekanik
Perancangan mekanik robot dibuat sedemikian rupa agar mendukung
kemampuan robot dalam bergerak pada arena. Hampir semua material robot
menggunakan akrilik dan alumunium. Konstruksi dasar robot menggunakan
alumunium dan konstruksi bagian atas robot menggunakan akrilik. Penggunaan
akrilik dan alumunium dipilih karena bahan tersebut relatif mudah dibentuk dan
ringan.
35
Perancangan bentuk robot yang akan dibuat adalah berbentuk bulat dengan
diameter 12 cm, 2 buah alas, 4 buah tiang penyangga, dan 3 buah roda yang
digambarkan pada gambar 3.5 dan 3.6.
Gambar 3.5 Tampak Depan Robot
Gambar 3.6 Tampak Belakang Robot
36
3.2.4 Sistem Penggerak Roda
Sistem roda yang dirancang pada robot ini menggunakan motor DC 6 V
dengan roda (wheel) berukuran diameter 42 mm.
Gambar 3.7 Sistem Perodaan Robot Mobil
3.3 Realisasi Rangkaian
Langkah berikutnya adalah merealisasikan rangkaian setiap blok, rangkaian
yang akan dibuat yaitu sebagai berikut :
3.3.1
Rangkaian Bluetooth dengan Arduino UNO.
Aplikasi program Arduino UNO IDE
Aplikasi program Eclipse
Rangkaian Modul Bluetooth dengan Arduino UNO
Rangkaian bluetooth ini berfungsi untuk mengintegrasikan Android dengan
Arduino UNO. Dalam melakukan koneksi antara modul Bluetooth dan Arduino
UNO dibutuhkan kabel jumper sebagai penghubung seperti gambar 3.8.
37
Gambar 3.8 Rangkaian Modul Bluetooth HC-05
Pada rangkaian ini ada beberapa hal yang harus diperhatikan, yaitu pada
jalur penghubung dari rangkaian modul Bluetooth ke Arduino UNO. Meliputi pin
power 3.3v, ground, transmitter (Tx), dan receiver (Rx). Pin-pin ini akan
dihubungkan ke setiap jalur pin Arduino UNO, untuk lebih lengkapnya kita bisa
lihat cara interfacing di gambar 3.9 dan 3.10
Gambar 3.9 Pin-pin pada Modul Bluetooth HC-05
Dari 34 pin yang ada pada modul Bluetooth HC-05, hanya dipakai 4 buah
pin saja, yaitu pin 1, 2, 12, dan 13.
38
Gambar 3.10 pin-pin yang dihubungkan ke Arduino UNO
Sesuai dengan library yang sudah dibuat, koneksi pin-pin tersebut dengan
board Arduino UNO adalah sebagai berikut :
1.
Pin 1 (Tx) – pin 0 (Rx)
2.
Pin 2 (Rx) – pin 1 (Tx)
3.
Pin 12 (3.3v) – pin 3.3v Arduino UNO
4.
Pin 13 (Ground) – pin ground Arduino UNO
Setelah kita meng-interfacing pin-pin tersebut maka akan dihubungkan ke
pin Arduino UNO, berikut interfacing data pada gambar 3.11.
Gambar 3.11 Rangkaian Modul Bluetooth HC-05 ke Arduino UNO
39
3.3.2
Aplikasi Program Arduino UNO
Setelah proses rangkaian selesai dibuat, langkah selanjutnya adalah
membuat program pada aplikasi program Arduino UNO IDE. Buka Program
aplikasi Arduino UNO IDE, kemudian buat coding program seperti gambar 3.12
Gambar 3.12 program Arduino UNO IDE
Pada perancangan ini dilakukan beberapa kali pengetesan untuk mencoba
hasil yang diinginkan dan beberapa program Arduino UNO yang didapat.
A. Pergerakkan Maju
Penulisan program untuk pergerakkan maju adalah sebagai berikut :
Gambar 3.13 Listing Program Pergerakan Maju
40
B. Pergerakkan Mundur
Penulisan program untuk pergerakkan mundur adalah sebagai berikut :
Gambar 3.14 Listing Program Pergerakan Mundur
C. Pergerakkan Belok Kanan
Penulisan program untuk belok kanan adalah sebagai berikut :
Gambar 3.15 Listing Program Pergerakan Belok Kanan
41
D. Pergerakkan Belok Kiri
Penulisan program untuk belok kiri adalah sebagai berikut :
Gambar 3.16 Listing Program Pergerakan Belok Kiri
E. Pergerakkan Berhenti
Penulisan program untuk berhenti adalah sebagai berikut :
Gambar 3.17 Listing Program Pergerakan Berhenti
42
3.3.3
Aplikasi Program Eclipse
Setelah program Arduino UNO IDE selesai, kemudian membuat program
pada aplikasi Eclipse. Buka program aplikasi Eclipse, kemudian buat coding
program seperti gambar 3.18, 3.19, dan 3.20.
Gambar 3.18 Coding Untuk Main.xml
Gambar 3.19 Coding Untuk Controlactivity.java
43
Gambar 3.20 Coding Untuk Androidmanifest.xml
BAB IV
PENGUJIAN DAN ANALISA
Setelah proses perancangan selesai, maka dalam bab ini akan diungkapkan
dan diuraikan mengenai persiapan komponen dan peralatan yang dipergunakan,
serta langkah-langkah praktek, kemudian menyiapkan data hasil pengujian.
Pelaksanaan pendataan menggunakan sebuah rangkaian dan dilakukan secara
berulang-ulang supaya dihasilkan data yang benar-benar tepat. Sebelum
melakukan pendataan, terlebih dahulu mempelajari alat tersebut kemudian
menentukan titik pengukuran.
Gambar 4.1 Robot Mobil Hasil Perancangan
44
45
4.1
Pengujian Perangkat
Sebelum membuat rangkaian yang akan digunakan sebagai pendataan bahan
ilmiah, terlebih dahulu mempersiapkan alat yang diperlukan sebagai penunjang
pada saat melakukan pengujian pada rangkaian. Adapun alat dan bahan yang
diperlukan adalah sebagai berikut :
Tabel 4.1 Bahan-bahan yang dipergunakan
NO
4.2
Nama Barang
Jumlah Barang
1
Arduino UNO
1
2
Motor DC 6v
2
3
Kabel USB (Universal Serial Bus)
1
4
Motor Shield L298
1
5
Baterai 12v
6
Akrilic 12cm x 12cm
1
7
Android (Samsung Galaxy ACE 2)
1
8
Modul Bluetooth
1
9
Multimeter
1
1 (10 buah)
Pengujian Setiap Blok
Sebelum melaksanakan pendataan pada rangkaian terlebih dahulu
memeriksa hubungan-hubungan pada rangkaian. Langkah selanjutnya adalah
menentukan test point untuk pengujian pada rangkaian yang akan didata. Adapun
proses pengujian yang dilakukan adalah sebagai berikut :
46
4.2.1 Pengujian Modul Bluetooth Dengan Android
Pengujian ini bertujuan untuk mengetahui apakah Modul Bluetooth HC-05
ini dapat berkomunikasi dengan Android. Pengujian ini dilakukan dengan
memberikan power 3.3v pada modul Bluetooth yang kemudian keberadaannya
dideteksi oleh Android dengan men-scan Bluetooth.
Gambar 4.2 Android Sedang Men-scan Modul Bluetooth
Setelah Android selesai men-scan, pada bagian available device terdapat
device yang terdeteksi oleh Android yaitu modul Bluetooth HC-05 yang saya
gunakan. Pilih, kemudian muncul kotak dialog Bluetooth Pairing Request yang
meminta PIN (default : 1234) untuk pairing dengan Android.
Gambar 4.3 Modul Bluetooth Meminta PIN Untuk Pairing Dengan Android
47
Gambar 4.4 Modul Bluetooth Sudah Pairing Dengan Android
4.2.2 Pengujian Program Arduino UNO IDE
Pengujian ini bertujuan untuk mengetahui apakah secara Aplikasi program
Arduino IDE yang akan di-upload ke Arduino UNO sudah benar atau perlu
adanya perbaikan. Pengujian ini dilakukan dengan cara Verify/Compile pada
lembar Sketch yang sudah diisi dengan program, bila program pada lembar Sketch
berjalan dengan baik setelah di-Verify/Compile maka akan terlihat seperti gambar
4.4 dan 4.5.
48
Gambar 4.5 Sketch Sedang Di-compile
Gambar 4.6 Sketch Selesai Di-compile
49
4.2.3 Pengujian Arduino UNO Pada Robot
Setelah proses Verify/Compile berjalan dengan baik, langkah selanjutnya
adalah melakukan upload program dengan cara menghubungkan Arduino UNO ke
komputer dengan kabel USB (Universal Serial Bus), kemudian komputer akan
mendeteksi keberadaan Arduino UNO berikut dengan port yang digunakannya.
Cek keberadaan port Arduino UNO dengan membuka Device Manager (Start –
Control Panel – System and Security – Device Manager), lihat pada bagian Ports
(COM & LPT), Port Arduino UNO terdeteksi pada Port COM20.
Gambar 4.7 Port Arduino UNO Terdeteksi Oleh Komputer
Setelah Arduino UNO terhubung, buka Sketch Arduino UNO yang telah
di-program dan di-Verify/Compile sebelumnya, cek keberadaan Port Arduino
UNO pada program Arduino IDE, klik Tools – Serial Port.
50
Gambar 4.8 Port Arduino UNO
Lalu klik upload pada toolbar. Bila proses uploading berjalan dengan
lancar maka akan muncul keterangan “Done Uploading”.
Gambar 4.9 Proses Upload Ke Arduino UNO
51
Gambar 4.10 Proses Uploading Selesai
4.2.4 Pengujian Program Eclipse
Pengujian ini bertujuan untuk mengetahui apakah secara Aplikasi program
Eclipse yang akan di-install ke Android sudah benar atau perlu adanya perbaikan.
Pengujian ini dilakukan dengan cara men-save coding program yang telah dibuat,
apabila terjadi kesalahan coding, maka akan muncul error pada kotak dialog
Console. Jika tidak, maka kotak dialog Console tidak muncul keterangan error.
Ada
3
file
yang
di-coding
pada
aplikasi
Eclipse,
yaitu
AndroidManifest.xml, Main.xml (berada dalam folder res – layout), dan
Activity.java (berada dalam folder src).
52
Gambar 4.11 File-File Yang Di-coding
Android Manifest
Android Manifest merupakan sebuah xml yang berisi informasi mengenai
aplikasi, seperti versi dari aplikasi, nama package, level SDK yang digunakan,
beserta icon dan nama yang diberikan untuk Aplikasi. Selain itu Android Manifest
juga digunakan sebagai pengatur Activity-activity yang terdapat pada aplikasi,
berupa daftar kelas-kelas java, penggunaan intent untuk pemilihan, dan pemberian
Label/Title pada suatu Activity saat mereka aktif. AndroidManifest.xml ini secara
otomatis ada jika kita membuat sebuah project. Karena pada Tugas Akhir ini
menggunakan Bluetooth sebagai media, maka perlu ditambah kan kode :
<uses-permission
android:name="android.permission.BLUETOOTH" />
53
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN" />
Gambar 4.12 Coding Program Pada Manifest.xml
Main
Main.xml digunakan untuk menggambar layout dan user interface di
android, dengan menggunakan format bahasa xml.
Gambar 4.13 Coding Program Pada Main.xml
54
Gambar 4.14 Bentuk Graphical Layout Pada Aplikasi Android
Activity
Activity dalam Android adalah sebuah kelas untuk menjalankan sebuah
layout yang berisi interface seperti text view, button, combo box dll.
Gambar 4.15 Coding Program Pada Activity.java
Setelah coding program selesai dibuat, langkah selanjutnya adalah
mengekspor aplikasi Android menjadi file APK (Android Package) saya
menamakannya “control.apk”. kemudian install file APK di Android.
55
4.3
Pengujian Sistem Keseluruhan
Tujuan dari pengujian sistem secara keseluruhan adalah untuk mengetahui
bagaimana cara robot bergerak dan berkomunikasi sesuai dengan pengontrolan
yang dilakukan oleh user. Pengujian dilakukan dengan mencoba tombol yang ada
pada aplikasi control yang sudah ter-install pada Android. Setiap pengujian
dilakukan step by step yaitu maju, mundur, kanan, kiri, dan berhenti.
4.3.1 Pengujian Maju
Pengujian yang pertama dilakukan adalah pengujian pergerakan maju,
tujuan dari pengujian ini adalah untuk memperlihatkan bagaimana pergerakan
robot mobil ini pada saat bergerak maju.
Gambar 4.16 Robot Mobil Bergerak Maju
56
Dari gambar tersebut hasil pengujian pergerakan maju ini berjalan dengan
lancar dan robot mobil berhasil bergerak maju sesuai perintah.
4.3.2 Pengujian Mundur
Pengujian yang kedua adalah pengujian pergerakan mundur, tujuan dari
pengujian ini adalah untuk memperlihatkan bagaimana pergerakan robot mobil ini
pada saat bergerak mundur.
Gambar 4.17 Robot Mobil Bergerak Mundur
Dari gambar tersebut hasil pengujian pergerakan mundur ini berjalan
dengan lancar dan robot mobil berhasil bergerak mundur sesuai perintah.
57
4.3.3 Pengujian Belok Kanan
Pengujian yang ketiga adalah pengujian pergerakan belok kanan, tujuan
dari pengujian ini adalah untuk memperlihatkan bagaimana pergerakan robot
mobil ini pada saat bergerak belok ke arah kanan
Gambar 4.18 Robot Mobil Bergerak Ke Arah Kanan
Dari gambar tersebut hasil pengujian pergerakan belok kanan ini berjalan
dengan lancar dan robot mobil berhasil bergerak belok ke arah kanan sesuai
perintah.
58
4.3.4 Pengujian Belok Kiri
Pengujian yang pertama dilakukan adalah pengujian pergerakan belok kiri,
tujuan dari pengujian ini ada untuk memperlihatkan bagaimana pergerakan robot
mobil ini pada saat bergerak belok ke arah kiri.
Gambar 4.19 Robot Mobil Bergerak Ke Arah Kiri
Dari gambar tersebut hasil pengujian pergerakan belok kiri ini berjalan
dengan lancar dan robot mobil berhasil bergerak belok ke arah kiri sesuai
perintah.
59
4.3.5 Pengujian Berhenti
Pengujian yang pertama dilakukan adalah pengujian berhenti, tujuan dari
pengujian ini ada untuk memperlihatkan bagaimana pergerakan robot mobil ini
pada saat dalam keadaan bergerak kemudian berhenti.
Gambar 4.20 Robot Mobil Berhenti
Dari gambar tersebut hasil pengujian pergerakan berhenti ini berjalan
dengan lancar dan robot mobil berhasil bergerak kemudian berhenti sesuai
perintah.
60
4.4
Pengujian Jarak
Berdasarkan teori yang didapat, layanan komunikasi Bluetooth hanya
menjangkau jarak sekitar ±10 meter. Namun, dari hasil pengujian robot mobil ini
dapat dikendalikan sejauh lebih dari 80 langkah kaki pada ruang terbuka.
BAB V
PENUTUP
5.1
Kesimpulan
Kesimpulan yang dapat diambil dari hasil pengujian adalah sebagai berikut :
1.
Robot mobil berbasis Arduino ini dapat berjalan dengan baik dan
bergerak maju, mundur, belok kanan, belok kiri dan berhenti.
2.
Pengontrolan robot dilakukan dengan menggunakan Android dan robot
dapat bergerak sesuai dengan perintah.
3.
Komunikasi antara Android dengan Arduino menggunakan komunikasi
via Bluetooth, pada pengujian robot ini dapat dikontrol hingga jarak 80
langkah pada ruang terbuka.
5.2
Saran
Robot mobil ini merupakan dasar dari pengontrolan mobil robot via
Bluetooth melalui Android, untuk itu, diperlukan saran-saran atau tambahan ide-
61
62
ide yang dapat membangun, mengembangkan, dan membuat robot mobil ini lebih
sempurna dan berguna lagi pengaplikasiannya.
DAFTAR PUSTAKA
Budiarto, Widodo. 2005. Perancangan Sistem dan Aplikasi Mikrokontroller.
Jakarta: PT. Elex Media Computindo.
Burd, Barry. 2004. Eclipse For Dummies. United States: For Dummies.
Derus, M.Oki, 2012. “Pengontrolan Robot Dengan Menggunakan Stik PS2
Wireless, Receiver, Dan Arduino UNO”, Jurnal Teknik Elektro Universitas
Mercu Buana.
DiMarzio, Jerome. 2008. Android: A Programmer’s Guide. United States: MCGraw Hill.
McRoberts, Mike. 2010. Arduino Starter Kit Manual. United States: Earthshine
Design.
Purdum, Jack. 2012. Beginning C For Arduino. United States: Apress.
Stallings, William. 2009. Komunikasi dan Jaringan Nirkabel Jilid 2. Jakarta:
Erlangga.
Suprianti, Dodit., dan Agustina, Rini. 2012. Pemrograman Aplikasi Android.
Jakarta: MediaKom.
Suyadhi, Taufiq Dwi Septian. 2011. Buku Pintar Robotika: Bagaimana
Merancang Dan Membuat Robot Sendiri. Jakarta: Andi
63
Syahid, 2012. “Rancang Bangun Robot Beroda Berbasis Android Menggunakan
Komunikasi USB”, Jurnal Teknik Elektro Politeknik Negri Semarang, Vol.
1: 33-42.
64
Lampiran Listing Program Arduino
/***********************
Bluetooth switch arduino
***********************/
// 1 juli 2013 oleh Julpri Andika
////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define rightMotor_Dir 4 // arah putar (Motor 1 / kanan)
#define rightMotor_Vel 5 // kontrol kecepatan (Motor 1 / Kanan)
#define leftMotor_Dir 7 // arah putar (Motor 2 / kiri)
#define leftMotor_Vel 6 // kontrol kecepatan (Motor 2 / Kiri)
int incomingByte = 0;
// for incoming serial data
void setup()
{
Serial.begin(9600);
pinMode(4,OUTPUT); //Set control pin sebagai mode output
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
digitalWrite(rightMotor_Vel,LOW); //set kedua motor dalam keadaan mati pada saat dimulai
digitalWrite(leftMotor_Vel,LOW);
}
//fungsi arah putar motor kanan
void rightMotor(int pwm, boolean arah)
{
analogWrite(rightMotor_Vel,pwm); //Motor diberi HIGH agar EN=full
if(arah) digitalWrite (rightMotor_Dir,HIGH);
else digitalWrite (rightMotor_Dir,LOW);
}
//fungsi arah putar motor kiri
void leftMotor(int pwm, boolean arah)
{
analogWrite(leftMotor_Vel,pwm); //Motor diberi HIGH agar EN=full
if(arah) digitalWrite (leftMotor_Dir,HIGH);
else digitalWrite (leftMotor_Dir,LOW);
}
//fungsi gerakan maju
void maju()
{
rightMotor(255, true);
leftMotor(255, true);
}
//fungsi gerakan mundur
void mundur()
{
rightMotor(255, false);
leftMotor(255, false);
}
//fungsi gerakan belok kanan
void kiri()
{
rightMotor(0, false);
leftMotor(175, true);
}
//fungsi gerakan belok kiri
void kanan()
{
rightMotor(175, true);
leftMotor(0, false);
}
//fungsi berhenti
void berhenti ()
{
digitalWrite(rightMotor_Vel,LOW);
digitalWrite(leftMotor_Vel,LOW);
}
void loop()
{
if (Serial.available() > 0) // see if there's incoming serial data:
{
incomingByte = Serial.read();// read the oldest byte in the serial buffer:
}
switch(incomingByte) // depending on the incoming byte do the needful action
{
//belok kanan//
case '1':
kiri();
Serial.println("kanan");
incomingByte='*';
break;
//belok kiri//
case '2':
kanan();
Serial.println("kiri");
incomingByte='*';
break;
//stop//
case '3':
berhenti();
Serial.println("berhenti");
incomingByte='*';
break;
//mundur//
case '4':
mundur();
Serial.println("mundur");
incomingByte='*';
break;
//maju//
case '5':
maju();
Serial.println("maju");
incomingByte='*';
break;
delay(5000);
}
}
Lampiran Listing Program Eclipse
ControlManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="julpri.andika"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="9" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name="ControlActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/buttonmaju"
android:layout_width="100dp"
android:layout_height="75dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="Maju" />
<Button
android:id="@+id/buttonstop"
android:layout_width="100dp"
android:layout_height="75dp"
android:layout_alignLeft="@+id/buttonmaju"
android:layout_below="@+id/buttonmaju"
android:layout_marginTop="42dp"
android:text="Stop!" />
<Button
android:id="@+id/buttonkanan"
android:layout_width="100dp"
android:layout_height="75dp"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/buttonstop"
android:text="Kanan" />
<Button
android:id="@+id/buttonkiri"
android:layout_width="100dp"
android:layout_height="75dp"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/buttonstop"
android:text="Kiri" />
<Button
android:id="@+id/buttonmundur"
android:layout_width="100dp"
android:layout_height="75dp"
android:layout_below="@+id/buttonstop"
android:layout_centerHorizontal="true"
android:layout_marginTop="56dp"
android:text="Mundur" />
<Button
android:id="@+id/buttonopen"
android:layout_width="100dp"
android:layout_height="75dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/buttonmundur"
android:layout_marginTop="26dp"
android:layout_toLeftOf="@+id/buttonstop"
android:text="Buka Koneksi" />
<Button
android:id="@+id/buttonclose"
android:layout_width="100dp"
android:layout_height="75dp"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/buttonopen"
android:layout_toRightOf="@+id/buttonstop"
android:text="Tutup Koneksi" />
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/buttonopen"
android:layout_marginTop="15dp"
android:text="Ready" />
</RelativeLayout>
ControlActivity.java
package julpri.andika;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.Button;
import julpri.andika.R;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Set;
import java.util.UUID;
public class ControlActivity extends Activity
{
TextView myLabel;
EditText myTextbox;
BluetoothAdapter mBluetoothAdapter;
BluetoothSocket mmSocket;
BluetoothDevice mmDevice;
OutputStream mmOutputStream;
InputStream mmInputStream;
Thread workerThread;
byte[] readBuffer;
int readBufferPosition;
int counter;
volatile boolean stopWorker;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonkanan = (Button)findViewById(R.id.buttonkanan);
Button buttonkiri = (Button)findViewById(R.id.buttonkiri);
Button buttonstop = (Button)findViewById(R.id.buttonstop);
Button buttonmundur = (Button)findViewById(R.id.buttonmundur);
Button buttonmaju = (Button)findViewById(R.id.buttonmaju);
Button buttonopen = (Button)findViewById(R.id.buttonopen);
Button buttonclose = (Button)findViewById(R.id.buttonclose);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// cek keberadaan bluetooth dalam kondisi off/on, bila off maka akan meminta device untuk
menghidupkan bluetooth
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if(mBluetoothAdapter == null)
{
myLabel.setText("No bluetooth adapter available");
}
if(!mBluetoothAdapter.isEnabled())
{
Intent enableBluetooth = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetooth, 0);
}
/////////////////////////////////////////////////////////////////////////////////////////
myLabel = (TextView)findViewById(R.id.label);
/////////////////////////////////////////////////////////////////////////////////////////
//Open Button, tombol untuk menghubungkan antara aplikasi dengan modul bluetooth (HC-05)yang
sudah di pair dengan device sebelumnya
buttonopen.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
try
{
findBT();
openBT();
}
catch (IOException ex) { }
}
});
//////////////////////////////////////////////////////////////////////////////////////////
//ketika buttonkanan di klik maka akan menjalankan void belok_kanan
buttonkanan.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
try
{
belok_kanan();
}
catch (Exception e)
{
// TODO: handle exception
}
}
});
//ketika buttonkiri di klik maka akan menjalankan void belok_kiri
buttonkiri.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
try
{
belok_kiri();
}
catch (Exception e)
{
// TODO: handle exception
}
}
});
//ketika buttonstop di klik maka akan menjalankan void stop
buttonstop.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
try
{
stop();
}
catch (Exception e)
{
// TODO: handle exception
}
}
});
//ketika buttonmudur di klik maka akan menjalankan void mundur
buttonmundur.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
try
{
mundur();
}
catch (Exception e)
{
// TODO: handle exception
}
}
});
//ketika buttonmaju di klik maka akan menjalankan void maju
buttonmaju.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
try
{
maju();
}
catch (Exception e)
{
// TODO: handle exception
}
}
});
/////////////////////////////////////////////////////////////////////////////////////
//Close button, tombol untuk menghentikan hubungan antara aplikasi dengan modul bluetooth (HC-05)
buttonclose.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
try
{
closeBT();
}
catch (IOException ex) { }
}
});
}
//////////////////////////////////////////////////////////////////////////////////////
//perintah untuk mencari nama modul bluetooth (HC-05) yang sudah di pair dengan device
void findBT()
{
Set <BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
if(pairedDevices.size() > 0)
{
for(BluetoothDevice device : pairedDevices)
{
if(device.getName().equals("HC-05")) //this name have to be replaced with your bluetooth device
name
{
mmDevice = device;
Log.v("ArduinoBT", "findBT found device named " + mmDevice.getName());
Log.v("ArduinoBT", "device address is " + mmDevice.getAddress());
break;
}
}
}
myLabel.setText("Bluetooth Ditemukan = (HC-05)");
}
///////////////////////////////////////////////////////////////////////////////////////////////
//perintah untuk membuka hubungan antara device dengan modul bluetooth untuk mrngirim dan
menerima data
void openBT() throws IOException
{
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
// menggunakan Standar SerialPortService ID
mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);
mmSocket.connect();
mmOutputStream = mmSocket.getOutputStream();
mmInputStream = mmSocket.getInputStream();
beginListenForData();
myLabel.setText("Bluetooth Tersambung");
}
/////////////////////////////////////////////////////////////////////////////////////////////////
void beginListenForData()
{
final Handler handler = new Handler();
final byte delimiter = 10; //This is the ASCII code for a newline character
stopWorker = false;
readBufferPosition = 0;
readBuffer = new byte[1024];
workerThread = new Thread(new Runnable()
{
public void run()
{
while(!Thread.currentThread().isInterrupted() && !stopWorker)
{
try
{
int bytesAvailable = mmInputStream.available();
if(bytesAvailable > 0)
{
byte[ ] packetBytes = new byte[bytesAvailable];
mmInputStream.read(packetBytes);
for(int i=0;i<bytesAvailable;i++)
{
byte b = packetBytes[i];
if(b == delimiter)
{
byte[] encodedBytes = new byte[readBufferPosition];
System.arraycopy(readBuffer, 0, encodedBytes, 0, encodedBytes.length);
final String data = new String(encodedBytes, "US-ASCII");
readBufferPosition = 0;
handler.post(new Runnable()
{
public void run()
{
myLabel.setText(data);
}
});
}
else
{
readBuffer[readBufferPosition++] = b;
}
}
}
}
catch (IOException ex)
{
stopWorker = true;
}
}
}
});
workerThread.start();
}
void sendData() throws IOException
{
String msg = myTextbox.getText().toString();
msg += "";
myLabel.setText("Data Sent"+msg);
}
//////////////////////////////////////////////////////////////////////////////////////
//void perintah untuk arah robot
void belok_kanan() throws IOException
{
mmOutputStream.write("1".getBytes()); //mengirim data "1" ke arduino
}
void belok_kiri() throws IOException
{
mmOutputStream.write("2".getBytes()); //mengirim data "2" ke arduino
}
void stop() throws IOException
{
mmOutputStream.write("3".getBytes()); //mengirim data "3" ke arduino
}
void mundur() throws IOException
{
mmOutputStream.write("4".getBytes()); //mengirim data "4" ke arduino
}
void maju() throws IOException
{
mmOutputStream.write("5".getBytes()); //mengirim data "5" ke arduino
}
///////////////////////////////////////////////////////////////////////////////////////////
//void perintah untuk menghentikan koneksi dengan modul bluetooth
void closeBT() throws IOException
{
stopWorker = true;
mmOutputStream.close();
mmInputStream.close();
mmSocket.close();
myLabel.setText("Bluetooth Terputus");
}
}
PENGONTROLAN ROBOT BERBASIS ARDUINO MENGGUNAKAN
ANDROID
Julpri Andika
41409010009
Program studi Teknik Elektro, Fakultas Teknik
Universitas Mercu Buana Jakarta
Jl. Meruya Selatan, Kebun Jeruk – Jakarta Barat
Telepon: 021-5857722 (hunting), 5840816 ext. 2600 Fax: 021-5857733
ABSTRAK
Perkembangan teknologi saat sekarang ini memiliki peranan yang sangat penting dalam
kemajuaan kehidupan manusia. Banyak peralatan dibuat yang fungsinya mempermudah suatu
pekerjaan menjadi lebih efisien dan cepat. Salah satunya adalah pengontrolan alat jarak jauh (±10 m).
Untuk itu akan dibuat alat pengontrolan robot berbasis arduino menggunakan Android. Dalam
bahasa pemograman Arduino akan digunakan bahasa C, karena lebih mudah dipelajari dan mempunyai
struktur bahasa tingkat tinggi yang lebih mudah dipahami. Sedangkan untuk pemrograman Android
akan digunakan aplikasi Java Eclipse. Penghubung komunikasi antara robot Arduino dengan Android
digunakan modul Bluetooth yang terlebih dahulu di-pairing dengan Bluetooth Android. Robot ini akan
dikontrol dengan tombol-tombol yang ada di Android untuk bergerak maju, mundur, berbelok kanan,
kiri dan berhenti.
Dari hasil pengujian yang telah dilakukan dapat disimpulkan bahwa robot mobil ini dapat
berjalan dengan baik pada saat bergerak maju, mundur, belok kanan, belok kiri, serta berhenti. Robot
ini bergerak sesuai dengan perintah yang diberikan. Pada ruang terbuka robot ini dapat dikontrol
hingga jarak sejauh 80 langkah kaki.
Kata kunci: Teknologi, pengontrolan, robot, Arduino, bahasa C, Android, Java Eclipse, Bluetooth.
suatu pekerjaan menjadi lebih efisien dan cepat.
I. PENDAHULUAN
Mungkin
1.1 Latar Belakang
banyak
yang
berpikir
bahwa
dibutuhkan keahlian yang sangat tinggi untuk
Perkembangan teknologi saat sekarang
dapat mendesain, merancang, dan membuat
ini memiliki peranan yang sangat penting dalam
suatu proyek, khususnya elektronika. Membuat
kemajuaan
Banyak
proyek elektronika dapat dimulai dari tingkat
peralatan dibuat yang fungsinya mempermudah
dasar dengan cara yang cukup sederhana dan
kehidupan
manusia.
Halaman 1
mudah untuk diaplikasikan dalam pembuatan
android?
suatu peralatan. Untuk itu dibutuhkan suatu
2. Bagaimanakah cara kerja Android dan
perancangan
Bluetooth module ketika dihubungkan dengan
untuk
membuat
proyek
Arduino?
elektronika.
Pada Tugas Akhir ini akan dibuat alat
pengontrolan
robot
berbasis
menggunakan
Android.
arduino
Dalam
bahasa
pemograman Arduino akan digunakan bahasa
C, karena lebih mudah dipelajari karena
mempunyai struktur bahasa tingkat tinggi yang
lebih mudah dipahami. Sedangkan untuk
pemrograman Android akan digunakan aplikasi
Java Eclipse. Penghubung komunikasi antara
robot Arduino dengan Android digunakan
modul Bluetooth yang terlebih dahulu dipairing dengan Bluetooth Android. Robot ini
akan dikontrol dengan tombol-tombol yang ada
di Android untuk bergerak maju, mundur,
berbelok kanan, kiri dan berhenti.
Oleh karena itu, proses perancangan ini
akan dibuat untuk menghindari kesalahankesalahan dalam pembuatan robot. Robot yang
akan dibuat akan berguna dalam proses
pengontrolan
gerak
alat.
Dalam
proses
pembuatan robot akan dilakukan pengujianpengujian pada sistem yang mendukung.
II.
LANDASAN TEORI
2.1 Robot
Robot adalah sebuah alat mekanik yang
dapat melakukan tugas fisik, baik menggunakan
pengawasan dan kontrol manusia, ataupun
menggunakan program yang telah didefinisikan
terlebih dulu (kecerdasan buatan). Istilah robot
berawal bahasa Cheko “robota” yang berarti
pekerja atau kuli yang tidak mengenal lelah
atau bosan. Robot biasanya digunakan untuk
tugas yang berat, berbahaya, pekerjaan yang
berulang dan kotor. Biasanya kebanyakan robot
industri digunakan dalam bidang produksi.
Penggunaan robot lainnya termasuk untuk
pembersihan limbah beracun, penjelajahan
bawah air dan luar angkasa, pertambangan,
pekerjaan "cari dan tolong" (search and
rescue),
dan
untuk
pencarian
tambang.
Belakangan ini robot mulai memasuki pasaran
konsumen di bidang hiburan, dan alat pembantu
rumah tangga, seperti penyedot debu, dan
pemotong rumput.
1.2 Rumusan Masalah Penelitian
Berdasarkan latar belakang di atas,
maka ditentukan permasalahan sebagai berikut:
1. Bagaimanakah
menghubungkan
2.2 Bluetooth
antara
Awal mula dari Bluetooth adalah sebagai
robot, Arduino, dan Bluetooth module dengan
teknologi komunikasi wireless (tanpa kabel)
Halaman 2
yang beroperasi dalam pita frekuensi 2,4 GHz
unlicensed ISM (Industrial, Scientific and
Medical)
dengan
menggunakan
sebuah
frequency hopping tranceiver yang mampu
menyediakan layanan komunikasi data dan
suara
secara
real-time
antara
host-host
bluetooth dengan jarak jangkauan layanan yang
terbatas (sekitar 10 meter). Bluetooth berupa
card yang menggunakan frekuensi radio standar
Tegangan Operasi : 5 V
Tegangan Input (limit) : 6 - 20 V
PWM )
Arus DC per pin I/O : 40 mA
rendah dari card untuk Wireless Local Area
Network (WLAN).
Pin digital I/O : 14 ( 6 diantaranya pin
Pin analog input : 6
Arus DC untuk pin 3.3 V : 150 mA
digunakan untuk bootloader
EEPROM : 1 KB
IEEE 802.11 dengan jarak layanan yang
terbatas dan kemampuan data transfer lebih
Tegangan Input (recommended) : 7 - 12 V
Flash Memory : 32 KB dengan 0.5 KB
SRAM : 2 KB
Kecepatan Pewaktu : 16 MHz
2.3 Arduino
Arduino adalah kit elektronik atau
2.4 Motor DC
papan rangkaian elektronik open source yang di
Motor DC adalah motor listrik yang
dalamnya terdapat komponen utama yaitu
memerlukan suplai tegangan arus searah pada
sebuah chip mikrokontroler dengan jenis AVR
kumparan medan untuk diubah menjadi energi
dari perusahaan Atmel. Mikrokontroler itu
gerak mekanik. Kumparan medan pada motor
sendiri adalah chip atau IC (integrated Circuit)
dc disebut stator (bagian yang tidak berputar)
yang bisa diprogram menggunakan komputer.
dan kumparan jangkar disebut rotor (bagian
Tujuan
yang berputar).
menanamkan
program
pada
rangkaian
Motor DC berfungsi untuk mengubah
elektronik dapat membaca input, proses, dan
tenaga listrik arus searah menjadi tenaga gerak.
output sebuah rangkaian elektronik.
Tenaga gerak tersebut berupa putaran dari
mikrokontroler
adalah
agar
Arduino
rotor. Jadi motor DC menerima arus DC dari
adalah mikrokontroler, maka Arduino pun
jala-jala dirubah menjadi energi mekanik
dapat diprogram menggunakan komputer sesuai
berupa putaran yang nantinya akan dipakai oleh
dengan kebutuhan kita. Adapun data teknis
peralatan lain.
Karena
komponen
utama
board Arduino UNO sebagai berikut :
Mikrokontroler : Arduino UNO
Halaman 3
III. PERANCANGAN
2.5 Driver Motor (Motor Shield)
Ada beberapa macam driver motor DC yang
3.1 Blok Diagram Rangkaian
Untuk merealisasikan robot yang akan
biasa dipakai seperti menggunakan relay yang
diaktifkan dengan transistor sebagai saklar,
diuji,
namun yang demikian dianggap tidak efisien
rangkaian simulasi robot berbasis Arduino yang
dan terlalu ribet “repot” dalam pengerjaan
dikontrol
hardware-nya. Dengan berkembangnya dunia
komunikasi
IC, sekarang sudah ada H Bridge yang dikemas
gambar 3.1.
dalam satu IC yang memudahkan dalam
maka
secara
sistem
oleh
Android
via
Bluetooth
keseluruhan
menggunakan
adalah
seperti
Android
pelaksanaan hardware dan kendalinya apalagi
Baterai 12V
Bluetooth
jika menggunakan mikrokontroler maka akan
terrasa lebih mudah lagi dalam penggunaannya.
Modul
Bluetooth
IC yang familiar seperti IC L298. IC ini
memiliki kelebihan dan kekurangan masingMotor
DC
masing. Modul yang menggunakan IC driver
L298
yang
memiliki
kemampuan
Driver
Motor
Shield
L 298
Motor
DC
menggerakkan motor DC sampai arus 4A
Arduino
UNO
dengan tegangan maksimum 46 VDC untuk
satu kanalnya.
Gambar 3.1 Diagram Blok Rangkaian Kontrol
2.6 Android
Bluetooth
Android adalah sistem operasi bergerak
(mobile operating system) yang mengadopsi
sistem
operasi
Linux,
namun
telah
dimodifikasi. Android diambil alih oleh Google
3.2 Perancangan
Perangkat
Keras
(Hardware)
Perancangan
mekanik
robot
dibuat
pada tahun 2005 dari Android, Inc sebagai
sedemikian rupa agar mendukung kemampuan
bagian strategi untuk mengisi pasar sistem
robot dalam bergerak pada arena. Hampir
operasi bergerak. Google mengambil alih
semua material robot menggunakan akrilik dan
seluruh hasil kerja Android termasuk tim yang
alumunium.
Konstruksi
mengembangkan Android.
menggunakan
alumunium
bagian
atas
robot
dasar
dan
robot
konstruksi
menggunakan
akrilik.
Penggunaan akrilik dan alumunium dipilih
Halaman 4
karena bahan tersebut relatif mudah dibentuk
3.3 Perancangan Perangkat Lunak
dan ringan.
3.3.1 Arduino IDE
Perancangan bentuk robot yang akan
dibuat adalah berbentuk bulat dengan diameter
Untuk
Memprogram
Arduino
menggunakan aplikasi Arduino IDE.
12 cm, 2 buah alas, 4 buah tiang penyangga,
dan 3 buah roda yang digambarkan pada
gambar 3.2.
Gambar 3.2 Tampak Depan Robot
3.2.1 Modul Bluetooth
Rangkaian bluetooth ini berfungsi untuk
mengintegrasikan Android dengan Arduino
Gambar 3.4 Listing Program Arduino
3.3.2 Eclipse
Untuk
Aplikasi
Android
diprogram
menggunakan Eclipse.
UNO. Dalam melakukan koneksi antara modul
Bluetooth dan Arduino UNO dibutuhkan kabel
jumper sebagai penghubung seperti gambar 3.3.
Gambar 3.5 Coding Untuk Main.xml
Gambar 3.3 Rangkaian Modul Bluetooth HC-05
Halaman 5
IV. PENGUJIAN DAN ANALISA
Setelah proses perancangan selesai, maka
dalam bab ini akan diungkapkan dan diuraikan
mengenai persiapan komponen dan peralatan
yang
dipergunakan,
serta
langkah-langkah
praktek, kemudian menyiapkan data hasil
pengujian.
Gambar 3.6 Coding Controlactivity.java
Pelaksanaan
pendataan
menggunakan sebuah rangkaian dan dilakukan
secara berulang-ulang supaya dihasilkan data
yang benar-benar tepat. Sebelum melakukan
pendataan, terlebih dahulu mempelajari alat
tersebut
kemudian
menentukan
titik
pengukuran.
Gambar 3.7 Coding Androidmanifest.xml
Tampilan
program
android
untuk
pengontrolannya adalah sebagai berikut.
Gambar 4.1 Robot Mobil Hasil Perancangan
Tujuan dari pengujian sistem secara
keseluruhan
bagaimana
adalah
cara
untuk
robot
mengetahui
bergerak
dan
berkomunikasi sesuai dengan pengontrolan
yang dilakukan oleh user. Pengujian dilakukan
dengan mencoba tombol yang ada pada aplikasi
control yang sudah ter-install pada Android.
3.8 Tampilan Pada Android
Halaman 6
Setiap pengujian dilakukan step by step yaitu
Burd, Barry. 2004. Eclipse For Dummies.
United States: For Dummies.
maju, mundur, kanan, kiri, dan berhenti.
Derus, M.Oki, 2012. “Pengontrolan Robot
V.
5.1
Dengan Menggunakan Stik PS2 Wireless,
KESIMPULAN DAN SARAN
Kesimpulan
Receiver, Dan Arduino UNO”, Jurnal
Kesimpulan yang dapat diambil dari hasil
Teknik Elektro Universitas Mercu Buana.
DiMarzio,
pengujian adalah sebagai berikut :
Jerome.
2008.
Android:
A
1. Robot mobil berbasis Arduino ini dapat
Programmer’s Guide. United States: MC-
berjalan dengan baik dan bergerak maju,
Graw Hill.
mundur, belok kanan, belok kiri dan berhenti.
2. Pengontrolan
menggunakan
robot
Android
dilakukan
dan
robot
McRoberts, Mike. 2010. Arduino Starter Kit
dengan
Manual.
dapat
Design.
United
States:
Earthshine
Purdum, Jack. 2012. Beginning C For Arduino.
bergerak sesuai dengan perintah.
3. Komunikasi antara Android dengan Arduino
menggunakan komunikasi via Bluetooth, pada
United States: Apress.
Stallings, William. 2009. Komunikasi dan
pengujian robot ini dapat dikontrol hingga jarak
Jaringan
80 langkah pada ruang terbuka.
Erlangga.
Nirkabel
Jilid
2.
Jakarta:
Suprianti, Dodit., dan Agustina, Rini. 2012.
5.2
Saran
Pemrograman Aplikasi Android. Jakarta:
Robot mobil ini merupakan dasar dari
MediaKom.
pengontrolan mobil robot via Bluetooth melalui
Suyadhi, Taufiq Dwi Septian. 2011. Buku
Android, untuk itu, diperlukan saran-saran atau
Pintar Robotika: Bagaimana Merancang
tambahan ide-ide yang dapat membangun,
Dan Membuat Robot Sendiri. Jakarta:
mengembangkan, dan membuat robot mobil ini
Andi
lebih
sempurna
dan
berguna
lagi
pengaplikasiannya.
Syahid, 2012. “Rancang Bangun Robot Beroda
Berbasis
Android
Menggunakan
Komunikasi USB”, Jurnal Teknik Elektro
DAFTAR PUSTAKA
Budiarto, Widodo. 2005. Perancangan Sistem
Politeknik Negri Semarang, Vol. 1: 3342.
dan Aplikasi Mikrokontroller. Jakarta:
PT. Elex Media Computindo.
Halaman 7