本文内容为玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)
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));}}
最后效果图
如果觉得《玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)》对你有帮助,请点赞、收藏,并留下你的观点哦!