Arduino

How To Play Audio Directly From Your Arduino!

Dari segi kekuatan pemrosesan, Arduino memang terbilang minim: 16 MHz clock, 32 KB flash memory, 2 KB RAM (Arduino UNO). Meski minim kemampuan pemrosesan, arduino ternyata mampu melakukan hal-hal ajaib yang normalnya dikerjakan oleh development board papan atas. Hal ajaib ini salah satunya adalah memainkan file audio langsung dari memory flash-nya. Ntaps!

Normalnya supaya bisa memainkan file audio, Arduino harus dipasangi shield tambahan, seperti SD Card shield, atau boleh jadi shield audio player. Sehingga dengan begitu arduino hanya bertugas mengontrol audio playernya saja.

Namun bagi orang yang gemar eksperimen dan malas mengeluarkan uang, Arduino tidak boleh dibiarkan “nganggur” hanya mengatur-atur saja. Arduino harus dipekerjakan dengan keras!

Nah, untuk membuat arduino bisa memainkan file audio, kita bisa mengikuti tutorial yang disediakan di link berikut: http://playground.arduino.cc/Code/PCMAudio. Di bagian akhir disebutkan bahwa kita harus menyediakan file bernama sounddata.h yang berisi file audio kita. Nah loh, file header C kok isinya data audio?

Tenang, pada Arduino suara diproduksi menggunakan PWM (Pulse Width Modulation) yang frekuensinya bisa diatur dengan nilai 0-255. File header sounddata.h berisi urutan angka-angka yang nantinya dipakai untuk menghasilkan suara yang diinginkan.

Untuk menghasilkan angka-angka tersebut ternyata tidak sederhana juga, kita perlu program bernama wav2c. Program tersebut bertugas mengubah file audio wav yang kita miliki menjadi urutan angka-angka yang siap diupload pada Arduino.

Selain program wav2c, kita juga membutuhkan program sox. Sox ini berguna untuk memotong durasi file audio menjadi maksimal 10000 sampel (hanya beberapa detik). Oke, sebagai wrap-up, dan agar artikel ini mudah diikuti, saya sajikan tutorialnya dalam bentuk step by step:

  1. Pastikan sudah menginstalasi Audacity pada komputer Anda.
  2. Download program soxwav2c yang telah saya kostumasi khusus untuk Arduino di sini (link). Ekstrak ditempan yang aman.
  3. Buka audacity, pastikan Project Rate pada bagian kiri bawah diset pada 8000 Hz. Lakukan rekaman singkat. Dalam contoh ini saya coba merekam suara ucapan ‘test’:

    Project rate
    window test

  4. Potong file audio di bagian yang diperlukan saja.
    delete track
  5. Ubah tipe audio menjadi mono, dan hapus salah satu channel-nya:
    to mono
  6. Selanjutnya export file wav tersebut sebagai unsigned 8-bit PCM dan simpan di folder yang sama dengan program soxwav2c tadi.
    save
  7. Drag and drop file audio hasil export tadi ke convert.bat pada folder soxwav2c. Akan dihasilkan file sounddata.h
  8. Buat sketch baru pada Arduino IDE dengan program mengikuti http://playground.arduino.cc/Code/PCMAudio. Letakkan file sounddata.h bersama dengan file .ino yang dibuat pada folder yang sama.
  9. Hubungkan speaker biasa ke Pin 11 dan GND arduino. Akan terdengar suara ‘test’ setiap kali Arduino di-reset.

Selamat mencoba!

 

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s