【四】基于ARM-Linux架构的语音控制刷抖音项目
文章目录
1.语音模块配置
整体逻辑是:
- 语音模块负责接收用户说话的信息,通过串口发送给H616
- H616写好业务逻辑的处理,当接收不同信号时来处理不同的业务
- 通过USB接口连接手机,利用adb指令来控制安卓手机
安卓的底层是Linux,所以也可以接收一些Linux指令
智能公元:智能公元/AI产品零代码平台 (smartpi.cn)
进入官方平台,配置词条和识别后的串口输出指令。
1.创建产品
这里用到的语音模块型号为SU-03T
2.引脚配置
3.词条定义
4.添加控制
5.发布版本
其他的选项可以自行探索
6.烧录固件
首先连接好串口(记得交叉接线),插到电脑上面下载固件
下载需要冷启动:先把模块断电,然后点下载,下载进度变黄,之后再给模块上电
TX | GPIO_B7 |
---|---|
RX | GPIO_B6 |
1.下载SDK固件包(里面自带烧录工具)
2.找到烧录工具
烧录器
固件位置与烧录器一个位置
开始烧录
烧录完固件之后,可以插到电脑上面配合串口助手看一下发送的信息
2.编程实现语音和开发板通信
首先将语音与开发板通过串口进行连接。
编译我们上一篇写的串口代码:
多文件编译方法: “ * ”为通配符,统一编译所有以uartT开头的文件
运行:
因为输出是乱码,所以需要我们修改一下发送的函数。
uartTool.c
//加入这段话
char myserialGetchar (const int fd)
{
char x ;
if (read (fd, &x, 1) != 1)
return -1 ;
return x ;
}
uartTool.h
char myserialGetchar (const int fd);
uartTest.c
添加串口读取一个字符的接口
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <pthread.h>
#include <string.h>
#include <stdio.h>
#include "uartTool.h"
int fd;
void* readSerial()
{
char cmd;
while(1){
cmd = myserialGetchar(fd);
switch(cmd){
case 'N':
printf("next\n");
break;
case 'P':
printf("pre\n");
break;
case 'Z':
printf("zan\n");
break;
case 'Q':
printf("qu\n");
break;
}
}
}
int main(int argc, char **argv)
{
char deviceName[32] = {
'\0'};
pthread_t readt;
if