RANCANG BANGUN DRUM KIT ELEKTRIK
BERBASIS MIKROKONTROLER DAN
ANDROID SMARTPHONE
TUGAS AKHIR
Program Studi S1 Sistem Komputer
Oleh:
Mambaul Ulum 10.41020.0075
FAKULTAS TEKNOLOGI DAN INFORMATIKA
xi
HALAMAN JUDUL ... i
HALAMAN SYARAT ... ii
MOTTO ... iii
HALAMAN PERSEMBAHAN ... iv
HALAMAN PENGESAHAN ... v
HALAMAN PERNYATAAN ... vi
ABSTRAK ... vii
KATA PENGANTAR ... viii
DAFTAR ISI ... xi
DAFTAR GAMBAR ... xv
DAFTAR TABEL ... xvii
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 2
1.3 Batasan Masalah ... 3
1.4 Tujuan ... 3
1.5 Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 6
2.1 Drum Elektrik ... 6
2.2 Piezoelectric ... 6
2.3 Mikrokontroler ... 7
xii
2.4.3 Memori ... 12
2.4.4 Input dan Output ... 13
2.5 Software Aurduino IDE ... 13
2.6 Android ... 22
2.7 Basic4Android ... 22
BAB III METODE PENELITIAN... 25
3.1 Metode Penelitian ... 25
3.2 Perancangan Perangkat Keras (Hardware) ... 27
3.2.1 Perancangan Sensor Piezoelectric ... 27
3.2.2 Perancangan Sensor Switch ... 28
3.2.3 Drum Pad... 29
3.2.4 Pedal Drum ... 30
3.2.5 Koneksi Port pada Modul Mikrokontroler Arduino Uno 31 3.3 Perancangan Perangkat Lunak (Software) ... 32
3.3.1 Perancangan Program pada Modul Mikrokontroler Arduino32 3.3.2 Pembacaan Data Sensor Piezoelectric ... 34
3.3.3 Pengiriman Data pada Modul Mikrokontroler Arduino 35 3.3.4 Perancangan Aplikasi pada Android Smartphone ... 40
3.3.5 Deteksi Modul Arduino pada Android Smarphone ... 43
xiii
3.4.3 Aplikasi pada Android Smartphone ... 54
3.4.4 Evaluasi Sistem Keseluruhan ... 54
BAB IV HASIL PENGUJIAN DAN EVALUASI SISTEM ... 56
4.1 Pengujian Pembacaan Sensor Piezoelectric ... 56
4.1.1 Tujuan Pengujian Pembacaan Sensor Piezoelectric .... 56
4.1.2 Alat Yang Digunakan Pada Pengujian Pembacaan Sensor Piezoelectric... 56
4.1.3 Prosedur Pengujian Pembacaan Sensor Piezoelectric . 56 4.1.4 Hasil Pengujian Pembacaan Sensor Piezoelectric ... 57
4.2 Pengujian Pembacaan Sensor Switch ... 58
4.2.1 Tujuan Pengujian Pembacaan Sensor Switch ... 58
4.2.2 Alat Yang Digunakan Pada Pengujian Pembacaan Sensor Switch ... 59
4.2.3 Prosedur Pengujian Pembacaan Sensor Switch ... 59
4.2.4 Hasil Pengujian Pembacaan Sensor Switch ... 60
4.3 Pengujian Pengiriman Data Mikrokontroler Arduino ... 61
4.3.1 Tujuan Pengujian Pengiriman Data Mikrokontroler Arduino ... 61
4.3.2 Alat Yang Digunakan Pada Pengujian Pengiriman Data Mikrokontroler Arduino ... 61
4.3.3 Prosedur Pengujian Pengiriman Data Mikrokontroler Arduino ... 62
xiv
4.4.2 Alat Yang Digunakan Pada Pengujian Aplikasi pada
Android Smartphone ... 64
4.4.3 Prosedur Pengujian Aplikasi pada Android Smartphone 65 4.4.4 Hasil Pengujian Aplikasi pada Android Smartphone ... 68
4.5 Pengujian Keseluruhan Sistem ... 74
4.5.1 Tujuan Pengujian Keseluruhan Sistem ... 75
4.5.2 Alat Yang Digunakan Pengujian Keseluruhan Sistem . 75 4.5.3 Prosedur Pengujian Keseluruhan Sistem ... 75
4.5.4 Hasil Pengujian Keseluruhan Sistem ... 76
BAB V PENUTUP ... 80
5.1 Kesimpulan ... 80
5.2 Saran ... 81
DAFTAR PUSTAKA ... 83
LAMPIRAN ... 84
1 1.1 Latar Belakang Masalah
Perkembangan dan kemajuan teknologi saat ini sudah sangatlah pesat. Hal ini menimbulkan pengaruh yang cukup besar terhadap kehidupan manusia, salah satunya adalah perkembangan teknologi dalam bidang musik. Perkembangan tersebut diantaranya adalah perkembangan teknik bermain musik dan perkembangan alat-alat musik.
Penggunaan alat musik saat ini masih banyak yang menggunakan alat musik konvensional seperti alat drum. Drum kit mempunyai bagian-bagian penting seperti snare, tom-tom, bass drum, cymbal, hi-hat, dan lain-lain. Bagian-bagian drum tersebut memiliki ukuran yang cukup besar sehingga dalam penggunaanya drum kit membutuhkan tempat yang lebih luas dan tidak mudah untuk dibongkar pasang. Saat ini drum kit sudah ada yang bekerja secara digital yaitu drum elektrik atau digital drum berbasis MIDI (Musical Instrument Digital Interface).
Dalam penelitian sebelumnya yang bejudul Analisis dan Perancangan Perangkat Keras Midi Drum Kit Elektrik Berbasis Mikrokontroler Arduino membahas pembuatan drum kit menggunakan sebuah PC sebagai end device dan sebagai pengatur suara keluaran dari drum kit (Kurniawan & Santoso, 2015). Dari penelitian tersebut, penggunaan PC dinilai kurang efektif untuk mobilitas.
mikroprosesor dimana didalamnya sudah terdapat CPU, RAM, ROM, I/O, clock
dan peralatan internal lainya yang sudah saling terhubung dan terorganisasi (teralamatisasi) dengan baik oleh pabrik pembuatnya dan dikemas dalam satu chip
yang siap pakai (Desirianti, 2011). Mikrokontroler bertugas memproses data
analog menjadi data digital yang didapat dari sensor piezoelectric, dan juga bertugas mengirimkan data menuju android smartphone menggunakan media komunikasi USB. Android Smartphone merupakan perangkat mobile yang tertanam sistem operasi berbasis linux yang mencakup sistem operasi,
middleware, dan aplikasi (Ichwan & Hakiky, 2011). Android Smartphone ini bertugas sebagai penerima dan pemroses data digital yang telah dikirimkan oleh mikrokontroler, selanjutnya menghasilkan output suara drum berdasarkan bagian
drum yang dipukul.
Pada tugas akhir ini diharapkan dapat mengembangkan suatu alat musik
drum kit elektrik dengan menggunakan android smartphone sebagai end device
yang dapat meningkatkan efektifitas dalam mobilitas dan suara yang dihasilkan memiliki tingkat kekerasan berdasarkan keras tidaknya pukulan pada kit drum, maka disusunlah sebuah tugas akhir yang berjudul Rancang Bangun Drum Kit
Elektrik Berbasis Mikrokontroler dan Android Smartphone.
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas maka dapat dirumuskan permasalahan sebagai berikut :
2. Bagaimana merancang aplikasi pada android smartphone yang dapat menentukan besar keluaran suara berdasarkan kerasnya pukulan yang dilakukan pada kit drum elektrik?
1.3 Batasan Masalah
Untuk menghindari pembahasan yang lebih luas terkait penelitian ini. Terdapat beberapa batasan masalah, maka penelitian ini hanya ditentukan pada ruang lingkup tertentu antara lain:
1. Drum elektrik yang dibuat memiliki beberapa drum pad yaitu: snare, bass,
hi-hat, floor tom, middle tom, ride cymbal, crash cymbal.
2. Jarak penenempatan antar sensor dan konstruksi dudukan sensor tidak diperhitungkan.
3. Media komunikasi antara mikrokontroler dan android smartphone
menggunakan USB.
4. Android smartphone yang digunakan sudah mendukung fitur USB OTG (On The Go) dan berbasis android5.0 lollypop.
1.4 Tujuan
Berdasarkan rumusan masalah yang diuraikan diatas, maka tujuan penelitian ini adalah sebagai berikut :
2. Merancang aplikasi pada smartphone android yang dapat menentukan besar keluaran suara berdasarkan kerasnya pukulan yang dilakukan pada kit drum
elektrik.
1.5 Sistematika Penulisan
Penulisan buku ini secara sistematis diatur dan disusun dalam lima bab yang didalamnya terdapat beberapa sub bab, di mana akan dijelaskan secara rinci semua penjelasan dalam pembuatan alat ini. Secara ringkas uraian materi dari bab pertama hingga bab terakhir adalah sebagai berikut.
BAB I : PENDAHULUAN
Bab ini merupakan pendahuluan dari karya tulis Tugas Akhir yang membahas mengenai latar belakang masalah, perumusan masalah, batasan masalah, tujuan, dan sistematika penulisan.
BAB II : LANDASAN TEORI
Bab ini menjelaskan teori yang mendukung pokok pembahasan tugas akhir yang meliputi definisi yang berkaitan dalam Tugas Akhir ini. Diantaranya pembahasan tentang drum elektrik, sensor piezoelctric, mikrokontroler aduino uno R3, dan basic4android.
BAB III : METODE PENELITIAN
yaitu program yang digunakan untuk mengatur semua proses pada sistem.
BAB IV : HASIL DAN PEMBAHASAN
Bab ini menjelaskan tentang pengujian sistem baik hardware
maupun software. Pengujian hardware meliputi rangkaian sensor
piezoelectric, modul mikrokontroler Aduino uno yang berfungsi sebagai otak kerja dari alat. Pengujian software meliputi program mikrokontroler aduino dengan masing-masing hardware dan juga program pada android smartphone.
BAB V : PENUTUP
6 2.1 Drum Elektrik
Drum elektrik adalah sebuah alat yang dibuat menyerupai bentuk drum kit
akustik pada umumnya. Lapisan permukaan drum yang sebelumnya terbuat dari membran berbahan dasar plastik (pada drum akustik) diganti menjadi bantalan-bantalan karet yang dibawah lapisannya diberi sensor untuk menangkap getarannya saat dipukul. Sensor tersebut merubah getaran listrik yang dihasilkan kemudian mentransmisikannya ke dalam modul elektronik atau perangkat komputer yang memiliki perangkat lunak (software) berupa virtual drum dan nantinya akan menghasilkan suara kit drum seperti pada perangkat drum akustik.
Gambar 2.1 Drum Elektrik
(Sumber: www.yamahadtx.com) 2.2 Piezoelectric
keramik akibat dari mechanical pressure (tekanan). Piezoelectric digunakan untuk mengukur tekanan, percepatan, regangan, dan lain-lain.
Piezoelectric sensor adalah perangkat yang menggunakan efek
piezoelektrik, atau komponen yang dapat menghasilkan tegangan listrik sebagai respon dari suatu perubahan tekanan mekanik. (Yuniar, & Prastowo, 2013).
Gambar 2.2 Sensor Piezoelectric
(Sumber: www.sparkfun.com)
2.3 Mikrokontroler
Mikrokontroler adalah sebuah sistem mikroprosesor dimana didalamnya sudah terdapat CPU, RAM, ROM, I/O, clock dan peralatan internal lainya yang sudah saling terhubung dan terorganisasi (teralamatisasi) dengan baik oleh pabrik pembuatnya dan dikemas dalam satu chip yang siap pakai. (Desirianti, 2011).
variabel, atau perangkat elektronik lain. Pada sebuah chip mikrokontroler umumnya memiliki fitur-fitur sebagai berikut:
CPU (Central Processing Unit)
Port Input/Output
Counter dan Timer
ADC(Analog to Digital Converter)
ROM, EEPROM, EPROM atau flash memory untuk menyimpan program dari
komputer
Mendukung komunikasi serial, parallel dan lain-lain.
Ada berbagai macam jenis mikrokontroler yang beredar di pasaran yang masing-masing memiliki kelebihan dan kekurangan sesuai dengan kebutuhan pengguna. Berikut merupakan beberapa jenis mikrokontroler yang dapat digunakan:
Atmel (AT91, AT90, Tiny, Mega, AVR, dll.)
Fujitsu (FR Family, FR-V Famili, dll)
Intel (8xc42, MCS51, 8061, 8xc21, dll.)
Philiphs Semiconductor (LPC2000, LPC900, dll.)
Western Design Center (W65C02, W65816, dll.)
2.4 Arduino
dirancang untuk mempermudah proyek bagi pemula tetapi masih cukup fleksibel bagi para ahli untuk mengembangkan proyek-proyek yang kompleks.
2.4.1 Arduino Uno R3
Arduino Uno adalah papan mikrokontroler berbasis ATMega328. Dalam bahasa Italia “Uno” berarti satu, maka peluncuran arduino ini diberi nama Uno. Arduino ini berisi semua yang diperlukan untuk mendukung mikrokontroler, untuk mengaktifkan cukup menghubungkannya ke komputer dengan sebuah kabel USB atau mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan baterai.
Adapun beberapa kelebihan dari perangkat arduino, diantaranya adalah : 1. Tidak perlu perangkat chip programmer karena di dalamnya sudah ada
bootloader yang akan menangani upload program dari komputer.
2. Sudah memiliki sarana komunikasi USB, sehingga pengguna Laptop yang tidak memiliki port serial/RS323 bisa menggunakan port USB.
3. Memiliki modul siap pakai (shield) yang bisa ditancapkan pada board
arduino. Misalnya shield GPS, Ethernet, Xbee, SD Card, dll.
Untuk contoh modul dari Arduino Uno R3 bisa dilihat pada Gambar 2.3 diatas. Sedangkan untuk melakukan proses compile ataupun upload program pada arduino, biasanya menggunakan kabel usb seperti Gambar 2.4 dibawah ini
Gambar 2.4 Kabel USB pada Arduino Uno R3
(Sumber: www.arduino.cc)
Secara umum arduino terdiri dari dua bagian, yaitu: 1. Hardware: papan input/output (I/O)
2. Software: software arduino meliputi IDE untuk menulis program, driver
untuk koneksi dengan komputer, contoh program dan library untuk pengembangan program.
Pada Tabel 2.1 dibawah ini akan dijelaskan secara singkat spesifikasi dari perangkat arduino uno R3:
Tabel 2.1 Spesifikasi Arduino Uno R3
Mikrokontroler ATmega328
Tegangan pengoperasian
5V
Tegangan input yang disarankan
7-12V
Jumlah pin I/O digital 14 (6 di antaranya menyediakan keluaran PWM)
32 KB (ATmega328), sekitar 0.5 KB digunakan oleh
bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz
(Sumber: www.arduino.cc)
2.4.2 Daya (Power)
Dalam hal daya arduino uno dapat disuplai melalui koneksi USB atau dengan sebuah power suplai eksternal. Suplai eksternal (non-USB) dapat diperoleh dari sebuah adaptor AC ke DC atau baterai. Adaptor dapat dihubungkan dengan mencolokkan sebuah center-positive plug 2,1 mm ke power jack dari
board. Kabel lead dari sebuah baterai dapat dimasukkan dalam header/kepala pin Ground (Gnd) dan pin Vin dari konektor power.
pada board arduino uno bisa menjadi cepat panas sehingga membahayakan bagi
board arduino uno.
Pin-pin dayanya adalah sebagai berikut:
1. VIN. Tegangan input ke Arduino board ketika board sedang menggunakan sumber suplai eksternal (seperti 5 volt dari koneksi USB atau sumber tenaga lainnya yang diatur). Kita dapat menyuplai tegangan melalui pin ini, atau jika penyuplaian tegangan melalui power jack, aksesnya melalui pin ini.
2. 5V. Pin output ini merupakan tegangan 5 volt yang diatur dari regulator pada
board. Board dapat disuplai dengan salah satu suplai dari DC power jack (7-12 volt), USB connector (5 volt), atau pin VIN dari board (7-12 volt). Penyuplaian tegangan melalui pin 5 volt atau 3,3 volt membypass regulator, dan dapat membahayakan board.
3. 3V3. Sebuah suplai 3,3 volt dihasilkan oleh regulator pada board. Arus maksimum yang dapat dilalui adalah 50 mA.
4. GND. Pinground.
2.4.3 Memori
ATmega328 mempunyai 32 KB yang bersifat non-volatile, digunakan untuk menyimpan program yang dimuat dari komputer. (dengan 0,5 KB digunakan untuk bootloader). ATmega 328 juga mempunyai 2 KB SRAM (Static Random Access Memory) yang volatile (hilang saat daya dimatikan), digunakan oleh variable-variabel di dalam program. dan 1 KB EEPROM (Electrically Erasable Programmable Read-Only Memory) yang dapat dibaca dan ditulis (read
2.4.4 Input dan Output
Setiap 14 pin digital pada arduino uno dapat digunakan sebagai input dan output. Fungsi-fungsi tersebut beroperasi di tegangan 5 volt. Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan mempunyai sebuah
resistor pull-up (terputus secara default) 20-50 kOhm. Selain itu, beberapa pin
mempunyai fungsi-fungsi sebagai berikut:
1. Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL (Transistor-Transistor Logic). Kedua pin
ini dihubungkan ke pin-pin yang sesuai dari chip Serial Atmega8U2 USB-ke-TTL.
2. External Interrupts: pin ke 2 dan pin ke 3. Pin-pin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt (gangguan) pada suatu nilai rendah, suatu kenaikan atau penurunan yang besar, atau suatu perubahan nilai.
3. PWM (Pulse Width Modulation): pin yang digunakan meliputi pin 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan fungsi analogWrite(). 4. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport
komunikasi SPI menggunakan SPI library.
5. LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilai HIGH LED menyala, ketika pin bernilai LOW LED mati.
2.5 Software Arduino IDE
1. Editor program, sebuah window yang memungkinkan pengguna menulis dan mengedit program dalam bahasa processing.
2. Verify/Compiler, sebuah modul yang mengubah kode program (bahasa processing) menjadi kode biner.
3. Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam memori mikrokontroler di dalam papan arduino.
Pada Gambar 2.5 dibawah ini adalah tampilan software Arduino IDE,
Gambar 2.5 Tampilan Software Arduino IDE
(Sumber : www.arduino.cc)
Pada Gambar 2.5 terdapat menu bar, area putih untuk editing sketch, sedangkan area hitam dapat kita sebut sebagai progress area, dan paling bawah dapat kita sebut sebagai “status bar”. Berikut adalah penjelasan menu pada
software arduino IDE.
4. Open : Membuka program yang pernah dibuat 5. Save : Menyimpan program yang sudah dibuat
Bahasa Pemograman Arduino
Arduino ini bisa dijalankan di komputer dengan berbagai macam platform
karena didukung atau berbasis java. Source program yang dibuat untuk aplikasi mikrokontroler adalah bahasa C/C++ dan dapat digabungkan dengan assembly. 1. Struktur
Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada, antara lain:
a) void setup( ) { }
Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
b) void loop( ) { }
Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.
2. Serial
a) Serial.begin( )
Fungsi ini digunakan untuk transmisi data serial dan mengatur data rate
dalam bits per second (baud). Untuk berkomunikasi dengan komputer gunakan salah satu dari angka ini: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, atau 115200.
b) Serial.available( )
Fungsi ini digunakan untuk mendapatkan jumlah data byte (characters) yang tersedia dan membacanya dari port serial. Data tersebut adalah data yang telah tiba dan disimpan dalam buffer serial yang menampung sampai 64 bytes.
c) Serial.read( )
Fungsi digunakan untuk membaca data serial yang masuk. d) Serial.print( ) dan Serial.println( )
Fungsi ini digunakan untuk mencetak data ke port serial dalam format text ASCII. Sedangkan fungsi Serial.println( ) sama seperti fungsi Serial.print( ) hanya saja ketika menggunakan fungsi ini akan mencetak data dan kemudian diikuti dengan karakter newline atau enter.
3. Syntax
Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan. a) // (komentar satu baris)
b) /* */ (komentar banyak baris)
Digunakan untuk menulis beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan program. c) { } (kurung kurawal)
Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).
d) ; (titk koma)
Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).
4. Tipe Data
Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Tipe data inilah yang digunakan untuk memindahkannya.
a) int (integer) rentang dari -2,147,483,648 sampai 2,147,483,647.
c) boolean (boolean)
Variabel sederhana yang digunakan untuk menyimpan nilai TRUE
d) float (float)
Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38.
e) char (character)
Menyimpan 1 karakter menggunakan kode ASCII (misalnya „A‟ = 65).
Hanya memakai 1 byte (8 bit) dari RAM. 5. Operator Matematika
Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana).
a) = (sama dengan)
Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).
b) % (persen)
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).
c) + (penjumlahan)
Menjumlahkan nilai dari suatu variabel dengan nilai variabel yang lain. d) – (pengurangan)
Mengurangkan nilai dari suatu variabel dengan nilai variabel yang lain. e) * (perkalian)
Mengalikan nilai dari suatu variabel dengan nilai variabel yang lain. f) / (pembagian)
6. Operator Pembanding
Digunakan untuk membandingkan nilai logika. a) ==
Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar)).
b) !=
Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah)).
c) <
Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar)).
d) >
Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah)).
7. Struktur Pengaturan
Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan.
a) If else, dengan format seperti berikut ini: if (kondisi) { }
else if (kondisi) { } else { }
maka akan diperiksa apakah kondisi pada else if dan jika kondisinya
FALSE maka kode pada else yang akan dijalankan. b) While, dengan format seperti berikut ini:
While (kondisi) {}
Dengan struktur ini, while akan melakukan pengulangan terus menurus dan tak terbatas sampai kondisi didalam kurung ( ) menjadi false.
c) for, dengan format seperti berikut ini: for (int i = 0; i < #pengulangan; i++) { }
Digunakan bila ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–-.
8. Operator Boolean
Operator ini dapat digunakan dalam kondisi if, antara lain: a) && (logika and), dengan format seperti berikut ini:
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) {}
Digunakan bila ingin mendapatkan nilai yang true hanya jika kedua input
bernilai HIGH.
b) | | (logika or), dengan format seperti berikut ini: if (x > 0 || y > 0) {}
Digunakan bila ingin mendapatkan nilai yang true hanya jika nilai x atau y lebih besar dari 0.
9. Digital
Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin
yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT.
b) digitalWrite (pin, value)
Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (5 volt) atau LOW (diturunkan menjadi ground).
c) digitalRead (pin)
Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah
HIGH (5 volt) atau LOW (diturunkan menjadi ground). 10. Analog
Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam analog. Berikut ini cara untuk menghadapi hal yang bukan digital a) analogWrite (pin, value)
Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on) atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog.
b) analogRead (pin)
2.6 Android
Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android merupakan sebuah perusahaan software kecil yang didirikan pada bulan Oktober 2003 di Palo Alto, California, USA. Didirikan oleh beberapa senior di beberapa perusahaan yang berbasis IT dan Communication, Andy Rubin, Rich Miner, Nick Sears dan Chris White. Menurut Rubin, Android Inc didirikan untuk mewujudkan Mobile device yang lebih peka terhadap lokasi dan preferensi pemilik. Dengan kata lain, Android Inc, ingin mewujudkan Mobile device yang lebih mengerti pemiliknya. (Djuandi, 2011). Terdapat banyak macam aplikasi yang menyediakan pengguna untuk membuat aplikasi pada mobile android itu antara lain JDK, Eclipse, Android SDK, Basic4Android. Dan yang digunakan dalam alat ini adalah aplikasi Basic4Android.
2.7 Basic4Android
Basic4Android sendiri merupakan tools RAD yang terdiri dari framework,
Gambar 2.6 Tampilan Software Basic4Android.
Basic4Android juga menyediakan library-library lengkap untuk mengakses berbagai macam fitur yang ada pada smartphone seperti sensor, kamera, GPS, dan sebagainya.
Adapun beberapa kelebihan dan fitur yang dimiliki oleh Basic4Android adalah:
1. Simple dan Powerfull RAD (Rapid Application Development) tools untuk mengembangkan aplikasi native android tanpa harus menghabiskan waktu mempelajari pemrograman eclipse/ java.
2. IDE (Integrated Development Environment) lengkap yang fokus 100% pada pengembangan aplikasi Android.
3. Di compile kedalam native bytecode, tidak ada tambahan runtime library
4. Performa dari aplikasi yang dihasilkan sama dengan aplikasi yang dibuat dengan java.
5. Sintaks sama dengan visual basic.
6. Mendukung semua android phone dan tablet dari versi 1.6 sampai dengan versi terbaru.
7. Mendukung semua android core (GPS, SQL Database, Widgets, Live Wallpaper, Bluetooth, USB, Web Services, Camera, JSON, XML, Excel
CSV, Multitouch, NFC, Views Animation, Push Notification, AdMob,
25
3.1 Metode Penelitian
Metode penelitian yang digunakan pada tugas akhir ini melalui beberapa
tahapan penelitian dan mencari informasi tentang data yang dibutuhkan dalam
mengerjakan tugas akhir ini. Tahap pertama adalah pengembangan konsep
penelitian berdasarkan daftar pustaka. Studi kepustakaan dilakukan untuk mencari
teori atau informasi dari buku, jurnal, dan artikel-artikel yang berkaitan dengan
permasalahan. Dari data-data yang diperoleh, selanjutnya dilakukan perencanaan
penelitian meliputi perancangan sistem perangkat keras dan perangkat lunak.
Untuk mendapatkan hasil yang dikehendaki dibutuhkan suatu rancangan
agar dapat mempermudah dalam memahami sistem yang akan dibuat, oleh karena
itu akan dibuat seperti gambar 3.1.
Piezoelectric
Dari gambar 3.1 diatas, dapat dijelaskan sebagai berikut :
1) Input
a. Sensor Piezoelectric
Sensor piezoelectric yang terpasang pada beberapa drum pad, berguna
untuk mendeteksi besar getaran yang dihasilkan dari pukulan yang
dilakukan terhadap drum pad, hasil keluaran dari sensor ini berupa data
analog. Output sensor ini terhubung ke port ADC pada mikrokontroler.
b. Sensor Switch
Switch pada alat ini dipasang pada pedal bass drum dan hi-hat, yang
berguna sebagai sensor untuk mendeteksi pedal pada bass drum dan hi-hat
saat dipijak. Hasil keluaran sensor ini berupa kondisi high dan low dan
akan masuk sebagai input pada mikrokontroler.
2) Proses
Mikrokontroler bertugas untuk mengolah data dari output sensor-sensor pada
drum pad. Output sensor piezoelectric yang berupa data analog akan diubah
menjadi data digital dengan mengunakan internal ADC pada mikrokontroler,
yang kemudian diteruskan untuk dikirim menuju android smartphone.Output
dari sensor switch yang berupa data digital akan langsung di proses
mikrokontroler, dan dikirim menuju android smartphone.
3) Output
Android smartphone bertugas menerima data yang dikirim oleh
mikrokontroler melalui media USB, data yang diterima akan diproses untuk
oleh mikrokontroler. Aplikasi pada android smartphone dibuat dengan
menggunakan Basic4android.
3.2 Perancangan Perangkat Keras (Hardware)
Perancangan perangkat keras akan dibahas bagaimana
komponen-komponen elektronika yang terhubung pada hardware dengan mikrokontroler
agar elektronika pendukung dapat bekerja sesuai dengan sistem yang diharapkan.
3.2.1 Perancangan Sensor Piezoelectric
Mendeteksi pukulan pada drum pad secara elektronik dapat dilakukan dengan menggunakan alat yang dinamakan sensor. Sensor yang digunakan pada penelitian ini adalah sensor piezoelectric. Pada penelitian ini menggunakan 6 buah sensor piezoelectric yang ditempatkan pada 6 pad-pad pada drum yang telah dibuat, adapun perancangan rangkaian sensor piezoelectric ditunjukan pada gambar 3.2.
Sensor piezoelectric memiliki output berupa tegangan ketika sensor mendapat tekanan atau getaran. Agar data tegangan keluaran dari sensor
piezoelectric dapat diolah oleh mikrokontroler dibutuhkan sebuah rangkaian sensor yang terdiri dari beberapa komponen yaitu:
1. Dioda zener: dalam rangkaian ini dioda zener berfungsi sebagai over voltage protection (Perlindungan terhadap kelebihan tegangan) karena port pada mikrokontroler hanya mampu membaca tegangan input mulai 0 hingga 5 volt, dioda zener akan membatasi tegangan keluaran maksimal sesuai tegangan zenernya (5 volt) terhadap tegangan input yang berasal dari sensor
piezoelectric.
2. Kapasitor: dalam rangkaian ini kapasitor berfungsi sebagai filter dari tegangan keluaran dari sensor piezoelectric, sehingga ripple tegangan yang dihasilkan akan sangat kecil sekali mendekati sinyal DC.
3. Resistor: berfungsi untuk membatasi tegangan dan arus yang dihasilkan oleh sensor piezoelectric dan untuk melindungi input analog.
3.2.2 Perancangan Sensor Switch
Pada penelitian ini sensor switch digunakan untuk mendeteksi pijakan
pada pedal bassdrum dan pedal hi-hat, yang dipasangkan pada pedal-pedal yang
telah dibuat. Keluaran dari sensor switch menghasilkan kondisi high jika tombol
pada sensor ditekan dan akan menghasilkan kondisi low jika tombol pada sensor
tidak ditekan. Sehingga keluaran dari sensor switch ini dihubungkan pada port
digital mikrokontroler arduino uno sebagai input. Pada pembacaan sensor switch
pada saat pembacaan sensor menjadi akurat yaitu menghasilkan output high atau
low saja. Adapun perancangan rangkaian sensor switch ditujukan pada gambar 3.3 dibawah.
Gambar 3.3 Rangkaian Sensor Switch.
3.2.3 Drum Pad
Pada Tugas Akhir ini pad yang dibuat sebanyak 6 buah yang didalamnya terdapat sensor piezoelectric, yaitu:
1) Ride pad
2) Middle tom pad
3) Simbal crash pad
4) Simbal hi-hat pad
5) Snare pad
Drumpad yang telah dibuat dapat dilihat pada gambar 3.4 dibawah ini.
Gambar 3.4 Drum Pad
3.2.4 Pedal Drum
Pada Tugas Akhir ini pedal yang di buat sebanyak 2 buah yang didalamnya terdapat sensor switch, pedal yang dibuat yaitu:
1) Pedal bass
2) Pedal open/close hi-hat
Pedal drum yang telah dibuat dapat dilihat pada gambar 3.5 dibawah ini.
3.2.5 Koneksi Port pada Modul Mikrokontroler Arduino Uno
Pada Tugas Akhir ini, modul mikrokontroler yang digunakan adalah
modul mikrokontroler arduino uno. koneksi port pada arduino uno dapat dilihat
pada tabel 3.1.
Tabel 3.1 Koneksi Port Arduino Uno
No Port Arduino Uno Keterangan
1 A0 Terhubung dengan sensor 1 sebagai input
Ride
2 A1 Terhubung dengan sensor 2 sebagai input
Middle Tom
3 A2 Terhubung dengan sensor 3 sebagai input
Crash
4 A3 Terhubung dengan sensor 4 sebagai input
Hi-hat
5 A4 Terhubung dengan sensor 5 sebagai input
Snare
6 A5 Terhubung dengan sensor 6 sebagai input
Floor
7 D7 Terhubung dengan sensor switch 1 sebagai
input Bass
8 D8 Terhubung dengan sensor switch 2 sebagai
input status Hi- hat open / Close
9 5V Terhubung dengan modul sensor sebagi
supply
10 GND Terhubung dengan ground pada modul sensor
3.3 Perancangan Perangkat Lunak (Software)
Selain perancangan berupa hardware, juga dibutuhkan perancangan
berupa software yang berguna untuk menjalankan perancangan hardware yang
telah dibuat. Perancangan software terdiri dari beberapa algoritma perancangan
dari sistem yang ditangani oleh pengontrol.
3.3.1 Perancangan Program pada Modul Mikrokontroler Arduino
Software yang digunakan untuk memprogam arduino tersebut ialah
software Arduino IDE. Mikrokontroler arduino unobertugas untuk mengolah data
dari output sensor-sensor pada drum pad, dan mengirimkan data hasil pembacaan
sensor pada android smartphone.
Pada Tugas Akhir ini sebelum membuat program pada arduino uno, dibuat
flowchart terlebih dahulu yang bertujuan untuk membantu agar nantinya
memudahkan dalam membuat program pada arduino uno. Adapun perancangan
START
Inisialisasi,
Sensor1, Sensor2, Sensor3, Sensor4, Sensor5,Sensor6, Sensor7,Sensor8, FlagBass,
flagHihat, TRESHOLD Serial.begin(9600)
Baca Input : time Switch1 Switch2 Serial ==
true
T
Y
Kirim_data ()
analogRead
Gambar 3.6 Flowchart pada Arduino Uno
Pada saat arduino dijalankan pertamakali yang dilakukan adalah proses
menginisialisasi variabel-variabel yang dibutuhkan, setelah itu arduino akan
melakukan pengecekan terhadap usb serial yang terhubung dengan android
Jika tidak, maka sistem akan melakukan pengecekan ulang hingga USB terhubung
pada android smartphone. setelah proses pembacaan data dari sensor dilakukan
maka akan melanjutkan proses selanjutnya yaitu proses pengiriman data menuju
android smartphone melalui media USB.
3.3.2 Pembacaan Data Sensor Piezoelctric
Dalam melakukan pembacaan data sensor piezoelectric pada android
smartphone dibuat perancangan flowchart sebagai berikut:
Data = ANALOG READ
Data = Data + Data_baru I++
Pada saat pembacaan data sensor piezoelectric dilakukan perhitungan nilai
rata-rata dari data yang telah dibaca oleh mikrokontroler arduino, perhitungan
nilai rata-rata sensor mulai dilakukan ketika mikrokontroler membaca nilai sensor
melebihi nilai threshold yang sudah ditentukan.
Nilai threshold adalah acuan nilai terkecil dari sensor ketika tidak ada
inputan dari user. Penentuan nilai threshold sensor piezoelectric dilakukan dengan
cara mencari nilai awal sensor yang terbaca ketika sensor tidak diberikan inputan
berupa tekanan, hal ini dilakukan karena sensor piezoelectric sangat sensitif dalam
mendeteksi getaran-getaran yang ada disekitar. Penentuan nilai threshold berguna
agar mikrokontroller arduino hanya memproses data yang berasal dari pemberian
input tekanan terhadap sensor.
Perhitungan nilai rata-rata dilakukan untuk menentukan data yang akurat
dari sensor yang akan dikirim menuju android smartphone. pengambilan sampel
nilai rata-rata dilakukan selama 50 milisecond, karena pada saat sensor diberi
inputan tekanan piezoelectric dalam mencapai aplitudo tertinggi dan kembali
menuju nilai awal membutuhkan waktu selama 50 milisecond, maka dari itu
pengambilan rata-rata dilakukan guna menemukan data tunggal yang mewakili
data yang terbaca selama 50 milisecond.
3.3.3 Pengiriman Data pada Modul Mikrokontroler Arduino
Pada pengiriman suatu data agar bisa diketahui asal data yang didapat
makan dibuatlah sebuah format yang di dalamnya terbagi menjadi beberapa
didapat, bagian selanjutnya berisi data yang akan dikirim, bagian akhir berisi tail
yaitu sebuah penutup.
A
DATA
Chr (13)
Gambar 3.8 Format Pengiriman Data
Berikut penjelasan dari gambar 3.8 :
1) A : digunakan sebagai penanda awal pengiriman data.
2) DATA : dari hasil pengolahan data dari sensor.
3) Chr(13) : digunakan sebagai penanda akhir pengiriman.
Dalam melakukan penengiriman data pada android smartphone dibuat
Sensor1 Println(data_kirim)
Gambar 3.9 Flowchart Pengiriman Data pada Mikrokontroler.
Pada proses pengiriman data, sebelum data dikirim ke android akan
dilakukan penambahan header pada data terlebih dahulu sesuai dengan state
masing-masing sensor. Penambahan header pada data betujuan agar data nantinya
aplikasi pada android dapat melakukan aksinya sesuai dengan pemberian input
tekanan/pukulan terhadap pad-pad drum.
Daftar header data yang dikirim oleh mikrokontroler dapat dilihat pada
Tabel 3.2 Header Data yang Dikirim Mikrokontroler
Header Keterangan
A Sebagai header data untuk sensor ride pad
B Sebagai header data untuk sensor middle tom pad
C Sebagai header data untuk sensor crash pad
D Sebagai header data untuk sensor hi-hat pad
E Sebagai header data untuk sensor snare pad
F Sebagai header data untuk sensor floor tom pad
G Sebagai header data untuk sensor bass pad
H Sebagai header data untuk status hi-hat close
I Sebagai header data untuk status hi-hat open
Berikut merupakan potongan program fuction kirim_data pada mikrokontroler
arduino :
void kirim_data(int pin ,float data)
{
String header="";
String datakirim ="";
if(pin == 0)
{
header="A"; //ride
}
else if(pin == 1)
datakirim = header + String (int(data));
Serial.println(datakirim);
Serial.flush();
}
3.3.4 Perancangan Aplikasi pada Android Smartphone
Aplikasi yang dijalankan android smartphone pada penelitian ini dibuat
dengan menggunakan Basic4Android. Android smartphone bertugas menerima
data digital yang dikirim oleh mikrokontroler, dan data yang diterima akan
diproses untuk menentukan suara yang akan diputar berdasarkan kondisi yang
dikirimkan oleh mikrokontroler.
Dalam melakukan perancangan aplikasi pada android smartphone dibuat
INISIALISASI
ADA ARDUINO?
STOP START
T
APLIKASI CLOSE?
Y
T Terima_putar()
Y
Gambar 3.10 Flowchart Aplikasi pada Android Smartphone
Ketika aplikasi pada android smartphone dijalankan, hal pertama yang
dilakukan adalah proses inisialisasi variabel-variabel yang dibutuhkan, kemudian
aplikasi melakukan pengecekan terhadap perangkat drum elektrik yang
menerima data dari perangkat drum elektrik yang telah tersambung. Setelah itu
data yang berhasil diterima dalam buffer akan di sortir sesuai database header
yang ada pada aplikasi. Kemudian aplikasi akan memutar suara berdasarkan hasil
sortir dari header data yang diterima.
Gambar 3.11 InterfaceMain Program pada Android Smartphone
Pada Gambar 3.11 dapat dilihat bahwa pada form ini terdapat beberapa komponen
yang digunakan, tiap komponen memiliki fungsinya masing - masing, antara lain:
1. Seekbar
a. Seekbar 1 : Indikator volume dari Ride
b. Seekbar 2 : Indikator volume dari MiddleTom
c. Seekbar 3 : Indikator volume dari Crash
d. Seekbar 4 : Indikator volume dari Hihat
e. Seekbar 5 : Indikator volume dari FloorTom
f. Seekbar 6 : Indikator volume dari Ride
2. PushButton
b. PushButton 2 : Indikator untuk MidlleTom Pad
c. PushButton 3 : Indikator untuk Crash Pad
d. PushButton 4 : Indikator untuk Hihat Pad
e. PushButton 5 : Indikator untuk Snare Pad
f. PushButton 6 : Indikator untuk FloorTom Pad
g. PushButton 7 : Indikator untuk Bass Pad
3. TogleButton : Indikator status Open/Close untuk Hihat
4. TextBox : untuk menampilkan data yang diterima oleh android smartphone
3.3.5 Deteksi Modul Arduino pada Android Smartphone
Pada saat aplikasi pada android smartphone dijalankan, aplikasi akan
menunggu inputan dari user untuk mencari dan memilih arduino yang terhubung
sebagai drum elektrik. Berikut tampilan form aktivity pada android smartphone
pada gambar 3.12.
Pada Gambar 3.12 dapat dilihat bahwa pada form ini terdapat beberapa komponen
yang digunakan, tiap komponen memiliki fungsinya masing - masing, antara lain:
1. PushButton : Digunakan sebagai tombol untuk user saat ingin melakukan
pendeteksian modul arduino.
2. ListView : Digunakan untuk menampikan modul arduino yang terdeteksi.
Berikut merupakan potongan program Sub TombolDiscoverDevice pada aplikasi
android smartphone.
‘SCAN ARDUINO PADA ANDROID SMARTPHONE
Sub TombolDiscoverDevice_Click
ListViewDevice.Clear
deviceusb = manageusb.GetDevices
For i =0 To deviceusb.Length -1
ud = deviceusb(i)
If ud.VendorId = 9025 Then
ListViewDevice.AddSingleLine("ARDUINO")
Pada potongan program diatas untuk mengetahui adanya modul arduino
uno yang terhubung dengan android smartphone, pertama dilakukan pengecekan
terhadap banyaknya perangkat yang terhubung ke USB android smarphone.
yang terhubung. Jika vendor ID bernilai “9025” maka yang terhubung adalah
arduino uno. arduino uno memiliki nilai vendor id dalam nilai desimal 9025 atau
2341 dalam hexadesimal.
Untuk mengetahui nilai vendor id suatu device dapat dilihat pada
komputer windows sebelumnya, yaitu dengan masuk pada Device Manager → klik kanan pada device→ pilih Propertis → pada tab menu pilih Details → pada Property pilih Hardware Ids, vendor ID dapat dilihat pada daftar Value.
Gambar 3.13 Mengetahui Vendor ID pada Windows
Pada gambar 3.13 diatas dapat dilihat pada daftar value tertulis
“USB\VID_2341&PID_0043&REV_0001”, VID_2341 dalah nilai dari device ID
3.3.6 Penerimaan Data pada Aplikasi Android Smartphone
Pada saat melakukan penerimaan data pada aplikasi android smartphone,
dibutuhkan proses pengenalan data yang telah diterima, pengenalan pada data
yang diterima oleh android smartphone berdasarkan header data yang telah
dikirim oleh mikrokontroler.
Dalam melakukan penerimaan data pada android smartphone dibuat
Terima
Gambar 3.14 Flowchart Penerimaan pada Basic4Android
Pada flowchart di atas aplikasi menunggu data dari mikrokontroler.
header yang terdapat pada aplikasi. Apabila ada data yang cocok dengan
database, maka android akan melakukan aksi yaitu memutar suara pada database
dan merubah indikator.
Untuk aksi perubahan indikator pada program android dapat dilihat pada
Tabel 3.3.
Tabel 3.3 Aksi pada Android
Header Data Aksi
A
Memutar suara “RIDE”
Indikator “RIDE” aktif
B
Memutar suara “MID TOM”
Indikator “MID TOM” aktif
C
Memutar suara “CRASH”
Indikator “CRASH” aktif
D
Memutar suara “HIHAT”
Indikator “HI-HAT” aktif
E
Memutar suara “SNARE”
Indikator “SNARE” aktif
F
Memutar suara “FLOOR TOM”
Indikator “FLOOR TOM” aktif
G
Memutar suara “BASS”
Indikator “BASS” aktif H Indikator “OPEN HI-HAT” aktif
Berikut merupakan beberapa potongan program pada fuction Sub ast_NewText,
Sub ride_pad, Sub midTom_pad, Sub crash_pad, Sub open_close, Sub hihat_pad,
Sub snatre_pad, Sub floorTom_pad, dan Sub bass_pad pada aplikasi android
smartphone.
‘SORTIR DATA PADA ANDROID SMARTPHONE
Sub ast_NewText(Text As String)
tampil_data.Text=""
tampil_data.Text = Text
data_masuk = Text
If Text.Length >0 Then
header= data_masuk.SubString2(0,1)
data_volume = data_masuk.SubString2(1,Text.Length)
End If
If header = "A" Then
ride_pad_Click
Else If header == "B" Then
midTom_pad_Click
Else If header == "C" Then
crash_pad_Click
Else If header == "D" Then
hihat_pad_Click
Else If header == "E" Then
snare_pad_Click
Else If header == "F" Then
floorTom_pad_Click
Else If header == "G" Then
bass_Pad_Click
Else If header == "H" Then
Else If header == "I" Then
open_close.Checked = False
End If
End Sub
‘PUTAR SUARA PADA ANDROID SMARTPHONE
Sub ride_pad_Click
mpRide.Load(File.DirAssets,"ride.ogg")
Volume_ride.Value = CInt(data_volume)
vol = Volume_ride.Value /10
mpRide.SetVolume(vol,vol)
vol = volume_midTom.Value /10
mpMidtom.SetVolume(vol,vol)
vol = volume_crash.Value /10
mpCrash.Play
crash_pad.Color = Colors.Red
timmer3.Enabled=True
End Sub
Sub open_close_CheckedChange(Checked As Boolean)
If open_close.Checked == True Then 'close
open_close.TextColor = Colors.Yellow
If open_close.Checked == True Then
mpHihat.Load (File.DirAssets ,"closehh.ogg")
volume_hihat.Value = CInt(data_volume)
vol = volume_hihat.Value /10
mpHihat.SetVolume(vol,vol)
mpHihat.Play
Else
mpHihat.Load (File.DirAssets ,"openhh.ogg")
volume_hihat.Value = CInt(data_volume)
vol = volume_hihat.Value /10
mpHihat.SetVolume(vol,vol)
mpHihat.Play
End If
hihat_pad.Color = Colors.Red
End Sub
Sub snare_pad_Click
mpSnare.Load(File.DirAssets,"snare.ogg")
volume_snare.Value = CInt(data_volume)
vol = volume_snare.Value /10
Pada potongan program diatas Sub ride_pad, Sub midTom_pad, Sub crash_pad, Sub hihat_pad, Sub snatre_pad, dan Sub floorTom_pad ketika
mengambil nilai data untuk menyetel volume data akan dibagi “10’ karena
function setVolume yang ada pada library basic4android hanya menerima data
mulai “0” sampai “1”, nilai “0” untuk volume terendah hingga “1” untuk volume
tertinggi. Untuk Sub bass_pad nilai volume disetel menjadi maksimal yaitu “1” karena pada drum elektrik yang dibuat pad bass tidak memiliki keluaran tingkat
kekerasan suara.
3.4 Metode Pengujian dan Evaluasi Sistem
Untuk mengetahui apakah sistem yang dibuat dapat berjalan sesuai yang
diharapkan, maka akan dilakukan pengujian dan evaluasi sistem untuk setiap
tahapan-tahapan dalam pembuatan sistem. Dimulai dari pembacaan data dari
sensor, pengiriman data dari mikrokontroler arduino, dan aplikasi pada android
smartphone.
3.4.1 Pembacaan Data dari Sensor
Untuk mengetahui apakah mikrokontroler dapat membaca data dari
sensor-sensor yang terhubung dengan perangkat elektronik, maka akan dilakukan
pengujian dengan cara memberikan input sesuai dengan keadaan perangkat
elektronik. Kemudian akan diuji respon dari mikrokontroler ketika diberi inputan
3.4.2 Pengiriman Data dari Mikrokontroler Arduino
Untuk mengetahui apakah mikrokontrolerdapat mengirim data ke android
smartphone, maka akan dilakukan pengujian dengan cara menghubungkan
mikrokontroler dengan android smartphone. Kemudian data yang diterima oleh
android smartphone akan diuji.
3.4.3 Aplikasi pada Android Smartphone
Untuk menguji apakah aplikasi yang telah dibuat pada android smartphone
dapat menerima data yang dikirim oleh mikrokontroler dan melakukan perubahan
indikator pada aplikasi, maka akan dilakukan pengujian dengan cara
menghubungkan mikrokontroler dengan android smartphone. Kemudian akan
dilakukan pengiriman data dari mikrokontroler, data yang dikirim memiliki
format yang sama seperti data yang didapat dai sensor. Respon dari android
smartphone yang mendapatkan data dari komputer akan diuji.
3.4.4 Evaluasi Sistem Keseluruhan
smartphone, dan android smartphone mengeluarkan output suara sesuai dengan kondisi yang diinginkan, maka secara keseluruhan sistem ini sudah dikatakan baik.
56
4.1 Pengujian Pembacaan Sensor Piezoelectric
Pengujian pembacaan sensor piezoelectric dilakukan dengan memberikan inputan tekanan pada pad drum yang terdapat sensor piezoelectric.
4.1.1 Tujuan Pengujian Pembacaan Sensor Piezoelectric
Tujuan pengujian ini adalah untuk mengetahui nilai keluaran dari sensor
piezoelectric yang mempunyai tingkatan keluaran berdasarkan input ketukan yang di berikan pada sensor piezoelectric.
4.1.2 Alat Yang Digunakan Pada Pengujian Pembacaan Sensor Piezoelectric
1. Sensor piezoelectric
2. Osiloskop 3. Meteran 4. Pemberat
4.1.3 Prosedur Pengujian Pembacaan Sensor Piezoelectric 1. Menyalakan osiloskop.
2. Menghubungkan chanel osiloskop dengan sensor piezoelectric.
3. Memberikan inputan pada sensor pizoelectric dengan menjatuhkan sebuah pemberat dari ketinggian yang berbeda-beda.
Gambar 4.1 Pengujian Sensor Piezoelectric
4.1.4 Hasil Pengujian Pembacaan Sensor Piezoelectric
Setelah melakukan pengujian sesuai dengan prosedur diatas berikut adalah hasil yang didapat dari osiloskop dapat dilihat pada tabel 4.1.
Tabel 4.1 Hasil Pembacaan Sensor Piezoelectric
Ketinggian Pemberat
Berat pemberat (gram)
Amplitudo (V )
10 cm 40 0,27
20 cm 40 0,34
30 cm 40 0,41
40 cm 40 0,7
60 cm 40 1,48
70 cm 40 1,71
80 cm 40 1,91
90 cm 40 2
100 cm 40 2,7
110 cm 40 3,2
120 cm 40 3,5
130 cm 40 3,9
140 cm 40 4,4
150 cm 40 4,9
Dengan melihat hasil pengujian diatas, dapat disimpulkan bahwa keluaran dari sensor piezoelectric mempunyai tingkat keluaran berdasarkan pemberian input pada sensor. Semakin tinggi jarak pemberat dijatuhkan semakin besar tegangan yang dihasilkan oleh sensor piezoelectric.
4.2 Pengujian Pembacaan Sensor Switch
Pengujian pembacaan sensor switch dilakukan dengan memberikan inputan tekanan pada switch.
4.2.1 Tujuan Pengujian Pembacaan Sensor Switch
4.2.2 Alat Yang Digunakan Pada Pengujian Pembacaan Sensor Switch 1. Sensor switch
2. Mikrokontroler arduino uno 3. Kabel USB arduino uno 4. Komputer
4.2.3 Prosedur Pengujian Pembacaan Sensor Switch 1. Hidupkan komputer.
2. Hubungkan mikrokontroler arduino uno dengan komputer menggunakan kabel USB arduino.
3. Jalankan software arduino IDE, dan upload program pada arduino uno yang sudah terhubung pada komputer, berikut isi program pada arduino IDE:
else
{
Serial.println("HIGH");
}
delay(1000);
}
4. Setelah selesai upload program pada arduino uno, jalankan serial monitor pada arduino IDE untuk melihat keluaran dari sensor switch.
5. Mengamati keluaran sensor switch saat ditekan dan tidak ditekan.
4.2.4 Hasil Pengujian Pembacaan Sensor Switch
Setelah melakukan pengujian sesuai dengan prosedur diatas berikut adalah hasil yang didapat seperti yang di tunjukkan pada tabel 4.2 berikut:
Tabel 4.2 Hasil Pembacaan Sensor Switch.
Aksi Keluaran
Ditekan HIGH
Tidak ditekan LOW
Dengan melihat gambar 4.2 diatas, dapat disimpulkan bahwa sensor switch bekerja dengan baik, ketika di sensor ditekan keluaran yang dihasilkan adalah
high, dan ketika sensor tidak ditekan keluaran yang dihasilkan adalah low.
4.3 Pengujian Pengiriman Data Mikrokontroler Arduino
Pengujian pengiriman data serial mikrokontroler arduino dilakukan dengan mengirimkan sebuah data menuju komputer. Data yang dikirimkan berisi angka 0 sampai 30.
4.3.1 Tujuan Pengujian Pengiriman Data Mikrokontroler Arduino
Tujuan pengujian ini adalah untuk mengetahui apakah arduino dapat mengirimkan data menuju android smartphone dengan baik.
4.3.2 Alat Yang Digunakan Pada Pengujian Pengiriman Data Mikrokontroler Arduino
1. Mikrokontroler arduino uno 2. Software arduino IDE 3. Komputer
4. Android smartphone
5. Aplikasi USB serial monitor lite 6. Kabel USB ardunio
4.3.3 Prosedur Pengujian Pengiriman Data Mikrokontroler Arduino 1. Hidupkan komputer.
2. Hubungkan mikrokontroler arduino uno dengan komputer menggunakan kabel USB arduino.
3. Jalankan software arduino IDE dan upload program pada arduino yang sudah terhubung pada komputer, berikut isi program pada arduino IDE :
int i=0;
Serial.println("data selesai");
delay(5000);
i=0;
android smartphone mnggunakan kabel USB OTG dan disambung dengan kabel USB arduino.
5. Jalankan aplikasi serial monitor lite pada android smartphone. 6. Mengamati data yang dikirim arduino uno.
4.3.4 Hasil Pengujian Pengiriman Data Mikrokontroler Arduino
Setelah melakukan pengujian sesuai dengan prosedur diatas berikut adalah hasil yang didapat seperti yang di tunjukkan pada gambar 4.3 berikut:
Gambar 4.3 Data yang Diterima pada Android Smarphone dengan Menggunakan Aplikasi USB Serial Monitor Lite
android smartphone, dengan demikian arduino ini dapat bekerja dengan baik, dan dapat digunakan untuk pengujian tugas akhir.
4.4 Pengujian Aplikasi pada Android Smartphone
Pengujian penerimaan data pada android smartphone dilakukan dengan mengirimkan data dari arduino menuju android smartphone. Data yang dikirimkan bertipe string yang berisi angka “1” sampai “10” dan diawali dengan
karakter “A”, “B”, ”C” ,”D”, “E” “F”, “G”,“H”, atau “I” sebagai header, header
berguna untuk menentukan indikator pad - pad drum yang aktif pada aplikasi android. Angka “0” dan “1” merupakan data untuk indikator open/close serta
angka “1” sampai “10” adalah data untuk perubahan besar volume pada aplikasi
android smartphone.
4.4.1 Tujuan Pengujian Aplikasi pada Android Smartphone
Tujuan pengujian ini adalah untuk mengetahui apakah aplikasi yang telah dibuat pada android smartphone dapat menerima data yang dikirim oleh mikrokontroler arduino, sehingga indikator pada program android smartphone
dapat berjalan dengan baik.
4.4.2 Alat Yang Digunakan Pada Pengujian Aplikasi pada Android Smartphone
1. Mikrokontroler arduino uno 2. Android smartphone
5. Software arduino IDE 6. Komputer
4.4.3 Prosedur Pengujian Aplikasi pada Android Smartphone 1. Hidupkan komputer.
2. Hubungkan mikrokontroler arduino uno dengan komputer menggunakan kabel usb arduino.
3. Jalankan software arduino IDE, dan upload program pada arduino yang sudah terhubung pada komputer, berikut isi program pada arduino IDE:
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println("A1");
Serial.flush();
delay(2000);
Serial.println("B2");
Serial.flush();
delay(2000);
Serial.println("C3");
Serial.flush();
Serial.println("D4");
Serial.flush();
delay(2000);
Serial.println("E5");
Serial.flush();
delay(2000);
Serial.println("F6");
Serial.flush();
delay(2000);
Serial.println("A7");
Serial.flush();
delay(2000);
Serial.println("B8");
Serial.flush();
delay(2000);
Serial.println("C9");
Serial.flush();
delay(2000);
Serial.println("D10");
Serial.flush();
delay(2000);
Serial.println("G1");
delay(2000);
Serial.println("H1");
Serial.flush();
delay(2000);
Serial.println("I1");
Serial.flush();
delay(2000);
}
4. Lepaskan arduino yang terhubung dengan komputer, kemudian hubungkan arduino dengan android smartphone dengan menyatukan kabel USB OTG dan USB arduino, seperti yang di tunjukan pada gambar 4.4 berikut:
Gambar 4.4 Menyatukan Kabel USB OTG dan USB Arduino
5. Jalankan aplikasi pada android smartphone yang telah dibuat dengan software
Basic4Android.
4.4.4 Hasil Pengujian Aplikasi pada Android Smartphone
Setelah melakukan pengujian sesuai dengan prosedur diatas berikut adalah hasil yang didapat:
1. Mengirimkan data “A1”
Gambar 4.5 Perubahan Indikator Ride dan Volume Berdasarkan Data yang Telah Diterima
2. Mengirimkan data “B2”
3. Mengirimkan data string“C3”
Gambar 4.7 Perubahan Indikator Crash dan Volume Berdasarkan Data yang Telah Diterima
4. Mengirimkan data string“D4”
5. Mengirimkan data string“E5”
Gambar 4.9 Perubahan Indikator Snare dan Volume Berdasarkan Data yang Telah Diterima
6. Mengirimkan data string“F6”
7. Mengirimkan data string“A7”
Gambar 4.11 Perubahan Indikator Ride dan Volume Berdasarkan Data yang Telah Diterima
8. Mengirimkan data string“B8”
9. Mengirimkan data string“C9”
Gambar 4.13 Perubahan Indikator Crash dan Volume Berdasarkan Data yang Telah Diterima
10. Mengirimkan data string“D10”
11. Mengirimkan data string“G1”
Gambar 4.15 Perubahan Indikator Bass
12. Mengirimkan data string“H1”
13. Mengirimkan data string“I1”
Gambar 4.17 Perubahan Indikator Open untuk Hihat
Pada gambar-gambar diatas ditunjukkan respon dari aplikasi pada android
smartphone berjalan dengan baik setelah berhasil menerima data yang dikirim oleh mikrokontroler arduino. Data yang diterima dapat dilihat pada textbox yang terdapat pada aplikasi. berdasarkan header data yang diterima indikator pad-pad
pada aplikasi mengalami perubahan dan berdasarkan data angka indikator volume
juga mengalami perubahan.
4.5 Pengujian Keseluruhan Sistem
4.5.1 Tujuan Pengujian Keseluruhan Sistem
Pengujian ini dilakukan dengan menggabungkan seluruh alat yang akan digunakan pada sistem, sehingga dapat diketahui sistem yang telah dibuat dapat berjalan dengan baik.
4.5.2 Alat Yang Digunakan Pada Pengujian Keseluruhan Sistem 1. Mikrokontroler arduino uno
2. Drum kit elektrik yang telah dibuat 3. Android smartphone
4. Kabel USB OTG 5. Kabel USB arduino 6. Aplikasi sound meter 7. Pemberat
4.5.3 Prosedur Pengujian Keseluruhan Sistem 1. Download program ke arduino uno R3.
2. Hubungkan arduino yang ada pada drum kit dengan android smartphone.
3. Jalankan aplikasi pada android smartphone.
4. Klik tombol find pada aplikasi android untuk mendeteksi arduino yang telah tersambung.
5. Memberikan input tekanan pada pad-pad drum dengan menjatuhkan sebuah pemberat dari ketinggian 10 cm, 20 cm, 30 cm, 40 cm, dan 50 cm.