Test program for UART MP3 Voice Module with 8MB Flash Memory / DFR0534

Dependencies:   MP3_DFR0534

see /users/kenjiArai/notebook/mp3--voice-module-dfr0534/

Committer:
kenjiArai
Date:
Sun Dec 29 04:13:19 2019 +0000
Revision:
0:27b9f229cbaf
MP3, DRF0534 test program

Who changed what in which revision?

UserRevisionLine numberNew 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 }