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

本文内容为玩转树莓派 —智能家居(语音控制电器开关 及语音模块的二次开发)
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.txt
enable_uart=1
dtoverlay=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  7
int 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));
}
}

最后效果图
在这里插入图片描述

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值