语音录放模块-breakout

简介

您是否在寻找一款简单又强大的语音录放模块?看这里!这款语音录放模块支持arduino、AT指令、板载按键和AD按键四种控制方式。通过板载按键即使在没有微控制器的情况下也能进行录放音。模块支持多段语音录制,并且模块搭载了16MB的存储空间,可以录制大约40分钟的声音。通过USB线您可以很容易的将模块中的录音拷贝到电脑上。

特性

  • 支持大约40分钟声音录制
  • 支持多段语音录制
  • 支持按键进行录放音
  • 板载5W功放
  • 支持模拟U盘

应用场景

  • 毛绒玩具
  • 个性化礼物
  • 语音事件备忘录

技术规格

  • 供电电压:3.3V~5V
  • 工作电流:>10mA
  • 存储空间:16MB
  • 录音采样率:48kbs
  • 通讯方式:UART
  • 产品尺寸:26*30mm

引脚说明

序号 丝印 功能描述
1 VIN 电源正极
2 GND 电源负极
3 RX UART接收
4 TX UART发送
5 SPK+ 功放输出+
6 SPK- 功放输出-
7 PLAY 功能按钮
8 REC 功能按钮
9 KEY AD按键
10 DAC DAC输出
11 GND 电源负极
12 MIC 麦克风输入

使用教程

第一次使用时请用USB线将模块连接到电脑上进行格式化

DFR0745格式化

准备

关于如何安装库文件,点击链接

接线图

指示灯说明

指示灯介绍

状态 橙灯 蓝灯
从机模式 OFF OFF
录音模式 快闪 OFF
录音中 常亮 OFF
录音暂停 慢闪 OFF
播放中 OFF 常亮
播放暂停 OFF 慢闪
歌曲切换 OFF 闪烁两次

按键控制

录音

1.在从机模式下,点击REC按钮,进入录音模式,此时橙灯快闪(此时点击PLAY按钮可退出录音模式)

2.在录音模式下,点击REC按钮,开始录音,此时橙灯常亮(在录音中点击REC按钮可以暂停录音&继续录音)

3.在录音中或录音暂停时,点击PLAY按钮,保存并退出录音模式

播放

1.在从机模式下,点击PLAY按钮,进入音乐模式,此时蓝灯慢闪(此时点击REC按钮可退出音乐模式)

2.在音乐模式下,点击PLAY按钮,开始播放,此时蓝灯常亮(在播放中点击PLAY按钮可以暂停播放&继续播放)

3.在播放中长按PLAY两秒,可切换上一曲(此时蓝灯闪烁两次)

4.在播放中或播放暂停时,点击REC按钮,可以退出音乐模式

软件控制

  • 主要API接口函数列表
  /**
   * @brief 设置音量
   * @param vol:0-30
   * @return true or false
   */
  bool setVol(uint8_t vol);

  /**
   * @brief 设置工作模式
   * @param eFunction_t:MUSIC,RECORD,UFDISK
   * @return true or false
   */
  bool switchFunction(eFunction_t function);

  /**
   * @brief 设置播放模式
   * @param ePlayMode_t:SINGLECYCLE,ALLCYCLE,SINGLE
   * @return true or false
   */
  bool setPlayMode(ePlayMode_t mode);

  /**
   * @brief 播放(在音乐模式下) or 录音(在录音模式下)
   * @return true or false
   */
  bool start();

  /**
   * @brief 暂停播放(在音乐模式下) or 暂停录音(在录音模式下)
   * @return true or false
   */
  bool pause();

  /**
   * @brief 下一曲
   * @return true or false
   */
  bool next();

  /**
   * @brief 上一曲
   * @return true or false
   */
  bool last();

  /**
   * @brief 保存录音
   * @return true or false
   */
  bool saveRec();

  /**
   * @brief 播放指定编号文件一次(仅对默认文件名有效),如果没有则播放第一个文件
   * @param 文件名编号:0-999
   */
  void playSpecFile(int16_t num);

  /**
   * @brief 删除当前播放文件
   * @return true or false
   */
  bool delCurFile();

