“音乐播放”的版本间的差异
来自Labplus盛思维基百科
Jiangzhaohui(讨论 | 贡献) (创建页面,内容为“=== Arduino示例 === <pre style="color:blue"> #include <SoftwareSerial.h> #include "kt540b.h" uint8_t inBuff[3] = { 0 }; uint8_t inByte; Kt540bClass mp3Play(5, 6);…”) |
(→使用教程) |
||
(未显示2个用户的19个中间版本) | |||
第1行: | 第1行: | ||
− | === | + | [[文件:黑色传感器最终版12.20-24.png|350px|缩略图|右]] |
+ | == 概述 == | ||
+ | MP3播放模块,可通过软串口发送指令操控播放TF卡中保存的歌曲 | ||
+ | |||
+ | == 技术参数 == | ||
+ | * 工作电压: VCC 3.3V -5V | ||
+ | * 串口通信 | ||
+ | * 采用TF卡存储歌曲或语音信息 | ||
+ | * 输出功率3W | ||
+ | * 板载双声道功放,可驱动0.5W喇叭 | ||
+ | * 模块尺寸:24x46x7.5mm | ||
+ | |||
+ | == 引脚定义 == | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | <small>VCC</small> || <small>电源</small> | ||
+ | |- | ||
+ | | <small>RXI</small> || <small>串口接收</small> | ||
+ | |- | ||
+ | | <small>TXD</small> || <small>串口发送</small> | ||
+ | |- | ||
+ | | <small>GND</small> || <small>地</small> | ||
+ | |} | ||
+ | |||
+ | == 使用教程 == | ||
+ | :{|style="background-color:#FCF8E3;color:#8A6D3B;" | ||
+ | |- | ||
+ | |style="padding: 2px;"| [[File:warning_yellow.png|25px|center]] ||'''注意''' | ||
+ | | | ||
+ | |} | ||
+ | # 串口设置波特率9600bps,bluebit串口tx引脚连接音乐模块的RXI引脚 | ||
+ | # 由于音乐模块带喇叭功放,功率较大,bluebit主板需要采用锂电池供电方式 | ||
+ | |||
+ | ===<small>MP3库API</small> === | ||
+ | MP3驱动使用SoftwareSerial,可自定义串口引脚<br /> | ||
+ | [http://wiki.labplus.cn/images/2/27/Mp3_KT540BPrj.zip MP3_SoftSerial驱动下载] | ||
<pre style="color:blue"> | <pre style="color:blue"> | ||
− | + | Kt540bClass(int rxPin, int txPin); // 定义软串口引脚 | |
+ | void begin(); | ||
+ | void play(void); //播放(比如从暂停中恢复) | ||
+ | void play(uint8_t songNum); //播放指定序号歌曲 | ||
+ | void playDir(uint8_t dir, uint8_t songNum); //播放指定文件夹指定歌曲 | ||
+ | void playNext(void); //播下一首 | ||
+ | void playPrev(void); //播上一首 | ||
+ | void setVolume(uint8_t volume); //设置音量 | ||
+ | void volumeInc(); //音量+ | ||
+ | void volumeDec(); //音量- | ||
+ | void setEQ(uint8_t eq); //设置EQ值 | ||
+ | void loop(uint8_t songNo); //指定根文件夹下相关序号歌曲循环播放 | ||
+ | void loop(uint8_t dir, uint8_t songNo); //指定目录相关序号歌曲循环播放 | ||
+ | void loopDir(uint8_t dir); //指定目录循环播放 | ||
+ | void singleLoop(boolean onOff); //单曲循环开关 | ||
+ | void radomPlay(void); //随机播放(整个设备上的歌) | ||
+ | void pause(void); //暂停 | ||
+ | void stop(void); //停止 | ||
+ | void setDac(bool onOff); //DAC开关 | ||
+ | void enterSleep(void); //进入睡眠__bool_true_false_are_defined | ||
+ | void exitSleep(void); //退出睡眠 | ||
+ | void resetDevice(void); //设备复位 | ||
+ | void setPlayMedia(MEDIA playMedia); //选择播入媒体 | ||
+ | uint8_t getPlayState(void); //获取播放状态 | ||
+ | </pre> | ||
+ | === <font size="3">掌控板</font> === | ||
+ | {| | ||
+ | |- | ||
+ | | [[文件:MP3.png |900px|居中|无框]] | ||
+ | |} | ||
+ | |||
+ | === <small>Arduino示例</small> === | ||
+ | [[文件:Uno mp3.jpg|700px|无框|居中]] | ||
+ | <pre style="color:blue"> | ||
+ | |||
#include "kt540b.h" | #include "kt540b.h" | ||
− | + | Kt540bClass mp3Play(5,6); //实例化对象,定义pin5为RX,pin6为TX | |
− | |||
− | Kt540bClass mp3Play(5, 6); | ||
void setup() | void setup() | ||
{ | { | ||
− | + | mp3Play.begin(); //mp3初始化开始 | |
− | + | mp3Play.setVolume(50); //音量设置 | |
− | + | mp3Play.play(1); //播放第1首歌曲 | |
− | mp3Play.play(1); | + | delay(10000); //等待,让其播放10秒 |
− | |||
} | } | ||
void loop() | void loop() | ||
{ | { | ||
− | + | mp3Play.pause(); //歌曲暂停 | |
− | + | mp3Play.playNext(); //播放下首歌曲 | |
+ | delay(10000); //等待,让其播放10秒 | ||
+ | mp3Play.stop(); //停止播放歌曲 | ||
− | + | } | |
− | + | ||
− | + | </pre> | |
− | + | === <small>MicroPython示例</small> === | |
− | + | <pre style="color:blue"> | |
− | + | from microbit import * | |
− | + | ||
− | + | def MP3CmdWrite(cmd): | |
− | + | sum = 0 | |
+ | for i in range(0,6): | ||
+ | sum += cmd[i] | ||
+ | sum1 = ((0xFFFF - sum) + 1) | ||
+ | sum_l = sum1 & 0xff | ||
+ | sum_h = sum1 >> 8 | ||
+ | |||
+ | uart.write(bytearray([0x7E])) | ||
+ | uart.write(cmd) | ||
+ | uart.write(bytearray([sum_h])) | ||
+ | uart.write(bytearray([sum_l])) | ||
+ | uart.write(bytearray([0xEF])) | ||
+ | sleep(20) | ||
− | + | def MP3Play(num): | |
+ | var = bytearray([0xFF,0x06,0x03,0x01,0x00,num]) | ||
+ | MP3CmdWrite(var) | ||
− | + | def MP3Stop(): | |
− | + | var = bytearray([0xFF ,0x06 ,0x0E ,0x01 ,0x00 ,0x00]) | |
− | + | MP3CmdWrite(var) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | def MP3Start(): | |
− | + | var = bytearray([0xFF ,0x06 ,0x0D ,0x01 ,0x00 ,0x00]) | |
− | + | MP3CmdWrite(var) | |
− | |||
− | + | def MP3StopDecode(): | |
− | + | var = bytearray([0xff,0x06,0x16,0x00,0x00,0x00]) | |
− | + | MP3CmdWrite(var) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | def MP3VolumeInc(): | |
− | + | var = bytearray([0xFF,0x06,0x04,0x00,0x00,0x00]) | |
− | + | MP3CmdWrite(var) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | def MP3VolumeDec(): | ||
+ | var = bytearray([0xFF,0x06,0x05,0x00,0x00,0x01]) | ||
+ | MP3CmdWrite(var) | ||
+ | |||
+ | def MP3Volume(vol): | ||
+ | var = bytearray([0xFF,0x06,0x06,0x00,0x00,vol]) | ||
+ | MP3CmdWrite(var) | ||
+ | |||
+ | def MP3Reset(): | ||
+ | var = bytearray([0xFF,0x06,0x0C,0x00,0x00,0x00]) | ||
+ | MP3CmdWrite(var) | ||
+ | |||
+ | uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin1, rx=pin0) #设置串口引脚和波特率 | ||
+ | MP3Volume(28) #音量, 0-30 | ||
+ | sleep(1000) | ||
+ | MP3Play(1) #播放第1首歌曲 | ||
</pre> | </pre> | ||
+ | |||
+ | === <small>图形化示例</small> === | ||
+ | {| | ||
+ | |- | ||
+ | | [[文件:音乐播放 example.png|300px|无框|左]] | ||
+ | |} | ||
+ | |||
+ | == 版本历史记录 == | ||
+ | {| border="1" cellspacing="0" align="left" cellpadding="0" width="60%" style="text-align:center;" | ||
+ | |- style="text-align:center;background-color:#6fa8dc;color:#fffff;" | ||
+ | !width="10%"|Version !!width="15%"| Date !! Note <small>[+]新增[-]删除[^]修复</small> | ||
+ | |- | ||
+ | | V2.0 || || style="text-align:left"| | ||
+ | |} |
2020年6月30日 (二) 16:53的最新版本
概述
MP3播放模块,可通过软串口发送指令操控播放TF卡中保存的歌曲
技术参数
- 工作电压: VCC 3.3V -5V
- 串口通信
- 采用TF卡存储歌曲或语音信息
- 输出功率3W
- 板载双声道功放,可驱动0.5W喇叭
- 模块尺寸:24x46x7.5mm
引脚定义
VCC | 电源 |
RXI | 串口接收 |
TXD | 串口发送 |
GND | 地 |
使用教程
注意
- 串口设置波特率9600bps,bluebit串口tx引脚连接音乐模块的RXI引脚
- 由于音乐模块带喇叭功放,功率较大,bluebit主板需要采用锂电池供电方式
MP3库API
MP3驱动使用SoftwareSerial,可自定义串口引脚
MP3_SoftSerial驱动下载
Kt540bClass(int rxPin, int txPin); // 定义软串口引脚 void begin(); void play(void); //播放(比如从暂停中恢复) void play(uint8_t songNum); //播放指定序号歌曲 void playDir(uint8_t dir, uint8_t songNum); //播放指定文件夹指定歌曲 void playNext(void); //播下一首 void playPrev(void); //播上一首 void setVolume(uint8_t volume); //设置音量 void volumeInc(); //音量+ void volumeDec(); //音量- void setEQ(uint8_t eq); //设置EQ值 void loop(uint8_t songNo); //指定根文件夹下相关序号歌曲循环播放 void loop(uint8_t dir, uint8_t songNo); //指定目录相关序号歌曲循环播放 void loopDir(uint8_t dir); //指定目录循环播放 void singleLoop(boolean onOff); //单曲循环开关 void radomPlay(void); //随机播放(整个设备上的歌) void pause(void); //暂停 void stop(void); //停止 void setDac(bool onOff); //DAC开关 void enterSleep(void); //进入睡眠__bool_true_false_are_defined void exitSleep(void); //退出睡眠 void resetDevice(void); //设备复位 void setPlayMedia(MEDIA playMedia); //选择播入媒体 uint8_t getPlayState(void); //获取播放状态
掌控板
Arduino示例
#include "kt540b.h" Kt540bClass mp3Play(5,6); //实例化对象,定义pin5为RX,pin6为TX void setup() { mp3Play.begin(); //mp3初始化开始 mp3Play.setVolume(50); //音量设置 mp3Play.play(1); //播放第1首歌曲 delay(10000); //等待,让其播放10秒 } void loop() { mp3Play.pause(); //歌曲暂停 mp3Play.playNext(); //播放下首歌曲 delay(10000); //等待,让其播放10秒 mp3Play.stop(); //停止播放歌曲 }
MicroPython示例
from microbit import * def MP3CmdWrite(cmd): sum = 0 for i in range(0,6): sum += cmd[i] sum1 = ((0xFFFF - sum) + 1) sum_l = sum1 & 0xff sum_h = sum1 >> 8 uart.write(bytearray([0x7E])) uart.write(cmd) uart.write(bytearray([sum_h])) uart.write(bytearray([sum_l])) uart.write(bytearray([0xEF])) sleep(20) def MP3Play(num): var = bytearray([0xFF,0x06,0x03,0x01,0x00,num]) MP3CmdWrite(var) def MP3Stop(): var = bytearray([0xFF ,0x06 ,0x0E ,0x01 ,0x00 ,0x00]) MP3CmdWrite(var) def MP3Start(): var = bytearray([0xFF ,0x06 ,0x0D ,0x01 ,0x00 ,0x00]) MP3CmdWrite(var) def MP3StopDecode(): var = bytearray([0xff,0x06,0x16,0x00,0x00,0x00]) MP3CmdWrite(var) def MP3VolumeInc(): var = bytearray([0xFF,0x06,0x04,0x00,0x00,0x00]) MP3CmdWrite(var) def MP3VolumeDec(): var = bytearray([0xFF,0x06,0x05,0x00,0x00,0x01]) MP3CmdWrite(var) def MP3Volume(vol): var = bytearray([0xFF,0x06,0x06,0x00,0x00,vol]) MP3CmdWrite(var) def MP3Reset(): var = bytearray([0xFF,0x06,0x0C,0x00,0x00,0x00]) MP3CmdWrite(var) uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin1, rx=pin0) #设置串口引脚和波特率 MP3Volume(28) #音量, 0-30 sleep(1000) MP3Play(1) #播放第1首歌曲
图形化示例
版本历史记录
Version | Date | Note [+]新增[-]删除[^]修复 |
---|---|---|
V2.0 |