Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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
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 Device Found"); } /////////////////////////////////////////////////////////////////////////////////////////////// //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 Opened"); } ///////////////////////////////////////////////////////////////////////////////////////////////// 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 belok_kanan() throws IOException { mmOutputStream.write("1".getBytes()); } void belok_kiri() throws IOException { mmOutputStream.write("2".getBytes()); } void stop() throws IOException { mmOutputStream.write("3".getBytes()); } void mundur() throws IOException { mmOutputStream.write("4".getBytes()); } void maju() throws IOException { mmOutputStream.write("5".getBytes()); } /////////////////////////////////////////////////////////////////////////////////////////// void closeBT() throws IOException { stopWorker = true; mmOutputStream.close(); mmInputStream.close(); mmSocket.close(); myLabel.setText("Bluetooth Closed"); } }