当前位置: 首页 > news >正文

网站建设招标要求成都网站建设联系电话

网站建设招标要求,成都网站建设联系电话,国外大气网站,团购网站为什么做不走文章目录 所需器材装备操作SU-03T语音模块配置代码(没有用wiring库,自己实现串口通信)结束 所需器材 可以百度了解以下器材 orangepi-zero2全志开发板 su-03T语音识别模块 USB-TTL模块 一个安卓手机 一根可以传输的数据线 装备操作 安…

文章目录

  • 所需器材
  • 装备操作
  • SU-03T语音模块配置
  • 代码(没有用wiring库,自己实现串口通信)
  • 结束

所需器材

可以百度了解以下器材

orangepi-zero2全志开发板

su-03T语音识别模块

USB-TTL模块

一个安卓手机

一根可以传输的数据线

装备操作

安卓手机开启,开发者模式,并开启USB调试功能。
插入开发板,跳出什么就点允许就行(否则可能没有权限开发板无权访问手机系统)

SU-03T语音模块配置

进入网站:http://www.smartpi.cn/
这个模块其实进入网站点点点就可以完成,非常方便,但是没有什么技术含量

配置SU-03T模块
设置串口通信
在这里插入图片描述
设置唤醒词
在这里插入图片描述
设置命令触发
在这里插入图片描述
设置触发之后发送的命令
在这里插入图片描述
到此点击身材sdk,安静等待就可以了,搞好之后需要,将sdk上传至语音模块

将USB-TTL模块插入电脑,并将TX,RX与模块的TX,RX交叉相接。
将下载的sdk文件,打开,上传即可(图就不放了,较简单)

可以使用串口工具测试一下~

测试没问题将语音模块RX和TX接入开发板的RX,TX端口

代码(没有用wiring库,自己实现串口通信)

由于没有用wiring库所以多出俩个工具文件。当然也是用source insight分析源码cv编写,没写注释,将就看吧,这俩个文件,比较难啃,都是和linux内核打交道struct termios options;

uartTools.c

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdarg.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>int myserialOpen (const char *device, const int baud)
{speed_t myBaud ;int     status, fd ;	struct termios options;switch (baud){case    9600:	myBaud =    B9600 ; break ;case  115200:	myBaud =  B115200 ; break ;}if ((fd = open (device, O_RDWR | O_NOCTTY | O_NDELAY | O_NONBLOCK)) == -1)return -1 ;fcntl (fd, F_SETFL, O_RDWR) ;// Get and modify current options:tcgetattr (fd, &options) ;cfmakeraw   (&options) ;cfsetispeed (&options, myBaud) ;cfsetospeed (&options, myBaud) ;options.c_cflag |= (CLOCAL | CREAD) ;options.c_cflag &= ~PARENB ;options.c_cflag &= ~CSTOPB ;options.c_cflag &= ~CSIZE ;			options.c_cflag |= CS8 ;			//数据位8个options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG) ;options.c_oflag &= ~OPOST ;options.c_cc [VMIN]  =   0 ;options.c_cc [VTIME] = 100 ;	// Ten seconds (100 deciseconds)tcsetattr (fd, TCSANOW, &options) ;ioctl (fd, TIOCMGET, &status);status |= TIOCM_DTR ;status |= TIOCM_RTS ;ioctl (fd, TIOCMSET, &status);usleep (10000) ;	// 10mSreturn fd ;
}void myserialPutchar (const int fd, const unsigned char c)
{int ret;ret = write (fd, &c, 1) ;if (ret < 0)printf("Serial Putchar Error\n");
}void mySerialSendString(const int fd,const unsigned char *str)
{if(write(fd,str,strlen(str)) < 0){printf("Serial sendString Error\n");}
}int mySerialGetchar(const int fd, unsigned char *c)
{if(read(fd,c,1) !=1){return -1 ;}}int mySerialGetString(const int fd, unsigned char *str)
{if(read(fd,str,32) != 32){return -1;}
}

uartTools.h

#ifndef _UART_TOOLS_H_
#define _UART_TOOLS_H_
int myserialOpen (const char *device, const int baud);
void myserialPutchar (const int fd, const unsigned char c);
void mySerialSendString(const int fd,const unsigned char *str);
int mySerialGetchar(const int fd, unsigned char *c);
int mySerialGetString(const int fd, unsigned char *str);#endif

uart.c
到这里就是简单的处理语音模块发来的命令了

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdarg.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <pthread.h>#include "uartTools.h"int fd;void *recvHandler()
{char *recvBuf;recvBuf = (char *)malloc(sizeof(char)*32);if(recvBuf == NULL){printf("recvHandler malloc fail\n");}while(1){memset(recvBuf,'\0',strlen(recvBuf));mySerialGetchar(fd,recvBuf);switch(*recvBuf){case 'N':printf("next\n");system("adb shell input swipe 540 1300 540 500 100");		//adb 命令,模拟手机滑动屏幕break;case 'P':printf("pre\n");system("adb shell input swipe 540 500 540 1300 100");break;case 'Z':system("adb shell \"seq 2 | while read i;do input tap 350 1050 & input tap 350 1050 &sleep 0.2;done;\"");printf("zan\n");break;case 'Q':printf("quit\n");system("adb shell input keyevent 26");break;}}}int main(char argc, char **argv)
{char filename[32] = {'\0'};pthread_t recvPthread;if(argc < 2){printf("uage:%s /dev/ttyS?\n",argv[0]);return -1;}strcpy(filename,argv[1]);if((fd = myserialOpen(filename,115200)) == -1){printf("open %s error\n",filename);return -1;}pthread_create(&recvPthread,NULL,recvHandler,NULL);while(1){sleep(10);}return 0;
}

结束

如有问题,欢迎提出,共同进步

http://www.yayakq.cn/news/123242/

相关文章:

  • 合肥网站运营管理公司宜昌手机网站制作
  • 网站空间备案流程wordpress搜索用户
  • 国外空间网站源码wordpress+培训行业主题
  • 做美食教程的网站有哪些长春商城网站制作
  • 河南网站建设网络公司网站开发模式
  • 销售网站建设工资多少沈阳海外模板建站
  • 对网站做数据统计的目的是什么意思厦门最新通告
  • 做网站要会哪些技术asp做的静态网站卡不卡
  • 男女做暖暖的试看网站酥酥影视全国企业名称注册查询
  • 珠海建站程序用html制作简易网页的教程
  • 做网站空间要多大网络营销专业怎么样
  • 网站SEO做点提升流量象客wordpress英文意思
  • 企业网站服务器跟域名都需要交钱吗汽车软件开发流程
  • 江阴网站建设培训网站的总体风格包括
  • 淘宝做推广网站做前端网站要注意哪些
  • 网站建设课程心得体会网络推广业务员是干什么的
  • 梅州站扩建建设集团工程有限公司
  • 摄影作品网站风景wordpress 怎么改字体大小
  • 彬县网站建设正规网站建设首选公司
  • 做网站的主题有哪些调研园区网站建设工作
  • 网站设计站网站国际化建设方案
  • 天津品牌网站建设是什么抽奖小程序
  • 销售网站制作怎么做随机关键词生成器
  • 深圳宝安医院的网站建设做网站的公司在哪
  • 在一个空间建两个网站形象设计师培训学校
  • 孝感专业做网站公司做网站的公司主要工作是什么
  • 安徽公路建设行业协会网站是哪个电子商务网站建设评估的指标
  • 如何建设网站盈利网站建设的潜在客户
  • 网站文章百度不收录营站快车代理平台
  • 网站建设网站制作网站设计注册公司注册资金最低多少钱