当前位置: 首页 > news >正文

桂林市工程建设项目招标网站天下商机创业网

桂林市工程建设项目招标网站,天下商机创业网,建设网站怎么加购物车,网站建设价格评审资料清单文章目录 简介离线语音控制模块Mini MP3模块0.96寸 OLED模块实验准备安装库接线定义主要程序实验效果注意事项总结 简介 在前面一篇文章里我们对AI智能语音识别模块进行了介绍#xff0c;并对离线语音模组下载固件的过程进行了一个简单描述#xff0c;不知道大家还记不记得并对离线语音模组下载固件的过程进行了一个简单描述不知道大家还记不记得这篇文章也是鸽了好久本文将用这个语音控制模块结合前面介绍的DFPlayer Mini MP3模块来做一个有趣的应用在上一期文章中我们只是简单的做了一个只用语音控制模块点亮LED的应用本期将结合Arduino开发板、DFPlayer Mini MP3模块来实现对音乐的控制并在OLED屏幕显示基本的控制信息。本期是基于前面两篇文章进行的实验因此就不对语音模块下载固件的过程和MP3模块的引脚定义进行介绍了。 还没看过这两篇文章的可以点击下面两个链接跳转 添加AI智能语音识别模块一——离线模组介绍 Arduino驱动DFPlayer Mini MP3模块 本次实验用到的主要器件包含下面三个模块 离线语音控制模块 Mini MP3模块 0.96寸 OLED模块 实验准备 Arduino开发板1个Mini MP3模块1个离线语音模块1个TF卡1个8欧1W喇叭1个0.96寸OLED1个数据线用于板子下载程序和供电2条杜邦线若干 安装库 程序中使用到了DFRobotDFPlayerMini.h头文件如果没有安装库编译代码时会报错因此需要正确安装DFRobotDFPlayerMini库才能编译通过。下面是安装介绍。 接线定义 Arduinodfplayer5VVCCGNDGNDD10TXDD11RXD ArduinoOLEDGNDGND3.3VVCCA5SCLA4SDA Arduino语音识别模块D0B7 主要程序 /*功能 通过语音控制MP3模块的播放、暂停、上一曲、下一曲、增大音量、减小音量等,并在OLED屏幕显示控制信息。 */#include SoftwareSerial.h #include DFRobotDFPlayerMini.h #include config.hchar uart_rx_buf 0; SoftwareSerial mySoftwareSerial(10, 11); // RX, TXDFRobotDFPlayerMini myDFPlayer;void setup() { mySoftwareSerial.begin(9600);Serial.begin(9600);uint8_t t ;OLED_Init();OLED_ColorTurn(0);//0正常显示 1反色显示OLED_DisplayTurn(0);//0正常显示 1翻转180度显示OLED_ShowChar(24,0,M,16);OLED_ShowChar(42,0,U,16);OLED_ShowChar(60,0,S,16);OLED_ShowChar(78,0,I,16);OLED_ShowChar(96,0,C,16);myDFPlayer.begin(mySoftwareSerial);myDFPlayer.volume(20); //音量设定为20 myDFPlayer.enableLoopAll() ; }void loop() {if(Serial.available()0) { //如果串口有数据uart_rx_buf char(Serial.read());//Serial.read()读缓冲区字符每次只能读一个字节if((uart_rx_buf0xf0) 4 2) {switch(uart_rx_buf 0x0f){case 0:myDFPlayer.start();delay (500);Serial.println(start); OLED_ShowChinese(0,3,4,16);OLED_ShowChinese(18,3,5,16);OLED_ShowChinese(36,3,6,16);OLED_ShowChinese(54,3,7,16); break;case 1:myDFPlayer.pause();delay (500);Serial.println(pause); OLED_ShowChinese(0,3,8,16);OLED_ShowChinese(18,3,9,16);OLED_ShowChinese(36,3,4,16);OLED_ShowChinese(54,3,5,16); break; }} if((uart_rx_buf0xf0) 4 3) {switch(uart_rx_buf 0x0f){ case 0:myDFPlayer.previous() ;delay (500);Serial.println(previous); OLED_ShowChinese(0,3,0,16);OLED_ShowChinese(18,3,1,16);OLED_ShowChinese(36,3,2,16);OLED_ShowChinese(54,3,10,16);break;case 1:myDFPlayer.next() ;delay (500);Serial.println(next); OLED_ShowChinese(0,3,3,16);OLED_ShowChinese(18,3,1,16);OLED_ShowChinese(36,3,2,16);OLED_ShowChinese(54,3,10,16);break; }} if((uart_rx_buf0xf0) 4 4) {switch(uart_rx_buf 0x0f){ case 0:myDFPlayer.volumeUp();delay (500);Serial.println(volumeUp); OLED_ShowChinese(0,3,11,16);OLED_ShowChinese(18,3,12,16);OLED_ShowChinese(36,3,6,16);OLED_ShowChinese(54,3,13,16);break;case 1:myDFPlayer.volumeDown() ;delay (500);Serial.println(volumeDown);OLED_ShowChinese(0,3,14,16);OLED_ShowChinese(18,3,15,16);OLED_ShowChinese(36,3,6,16);OLED_ShowChinese(54,3,13,16);break; }} if((uart_rx_buf0xf0) 4 5) {switch(uart_rx_buf 0x0f){ case 0:myDFPlayer.volume(30) ;delay (500);Serial.println(MaxVolume); OLED_ShowChinese(0,3,16,16);OLED_ShowChinese(18,3,12,16);OLED_ShowChinese(36,3,6,16);OLED_ShowChinese(54,3,13,16);break;case 1:myDFPlayer.volume(20) ;delay (500);Serial.println(MidVolume); OLED_ShowChinese(0,3,17,16);OLED_ShowChinese(18,3,18,16);OLED_ShowChinese(36,3,6,16);OLED_ShowChinese(54,3,13,16);break; case 2:myDFPlayer.volume(15) ;delay (500);Serial.println(MinVolume); OLED_ShowChinese(0,3,16,16);OLED_ShowChinese(18,3,15,16);OLED_ShowChinese(36,3,6,16);OLED_ShowChinese(54,3,13,16);break; }} uart_rx_buf 0; //清除接收到的字符} }查看上面代码主要是对串口接收到的数据进行处理下面贴出了离线语音模块的控制详情。对串口发送的数据是可以自定义的因此对上述代码稍加修改就可以只用一个Switch语句或者多个if语句实现串口控制这里采用先判断串口高4位数据然后再判断低4位数据的方法来实现控制。这个其实和前面一期Arduino驱动DFPlayer Mini MP3模块的文章一样只不过对串口输出的判断从判断高低电平变为判断接收到的串口数据。这样只用一个端口就可以实现控制节省了IO口数目。除了对接收到的数据进行判断处理的代码还有oled显示控制信息的代码这个就没什么好介绍的了大家也可以自己丰富关于显示这部分的功能。 上述代码使用了两个串口D10D11是Arduino和MP3播放器通信使用的另一个是和语音模块通信用的使用到了Arduino的硬件串口因此这里要注意在下载程序时把接到 D0 引脚的线拔掉否则程序会下载失败。另一个解决办法是使用软件串口这样就避免了串口冲突。 前面我们已经讲过AI智能语音模块下载固件的过程了这里就不再重复了烧录好固件后可以说以下命令词实现控制。通过下面三种唤醒词唤醒模块。 通过下面几个命令词实现控制MP3音乐模块 在说命令词的时候可能会受到周围环境干扰或者喇叭播放音乐时自身太吵的影响导致识别不到或者识别错误指令这个没关系多试几遍就好了一般不是很吵的情况下说第二遍就能识别正确了这个语音模块识别正确率还是很高的。本次实验在固件生成的时候用到的是快速测试版本可以快速生成SDK进行测试该版本识别的效果相对发布版本语音识别效果差一些因为本次实验只是为了验证功能的实现如果想要更稳定的版本大家可以自行生成测试一下。 实验效果 整体接线 控制效果 基于Arduino的语音控制MP3播放器 注意事项 使用本次实验的语音控制模块下载离线语音模块固件时需要断开电源后重新通电才能下载成功。Arduino上传上述代码时需要拔插Arduino的 D0 引脚的线否则上传失败。可以使用功率更大一点的喇叭以提升音质效果但要在3W以内。 总结 本次实验通过Arduino结合语音模块和MP3模块以及oled模块实现了对MP3模块的语音控制和显示控制信息功能。
http://www.lakalapos1.cn/news/36604/

