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 Robot 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 Robot Penerima , agar dapat berkomunikasi dengan Bluetooth pada Robot 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 Robot 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 Robot 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 Robot Penerima yaitu : 3014:6:161350, Lakukan cek yang sama pada Robot Pengirim dan simpan alamatnya. 2. Set binding (pemasangan) alamat Bluetooth Robot Penerima dengan Robot Pengirim, dilakukan dengan mengetik
at+bind=(alamat Bluetooth Robot Pengirim) (Enter)
at+bind=3014:6:160452, (Enter) Kode 4.10 Pemasangan Bluetooth Robot Penerima
Cek dengan mengetik at+bind (Enter)
35
Kode 4.11 Cek Pemasangan Bluetooth Robot 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 Robot 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 InputOutput (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.
40
Kode 4.23 Prosedur Looping
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 Robot 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 Robot Penerima dari bluetooth Robot Pengirim. Setelah data file terkirim dengan memanfaatkan delay, motor akan berputar 180o 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 Robot 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 Robot Receiver
4.2 Pengujian Pengujian yang dilakukan adalah dengan menguji langsung Robot 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 Robot
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 Robot Pengirim, kemudian robot berjalan lurus kedepan dan sensor ultrasonik membaca jarak Robot Penerima kurang dari 15 cm, robot akan berhenti dengan jeda waktu yaitu 10 detik. Robot 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 Robot Pengirim akan kembali ke posisi awal.
Pengujian ke-tiga Pada pengujian ke-tiga melakukan percobaan pengiriman dari Robot Pengirim ke Robot Penerima. Dimulai dengan mengupload sourcecode pada Robot 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 Robot 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 Robot Pengirim dihidupkan, akan mencari bluetooth Robot Penerima setelah ditemukan, ke-dua robot akan membangun koneksi. Robot 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 Robot 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 Robot Penerima. Pengujian dilakukan dengan mengirimkan data file dalam waktu 1 menit 30 detik, data file yang diterima oleh Robot 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 Robot 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 Robot Penerima tetapi data file yang didapat tidak sesuai dan tidak dapat buka. Tetapi apabila Micro SD pada Robot Pengirim yang terdapat pesan suara dicopot kemudian dipasangkan pada slot Micro SD Robot 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 Robot Pengirim. Dimulai dengan mengupload sourcecode pada Robot Pengirim ke Arduino Uno untuk dapat menggunakan seluruh fungsi Modul, setelah selesai di upload. Penulis menghidupkan tombol power, melakukan perekaman suara. Robot Pengirim diletakkan dengan delay, kemudian robot bergerak lurus kedepan dan sensor ultrasonik mendeteksi keberadaan Robot Penerima, bluetooth Robot Pengirim mencari bluetooth Robot Penerima jika terdeteksi ke-dua robot akan membangun koneksi dan disambungkan. Jika jarak Robot Penerima kurang dari 15 cm, Robot 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 180o 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 Robot Pengirim No. Hal yang diuji 1.
Cara
Sifat
Pengujian
Pengujian
Hasil
Ket.
Meletakkan Keakuratan Sensor (Jarak benda /
penghalang di depan Robot
penghalang
dengan jarak
yang ada di
Lebih Dari
depan robot)
15cm
Robot berjalan Normal
maju
Sesuai
46
Meletakkan penghalang di depan Robot
Robot berhenti
Sesuai
dengan jarak Kurang Dari 15cm 2.
Setelah
Normal
Power ON Power dimatikan OFF
Bluetooth ready LED kedip
Sesuai
cepat Tidak Normal
LED Mati
Sesuai
Bluetooth Robot Receiver diletakkan dalam Konektivitas Bluetooth
Normal
jangkauan
Led kedip statis (Lambat)
Sesuai
Bluetooth Robot Transmitter Bluetooth Robot Transmitter diletakkan di luar
Tidak
LED berkedip
jangkauan
Normal
statis (Cepat)
Bluetooth Robot Receiver atau di
Sesuai
47
letakkan di ruangan lain (terhalang dinding) atau dimatikan (OFF)
Cek setelah Bluetooth Robot Transmitter terhubung
LED Bluetooth Normal
dengan
berkedip
Sesuai
lambat (2x)
Blutooth Robot Receiver 3.
Gerakan
Setelah
Robot
Robot
Receiver
berhenti maju dan jarak
Robot berputar Normal
penghalang
sebesar 90° searah jarum
Sesuai
jam
kurang dari 16cm Setelah robot menerima data voice dari robot transmitter,
Robot akan Normal
berjalan lurus kembali ke tmpat semula
Sesuai
48
maka robot akan berputar 90° searah jarum jam. Setelah robot menerima data voice dari robot transmitter, maka robot
Tidak
Robot akan
Normal
berhenti.
Sesuai
Tidak berputar 90° searah jarum jam. 4
Robot Berhenti Robot Receiver Menampilkan Pesan melalui Speaker
Robot Receiver
Normal
dan menampilkan
berjalan
data voice
lurus dan
Robot Berhenti
mendeteksi
Tidak
namun data
jarak <15cm
Normal
voice tidak
Sesuai
Sesuai
muncul. 5
Menerima Percobaan Penerimaan
File Format (MP3)
Berhasil Sampai Tidak
di robot
Tidak
Normal
Penerima,namun
Sesuai
data coruptt
dari Robot
Menerima
Pengirim.
File
Tidak
di robot
Tidak
Berformat
Normal
Penerima,namun
Sesuai
(TXT)
Berhasil Sampai
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 Robot Pengirim dan Bluetooth Robot 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.