请选择 进入手机版 | 继续访问电脑版
查看: 5121|回复: 0

【大赛资料】基于VBS7100B的智能语音LED灯的开发手册

[复制链接]

10

主题

11

帖子

118

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118
发表于 2018-10-17 13:49:54 | 显示全部楼层 |阅读模式
概要:基于庆科信息VBS7100B,利用arduino实现对LED灯的语音控制。当人说“开灯”时,LED灯变亮;当人说“关灯”时,LED灯熄灭。

硬件准备:
1)庆科信息VBS7100B智能语音套件:包括核心板、喇叭、麦克风、电池、扩展板。

具体详解见:
2)arduino(UNO)开发板及其数据线(淘宝上可以买到)。
图片:

file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpgfile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
3)USB转TTL、USB转串口和三个杜邦线(淘宝上可以买,比如:https://detail.tmall.com/item.htm?spm=a230r.1.14.13.59c544eaYxwL95&id=26521552017&cm_id=140105335569ed55e27b&abbucket=12
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg

4)杜邦线,两条公对公,三条公对母
                         公对母                                                           公对公
5)一个面包板,一个LED灯,一个电阻(100欧到1000欧之间)
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpgfile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpgfile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg
                            面包板                                              Led二极管灯                           电阻
6)电脑一台。
软件准备:
1)ComTool串口软件一个(可以在网上下载)
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg
2)arduino编程软件一个(可在arduino官网上下载)
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg
操作步奏:
1)配网,并定义命令
配网:
a)准备好USB转串口工具以及3条母对母杜邦线,如下图所示:
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image024.jpg
b)用杜邦线连接USB转串口工具和语音开发板
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image025.giffile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image026.giffile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image027.giffile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image029.gif
连接好的实物图如下所示:
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image033.gif
软件:
a)将串口调试工具插入电脑,在设备管理器中的端口确认端口,下图为COM4
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image035.jpgfile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image036.gif
b)以管理员身份运行comtool串口调试软件,并进行串口设置,串口选择跟设备管理器中端口一致的端口数,波特率调为“115200”,数据位为“8”,校验位选“NO”,停止位为“1”,具体如下图所示:
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image038.jpg
串口设置完毕后顺时针旋转语音开发板的电源开关按钮,如下图所示:
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image040.gif
c)在调试软件右侧,任意选择一个标签,并进行设置,配网时不要勾选16进制复选框,勾选回车换行发送右边复选框,然后编辑AT指令:AT+WSAP=wifi用户名,密码(如:AT+WSAP=shanghai,123456),并点击右侧指令发送按钮即可完成配网。
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image042.jpg
配网成功后软件界面显示如下图:
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image044.jpg定义命令:在开发相关产品前,要定义用语音控制哪些动作,比如本实验需要定义两个动作指令:开灯(指令为14),关灯(指令为15),具体定义如下:
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image046.jpg
如上图所示,在红色圈里输入两个指令,分别是:AT+ASRADD=kai deng,14;AT+ASRADD=guan deng,15(kai deng;guan deng,中间的空格很重要不能省略);然后,分别点击1-02和1-04两个按钮,如果设置成功,左边会显示出OK。

2)VBS7100B与Arduino连线
  
VBS7100B
  
Arduino
GND
杜邦线连接
GND
TX
杜邦线连接
RX
RX
杜邦线连接
3
用软串口(暂定为引脚3,也可以用其他引脚)从Arduino向VBS7100B写指令。
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image048.jpg
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image050.giffile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image052.jpg
3)Arduino与LED灯连线
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image054.jpg
LED灯长角的正极,短角的为负极。正极通过一个电阻和绿线进行连接,绿线连接到Arduino管角5上(其他角也可以,这里暂定角5);负极通过蓝色线连接到Arduino的管角上。
4)Arduino板与电脑连接
Arduino通过数据线与电脑进行连接。
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image055.giffile:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image057.jpg
5)打开编程编译环境
打开Ardunino编程IDE,点击文件/新建如下图
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image059.jpg
记得查看一下工具/端口,要让端口号选择Arduino板子的端口号,不可选错。
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image061.jpg
打开工具/串口监视器:串口监视器可以实时监控进入Arduino 管脚RX上的数据。
file:///C:/Users/mxchip/AppData/Local/Temp/msohtmlclip1/01/clip_image063.jpg
6)具体代码
#include<SoftwareSerial.h>    //是软串口库,可以用它调用软串口函数
SoftwareSerialmySerial(13, 3);  //定义软串口管角13为RX, 管角3为TX
int pin=5;                   //管脚5,用于控制LED灯具明亮
String str ="";               
void voiceOrder()
{
  str = Serial.readString();    //通过Arduino管脚RX接收来自VBS7100B扩展板的指令信息
  while (Serial.read() >= 0) {}    //读取最后一个字符为止
  str.trim();
  Serial.println(str);           //在串口监视器上显示出收到的信息
  int code;
  if (str.startsWith("+ASREVENT:"))
  {
    str.replace("+ASREVENT:","");//去除不是指令的信息
    code = str.toInt();
    Serial.println(code);       //在串口监视器上显示出收到的指令
    switch (code) {
      case 14: // kai deng
       mySerial.println("AT+TTS=正在打开灯\r\n"); //Arduino板子  通过管脚3(程序头上定义的软串口)发指令,目的是通过VBS7100B把文字转换为语音,用喇叭播出来。
       digitalWrite(pin, HIGH); //将管脚设置为高电平, 则LED灯亮
       delay(1000);         //等待1000毫秒
      break;
      case 15: //guan deng
       mySerial.println("AT+TTS=正在关闭灯\r\n"); //Arduino板子  通过管脚3(程序头上定义的软串口)发指令,目的是通过VBS7100B把文字转换为语音,用喇叭播出来。
       digitalWrite(pin, LOW); //将管脚设置为低电平, 则LED灯灭
       delay(1000); //等待1000毫秒
       break;
      default:
        break;
    }
  }
}
void setup() {
  // 初始化函数:
  Serial.begin(115200, SERIAL_8N1); //初始化硬串口(管脚RX、TX),设置波特率为115200
  mySerial.begin(115200); //初始化软串口(管脚13,3),设置波特率为115200
  delay(50);
  pinMode(pin, OUTPUT); //设置管脚为输出模式
  mySerial.println("AT+REBOOT\r\n");//重启VBS7100B
  delay(1000);
  mySerial.println("AT+TTS=大家好,我是机器人乐乐,欢迎大家来到机器人学校\r\n");  //Arduino板子通过管脚3(程序头上定义的软串口)发指令,目的是通过VBS7100B把文字转换为语音,用喇叭播出来。
}
void loop() {
  // 主函数
  voiceOrder();
}



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表