样例代码1 - 录音

上电后进入录音模式,2秒后开始录音,录音5S后保存录音,然后串口循环打印录音文件文件名。

/*!
 * @file record.ino
 * @brief Recording
 * @n Experiment Phenomenon:Power on the module then it enters the recording mode. 
 * @n                       Start recording after 2 seconds and save the recorded voice file 5 seconds later. 
 * @n                       Print the file name repeatedly at the serial port.
 * @copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @licence     The MIT License (MIT)
 * @author [fengli](li.feng@dfrobot.com)
 * @version  V1.0
 * @date  2020-07-16
 * @get from https://www.dfrobot.com
 * @url https://github.com/DFRobot/DFRobot_DF1101S
 */
#include <DFRobot_DF1101S.h>
#include <SoftwareSerial.h>

SoftwareSerial df1101sSerial(2, 3);  //RX  TX

DFRobot_DF1101S df1101s;

String RECFileName;  //录音文件名

void setup(void){
  Serial.begin(115200);
  df1101sSerial.begin(115200);
  while(!df1101s.begin(df1101sSerial)){
    Serial.println("初始化失败,请检查接线!");
    delay(1000);
  }
  /*设置波特率,掉电保存,需掉电重启*/
  //df1101s.setBaudRate(115200);
  /*打开LED提示,掉电保存*/
  //df1101s.setLED(true);
  /*打开语音提示,掉电保存*/
  //df1101s.setPrompt(true);
  
  /*进入录音模式*/
  df1101s.switchFunction(df1101s.RECORD);
  /*等待提示音播放结束*/
  delay(2000);
  /*开始录音*/
  df1101s.start();
  /*暂停录音*/
  //df1101s.pause();
  delay(5000);
  /*保存录音*/
  RECFileName = df1101s.saveRec();
}

void loop(){
  Serial.println(RECFileName);
  delay(1000);
}

结果

DFR0745result1

样例代码2 - 播放

上电后进入音乐模式,开始播放最后一次的录音文件,3S后暂停播放,3S后播放下一曲,3S后播放上一曲,3秒后播放指定编号文件(FILE0000)一次

/*!
 * @file play.ino
 * @brief Playing
 * @n Experiment Phenomenon:Power on the module then it enters the music mode. 
 * @n                       Start playing the previously-recorded file, pause 3s later, 
 * @n                       play the next song 3s later, play the last song 3s later, 
   @n                       and play the file of specific number(FILE0000) once 3s later.
 * @copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @licence     The MIT License (MIT)
 * @author [fengli](li.feng@dfrobot.com)
 * @version  V1.0
 * @date  2020-07-16
 * @get from https://www.dfrobot.com
 * @url https://github.com/DFRobot/DFRobot_DF1101S
 */
#include <DFRobot_DF1101S.h>
#include <SoftwareSerial.h>

SoftwareSerial df1101sSerial(2, 3);  //RX  TX

DFRobot_DF1101S df1101s;
void setup(void){
  Serial.begin(115200);
  df1101sSerial.begin(115200);
  while(!df1101s.begin(df1101sSerial)){
    Serial.println("初始化失败,请检查接线!");
    delay(1000);
  }
  /*设置音量为20*/
  df1101s.setVol(20);
  Serial.print("VOL:");
  /*获取音量*/
  Serial.println(df1101s.getVol());
  /*进入音乐模式*/
  df1101s.switchFunction(df1101s.MUSIC);
  /*等待提示音播放结束*/
  delay(2000);
  /*设置播放模式为全部循环*/
  df1101s.setPlayMode(df1101s.ALLCYCLE);
  Serial.print("PlayMode:");
  /*获取播放模式*/
  Serial.println(df1101s.getPlayMode());
}

