失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)

玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)

时间:2019-12-24 14:18:09

相关推荐

玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)

本文内容为玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)

1.语音模块

本人使用的是ld3320二代语音识别开发板

通过和电脑连接的是ttl转接口

连接的时候 大家注意l连接方式

2,定制专属词条(二次开发语音模块)

软件 keil5 你会看到一堆奇奇怪怪的代码

就去main函数里面修改词条 还有LDChip.c LDCHIP.H

按照手册去修改 一顿操作之后 即可打开串口助手 stc-isp

注意一下 单片机型号要选好,然后串口就选有USB-SERIAL CH340 这种的

最低波特率就选2400 最高波特率就选115200 以大家拿到的手册为主

然后拔插一下与语音模块的GND线 相当于单片机复位工作吧 下载完之后 可以去试试啦!

3.树莓派串口通信设置

1.外设里面一共包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0)。硬件串口由硬件实现,有单独的波特率时钟源,性能高、可靠,mini串口性能低,功能也简单,并且没有波特率专用的时钟源而是由CPU内核时钟提供,因此mini串口有个致命的弱点是:波特率受到内核时钟的影响。内核若在智能调整功耗降低主频时,相应的这个mini串口的波特率便受到牵连了,虽然你可以固定内核的时钟频率,但这显然不符合低碳、节能的口号。在所有的树莓派板卡中都通过排针将一个串口引出来了,目前除了树莓派3代以外 ,引出的串口默认是CPU的那个硬件串口。而在树莓派3代中,由于板载蓝牙模块,因此这个硬件串口被默认分配给与蓝牙模块通信了,而把那个mini串口默认分配给了排针引出的GPIO Tx Rx。

2.

在进行串口模式的修改之前,我们想要确保串口的功能已经激活,在 /boot/config.txt 文件中添加几句话

sudo vim /boot/config.txtenable_uart=1dtoverlay=pi3-miniuart-bt

之后重启

ls -l /dev

此时,ttyAMA0串口可以正常用于串口通信,ttyS0则无法被用于串口通信,蓝牙功能失效。

4.树莓派 语音控制继电器相关代码

因为要使用串口通信 所以在代码部分 是需要添加#include<wiringSerial.h>这个头文件。

#include<stdio.h>#include<string.h>#include<unistd.h>#include<wiringPi.h>#include<wiringSerial.h>#define LED 7int main(){if(wiringPiSetup()==-1){return -1;}char cmd[128]={'\0'};int nread=0;pinMode(LED,OUTPUT);digitalWrite(LED,HIGH);int fd;fd=serialOpen("/dev/ttyAMA0",9600);if(nread==-1){perror("read");}if(fd==-1){perror("why");} while(1) {nread=read(fd,cmd,sizeof(cmd)); if(strcmp(cmd,"kd“)==0){digitalWrite(LED,LOW);}else if(strcmp(cmd,"gd")==0){digitalWrite(LED,HIGH); }memset(cmd,'\0',sizeof(cmd));}}

最后效果图

如果觉得《玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。