MP3S – MP3 dan Wav Player Serial
Bengkel-Elektro, www.bengkel-elektro.com30 Januari 2016 Fitur:
Membaca file MP3 atau wav yang tersimpan didalam memori microSD (terformat FAT32) dan memutar (membangkitkan sinyal audio) untuk file tersebut.
Sinyal audio berjenis stereo yang volumenya dapat diatur. Sinyal audio ini dapat dikirim secara langsung ke headphone, speaker aktif atau audio amplifier.
Setelah diberi catu daya, MP3S secara otomatis memutar file yang sedang ditunjuk didalam memory microSD
Dapat dikontrol oleh host (mikrokontroler atau komputer) dengan cara mengirimkan instruksi melalui komunikasi serial UART (TTL, 19200 bps, 8 bit data, tanpa parity).
Instruksi yang disediakan meliputi: play, stop, next, previous, pause, resume, repeat, change volume, make play-list, play the list, get list of file, dll.
Penjelasan Umum
MP3S adalah kit elektronik yang secara khusus dirancang untuk membaca file mp3 atau wav yang tersimpan didalam memori microSD terformat FAT32, dan kemudian menghasilkan sinyal audio stereo. Sinyal audio ini dapat secara langsung diberikan ke headphone, audio amplifier or speaker aktif.
Contoh Aplikasi:
Bel sekolah atau bel pabrik Pengingat waktu sholat
Jam digital dengan output suara
Perangkat pengatur antrian di Bank/Kantor Alat peraga pembelajaran berbasis suara dan lain sebagainya.
Perangkat keras dan Pin-pin
PCB MP3S berukuran 2.4 cm x 3.1 cm. Soket microSD berjenis push-push dan terbuat dari bahan iron. Karena itu, cara memasang memori microSD ialah dengan memasukkan microSD ke dalam soket kemudian tekan hingga terkunci. Untuk melepas memori microSD dari soketnya juga dilakukan dengan menekan microSD hingga penguncinya bebas lalu ambil microSD dari soketnya. Hal penting yang pelu diperhatikan ketika memasukkan memori microSD ke dalam soket ialah pin-pin microSD harus menghadap ke PCB MP3S.
MP3S dilengkapi dengan lubang-lupang tempat memasang dua buah connector. Konektor pertama terdiri atas tiga pin, bernama Out (L, R dan Gnd). Sedangkan konektor kedua terdiri atas 4 pin, bernama RX, TX, 0V and +5V. Pin RX dan TX adalah pin-pin untuk komunikasi serial UART, masing-masing untuk menerima dan mengirim sinyal serial UART.
Bentuk fisik dan letak pin-pin MP3S ditunjukkan dalam Figure 1.
(a) Tampak depan (c) tampak belakang
Gambar 1. Bentuk fisik dan letak pin-pin MP3S.
Kegunaan pin-pin MP3S dijelaskan dalam Tabel 1.
Tabel 1. Kegunaan pin-pin MP3S. Pin Kegunaan
Rx Menerima instruksi dari host (microcontroller/computer) Tx Mengirim respon ke host (microcontroller/computer) 0V Menerima ground atau catu daya 0V
5V Menerima catu daya DC +5V
Gnd Untuk menghubungkan Gnd MP3S dengan Gnd headphone atau audio amplifier.
OUT (L, R dan Gnd)
Untuk menghubungkan sinyal audio keluaran MP3S ke input dari headphone atau audio amplifier.
Pin Gnd ada di antara pin L dan R. Jika audio keluaran kit ini hendak disambung ke headphone, pin Gnd ini harap disambung ke pin common atau gnd headpone. Tetapi jika audio keluaran kit ini hendak disambung ke amplifier, jangan sambung pin Gnd ini ke Gnd amplifier tetapi sambung pin Gnd kit (yaitu yang berada dekat dengan pin 5V) ke Gnd Line in amplifier.
Jumper pad berlabel I2C-EN (lihat Gambar 1) digunakan untuk mengaktifkan komunikasi I2C. Fitur ini hanya tersedia pada MP3S versi custom. Jika MP3S yang Anda gunakan memiliki fitur ini dan diaktifkan (yaitu dengan cara menghubung singkat jumper pad I2C-EN) maka MP3S dapat menerima instruksi melalui pin SCL and SDA. Jika MP3S yang Anda gunakan tidak memiliki fitur ini maka pin SCL akan berfungsi sebagai pin RX dan pin SDA akan berfungsi sebagai pin TX.
Menghubungkan MP3S
Supaya bekerja dengan baik, MP3S harus disambung dengan benar. Jika Anda berharap MP3S akan memutar file mp3/wav secara terus menerus maka Anda tidak perlu menghubungkan MP3S ke host (mikrokontroler/komputer) karena MP3S secara otomatis akan memutar file mp3/wav pertama yang didapati di dalam memori microSD setelah ia mendapat catu daya. Dalam mode ini, apabila MP3S telah selesai memutar sebuah file maka MP3S akan memutar file berikutnya dan seterusnya. Jika MP3S telah selesai memutar file terakhir yang terdapat didalam memori microSD maka MP3S akan melanjutkan memutar file pertama. MP3S menghasilkan sinyal audio stereo dan mengirimnya ke pin berlabel Out sehingga apabila Anda menghubungkan pin ini (yaitu L, R dan Gnd) ke headphone atau audio amplifier maka Anda akan dapat mendengar audio dari file mp3/wav yang sedang diputar. Jika Anda ingin mengontrol MP3S menggunakan mikrokontroler atau komputer, sehingga Anda dapat melakukan play/stop, pause/resume, dan change volume level, Anda perlu menghubungkan MP3S ke host (mikrokontroler) seperti ditunjukkan dalam Gambar 2.
Gambar 2. Sambungan MP3S ke host melalui serial UART.
Pin Audio terdiri atas L, R dan Gnd. Pin L mengeluarkan sinyal left dan pin R mengeluarkan sinyal right audio stereo. Jangan menghubung singkat pin L dengan R. Jika ingin menggabungkan kedua sinyal left dan right sehingga dapat dimasukan ke amplifier mono, siapkan dua buah kapasitor elco 10uF/10V lalu sambung pin L ke kutup negatip kapasitor elco 10uF yang pertama, demikian juga sambungkan pin R ke kutup negatip kapasitor elco 10uF yang kedua. Selanjutnya sambung kutup positip kedua elco tersebut ke sisi masukan amplifier mono. Perhatikan jangan menghubungkan pin Gnd (tengah antara L dan R) ke Gnd Amplifier karena pin ini disediakan untuk Gnd headphone. Apabila menggunakan amplifier sambungkan Gnd kit (terletak dekat dengan 5V) ke Gnd audio input amplifier.
Pin RX MP3S perlu disambung ke pin TX host (microkontroller) dan pin TX MP3S perlu disambung ke pin RX host (microkontroller). Microcontroller dapat diganti dengan komputer dan USB2TTL (yaitu sebuah konverter USB to serial COM). Pengontrolan MP3S menggunakan komputer membutuhkan program terminal, contohnya Hyperterm, PuTTY, dll, atau program lain yang Anda buat sendiri.
Daftar Instruksi
Jika Anda telah menghubungkan MP3S ke host (mikrocontroller atau komputer) secara benar maka Anda dapat mengonfigurasi atau mengontrol kerja MP3S dengan cara mengirim instruksi-instruksi melalui komunikasi serial UART (8 bit, tanpa parity, 19200 bps). Semua instruksi untuk MP3S memenuhi format berikut:
<Instruction code><parameters><CR>
<Instruction code> adalah sebuah karakter yang menyatakan aksi yang harus dilakukan oleh MP3S. Isi dari <parameters> tergantung pada <Instruction code>. <parameter> ini bisa berupa sebuah huruf, sebuah string (beberapa huruf) atau bahkan kosong. Sedangkan <CR> adalah carriage return atau karakter ASCII 13. Sebagai contoh, dalam bahasa pemrograman C/C++, <CR> dinyatakan dengan '\r'. Sedangkan didalam bahasa pemrograman Basic (contohnya kompiler Bascom), <CR> dinyatakan dengan kode instruksi Chr(13). Jika Anda menggunakan program terminal (contohnya Hyperterm atau PuTTY), <CR> dikirim ke MP3S ketika Anda menekan tombol Enter yang terdapat pada keyboard. Setiap instruksi yang dikirim host ke MP3S akan dikirim balik ke host seketika per karakter, tidak menunggu hingga instruksi tersebut lengkap atau diakhiri dengan <CR>.
Instruksi-instruksi MP3S dijelaskan dalam Tabel 2. Perlu diperhatikan bahwa semua instruksi peka terhadap huruf besar atau kecil yang berarti bahwa huruf el kapital ('L') akan dianggap berbeda dengan huruf el kecil ('l'). Kurung siku < dan > bukan merupakan bagian dari instruksi. Tidak semua instruksi akan menghasilkan respon atau jawaban. Respon atau jawaban tersebut dapat berupa sebuah karakter atau sebuah string (beberapa karakter).
Table 2. Instruksi-instruksi MP3S.
Instruksi Kegunaan Format dan contoh
Play file Untuk memutar sebuah file mp3/wav Jika file yang sedang diputar tidak ditemukan maka MP3S tidak akan memutar file tersebut dan MP3S tidak akan memberikan respon apapun. Untuk mengecek apakah status MP3S sedang memutar file gunakan instruksi Get status.
l<nama file mp3/wav><CR> lnaik.mp3<CR> untuk memutar file naik.mp3.
lsatu.wav<CR> untuk memutar file satu.wav.
Ekstensi file (“.mp3” atau “.wav”) dapat dihilangkan, sehingga cukup lnaik<CR> Jika tidak disertai ekstensi mp3 atau wav maka MP3S akan mencari file mp3 dahulu, jika ditemukan maka file tersebut diputar dan tidak akan mencari lagi file wav. Tetapi jika file mp3 tidak ditemukan maka MP3S akan
melanjutkan mencari file wav. Stop Untuk menghentikan pemutaran file
mp3/wav yang sedang berlangsung. Jika MP3S sedang bekerja dalam mode “Auto respon at the end” maka MP3S akan mengirim E<CR><CR>. Sebaliknya jika MP3S sedang bekerja dalam mode “Not Auto respon at the end” maka
MP3S tidak mengirim respon apapun. Apabila MP3S sedang bekerja dalam mode “Continuous” maka setelah pemutaran file berhenti maka MP3S akan melanjutkan untuk memutar file berikutnya. Sebaliknya apabila MP3S sedang bekerja dalam mode “Single” maka MP3S tidak akan memutar file berikutnya.
Next Untuk menghentikan pemutaran file mp3/wav yang sedang berlangsung (apabila sekarang sedang memutar file) dan kemudian memutar file mp3/wav berikutnya.
Jika MP3S sedang bekerja dalam mode “Auto respon at the end” maka MP3S akan mengirim E<CR><CR>. Sebaliknya jika MP3S sedang bekerja dalam mode “Not Auto respon at the end” maka MP3S tidak mengirim respon apapun.
f<CR> putar file berikutnya
Setelah catu daya diberikan ke MP3S maka MP3S akan menunjuk file pertama yang terdapat didalam microSD.
Apabila sekarang MP3S sedang menunjuk file pertama maka pemberian instruksi Next akan
menyebabkan MP3S akan memutar file kedua.
Apabila MP3S sekarang sedang menunjuk file terakhir maka eksekusi instruksi ini akan memutar file pertama. Prev Untuk menghentikan pemutaran file
mp3/wav yang sedang berlangsung (apabile MP3S sekarang sedang mumatar file) dan kemudian memutar file mp3/wav sebelumnya.
Jika MP3S sedang bekerja dalam mode “Auto respon at the end” maka MP3S akan mengirim E<CR><CR>. Sebaliknya jika MP3S sedang bekerja dalam mode “Not Auto respon at the end” maka MP3S tidak mengirim respon apapun.
b<CR>
Setelah catu daya diberikan ke MP3S maka MP3S akan menunjuk file pertama yang terdapat didalam microSD
Apabila MP3S sedang menunjuk file pertama maka eksekusi instruksi ini akan memutar file terakhir.
Apabila MP3S sedang menunjuk file kedua maka eksekusi instruksi ini akan memutar file pertama.
Pause Untuk menghentikan secara sementara (pause) pemutaran file sekarang.
e<CR>
Pemutaran yang terhenti secara sementara ini dapat dipulihkan atau dilanjutkan kembali menggunakan instruksi Resume.
Resume Untuk melanjutkan pemutaran file yang sebelumnya dihentikan secara
sementara menggunakan instruksi Pause.
Instruksi ini juga dapat digunakan untuk
untuk memutar file yang terakhir diputar. Sebagai contoh, jika file terakhir yang diputar satu.wav, maka pengiriman instruksi ini ke MP3S akan memiliki pengaruh yang sama dengan instruksi lsatu.wav<CR> atau lsatu<CR>. Repeat Untuk mengulang pemutaran file dari
awal file.
Instruksi ini juga bisa digunakan untuk memutar file terakhir yang sebelumnya diputar.
Jika MP3S sedang bekerja dalam mode “Auto respon at the end” maka MP3S akan mengirim E<CR><CR>. Sebaliknya jika MP3S sedang bekerja dalam mode “Not Auto respon at the end” maka MP3S tidak mengirim respon apapun.
r<CR>
Single Mode Untuk mengonfigurasi MP3S sebagai single mode, yaitu supaya MP3S tidak memutar file berikutnya setiap kali MP3S selesai memutar sebuah file. Mode ini adalah kebalikan dari Continuous Mode.
g<CR>
Continuous Mode
Untuk mengonfigurasi MP3S sebagai continuous mode, yaitu supaya MP3S memutar file berikutnya setiap kali MP3S selesai memutar sebuah file. Mode ini adalah kebalikan dari Single mode.
Jika MP3S sekarang dalam mode “Single” maka pemberian instruksi ini pada MP3S akan menyebabkan diputarnya file berikutnya. Jika MP3S sedang dalam mode “Continuous” maka pemberian instruksi ini tidak akan menghasilkan respon apapun.
c<CR>
Volume Level Untuk mengubah level volume dari sinyal audio.
V[100-255]<CR> untuk mengubah level volume menjadi nilai yang berkisar antara 100 dan 255
V255<CR> untuk mengubah level volume menjadi 255 (paling keras) V220<CR> untuk mengubah level volume menjadi 220 (pertengahan) V100<CR> untuk mengubah level volume menjadi 100 (terendah atau mute).
the end memberikan respon E<CR><CR> secara otomatis setiap kali MP3S telah selesai memutar sebuah file
Not Auto respon at the end
Untuk mengonfigurasi MP3S supaya tidak memberikan respon E<CR><CR> secara otomatis setiap kali MP3S telah selesai memutar sebuah file
n<CR> to configure MP3S not auto response at the end of play
Get Status Untuk meminta status MP3S s<CR> meminta starus MP3S Respon MP3S dapat berupa:
0<space><file><CR> jika MP3S is dalam keadaan stop
1<space><file><CR> jika MP3S dalam keadaan sedang memutar file
2<space><file><CR> jika MP3S sedang dalam keadaan sedang menghentikan secara sementara play sebuah file (pause)
<file> adalah file yang sedang diputar, dihentikan sementara atau file terakhir yang diputar.
Load Playlist Untuk menambahkan nama file mp3/wav ke dalam playlist. Sebuah nama file mp3/wav akan membutuhkan beberapa byte memori (panjang nama file mp3/wav tersebut ditambah dua). Dua ini adalah sebagai pemisah antar file, yaitu <CR> dan <NL>. MP3S menyediakan 100 byte memori untuk playlist. Jika setiap nama file yang Anda masukkan ke dalam playlist sepanjang 3 karakter maka setiap nama file akan menempati 3+2 = 5 byte memori sehingga playlist bisa menampung 100/5=20 file.
Jika playlist sudah penuh maka MP3S akan mengabaikan file yang dimasukkan berikutnya dan MP3S memberikan respon F<CR>
L<file name><CR>
Lbintangk.wav<CR> untuk
menambahkan file bintangk.wav ke playlist
Lbebek.wav<CR> untuk menambahkan file bebek.wav ke playlist, dibelakang atau urutan berikutnya setelah file bintangk.wav
tanda titik dan ekstensi file (“.mp3” atau “.wav”) dapat ditiadakan sehingga untuk contoh tersebut dapat ditulis ulang masing-masing menjadi Lbintang<CR> dan Lbebek<CR>. Ketentuan pemutaran file yang tanpa ekstensi seperti yang dijelaskan dalam instruksi Play File.
Play playlist Untuk memutar file-file yang terdapat didalam playlist satu per satu. Instruksi ini dapat dijalankan kembali setelah semua file dalam playlist telah diputar untuk memtuar playlist lagi. Jika
instruksi ini pernah dijalankan dan MP3S diberi instruksi Load Playlist maka playlist akan ditindas dengan Playlist yang baru.
P<CR> untuk memutar file-file mp3/wav didalam playlist dengan urutan seperti ketika playlist dibuat.
MP3S selalu menampilkan
<filename>.mp3/wav<CR> setiap kali sebelum memutar <filename>. Jika MP3S terkonfigurasi sebagai “auto respond at the end” maka MP3S akan mengirim E<CR> pada setiap selesai
Instruksi ini bisa dijalankan apabila MP3S sedang dalam keadaan stop.
memutar <filename>. MP3S akan mengirim X<CR> apabila semua file dalam playlist telah selesai diputar. Get mp3/wav
file name
Untuk membaca semua nama file mp3/wav yang terdapat didalam microSD
MP3S akan merenspon instruksi ini hanya jika MP3S sedang berada dalam mode stop (bukan sedang memutar file atau sedang pause). Jadi sebelum menjalankan instruksi ini, pastikan bahwa MP3S telah berada dalam mode stop. Anda dapat mengecek status atau keadaan MP3S menggunakan instruksi Get Status. Jadi, jika MP3S sedang berada malam mode play maka hentikan dahulu mode play tersebut menggunakan instruksi Stop. Perlu diingat bahwa jika MP3S sedang berada dalam mode Continuous, pengiriman instruksi stop akan mengembalikan MP3S ke mode play lagi karena MP3S secara otomatis memtuar file berikutnya. Untuk menjamin bahwa MP3S memasuki keadaan stop secara tetap, mode MP3S perlu diubah ke Single Mode dahulu sebelum memberikan instruksi stop.
i<CR>
Respon MP3S:
<file1>.mp3/wav<CR><NL><file2>.mp3/ wav<CR><NL> …dst
hingga<fileN>.mp3/wav<CR><NL><CR> <NR> adalah karakter New line atau ganti baris atau decimal 10, Contoh:
Jika microSD berisi tiga file (satu.wav, dua.mp3, dan tiga.wav), maka pengiriman instruksi ini ke MP3S akan memberikan respon:
satu.wav<CR><NL>dua.mp3<CR><NL>ti ga.wav<CR><NL><CR>
Konfigurasi Default
Konfigurasi MP3S tidak disimpan di memori secara permanen. Jika catu daya ke MP3S dimatikan maka konfigurasi MP3S akan dikembalikan ke nilai default setelah catu daya diberikan. Secara default, MP3S memiliki konfigurasi sebagai berikut:
• Mode adalah continuous, • Level volume adalah 255,
• Mode play ialah Auto respon at the end, • Isi playlist kosong.
Copyright (c) 2016, Bengkel-Elektro www.bengkel-elektro.com