概述
音频播放模块兼容全系列makeblock主控板,内置语音解码芯片,可以播放音乐及录音。本模块接口是白色色标,说明是I2C信号控制,需要连接到主板上带有白色标识接口。插入TF内存卡即可感受音乐的快乐,使用起来非常方便。
音频播放模块通过麦克风和扬声器两部分实现录音和播放音乐的功能,
●录音过程:当声音传入麦克风部分时,声波振动引起麦克风内的薄膜振动,薄膜上的线圈处于电磁场中,声音信号便可通过电磁效应转化为电信号,但电信号直接储存的数据量庞大,所以通过数据加码的方式压缩数据量,然后储存在内存卡;
●播放过程:播放音乐时,解码芯片会读取之前麦克风储存下来的数据,数据经过解码处理后放大转换成更大的电流信号并作用于比麦克风更大的薄膜装置,通过电磁效应引起薄膜振动,产生声音信号。
应用场景
● 留声机
● BGM音乐播放
● mBot萌宠声乐扩展包:http://education.makeblock.com/zh-hans/resource/mbotmcsykzb/
注意事项
● 音频播放模块需在插入TF卡的情况才可录制和播放音频
技术规格
● 工作电压:5V DC
● 麦克风灵敏度(1Khz):50-54dB
● 麦克风阻抗:2.2 kΩ
● 麦克风信噪比:58 db
● 喇叭额定功率:1W
● 喇叭额定阻抗:8±15%Ω
● 通讯方式:I2C
● 最大电流:500mA
● 模块尺寸:56 x 41 x 28 mm (长x宽x高)
功能特性
● 板载蓝色LED常亮表示音乐播放状态,闪烁表示录音状态
● 对声音灵敏度高;
● 模块的金属孔区域是与金属梁接触的参考区域;
● 具有反接保护,电源反接不会损坏IC;
● 支持mBlock图形化编程,适合全年龄用户;
● 使用RJ25接口连线方便;
● 模块化安装,兼容乐高系列;
● 模块支持Micro USB直接拷贝音频文件,不需要读卡器。
● 模块直接支持 MP3、WMA、WAV 文件
连线模式
● RJ25连接
RJ25连接:由于音频播放模块接口是白色色标,当使用RJ25接口时,需要连接到主控板上带有白色色标的接口。以makeblock Orion为例,可以连接到3,4,6,7,8 号接口,如图:
编程指导
●mBlock编程
音频播放模块支持mBlock编程环境,如下是该模块指令简介
语句块 | 描述 |
---|---|
选定接口 | |
指定音频文件索引播放 | |
指定音频文件名播放 | |
设置播放模式 | |
播放上一首音频 | |
播放下一首音频 | |
暂停/恢复播放 | |
停止播放 | |
音量设置大小 | |
音量增加 | |
音量减小 | |
以“T001”名称开始录音 | |
停止录音 |
以下是如何使用mBlock控制音频播放模块的例子:
本程序可以通过按键模块控制音频播放模块。实现音频文件的播放、暂停、开始录音和停止录音,以下是运行结果:
● Arduino 编程
如果使用Arduino编程,需要调用库Makeblock-Library-master 来控制音频播放模块。
本程序通过Arduino编程让音频播放模块通过按键模块控制,实现音频文件的播放、暂停、开始录音和停止录音。
音频播放模块主要函数功能列表
函数 | 功能 | |
---|---|---|
MeAudioPlayer(uint8_t port) | 选定接口 | |
playMusicFileIndex(uint16_t music_index) | 指定音频文件索引播放 | 数值:1.2.3…… |
pauseMusic() | 暂停播放 | |
stopMusic() | 停止播放 | |
playNextMusic() | 下一曲 | |
playPrevMusic() | 上一曲 | |
setMusicVolume(uint8_t vol) | 设置音量值 | 范围0~100 |
setMusicPlayMode(uint8_t mode) | 设置播放模式 | 0.单曲播放 1.单曲循环 2.列表循环 3.随机播放 |
startRecordingFileName(char *str) | 指定文件名开始录音 | |
stopRecording() | 停止录音 |
音频文件格式说明
● 音量播放语句块后面请增加适当的延时(必须),等待其生效。
● 使用外部存储器TF卡存储音频文件,支持播放MP3,WAV,WMA高品质(低品质可能播放不顺畅)音频格式文件
● 采用FAT和FAT32文件系统
● 音频文件命名格式支持英文命名(不区分大小写),英文与数字混合命名,命名长度建议小于8个字符,例如:Hello.MP3、T002.MP3、R000001.MP3、(不建议使用纯数字命名)
● 音频文件在TF卡中的排序:建议按文件名排序
● 不建议用中文命名的音频文件
● 禁止使用特殊的字符命名,如:v1.0”、o_o0、….(都是不支持的)