BAB III PERANCANGAN ALAT DAN PROGRAM
3.1
Blok Diagram dan Flow Chart Rangkaian Untuk merealisasikan, merancang dan membuat sistem penerangan dengan
pengontrol otomatis menggunakan Voice Recognition berbasis arduino dan Easy VR Module, maka langkah pertama yang dilakukan adalah membuat Blok Diagram dan Flow chart prinsip kerja dari rangkaian perancangan alat Voice Recognition.
LAMPU RELAY
EASY VR MODULE
ARDUINO DUEMILANOVE
Gambar 3.1 Diagram Blok Rangkaian Pengontrol Lampu Penerangan
32
33
Dari diagram blok diatas dapat dijelaskan bahwa yang pertama adalah suara, suara ini adalah media yang digunakan untuk memerintahkan apakah objek akan bekerja atau tidak dengan terlebih dahulu merekam suara kita untuk perintah yang akan diberikan kepada modul Easy VR Modul tersebut. Setelah terbaca oleh sensor dan di masukan dalam arduino untuk diproses didalamnya.
Gambar 3.2 Flow Chart prinsip kerja rangkaian Voice Recognition
34
3.2
Realisasi Rangkaian Langkah berikutnya adalah merealisasikan rangkaian setiap blok,
Rangkaian-rangkaian yang akan dibuat yaitu :
Rangkaian Easy VR Module dengan Arduino dan Grove Relay
Aplikasi program Arduino IDE (Integrated Development Environment)
Rangkaian Power Supply yang terhubung dengan Bohlam atau lampu
3.2.1 Rangkaian EasyVR Module EasyVR Module adalah modul pengenalan suara multi fungsi, dengan rancangan yang mudah ditampatkan, kuat, murah dan cocok untuk berbagai aplikasi yang berhubungan dengan sistem pengenalan suara. EasyVR Module dapat digunakan dengan host apasaja dengan antarmuka UART yang didukung tegangan berkisar 3.3V – 5V, seperti PIC dan Arduino board. EasyVR Module adalah “slave” dari modul komunikasi via asynchronous serial interface (UART interface), dengan fitur sbb:
Bound Rate
: 9600 (default), 19200, 38700, 57600, 11520
Frame
: 8 Data bits, No parity, 1 Stop bit
Line penerima input adalah ERX, dan pengirim data output adalah ETX. Microphone yang terdapat pada EasyVR Module adalah jenis omnidirectional electret condenser microphone (Horn EM9745P-382):
Sensitivity -38db (0db=1 V/Pa @1 kHz)
Load Impedance 2.2K
Operating Voltage 3V
Hampir semua respon frekuensi berkisar antara 100Hz-20kHz
35
Gambar 3.3 EasyVR Module Pada komunikasi interface EasyVR Module menggunakan 2 pin dari hostnya, dan tersedia juga beberapa pin I/O cadangan yang bisa digunakan untuk beberapa kegunaan dasar, seperti menghidupkan LED. Pin I/O tersebut (IO1-IO3) memiliki rating 3V dari power supply bawaannya, jika ada interface yang memiliki rating power supply yang berbeda maka dapat mengadopsi beberapa solusi dibawah ini: a.
Pin digunakan sebagai Output ;
Semua pin I/O adalah input dengan power internal yang lemah, jadi harus direncanakan dengan benar sebelum menggunakannya sebagai output (lihat contoh kode penggunaan I/O pin).
b.
Pin digunakan sebagai Input ; Semua pin I/O adalah input dengan power internal yang lemah, jadi
sebelum menggunakannya maka rencanakanlah dengan cermat.
36
Semua pin ini diasumsikan untuk pin EasyVR Module yang telah dikonversikan dengan internal pull-up (nilai komponen pasif dapat disesuaikan untuk kebutuhan pull-up lemah atau kuat). Dengan internal pull-up yang di disable maka pin dapat digunakan untuk kondisi dengan impedansi besar, contoh pada mensimulasikan tri-state atau open-drain port output.
Modul EasyVR Module sudah terdapat bootloader yang memungkinkan untuk mengupdate firmware dan tabel suara baru pada memorinya. Mode boot diaktifkan dengan memberikan signal HIGH pada /XM, dengan power on atau reset. Hal ini dapat dengan mudah dilakukan dengan menambahkan jumper atau switch yang memberikan signal pada pull-up resistor. Download firmware dengan power dalam keadaan menyala dengan jumper yang terhubung, dan jangan pindah posisi jumper jika modul sudah dalam keadaan on, dan baru dapat dirubah jika modul sudah dalam keadaan reset (/RST low).
Cara untuk menghubungkan EasyVR Module ke Arduino dapat dilakukan dengan dua cara, yaitu : 1.
Bridge Mode Modul dapat dikontrol dengan menggunakan software serial librari, dan
terhubung dengan serial commander dikomputer, dengan konfigurasi yang sama. Bridge mode adalah salah satu koneksi yang sangat
mudah dikoneksikan
dengan mikrokontroler ke komputer. Versi terakhir EasyVR Module (3.1.X) dan librari Arduino (1.1) tidak membutuhkan lagi fitur Bridge Mode, jadi semua bisa bekerja pada Arduino board.
37
Gambar 3.4 Menghubungkan EasyVR Module ke Arduino Duemilanove dengan sistem bridge mode 2.
Adapter Mode Modul Arduino dapat digunakan sebagai adaptor USB dengan koneksi
pada posisi reset, dan posisi ini harus dirubah kembali begitu ingin megontrol modul dari mikrokontroler. Sistem koneksi ini memiliki keuntungan saat terhubung dengan Arduino yang memiliki on-board USB atau serial adapter yang tidak membutuhkan pin input cadagan untuk masuk ke bridge mode dan juga tidak bergantung pada mikrokontroler EasyVR untuk melakukan perintah dari software antara pin masukan, sehingga dapat digunakan untuk memeriksa hardware pada saat terjadi masalah dikoneksi.
38
Gambar 3.5 Menghubungkan EasyVR Module ke-Arduino Duemilanove dengan sistem Adapter mode
3.2.2
Perangkat Lunak EasyVR Module Berikut adalah langkah-langkah sebelum menggunakan EasyVR Module
ke Arduino : 1.
Hubungkan EasyVR Module ke Arduino seperti yang telah diuraikan sebelumnya.
2.
Hubungkan mikrofon yang telah disertakan dengan EasyVR Module ke konektor MIC (J3).
3.
Salin (copy) librari EasyVR Module ke folder librari Arduino yang ada dikomputer.
4.
Kemudian hubungkan Arduino kekomputer melalui USB kabel.
39
Gambar 3.6 Cara memindahkan librari EasyVR ke librari Arduino 5.
Instal EasyVR Commander 3.4.10 dengan mengikuti petunjuk penginstalan sampai dengan selesai.
Gambar 3.7 Tampilan jendela instalasi program EasyVR Commander 6.
Buka program EasyVR Commander 4.3.10 yang telah terinstal dengan benar.
40
Gambar 3.8 Tampilan jendela EasyVR Commander Versi 4.3.10 7.
Hubungkan Arduino ke EasyVR Module dengan benar, sesuai gambar 3.11
8.
Setelah Arduino tersambung dengan EasyVR Module, klik icon tool connect.
Gambar 3.9 Tampilan tombol connect
41
9.
Setelah diklik tombol connect maka seharusnya akan terdapat tulisan connected to EasyVR on COMX, seperti gambar berikut :
Gambar 3.10 Tampilan EasyVR Module telah tersambung dengan EasyVR Commander 10.
Setelah EasyVR Module tersambung dengan EasyVR Commander,
langkah berikutnya adalah membuat sample suara yang akan digunakan sebagai perintah. Perekaman suara dapat dilakukan dengan cara merekam suara pada EasyVR Commander. Klik icon tool “add command”, kemudian buat label sesuai dengan keinginan. Klik icon tool “train command”, dan lakukan perekaman melalui mikrofon yang terdapat pada EasyVR Module dengan mengikuti instruksi yang terdapat pada jendela tampilan EasyVR Commander, lakukan perekaman suara sesuai dengan label yang telah diisi dan Lakukan perekaman hingga dua kali perekaman.
42
Gambar 3.11 Tampilan instruksi perekaman pada EasyVR Commander 11.
Setelah melakukan perekaman suara dengan baik, maka langkah
selanjutnya adalah men-Generate Code pada icon tool di EasyVR Commander, kemudian simpan hasil dari Generate Code tersebut pada folder yang kita inginkan, seperti gambar berikut :
Gambar 3.12 Tampilan jendela letak penyimpanan Generate Code
43
12.
Hasil dari Generate Code adalah berbentuk bahasa IDE Arduino,
berekstensi .pde. sehingga untuk mengedit dan meng-upload ke Arduino, kita harus membuka IDE Arduino. 13.
Setelah proses editing selesai, misalnya dengan penambahan fungsi
LCD dan fungsi lain yang dikehendaki, untuk mengecek apakah proses editing benar, kita perlu mengeklik Icon tool Verify pada IDE Arduino.
Gambar 3.13 Tampilan tombol Verify pada IDE Arduino 14.
Setelah proses Verify selesai dilakukan maka langkah selanjutnya
adalah meng-upload program tersebut ke modul Arduino dengan mengklik Icon tool upload pada IDE Arduino.
Gambar 3.14 Tampilan tombol Upload pada IDE Arduino
3.2.3
Aplikasi Program Arduino IDE (Integrated Development Environment) Setelah proses rangkaian selesai dibuat langkah selanjutnya adalah
membuat program pada aplikasi program Arduino IDE (Integrated Development Environment). Buka program aplikasi Arduino IDE seperti gambar diberikut :
44
Gambar 3.15 Program Arduino IDE (Integrated Development Environment)
3.3
Bahasa Program Arduino IDE yang digunakan Void (Setup)
Fungsi setup() hanya di panggil satu kali ketika program pertama kali di jalankan. Ini digunakan
untuk pendefinisian mode pin atau
memulai komunikasi serial. Fungsi setup() harus di ikut sertakan dalam program walaupun tidak ada statement yang di jalankan.
45
Contoh : void setup() { pinMode(13,OUTPUT); // mengset ‘pin’ 13 sebagai output }
Loop
Setelah melakukan fungsi setup() maka secara langsung akan melakukan fungsi loop() secara berurutan dan melakukan instruksiinstruksi yang ada dalam fungsi loop(). Contoh : void loop() { digitalWrite(13, HIGH); // nyalakan ‘pin’ 13 delay(1000);
// pause selama 1 detik
digitalWrite(13, LOW); // matikan ‘pin’ 13 delay(1000);
/// pause selama 1 detik
}
Serial begin ()
Statement ini di gunakan untuk mengaktifkan komunikasi serial dan mengset baudrate. Contoh : void setup() { Serial.begin(9600);
//open serial port and set baudrate 9600 bps
}
While Loop Fungsi While Loop akan terus mengulang baris perintah yang ada dalam bracket sampai ekspresi sebagai kondisi pengulangan bernilai salah.
46
Contoh : var = 0; while(var < 200){ // do something repetitive 200 times var++; }
Switch Case Seperti halnya if statemen, switch case digunakan untuk mengontrol alir dari program yang membolehkan beberapa parameter yang berbeda untuk diekskusi dalam kondisi yang bervariasi. Contoh : switch (var) { case 1: //do something when var equals 1 break; case 2: //do something when var equals 2 break; default: // if nothing else matches, do the default // default is optional }
3.4
Rangkaian relay dengan arduino. Relay adalah komponen elektronika berupa saklar elektronik yang
digerakkan oleh arus listrik. Secara prinsip, relay merupakan tuas saklar dengan lilitan kawat pada batang besi (solenoid) di dekatnya. Ketika solenoid dialiri arus listrik, tuas akan tertarik karena adanya gaya magnet yang terjadi pada solenoid sehingga kontak saklar akan menutup. Pada saat arus dihentikan, gaya magnet
47
akan hilang, tuas akan kembali ke posisi semula dan kontak saklar kembali terbuka. Relay biasanya digunakan untuk menggerakkan arus/tegangan yang besar (misalnya peralatan listrik 4 ampere AC 220 V) dengan memakai arus/tegangan yang kecil (misalnya 0.1 ampere 12 Volt DC). Relay yang paling sederhana ialah relay elektromekanis yang memberikan pergerakan mekanis saat mendapatkan energi listrik. Secara sederhana relay elektromekanis ini didefinisikan sebagai berikut : • Alat yang menggunakan gaya elektromagnetik untuk menutup (atau membuka) kontak saklar. • Saklar yang digerakkan (secara mekanis) oleh daya/energi listrik.
Gambar 3.16 Rangkaian Arduino dengan Relay
48
Gambar 3.17 Skema Grove Relay Dalam pemakaiannya biasanya relay yang digerakkan dengan arus DC dilengkapi dengan sebuah dioda yang di-paralel dengan lilitannya dan dipasang terbalik yaitu anoda pada tegangan (-) dan katoda pada tegangan (+). Ini bertujuan untuk mengantisipasi sentakan listrik yang terjadi pada saat relay berganti posisi dari on ke off agar tidak merusak komponen di sekitarnya. Konfigurasi dari kontak-kontak relay ada tiga jenis, yaitu: • Normally Open (NO), apabila kontak-kontak tertutup saat relay dicatu • Normally Closed (NC), apabila kontak-kontak terbuka saat relay dicatu Change Over (CO), relay mempunyai kontak tengah yang normal tertutup, tetapi ketika relay dicatu kontak tengah tersebut akan membuat hubungan dengan kontak-kontak yang lain. Penggunaan relay perlu memperhatikan tegangan pengontrolnya serta kekuatan relay men-switch arus/tegangan. Biasanya ukurannya tertera pada body relay. Misalnya relay 12VDC/4 A 220V, artinya tegangan yang diperlukan
49
sebagai pengontrolnya adalah 12Volt DC dan mampu men-switch arus listrik (maksimal) sebesar 4 ampere pada tegangan 220 Volt. Sebaiknya relay difungsikan 80% saja dari kemampuan maksimalnya agar aman, lebih rendah lagi lebih aman.Relay jenis lain ada yang namanya reedswitch atau relay lidi. Relay jenis ini berupa batang kontak terbuat dari besi pada tabung kaca kecil yang dililitin kawat. Pada saat lilitan kawat dialiri arus, kontak besi tersebut akan menjadi magnet dan saling menempel sehingga menjadi saklar yang on. Ketika arus pada lilitan dihentikan medan magnet hilang dan kontak kembali terbuka (off).
Gambar 3.18 Program Relay
50
Modul relay ini dapat digunakan sebagai switch untuk menjalankan berbagai peralatan elektronik. Misalnya Lampu listrik, Motor listrik, dan berbagai peralatan elektronik lainnya.
Kendali ON / OFF switch (relay), sepenuhnya ditentukan oleh nilai output sensor, yang setelah diproses Mikrokontroler akan menghasilkan perintah kepada relay untuk melakukan fungsi ON / OFF.
Termasuk dalam paket ini:
Kit Relay untuk peralatan listrik AC / DC
Kabel pin dan konektor
Selanjutnya hubungkan Arduino Duemilanove ke komputer dengan menggunakan kabel USB (Universal Serial Bus). Lalu kita dapat mengetikkan program pada lembar kerja Sketch kemudian compile untuk mengecek atau memeriksa apakah kode sudah benar sebelum dikirim ke papan Arduino, program tersebut dapat diketik seperti dibawah ini :
//Arduino Sample Code //www.DFRobot.com //Last modified on 14th March 2012 by HJS //This code has been updated to work with the sample code provided in the Wiki int Relay = 3; void setup() { pinMode(13, OUTPUT);
//Set Pin13 as output
51
digitalWrite(13, HIGH);
//Set Pin13 High
pinMode(Relay, OUTPUT);
//Set Pin3 as output
} void loop() { digitalWrite(Relay, HIGH); //Turn off relay delay(2000); digitalWrite(Relay, LOW);
//Turn on relay
delay(2000); }
3.5
Program Pengontrol Lampu Penerangan Menggunakan Suara Selanjutnya adalah menghubungkan semua komponen yang akan kita
gunakan untuk membuat Voice Recognition pengontrol sebuah lampu, yaitu Arduino Duemilanove, Grove Relay, EasyVR Module, Fitting Lampu, dan lampu sebagai objeknya ke komputer dengan menggunakan kabel USB (Universal Serial Bus). Lalu kita dapat memasukan (upload) program pada Modul Arduino.