void loop(){
  /*开始播放*/
  df1101s.start();
  delay(3000);
  /*暂停播放*/
  df1101s.pause();
  delay(3000);
  /*播放下一曲*/
  df1101s.next();
  delay(3000);
  /*播放上一曲*/
  df1101s.last();
  delay(3000);
  /*播放指定编号文件(FILE0000)一次*/
  df1101s.playSpecFile(0);
  while(1);
  /*删除正在播放的文件*/
  //df1101s.delCurFile();
}

结果

DFR0745result2

AD按键控制

AD按键购买链接

按键 串联电阻 点击 长按
K0 0R 暂停&播放
K1 3K 上一曲 音量+
K2 6.2K 下一曲 音量-
K3 9.1K 播放模式切换
K4 15K REC
K5 24K PLAY
K6 33K 音量- 音量-
K7 51K 音量+ 音量+
K8 100K 工作模式切换
K9 220K 删除当前播放文件

DFR0745ADKEY

AT指令控制

注意:以下所有命令均省略了“\r\n”,实际使用时请添加在命令后面,例如“AT+VOL=5\r\n”,指定音量为5级

串口波特率默认115200

录音:

1.AT+FUNCTION=2 //进入录音模式

2.AT+REC=RP //开始录音

3.AT+REC=SAVE //保存录音

播放:

1.AT+FUNCTION=1 //进入音乐模式

2.AT+PLAY=PP //播放

/**
 * @brief 测试连接
 */
AT  //测试连接

/**
 * @brief 音量控制(音量等级:0-30)
 * @param -n:音量-n
 *        +n:音量加n
 *         n:指定音量为n
 *         ?:查询音量
 */
AT+VOL=-5  //音量-5

AT+VOL=?   //查询音量
返回:VOL = [10]   //当前音量为10

/**
 * @brief 功能切换
 * @param  1:音乐模式
 *         2:录音模式
 *         3:从机模式
 */
AT+FUNCTION=1  //切换到音乐模式

/**
 * @brief 播放模式控制
 * @param  1:单曲循环
 *         2:全部循环
 *         3:单曲播放完暂停
 *         ?:查询当前播放模式
 */
AT+PLAYMODE=1   //切换为单曲循环

AT+PLAYMODE=?   //查询当前的播放模式
返回:PLAYMODE =1  //当前播放模式为:单曲循环

/**
 * @brief 播放控制
 * @param    PP:播放&暂停
 *         NEXT:下一曲
 *         LAST:上一曲
 */
AT+PLAY=NEXT   //下一曲

/**
 * @brief 播放指定编号文件(默认文件名)或指定文件一次
 * @param        n:播放文件名标号为n的音乐文件(0-999),如果没有则播放第一个文件
 *         文件路径:播放指定路径的文件
 */
AT+PLAYFILE=5                       //播放FILE0005.mp3一次
AT+PLAYFILE=/DF_REC/test.MP3        //播放DF_REC下的test.mp3一次

/**
 * @brief 删除当前播放文件
 */
AT+DEL

/**
 * @brief 录音控制
 * @param    RP:录音&暂停录音
 *         SAVE:保存录音
 */
AT+REC=SAVE    //保存录音

/**
 * @brief 设置波特率(掉电保存,需再次上电生效)
 * @param    9600、19200、38400、57600、115200
 */
AT+BAUDRATE=115200  //设置波特率为115200

/**
 * @brief 提示音开关指令(掉电保存)
 * @param    ON、OFF
 */
AT+PROMPT=ON   //打开提示音

//LED提示开关指令(掉电保存)
/**
 * @brief LED提示开关指令(掉电保存)
 * @param    ON、OFF
 */
AT+LED=ON   //打开LED指示

常见问题

A:进入音乐模式播放音乐,是从最后一个音频文件开始播放的

如果出现不能正常录音的情况,请更新最新固件解决
更新固件方法
1.解压download.zip
2.进入download/download文件夹找到download_flash_sdk.bat文件
3.使用能进行数据传输的USB线连接模块,双击download_flash_sdk.bat文件等烧录完成即可。

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接