相关文章:

  • 成都装修公司网站建设装宽带需要多少钱
  • 有哪些做普洱茶网站的网站三层结构示意图
  • 彩票网站开发 违法化妆网站源码
  • 有人上相亲网站做传销燕窝纺织厂网站模板
  • 服装品牌建设网站的目的哈尔滨黑大主题邮局
  • 做网站最下面写什么企业培训师资格证
  • 国外的调查网站上做问卷凡客app官网
  • 做网站类的书本信息网站建设做的好处
  • 餐饮美食网站源码十大设计创意产品网站
  • 旅游政务网站建设哔哩哔哩网站建设
  • 网站建设公司排名小智logo在线制作
  • 闸北区网站建设网wordpress架设系统
  • 一个网站的建设流程上海网站域名注册价格
  • 有哪些网站代做包装毕设长春定制建站企业网站
  • 做集团网站的小说发表哪个网站赚钱
  • 中小企业微信网站建设企业网站哪里可以做
  • 网站设计应该怎么做做外贸网站注意事项
  • eclips怎么做网站app动效网站
  • 建设工程设计招标信息网站.校园网站设计描述
  • 常州网站建设公司方案seo搜索推广费用多少
  • 网站广告通栏效果大连小型网站建设
  • 广州建设大马路小学网站深圳做网站哪里好
  • 仙游县建设局网站福建省第二电力建设公司网站
  • 西安网站开发培训工程建设项目管理系统平台
  • 如何申请自己的网站wordpress short ping
  • 花钱做推广广告哪个网站好商务网站建设的基本步骤
  • 凉山建设机械网站网站网页建设论文
  • 长春建设厅网站首页做网盟的网站必须备案
  • 哪个免费的网站建设好有哪些做企业点评的网站
  • 房产门户网站建设国内产品网站