Tutorial Modul Mp3 WT9501M03 ( Bag 2 )
- Details
- Written by Administrator
- Hits: 11069
Halo sobat mikrodb, ketemu lagi di pembahasan lanjutan masih soal Modul Suara WT9501M03. Di bagian I kemaren kita sudah bahas bagaimana cara menggunakan modul ini dengan mode switch, untuk pembahasan kali ini saya akan menjelaskan bagaimana mengakases modul ini dalam mode serial.
Dengan mode serial kita bisa mengontrol modul suara ini menggunakan sebuah Mikrokontroler atau PC Serial. Dan dengan mode serial kita bisa menjalankan track lagu2/suara nya baik secara berurutan maupun secara random/acak. Berbeda dengan mode switch yang hanya memungkinkan untuk menjalan kan lagu nya secara berurutan saja.
Modul suara WT9501 meminta syarat dalam komunikasi serial nya yaitu berupa protokol data yang harus dipenuhi supaya modul ini bekerja dengan baik, seperti apa itu protokol data yang disyaratkan oleh modul ini, perhatikan gambar di bawah ini:
Gambar tabel di atas merupakan model protokol data yang diminta oleh modul suara ini. Kita harus penuhi syarat tersebut dalam membangun komunikasi antara mikrokontroler dan modul suara WT9501.
Kita bahas ya?
Dalam pengiriman perintah-perintah serial nya harus mengikuti tabel di atas.
Data kita kirim diawali dengan : "Start Code"
Lalu diikuti "Data Lenght" - "OpCode" - "NomorTrackPuluhanRibu" -"NomorTrackRibuan" - "NomorTrackRatusan" - "NomorTrackPuluhan" - "NomorTrackSatuan"
Dan ditutup dengan : "End Code"
Ini aturan paket data nya, dan kita bisa mengirim kan dalam bentuk ACII Code .
Misal saya ingin menjalan kan track nomor 1. Masih ingat dalam pemberian nama dalam track nya? yaitu dengan 5buah digit, bisa dibaca lagi di bagian sebelum nya disni.
Track nomor 1 itu berarti = 00001.mp3 , lalu kita tentukan tingkatan angka nya, seperti gambar di bawah ini:
Kita pisah per angka:
Puluhan Ribu = 0 --> ascii nya = 30H
Ribuan = 0 -- > ascii nya = 30H
Ratusan = 0 --> ascii nya = 30H
Puluhan = 0 --> ascii nya = 30H
Satuan = 1 --> ascii nya = 31H
Sehingga untuk memutar track1 , maka kode track nya adalah : 30H 30H 30H 30H 31H
Dan kalau kita gabung semua nya dengan mengikuti kaidah protokol data yang diminta, maka akan menjadi seperti ini:
Start Code = 7EH
Data Lenght = 07H
OpCode = A0H
NomorTrackPuluhanRibu = 30H
NomorTrackRibuan = 30H
NomorTrackRatusan = 30H
NomorTrackPuluhan = 30H
NomorTrackSatuan = 31H
End Code = 7EH
Sehingga akan menjadi seperti ini : 7EH 07H A0H 30H 30H 30H 30H 31H 7EH
Untuk menentukan nilai dari "Op Code" anda bisa melihat tabel di bawah ini:
Tabel diatas adalah tabel code untuk menetukan nilai dari Op Code nya. Jika kita ingin mengirim perintah "Play", maka code hex nya adalah "A0H", kalau "Pause" kode hex nya adalah "A1H",dst.
Nah, sebelum kita mencoba menghubungkan dengan mikrokontroler, ada baik nya kita coba dulu via PC ya. Kita memerlukan USB to Serial(ttl) modul, anda bisa memakai modul usb to serial merek apa saja. Disini saya menggunakan modul nya dari DI ( Depok Instrument ).
Lanjut hubung kan modul suara WT9501M03 nya dengan modul USB To TTL nya seperti gambar koneksi di bawah ini:
Bagi yang belum mengetahui koneksi pin2 dari modul suara nya, di artikel sebelum nya sudah saya bahas, monggo dibaca lagi artikel sebelum nya.
Nah, jika sudah di koneksikan seperti diatas, sekarang hubungkan modul USB To TTL nya ke Port USB PC/Laptop nya, lalu buka software "Termite". Jika anda belum punya software ini, silahkan unduh dulu disni .
OK, kalau sudah di unduh sekarang buka program Termite nya, tampilan nya seperti ini :
Setelah itu kita lakukan seting2 dulu di termite nya supaya termite bisa mengirim code HEX. Berikut langkah-langkah nya.
Setelah itu, klik OK dan kita sekarang akan coba mengirimkan code hex seperti pembahasan di atas, yaitu kita ingin menjalan kan track 1 , dimana paket kode hex nya adalah : 7E 07 A0 30 30 30 30 31 7E
Kita ketikkan di termite nya seperti ini :
Setelah di ENTER, maka akan nampil HexView nya seprti gambar di bawah ini, dan seharus nya modul sudah nge Play Track 1. :D
Ini video saat test via PC melalui USB to ttl modul, dan untuk memory card nya saya test pakai flashdisk.. Kalau pakai flash disk cuman beda di Operation Code nya aja, misal: kalau untuk nge PLAY dari SDCARD pakai code A0H, kalau nge PLAY dari Flashdisk pakai code B0H.
Bagaimana?? masih bingung? hehe
saya harap tidak lah ya.... :D, kita lanjut skrg menghubungkan modul dengan mikrokontroler , untuk koneksi nya sama dengan sebelum nya ( antara modul dan usb to ttl ). Yang perlu diperhatikan adalah pemasangan Tx dan Rx nya di cross alias disilang.
Tx modul suara ---> ke Rx Mikro
Rx modul suara ---> ke Tx Mikro
Gnd modul suara ---> ke Gnd Mikro
Perintah program nya sama dengan ketika kita bermain komunikasi serial pada mikro, dan yang terpenting baudrate antara mikro dan modul sama, yaitu 9600.
Langsung saja ya, saya akan tuliskan kode program untuk nge PLAY Track1 via mikro . Saya kasih contoh program yang pakai bahasa Pascal, pakai compiler MikroPascal, bisa anda unduh di situs resmi nya : http://www.mikroe.com/.
Berikut kode program nya :
Yah seperti itu kode nya untuk nge Play Track 1, mudah kan? anda bisa berkreasi sesuai ide yang dimiliki. Misal mikro digabung dengan display Seven Segment , setiap display menampilkan angka , maka modul juga akan mengeluarkan suara sesuai dengan angka yang tampil. Tinggal di susun aja dulu flowchart nya, lalu dibuat program nya, monggo kalau ada komentar, masukan,dll silahkan di tulis di bawah...supaya kita bisa saling sharing.. OK
Semoga bermanfaat.. :D
Oh iya..ini video testing pakai modul WT9501M03+ATMEGA8
Comments
mungkin ada salah code ,mas pakai bahasa pemrograman apa ?
Mau nanya, saya udh coba di mode serial.
sudah bisa play mp3,
tapi kok play cuma sekitar 1 detik trus mati ya?
$regfile = "8535def.dat"
$crystal = 11059200
$baud = 9600
waitms 1500
print "0x7e"
print "0x07"
print "0xa0"
print "0x30"
print "0x30"
print "0x30"
print "0x30"
print "0x31"
print "0x7e"
waitms 3000
yup,,in datasheet, we will get 16 byte response code,, and i got it...u can test the module using usb to ttl and please use serial software monitoring like Hterm..when u give command to module ( such as : play, next, prev,etc ), then u`ll see response code.. :)
I'm also trying to use this module, but there's wery little info about it. It works fine on teminal and on buttons (I didn't try to connect it to microcontroller yet).
In all instructions on internet there is an explanation of response string, which should be much longer and should include filename (16 chars). But I can't get it.
Did you managed to get filename out of it?
Thanx in advance for your answer.
Best regards, Martin
kalau di pascal kan kirim serial pakai
"Uart_Write", nah kalau di bascom kan pakai perintah "print"
RSS feed for comments to this post