BAB IV KONSTRUKSI DAN PENGUJIAN 4.1 Konstruksi Dalam penulisan konstruksi meliputi penjelasan penginputan kode arduino Pada proses penginputan dilakukann dengan menghubungkan PC dengan Konttroller Arduino menggunakan kabel USB, Gambar 4.1 Tampilan PC dan Penulisan kode berbasis bahasa C yaitu dengan aplikasi programming Arduino 1.0.6 yang dapat diunduh melalui http://arduino.cc/en/main/software dalam pengerjaanya ternyata penulis banyak membutuhkan library tambahan yang berguna untuk melengkapi fungi untuk membaca dan memerintahkan arduino controller. 4.1.1 Kode Pemrograman Bluetooth Kode ini berfungsi untuk memprogram modul Bluetooth HC-05 agar dapat melakukan setup komunikasi internal dengan menghubungkan arduino menggunakan USB kabel dengan PC Kode 4.1 Deklarasi Internal Serial #include <SoftwareSerial.h> SoftwareSerial BTSerial(10, 11); Baris pertama, adalah deklarasi library untuk dapat menggunakan fitur internal serial pada PIN UART Arduino dan baris ke-dua adalah deklarasi nomor PIN yang akan digunakan sebagai internal serial port, yaitu nomor 10 dan 11, karena sudah dideklarasikan sebagai SoftwareSerial, maka secara otomatis pin 10 30
31 sebagai RXD dan pin 11 sebagai TXD, tanpa harus diset pin OUTPUT atau INPUT. Kode 4.2 Setup Internal Serial void setup() { pinmode(12, OUTPUT); digitalwrite(12, HIGH); Serial.begin(9600); Serial.println(.:HC-05 CMD Mode:. ); Serial.println( Masukkan AT Command: ); BTSerial.begin(38400); } Adapun yang diset untuk bagian setup daintaranya pin 12 sebagai KEY untuk trigger-switching modul Bluetooth antara normal dan CMD mode, kemudian setting baud rate untuk Serial (USB) dan Serial Bluetooth (internet serial) Kode 4.3 Loop Internal Serial Void loop() { If (BTSerial.available()) Serial.write(BTSerial.read()); If (Serial.available()) BTSerial.write(Serial.read()); } if yang pertama adalah memerintahkan USB membaca data yang dikirimkan oleh internal serial dari Bluetooth agar dapat terbaca oleh programmer melalui serial monitor, begitu juga sebaliknya if yang kedua adalah memerintahkan internal serial membaca data yang dikirimkan oleh USB (kode yang programmer eksekusi) agar dapat dijalankan oleh Bluetooth.
32 4.1.2 AT Command Adalah rangkaian setting parameter pada Bluetooth Penerima, agar dapat berkomunikasi dengan Bluetooth pada Pengirim, setting parameter ini dapat dilakukan pada saat Bluetooth dalam mode CMD saja dan tidak dapat dilakukan bila Bluetooth dalam mode normal, sehingga perlu dilakukan beberapa langkah untuk mengaktifkan mode CMD Bluetooth Adapun untuk parameter Bluetooth HC-05 yang perlu disetting untuk Penerima adalah. Nama Bluetooth Kode 4.4 Cek Nama Bluetooth Kemudian untuk mengecek apakah Nama Bluetooth sudah SLAVE dengan cara mengetikkan at+name (Enter) Digunakan sebagai identitas dari Modul Bluetooth dalam jaringan wireless dengan cara mengetikkan at+name =(SLAVE) (Enter) Kode 4.5 Nama Bluetooth Setting Fungsi Bluetooth Karena digunakan pada Penerima, sebagai penerima pesan, maka Bluetooth diset sebagai slave, dengan cara mengetikkan at+role=1 (Enter)
33 Kode 4.6 Cek Fungsi Bluetooth 0 = Slave 1 = Master 2 = Slave-Loop Konfigurasi UART (Universal Asynchronous Receive Transmit) Digunakan untuk mengecek UART yang berfungsi sebagai penerjemah komunikasi data, dengan perintah AT+UART (Enter). Kode 4.7 Cek UART UART (Universal Asynchronous Receive Transmit) adalah bagian dari sebuah perangkat keras yang menerjemahkan komunikasi data antara bit-bit paralel dan bit-bit serial, diantaranya adalah, Baudrate, Stop bit, Parity. UART meiliki 3 item setting berurutan yaitu : Parameter ke-1 : baudrate (min. 4800 maks. 1382400) Parameter ke-2 : stop bit( 0 =1 bit ; 1=2 bit) Parameter ke-3 : parity( 0=none ; 1=odd ; 2=even ) Ketik at+uart=9600,0,0 (Enter)
34 Kode 4.8 Konfigurasi UART Setting Pairing Bluetooth Setting pairing Bluetooth ini, dilakukan dengan 2 langkah yaitu, 1. Cek alamat Fisik Bluetooth Dilakukan dengan mengetik at+addr (Enter) Kode 4.9 Cek Alamat Hardware Bluetooth Catat alamat fisik Bluetooth Penerima yaitu : 3014:6:161350, Lakukan cek yang sama pada Pengirim dan simpan alamatnya. 2. Set binding (pemasangan) alamat Bluetooth Penerima dengan Pengirim, dilakukan dengan mengetik at+bind=(alamat Bluetooth Pengirim) (Enter) at+bind=3014:6:160452, (Enter) Kode 4.10 Pemasangan Bluetooth Penerima Cek dengan mengetik at+bind (Enter)
35 Kode 4.11 Cek Pemasangan Bluetooth Penerima Set keamanan dan auto-connect agar Bluetooth hanya terhubung kepada perangkat yang sudah disetting, 1. Set INQM (Inquiry Access Mode) Parameter ini digunakan untuk membatasi jumlah perangkat yang dapat terhubung oleh Bluetooth Transmitter. MEmiliki 3 parameter yaitu : Parameter ke-1 : Mode akses scan Bluetooth (0=mode standar ; 1=mode rssi) Parameter ke-2 : Maks. perangkat yang diijinkan terhubung Parameter ke-3 : Batas waktu scan Bluetooth (min. 1 maks. 48) Ketik at+inqm=1,1,48 Kode 4.12 Inquiry Mode Cek dengan mengetik at+inqm Kode 4.13 Cek Inquiry Mode Terdapat 3 mode pada parameter ini yaitu : 0 = Terhubung ke Bluetooth yang telah disimpan pada parameter BIND
36 1 = Terhubung ke Bluetooth manapun 2 = Slave Loop Ketik at+cmode=0 Kode 4.14 Set Mode Koneksi Cek dengan mengetikkan at+cmode Kode 4.15 Konfigurasi Mode Koneksi 4.1.3 Kode Utama Kode 4.16 Deklarasi Library Diatas adalah kode deklarasi library untuk SD Card, dan fungsi pemutar audio.guna untuk membaca dan menyimpan data dalam memori sementara Arduino Uno melalui (PIN 8) Kode 4.17 Deklarasi PIN Modul 2A Motor Shield
37 Deklarasi untuk menentukan PIN dari Arduino Uno yang akan digunakan untuk mengontrol secara digital Modul 2A Motor Shield, dimana penomoran PIN (4,5,6,7) ini sudah distandarkan oleh Arduino, sebagai PIN Input- Output (IO) PWM (Pulse Width Modulation) unsceluhutuk mengendalikan motor. Keempat PIN ini dipasangkan menjadi 2 pasang yaitu, M1, E1 serta E2, M2 dimana kode E adalah untuk memberikan nilai kecepatan putaran motor dan M adalah untuk mengatur arah putaran motor. Kode 4.18 Deklarasi pada modul Bluetooth Diatas adalah kode deklarasi internal serial untuk komunikasi Bluetooth dengan Arduino 4.19. Deklarasi Motor1
38 Pada variabel fungsi Motor1, dideklarasikan PWM sebagai integer nilai kecepatan yang diinginkan dengan nilai minimal adalah 0 (stop) dan maksimal 255, serta deklarasi Boolean dengan status default reverse. Boolean ini berfungsi sebagai pengatur arah putaran motor. Pada bagian badan fungsi Motor1, analogwrite (E2, pwm) merupakan nilai kecepatan motor yang dikehendaki, sebagaimana disebutkan diatas bahwa E adalah variabel nilai kecepatan putaran motor yang dalam kondisi sebenarnya nilai E diberikan kepada PWM yang mengirimkan signal berupa besaran voltage DC ke terminal output motor. Kemudian dibagian berikutnya terdapat percabangan if yang menyatakan arah putaran motor apabila reverse adalah true, maka M2 berstatus HIGH yang artinya adalah on/benar, sehingga perintah dikirimkan juga ke terminal output dengan polaritas positif-negatif yang terbalik. Begitu sebaliknya pada else yang artinya adalah false atau selain reverse yaitu forward (maju), maka M2 berstatus LOW (off), sehingga perintah dikirimkan ke terminaloutput dengan polaritas positif-negatif sesuai dengan besaran kecepatan sama dengan nilai yang diberikan kepada E2. Kode 4.20 Deklarasi Motor2 Secara pendefinisian memiliki fungsi yang sama seperti pada Fungsi Motor 1, hanya saja berbeda pada variabel yang digunakan.
39 Kode 4.21 Deklarasi Setup Kode diatas adalah setup kode yang akan dieksekusi sebelum kode loopd ijalankan. Terdiri dari pendefinisian PIN untuk 2A Motor Shield (4-7) ke dalamvariabel i, yang kemudian diset sebagai OUTPUT, dilanjutkan dengan mendefinisikan Baudrate untuk Komunikasi USB Serial (Serial.begin) Kode 4.22 Modul internal Bluetooth Komunikasi Internal Bluetooth Serial (BTSerial.begin). Melakukan pengecekan ada atau tidak SD Card sehingga dapat dinisialisasi, kemudian penghapusan data record.wav jika ada didalam SD Card ketika kita ingin melakukan perekaman pesan suara.
Kode 4.23 Prosedur Looping 40
41 Kode diatas adalah kode yang akan dieksekusi secara terus menerus oleh Arduino. Sejumlah perintah loop yang dilakukan oleh Arduino yaitu : Deklarasi long durasi dan cm untuk satuan pengukuran jarak sensor ultrasonik (HC-SR04). Pendefinisian membaca pesan suara dari SD Card, SD Card akan membuka hasil kiriman rekam pesan suara dengan format record.wav. Dan serta fungsi Tmrpcm menggunakan konversi DAC dan memainkan format wav dan dioutput oleh robot penerima. Urutan mode TriggerPin yang dilakukan secara bergantian dengan memanfaatkan delay dalam mikro detik untuk mengirimkan signal kepada sensor ultrasonik dan mode EchoPin digunakan untuk menerima signal dari ultrasonik. Pembacaan dan kalkulasi data yang diterima pada EchoPin karena adanya benda atau penghalang dituliskan dengan satuan Centimeter (cm) dengan menggunakan fungsi microsecondstocentimeters. Terdapat percabangan (if) dengan syarat ditentukan sesuai interaksi robot dan jarak yang dibaca oleh sensor ultrasonik (cm) Percabangan pertama, bila jarak benda didepan kurang dari 15 cm maka motor akan berhenti dengan delay. Percabangan ke-dua, bila jarak benda didepan kurang dari 15 dan motor telah berhenti, maka BTSerial akan mencari keberadaan bluetooth Penerima, kemudian kemudian data file diterima dengan membaca data file yang di simpan di dalam SD Card memberikan nilai pada state. state akan membaca data file dari BTSerial, data file akan diterima oleh bluetooth Penerima dari bluetooth Pengirim. Setelah data file terkirim dengan memanfaatkan delay, motor akan berputar 180 o searah jarum jam (hadap kanan) dan berjalan lurus
42 kedepan. Percabangan ke-tiga, bila setelah robot berputar 180o dan berjalan lurus, robot akan kembali ke posisi awal robot dengan membaca jarak benda didepan kurang dari 15 cm maka motor akan berhenti. Else, berfungsi untuk motor bergerak lurus ke depan pada saat pertama Pengirim di nyalakan. Jadi, pada percabangan ini lah yang akan dibaca terlebih dulu. Sehingga dapat dikatakan sebagai kondisi default bilamana seluruh percabangan tadi tidak terpenuhi syaratnya. Kode 4.24 Fungsi konversi waktu(durasi) ke jarak Sensor Fungsi diatas adalah konversi dari hasil waktu tempuh antara signal dikirim dari sensor ultrasonik, hingga signal kembali diterima oleh sensor. Berdasarkan pada perhitungan cepat rambat suara (ultrasonik) pada udara yaitu 340 m/s atau bila dikonversi ke dalam satuan detik/cm didapatkan hasil 29 mikrodetik per centimeter, maka hasil tersebut dibagi 2 untuk mendapatkan jarak penghalang dengan Receiver 4.2 Pengujian Pengujian yang dilakukan adalah dengan menguji langsung itu sendiri, apakah sudah sesuai fungsi dan kerjanya dengan apa yang direncanakan pada Skenario Pengujian, Bab III sub bab 3.3 Pengujian Pertama Pada pengujian pertama melakukan perekaman pesan suara yang kemudian dapat disimpan pada Micro SD Card. Dimulai dengan mengupload sourcecode ke Modul Arduino Uno untuk dapat menggunakan Modul Sensor Suara dan Modul Micro SD Card Adapter. kemudian selesai di upload. Penulis menghidupkan Power
43 Pengirim kemudian mencoba melakukan perekaman pesan suara dengan menggunakan microphone pada sensor suara. Terdapat lampu indikator yang akan menyala apabila gelombang suara sesuai sebaliknya lampu indikator tidak akan menyala atau redup. Jika gelombang suara sesuai sensor suara akan merubah gelombang suara menjadi gelombang digital dengan menggunakan Teknologi Analog to Digital Converter, setelah di konversi akan mendapatkan nilai baru. Untuk samples harus kurang dari 100000, karena apabila samples kurang yang didapat hanya berbentuk tone. Penulis sudah melakukan pengujian dengan merubah samples menjadi 8000, 16000, 22000, 44000, dan 88000 kemudian suara yang dihasilkan hanya berbentuk tone. Dengan samples 100000 ini SD Card akan menulis dengan format record.wav ukuran 98 KB, apabila samples lebih dari 100000 ukuran juga semakin besar sehingga akan membutuhkan waktu pengiriman. Frekuensi Sampling Rate yang digunakan adalah 44,1 KHz seperti Compact Disc Audio (CDA) yang berati lagu yang disimpan dicuplik sebanyak 44100 kali dalam satu detik untuk memastikan kualitas suara yang hampir sama persis dengan aslinya, oleh karena itu pada perekaman pesan suara menggunakan Sampling Rate 44,1 KHz. Pengujian ke-dua Pada pengujian ke-dua melakukan penggabungan motor dan sensor ultrasonik. Motor harus dikonfigurasi sesuai interaksi jalan robot dan skema komunikasi robot dengan memanfaatkan sensor ultrasonik. Dimulai dengan mengupload sourcecode ke Modul Arduino Uno untuk dapat menggunakan Modul 2A Motor Shield, Gear motor dan Sensor Ultrasonik HC-SR04. kemudian selesai di upload. Penulis mencoba menghidupkan Power Pengirim, kemudian robot berjalan lurus kedepan dan sensor ultrasonik membaca jarak Penerima kurang dari 15 cm, robot akan berhenti dengan jeda waktu yaitu 10 detik. Pengirim berputar 180o searah jarum jam dan berjalan lurus kedepan kemudian sensor ultrasonik membaca kembali jarak dari benda atau
44 penghalang kurang dari 15 cm, robot akan berhenti artinya Pengirim akan kembali ke posisi awal. Pengujian ke-tiga Pada pengujian ke-tiga melakukan percobaan pengiriman dari Pengirim ke Penerima. Dimulai dengan mengupload sourcecode pada Pengirim ke Arduino untuk dapat menggunakan Modul Micro SD Card Adapter dan Modul Bluetooth CZ-HC-05, setelah selesai diupload lepaskan koneksi kabel USB pada Arduino Uno. Pada Penerima tidak ada yang berbeda hanya setelah selesai diupload jangan lepaskan koneksi kabel USB pada Arduino Uno karena akan digunakan untuk mengecek data yang masuk pada SD Card. Power Pengirim dihidupkan, akan mencari bluetooth Penerima setelah ditemukan, ke-dua robot akan membangun koneksi. Pengirim akan membaca data file pesan suara dari Micro SD dengan format record.wav kemudian BTSerial akan menulis dan memerintahkan agar mengirimkan data file tersebut ke Penerima. Total data file pesan suara adalah 98 KB dengan samples 100000 apabila data file pesan dengan samples lebih dari 100000 ukuran pesan suara lebih dari 98 KB artinya membutuhkan waktu yang relatif lebih lama dalam pengiriman ke Penerima. Pengujian dilakukan dengan mengirimkan data file dalam waktu 1 menit 30 detik, data file yang diterima oleh Penerima kurang dari 98 KB yaitu 93 KB, pengujian ke-dua dengan mengirimkan data file dalam waktu 2 menit 50 detik, data file yang diterima yaitu 119 KB. Kemudian hasil pesan suara di putar oleh Penerima kemudian pesan suara ternyata hanya bunyi suara tone tetttttttt pada data file pengujian pertama dan ke-dua. Pengujian dilakukan kembali dengan mengirim file.txt ke Penerima tetapi data file yang didapat tidak sesuai dan tidak dapat buka. Tetapi apabila Micro SD pada Pengirim yang terdapat pesan suara dicopot kemudian dipasangkan pada slot Micro SD Penerima,
45 setelah itu di upload sourcecode untuk memutar isi pesan suara, terdapat hasil pesan suara. Pengujian ke-empat Pada pengujian ke-empat dengan menggabungkan seluruh Modul menjadi sesuai dengan perencanaan dan perancangan Pengirim. Dimulai dengan mengupload sourcecode pada Pengirim ke Arduino Uno untuk dapat menggunakan seluruh fungsi Modul, setelah selesai di upload. Penulis menghidupkan tombol power, melakukan perekaman suara. Pengirim diletakkan dengan delay, kemudian robot bergerak lurus kedepan dan sensor ultrasonik mendeteksi keberadaan Penerima, bluetooth Pengirim mencari bluetooth Penerima jika terdeteksi ke-dua robot akan membangun koneksi dan disambungkan. Jika jarak Penerima kurang dari 15 cm, Pengirim akan berhenti dengan delay kemudian akan mengirim kan data file pesan suara yang telah di simpan pada Micro SD, setelah selesai mengirim dengan batas waktu delay, ke-dua robot akan berputar 180 o dan bergerak lurus ke depan serta menggunakan sensor ultrasonik yang berfungsi untuk mendeteksi jarang penghalang saat robot kembali, jika jarak robot kurang dari 15 cm robot akan berhenti bergerak dan di posisi awal robot. Table 4.2 Hasil Pengujian Pengirim No. Hal yang diuji Cara Pengujian Sifat Pengujian 1. Meletakkan Keakuratan penghalang Sensor (Jarak di depan benda / penghalang dengan jarak yang ada di Lebih Dari depan robot) 15cm Hasil berjalan maju Ket.
46 Meletakkan penghalang di depan berhenti dengan jarak Kurang Dari 15cm 2. Setelah Power ON Bluetooth ready LED kedip cepat Power dimatikan OFF Tidak LED Mati Bluetooth Receiver Konektivitas Bluetooth diletakkan dalam jangkauan Bluetooth Led kedip statis (Lambat) Transmitter Bluetooth Transmitter diletakkan di luar jangkauan Tidak LED berkedip statis (Cepat) Bluetooth Receiver atau di
47 letakkan di ruangan lain (terhalang dinding) atau dimatikan (OFF) Cek setelah Bluetooth Transmitter LED Bluetooth terhubung berkedip dengan lambat (2x) Blutooth Receiver 3. Gerakan Setelah Receiver berhenti berputar maju dan jarak sebesar 90 searah jarum penghalang jam kurang dari 16cm Setelah robot akan menerima data voice berjalan lurus kembali ke dari robot tmpat semula transmitter,
48 maka robot akan berputar 90 searah jarum jam. Setelah robot menerima data voice dari robot transmitter, maka robot Tidak akan berhenti. Tidak berputar 90 searah jarum jam. 4 Berhenti Receiver Menampilkan Pesan melalui Speaker Receiver berjalan lurus dan mendeteksi jarak <15cm Tidak dan menampilkan data voice Berhenti namun data voice tidak muncul. 5 Percobaan Penerimaan Menerima File Format (MP3) Tidak Berhasil Sampai di robot Penerima,namun data coruptt Tidak dari Menerima Berhasil Sampai Pengirim. File Tidak di robot Tidak Berformat Penerima,namun (TXT) coruptt
49 Pada saat pengujan, penulis menemukan beberapa masalah yaitu : 1. Hasil Output dari Pesan Suara masih memiliki banyak Noise. 2. Kecepatan Putaran Motor, tergantung kepada kondisi power dari Baterai yang digunakan, apabila kemampuan baterai mulai menurun, maka kecepatan putaran motor akan melambat dan daya motor akan melemah. 3. Koneksi Bluetooth mengalami sedikit gangguna bila antara Bluetooth Pengirim dan Bluetooth Penerima, terhalang oleh dinding. 4. Pada pengiriman pesan suara membutuhkan waktu yang relatif lama, karena untuk menerima data file dengan ukuran 93 KB dalam waktu 1 menit 30 detik. 5. Terkadang Terjadi Kesalahan pembacaan jarak dari HC SR-04 sensor jarak. Yang menjadi terlalu peka membaca halangan di depannya, dan berhenti. Yang seharusnya tidak menghalangi gerak robot.