Test program for UART MP3 Voice Module with 8MB Flash Memory / DFR0534
see /users/kenjiArai/notebook/mp3--voice-module-dfr0534/
main.cpp@0:27b9f229cbaf, 2019-12-29 (annotated)
- Committer:
- kenjiArai
- Date:
- Sun Dec 29 04:13:19 2019 +0000
- Revision:
- 0:27b9f229cbaf
MP3, DRF0534 test program
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kenjiArai | 0:27b9f229cbaf | 1 | /* |
kenjiArai | 0:27b9f229cbaf | 2 | * Mbed Application program |
kenjiArai | 0:27b9f229cbaf | 3 | * UART MP3 Voice Module with 8MB Flash Memory / DFR0534 |
kenjiArai | 0:27b9f229cbaf | 4 | * |
kenjiArai | 0:27b9f229cbaf | 5 | * Copyright (c) 2019 Kenji Arai / JH1PJL |
kenjiArai | 0:27b9f229cbaf | 6 | * http://www.page.sannet.ne.jp/kenjia/index.html |
kenjiArai | 0:27b9f229cbaf | 7 | * https://os.mbed.com/users/kenjiArai/ |
kenjiArai | 0:27b9f229cbaf | 8 | * Created: December 27th, 2019 |
kenjiArai | 0:27b9f229cbaf | 9 | * Revised: December 29th, 2019 |
kenjiArai | 0:27b9f229cbaf | 10 | */ |
kenjiArai | 0:27b9f229cbaf | 11 | |
kenjiArai | 0:27b9f229cbaf | 12 | /* |
kenjiArai | 0:27b9f229cbaf | 13 | Reference information: |
kenjiArai | 0:27b9f229cbaf | 14 | http://akizukidenshi.com/catalog/g/gM-13708/ |
kenjiArai | 0:27b9f229cbaf | 15 | https://wiki.dfrobot.com/Voice_Module_SKU__DFR0534 |
kenjiArai | 0:27b9f229cbaf | 16 | |
kenjiArai | 0:27b9f229cbaf | 17 | Tested on |
kenjiArai | 0:27b9f229cbaf | 18 | Nucleo-F446RE |
kenjiArai | 0:27b9f229cbaf | 19 | */ |
kenjiArai | 0:27b9f229cbaf | 20 | |
kenjiArai | 0:27b9f229cbaf | 21 | // Include -------------------------------------------------------------------- |
kenjiArai | 0:27b9f229cbaf | 22 | #include "mbed.h" |
kenjiArai | 0:27b9f229cbaf | 23 | #include "drf0534.h" |
kenjiArai | 0:27b9f229cbaf | 24 | |
kenjiArai | 0:27b9f229cbaf | 25 | // Definition ----------------------------------------------------------------- |
kenjiArai | 0:27b9f229cbaf | 26 | #define USE_VOL 1 |
kenjiArai | 0:27b9f229cbaf | 27 | |
kenjiArai | 0:27b9f229cbaf | 28 | // Constructor ---------------------------------------------------------------- |
kenjiArai | 0:27b9f229cbaf | 29 | Serial pc(USBTX, USBRX); |
kenjiArai | 0:27b9f229cbaf | 30 | DFR0534 mp3(PA_0, PA_1, PA_4); // tx, rx, busy |
kenjiArai | 0:27b9f229cbaf | 31 | #if USE_VOL |
kenjiArai | 0:27b9f229cbaf | 32 | AnalogIn pot(A5); |
kenjiArai | 0:27b9f229cbaf | 33 | #endif |
kenjiArai | 0:27b9f229cbaf | 34 | |
kenjiArai | 0:27b9f229cbaf | 35 | // RAM ------------------------------------------------------------------------ |
kenjiArai | 0:27b9f229cbaf | 36 | char name_buf[32]; |
kenjiArai | 0:27b9f229cbaf | 37 | |
kenjiArai | 0:27b9f229cbaf | 38 | // ROM / Constant data -------------------------------------------------------- |
kenjiArai | 0:27b9f229cbaf | 39 | |
kenjiArai | 0:27b9f229cbaf | 40 | // Function prototypes -------------------------------------------------------- |
kenjiArai | 0:27b9f229cbaf | 41 | |
kenjiArai | 0:27b9f229cbaf | 42 | //------------------------------------------------------------------------------ |
kenjiArai | 0:27b9f229cbaf | 43 | // Control Program |
kenjiArai | 0:27b9f229cbaf | 44 | //------------------------------------------------------------------------------ |
kenjiArai | 0:27b9f229cbaf | 45 | int main() |
kenjiArai | 0:27b9f229cbaf | 46 | { |
kenjiArai | 0:27b9f229cbaf | 47 | pc.printf("Start DRF0534 UART MP3 Voice Module\r\n"); |
kenjiArai | 0:27b9f229cbaf | 48 | // Set Volume |
kenjiArai | 0:27b9f229cbaf | 49 | mp3.volume_setting(VOL_MAX / 2); |
kenjiArai | 0:27b9f229cbaf | 50 | mp3.command(Increase_the_volume); // another way |
kenjiArai | 0:27b9f229cbaf | 51 | // Check total MP3 files |
kenjiArai | 0:27b9f229cbaf | 52 | uint32_t num = mp3.total_num_of_audio(); |
kenjiArai | 0:27b9f229cbaf | 53 | pc.printf("Number of audio source = %u\r\n", num); |
kenjiArai | 0:27b9f229cbaf | 54 | // Try specific MP3 |
kenjiArai | 0:27b9f229cbaf | 55 | mp3.play_one(2); |
kenjiArai | 0:27b9f229cbaf | 56 | while(true) { |
kenjiArai | 0:27b9f229cbaf | 57 | for (uint32_t i = 1; i < num + 1; i++) { |
kenjiArai | 0:27b9f229cbaf | 58 | #if USE_VOL |
kenjiArai | 0:27b9f229cbaf | 59 | float an = pot.read(); |
kenjiArai | 0:27b9f229cbaf | 60 | an *= VOL_MAX; |
kenjiArai | 0:27b9f229cbaf | 61 | mp3.volume_setting((uint8_t)an); |
kenjiArai | 0:27b9f229cbaf | 62 | pc.printf("VOL = %3.0f, ", an); // 0 to 30(VOL_MAX) |
kenjiArai | 0:27b9f229cbaf | 63 | #endif |
kenjiArai | 0:27b9f229cbaf | 64 | // play one track |
kenjiArai | 0:27b9f229cbaf | 65 | mp3.play_one(i); |
kenjiArai | 0:27b9f229cbaf | 66 | // get file name |
kenjiArai | 0:27b9f229cbaf | 67 | mp3.get_file_name(name_buf); |
kenjiArai | 0:27b9f229cbaf | 68 | pc.printf("Current # of audio = %u, ", mp3.current_num_of_audio()); |
kenjiArai | 0:27b9f229cbaf | 69 | pc.printf("File name = %s, ", name_buf); |
kenjiArai | 0:27b9f229cbaf | 70 | pc.printf("playing time = %d [sec]\r\n", mp3.get_play_time()); |
kenjiArai | 0:27b9f229cbaf | 71 | } |
kenjiArai | 0:27b9f229cbaf | 72 | } |
kenjiArai | 0:27b9f229cbaf | 73 | } |