21. Eksperimen dengan Suara
Percobaan dan eksperimen dalam pembelajaran dengan Arduino Ardublock sangat penting untuk mengetahui lebih details dan jelas dalam penggunaan ardublock.
Bab ini membahas berbagai komponen yang dapat digunakan untuk menghasilkan suara, yang mencakup piezo disk, buzzer, dan speaker melalui pemrograman arduino dengan menggunakan ardublock.
21.1 Penggunaan Buzzer untuk Menghasilkan Suara
Buzzer adalah kotnponen berukuran kecil yang digunakan untuk mengeluarkan suara. Gambar 21.1 berikut ini akan memperlihatkan contohnya. Adapun pemasangannya ditunjukkan pada Gambar 21.2.
Gambar 21.1 Buzzer
Gambar 21.2 Rangkaian untuk menguji buzzer
Untuk menangani suara, ArduBlock menyediakan tiga blok, yang dicantumkan pada Tabel 21.1 berikut ini. Ketiga blok tersebut terletak di laci
Tabel 21.1 Blok-blok untuk menangani suara
sebagai alternatif untuk |
Untuk mempraktikkan penggunaan blok tone yang hanya melibatkan frekuensi silakan untuk membuat proyek baru bernama tone . abp. Lalu, susunlah blokseperti terlihat pada Gambar 21.3.
Gambar 21.3 Blok untuk percobaan menghasilkan suara
Pada contoh ini,
berfungsi untuk menghasilkan suara pada pin 8 dengan frekuensi sebesar 440 Hertz
(440 siklus per detik). Suara ini dipertahankan selama 100 milidetik melalui:
Adapun yang menghentikan suara adalah blok berikut:
Terakhir, blok
digunakan untuk tidak melakukan apapun selama 100 detik. Pada saat inilah tidak ada bunyi sama sekali.
Adapun untuk mempraktikkan penggunaan blok tone yang juga melibatkan waktu tunda, silakan untuk membuat proyek baru bernama tone2 . abp. Lalu, susunlah blok seperti terlihat pada Gambar 21.4.
Gambar 21.4 Blok penggunaan tone dengan durasi
Secara prinsip, penggunaan blok tone yang menggunakan waktu tunda adalah
seperti berikut:
Dengan demikian, pada contoh pada Gambar 21.4, suara dengan frekuensi 440 dihasilkan selama 100 milidetik dan terdapat keheningan selama 100 milidetik.
Untuk mempraktikkan penggunaan dua nada, silakan untuk membuat proyek baru bernama dua tone . abp. Lalu, susunlah blok seperti terlihat pada Gambar
Gambar 21.5 Blok untuk menghasilkan dua nada
21.2 Penggunaan Speaker
Untuk mendapatkan kualitas suara yang lebih baik, speaker perlu digunakan, Gambar 21.6 memperlihatkan contoh kotnponen ini, sedangkan Gambar 21.7 akan memperlihatkan contoh rangkaian yang melibatkan speaker. Potensiometer 1K digunakan untuk mengatur volume suara.
Gambar 21.6 Speaker
Gambar 21.7 Rangkaian untuk menguji speaker
Untuk mempraktikkannya, silakan untuk membuat proyek baru bernama speaker.abp. Lalu, susunlah blok seperti terlihat pada Gambar 21.8. Blok tersebut digunakan untuk memainkan berbagai nada.
Gambar 21.8 Blok untuk percobaan speaker
21.3 Penggunaan Piezo Disk
Piezo disk adalah komponen penghasil suara yang paling sederhana. Komponen ini bekerja atas dasar tekanan pada lempengan yang diubah menjadi isyarat listrik dan menghasilkan getaran atau suara. Gambar 21.9 menunjukkan contoh komponen ini.
Gambar 21.9 Piezo disk
Dalam praktik, piezo disk kadang kala dijual dalam kemasan modul. Gambar 21.10 memperlihatkan contoh modul piezo disk.
Gambar 21.10 Modul Piezo disk
Untuk menguji piezo disk, susunlah rangkaian seperti yang ditunjukkan pada Gambar 2.11. Jika modul piezo disk digunakan, buat hubungan seperti berikut:
- pin – dihubungkan ke pin GND Arduino;
- pin + dihubungkan ke pin 5V Arduino;
- pin S dihubungkan ke pin 3 Arduino.
Gambar 2.11 Rangkaian untuk percobaan piezo disk
Blok yang digunakan pada buzzer dapat digunakan untuk menguji piezo disk. jika rangkaian yang disusun sudah benar, akan terdengar suara lemah.
Selain berfungsi sebagai peranti keluaran, piezo disk dapat digunakan sebagai sensor pendeteksi ketukan. Sebagai contoh, Anda bisa menguji untuk kepentingan ini dengan menggunakan rangkaian pada Gambar 21.12.
Gambar 21.12 Rangkaian untuk menguji piezo disk sebagai sensor
Untuk mengujinya, silakan untuk membuat proyek baru bernama ketuk.abp. Lalu, susunlah blok seperti terlihat pada Gambar 21.13.
Gambar 21.13 Blok untuk menguji piezo disk sebagai sensor
Selanjutnya, isi variabel tersebut dikirimkan ke Serial Monitor. Lalu,
ditujukan untuk menyalakan LED yang terhubung ke pin 1 selama 2 detik ketika isi nilaiAnalog melebihi atau sama dengan nilai 100. Pada keadaan ini, nilai 100 berkedudukan sebagai nilai ambang yang akan menyalakan LED.
Gambar 21.14 memperlihatkan contoh peletakan piezo disk pada bahan anyaman kawat, sedangkan Gambar 21.15 menunjukkan contoh hasil pengujiannya.
Gambar 21.14 Contoh implementasi untuk pengujian piezo disk, yang diletakkan di atas bahan yang mudah bergetar
Gambar 21.15 Hasil pengujian piezo disk sebagai sensor
21.4 Sensor Suara
Sensor suara digunakan untuk mendeteksi keberadaan suara, Contoh
modul sensor ditunjukkan pada Gambar 21.16. Modul ini mengandung empat
pin, dengan fungsi masing-łnasing adalah seperti berikut:
- VCC: Pin ini perlu dihubungkan ke surnber tegangan 5V (Pin 5V Arduino).
- GND: Pin ini dihubungkan ke ground.
- A0: Pin ini łnenghasilkan nilai analog antara 0 dan 1023. Itulah sebabnya pin ini perlu dihubungkan ke pin analog Arduino.
- D0: Pin łnengeluarkan nilai digital 0 atau le Itulah sebabnya pin ini perlu dihubungkan ke pin digital Arduino.
Gambar 21.16 Modul sensor suara
Gambar 21.17 memperlihatkan rangkaian yang digunakan untuk melakukan percobaan sensor suara. Hubungan terpenting yang perlu diperhatikan:
- pin GND milik modul sensor dihubungkan ke pin GND Arduino;
- pin VCC milik modul sensor dihubungkan ke pin 5V Arduino;
- pin A0 milik modul sensor dihubungkan ke pin AO Arduino;
- pin D0 milik modul sensor tidak dihubungkan ke mana-mana.
Gambar 21.17 Rangkaian untuk percobaan dengan modul sensor suara
ArduBlock menyediakan blok berikut untuk menangani sensor suara:
Modul ini terdapat di laci
Untuk mengujinya, silakan untuk membuat proyek baru bernama suara.abp. Lalu, susunlah blok seperti terlihat pada Gambar 21.18.
Gambar 21.18 Blok untuk pengujian sensor suara
Gambar 21.19 menunjukkan hasil percobaan dengan sensor suara. Gambar bagian kiri memperlihatkan keadaan ketika tidak ada suara, sedangkan bagian kanan menunjukkan keadaan ketika mikrofon menangkap suara.
Gambar 21.19 Contoh hasil pengujian sensor suara
Di laci
Blok ini menghasilkan nilai terbesar yang didapat selama 20 milidetik di pin yang dipantau. Nilai terbesar inilah yang dianggap sebagai volume suara. Untuk menguji blok ini, silakan untuk membuat proyek baru bernama volsuara . abp. Lalu, susunlah blok seperti terlihat pada Gambar 21.20.
Gambar 21.20 Blok untuk pengujian Analog Sound Volume Sensor
Gambar 21.21 menunjukkan contoh hasil pengujian dengan mengatakan sesuatu di depan mikrofon.
Gambar 21.21 Contoh hasil pengujian Analog Sound Volume Sensor
21.5 Penggunaan Tepuk Tangan sebagai Perintah
Tepuk tangan dapat digunakan sebagai perintah? Ya, kenapa tidak? Dengan bertepuk tangan atau mungkin dengan berkata tertentu secara acak, Arduino akan menganggap sebagai suatu perintah. Untuk mempraktikkan hal ini, rangkaian pada Gambar 21.22 perlu disusun terlebih dahulu.
Gambar 21.22 Rangkaian untuk membuat tepuk tangan untuk menghidupkan atau mematikan LED
Untuk mewujudkannya, silakan untuk membuat proyek baru bernama tepuk . abp. Lalu, susunlah blok seperti terlihat pada Gambar 21.23.
Gambar 21.23 Blok untuk pengujian tepuk tangan
Pada proyek ini, variabel jumSampel digunakan untuk menentukan jumlah nilai di pin analog yang hendak direrata. Untuk menghitung nilai rerata isyarat, mula-mula variabel totallsyarat diisi dengan 0. Kemudian, melalui blok repeat, nilai total untuk 128 nilai analog diperoleh. Di dalam repeat,
digunakan untuk menghitung tinggi isyarat terhadap titik tengah (nilai 514). Fungsi abs digunakan karena tinggi isyarat bisa negatif terhadap titik tengah. Sebagaimana diketahui, isyarat suara itu merupakan perpaduan sejumlah gelombang sinus.
Jika angka 514 digunaan, maka anda perlu mengunggah proyek suara.abp terlebih dahulu. Lalu, atur skrup pemutar pada modul suara, sehingga angka 514 atau sekitar tersebut muncul di serial monitor Ketika tidak ada suara. |
Selanjutnya, nilai rerata isyarat dihitung melalui:
Untuk memantau nilai rerata isyarat di Serial Monitor, perintah berikut diperlukan:
Blok berikut digunakan untuk menentukan LED akan dihidupkan atau tidak:
Ambang yang digunakan untuk menyalakan atau mematikan LED adalah nilai rerata isyarat sebesar 15. Di dalam if/else, delay digunakan untuk menghilangkan efek tepukan yang panjang. Gambar 21.24 memperlihatkan nilai rerata isyarat pada keadaan tidak ada tepukan (gambar sebelah kiri). Gambar sebelah kanan menunjukkan nilai rerata isyarat ketika sebuah tepuk tangan diberikan. Untuk mengatur kepekaan terhadap tepuk tangan, Anda bisa mengubah nilai 15 ini menjadi lebih besar atau sedikit lebih kecil.
Gambar 21.24 Nilai di Serial Monitor untuk memantau nilai rerata isyarat
21.6 Perekam Suara
Jika kita ingin merekam suara misalnya untuk sapaan seperti “Assalamualaikum. selamat datang!” atau sekadar ” Halo. Apa kabar?”. Anda bisa memanfaatkan modul perekam suara ISD1820. Contoh modul ini ditunjukkan pada Gambar 21.25.
Gambar 21.25 Modul perekam suara ISD1820
Modul ini mempunyai enam pin. Fungsi masing-masing seperti berikut:
- VCC: Pin ini dapat dihubungkan ke sumber tegangan 3V hingga 5V.
- GND: Pin ini dihubungkan ke ground.
- FT (Feed Through);
- P-L (PLAYL): Jika pin ini bernilai HIGH, suara akan dimainkan sampai pin bernilai LOW.
- P-E (PLAYE): Jika pin ini berubah dari LOW ke HIGH, suara akan dimainkan dari awal hingga akhir.
- REC: Suara akan direkam ketika pin ini bernilai HIGH.
21.6.1 Pengujian Perekam Suara Tanpa Arduino
Pengujian terhadap modul ISD1820 dapat dilakukan tanpa melibatkan ArduBlock Pertama-tama, hubungkan pin VCC ke pin 5V Arduino dan pin GND ke salah satu Pin GND milik Arduino. Kemudian, prosedur untuk merekam suara dilakukan dengan cara seperti berikut:
- Tekan tombol REC dan tahan.
- Rekam suara Anda di depan mikrofon.
- Lepaskan tombol REC.
Untuk memainkan suara, tekan tombol PLAYE sekali. Dengan cara seperti ini, suara yang terekam akan dimainkan dari awal hingga akhir. Kalau hanya ingin mendengarkan suara ketika tombol ditekan, tekanlah tombol PLAYL.
21.6.2 Pengujian Perekam Suara dengan Arduino
Untuk melakukan pengujian dengan ArduBlock, silakan untuk menyusun rangkaian dengan mengikuti petunjuk dalam Tabel 21.1. Contoh hasil penyusunan rangkaian ditunjukkan seperti terlihat pada Gambar 21.25.
Tabel 21.1 Penyusunan rangkaian untuk percobaan ISD1820
Gambar 21.26 Contoh penyusunan rangkaian untuk menguji modul ISD1820
Selanjutnya, proyek baru bernama i sd . abp perlu dibuat. Blok yang perlu disusun ditunjukkan dalam Gambar 21.27 dan Gambar 21.28.
Gambar 21.27 Blok untuk pengujian modül ISD1820 (bagian pertama)
Gambar 21.28 Blok untuk pengujian modul ISD1820 (bagian kedua)
Proyek isd melibatkan empat subrutin, Subrutin rekamSuara menangani perekaman suara, Perekaman dilakukan selama 10 detik. Perekaman diawali oleh perintah:
Sebagaimana telah disinggung di depan, modul ISD1820 mempunyai kemampuan menyimpan suara hingga 10 detik. Nah, hal ini dituangkan dengan menyertakan blok berikut:
Setelah itu, pin 2 harus dibuat menjadi LOW. Hal ini dilakukan oleh:
Subrutin play e digunakan untuk memainkan suara yang terekam dari awal hingga akhir. Untuk memulai suara dimainkan, pin yang terhubung ke P-E perlu dibuat menjadi HIGH. Hal ini dilakukan oleh:
Keadaan HIGH ini cukup dipertahankan selama 500 milidetik. Oleh karena itu, terdapat dua perintah berikut:
Namun, untuk mempertahankan keadaan hingga suara berakhir, blok berikut diberikan
Subrutin play 1 digunakan untuk memainkan suara selama 5 detik. Hal ini dilakukan dengan mula-mula membuat pin yang terhubung ke P-L dibuat menjadi HIGH. Perintah yang digunakan untuk keperluan ini:
Penentuan 5 detik dilakukan oleh:
Untuk menghentikan suara dimainkan, pin yang terhubung ke P-L dibuat menjadi LOW. Hal ini djlakukan oleh:
subrutin ft digunakan untuk membuat suara eksternal yang diambil dari mikrofon diperdengarkan. Pada contoh ini, suara akan diperdengarkan selama 10 detik. Itulah sebabnya, deretan blok yang digunakan adalah seperti berikut:
|
Contoh pengujian modul ini ditunjukkan pada Gambar 21.29. Mula-mula, aktifkan serial Monitor dari keadaan tertutup. Kemudian, saat muncul pesan “Yak, mulai berbicara selama 10 detik!”, berbicaralah apa saja selama 10 detik. Suara Anda akan direkam. Selanjutnya, suara Anda akan diputar ulang. Terakhir, efek “feed through” diperdengarkan. Anda akan mendengar suara berderau selama 10 detik.
Gambar 21.29 Hasil pengujian modul ISD1820
21.7 Penyapa Otomatis
Suara yang terekam pada peranti perekam suara di depan dapat dimanfaatkan untuk memberikan sapaan ketika sesuatu (tidak selalu orang) yang berada di depan pada jarak yang dekat terhadap sensor jarak ultrasonik. Untuk mewujudkan hal ini, Anda perlu menyusun rangkaian seperti berikut:
- pin P-L modul ISD1820 dihubungkan ke pin 3 Arduino;
- pin VCC modul ISDI 820 (lihubungkan ke pin 5V Arduino;
- pin GND modul ISD1820 dihubungkan ke pin GND Arduino;
- pin VCC modul ultrasonik dihubungkan kc pin 5V Arduino;
- pin GND modul ultrasonik dihubungkan ke pin GND Arduino;
- pin Trig modul ultrasonik dihubungkan ke pin 8 Arduino;
- pin Echo modul ultrasonik dihubungkan ke pin 9 Arduino.
Untuk mempraktikkan penggunaan ketiga blok yang dibahas di depan, silakan untuk membuat proyek baru bernama sapaan . abp. Lalu, susunlah blok seperti terllhat Pada Gambar 21.30.
Gambar 21.30 Blok untuk menangani sapaan otomatis ketika sesuatu berada di depan sensor ultrasonik
Pada proyek ini, blok
digunakan untuk mendapatkan jarak objek yang berada di depan sensor ultrasonik, yang dihubungkan ke pin 8(Trig) dan 9(Echo).Hasilnya disimpan di variabel jarak.
Blok ini digunakan untuk menampilkan isi variabel jarak di Serial Monitor. Blok berikut digunakan untuk menangani pemutaran suara di modul ISD1820:
Pemutaran suara hanya dilakukan jika nilai jarak lebih dari 0 dan kurang dari atau sama dengan 25cm.Pada blok di atas, setelah suara dimainkan, blok berikut akan membuat pemeriksaan terhadap objek akan dilakukan setelah 60 detik berikutnya: