目录

● 简要说明

● 语音模块配置

● 固件烧录

● Linux adb操作控制android手机

● 用shell指令来操作手机屏幕,模拟手动滑动屏幕

● 代码实现


● 简要说明

语音模块根据对应的语音信号转化为电信号,并向H616输出对应的数据,H616根据对应的数据进行相应的adb操作,最后在抖音APP实现语音控制功能。

①语音模块:语音信号——>电信号 ②H616:电信号——>指令信息 ③指令信息——>模拟滑动屏幕操作 ④抖音:显示操作。

● 语音模块配置

进入语音模块官网 http://www.smartpi.cn/#/ ,配置词条和识别后的串口输出指令。

Pin脚配置

唤醒词和唤醒回复选择默认即可,离线命令词与应答语需要自定义。

添加控制

下载配置好的SDK

固件烧录

打开烧录工具

将语音模块通过串口的方式连接USB转TTL插入电脑USB口;

选择镜像文件uni_app_release_ipdata.bin,点击烧录后,在给设备上电(打开语音模块开关),完成固件烧录。

● Linux adb操作控制android手机

● adb(Android debug bridege)是安卓调试桥,可以对装有安卓系统的终端进行调试。

● 准备Android系统的手机一部,usb数据线,用数据线将全志板子和手机进行连接。

① 输入指令:dmesg 查看连接USB的设备信息(此处查看手机信息)

② 输入指令:sudo apt-get install adb 安装adb工具

③ 命令查看设备:adb devices可以看到adb检查到的串行设备数字

④ 打开手机开发者选项,允许usb进行调试

adb shell进入手机,出现以下页面,表示进入手机成功

⑥ 退出命令:exit

● 用shell指令来操作手机屏幕,模拟手动滑动屏幕

adb shell input swipe 540 1300 540 500 100 //向下滑动540是水平的,1300是竖直方向,下 是500
adb shell input swipe 540 500 540 1300 100 //向上滑动
adb shell “seq 4 | while read i;do input tap 350 1050 & input tap 350 1050 &sleep 0.01;done;” //点赞
adb shell input keyevent 26 //锁屏

● 代码实现

  1 #include "uartTool.h"  2 #include "pthread.h"  3 #include "string.h"  4 #include "unistd.h"  5 #include "stdlib.h"  6 #include "stdio.h"  7  8 int fd;  9 10 void* readSerial() 11 { 12     char cmd; 13     while(1){ 14         cmd = myserialGetchar(fd); 15         switch(cmd){ 16             case 'N': 17                 system("adb shell input swipe 540 1300 540 500 100"); 18                 printf("next\n"); 19                 break; 20             case 'P': 21                 system("adb shell input swipe 540 500 540 1300 100"); 22                 printf("preview\n"); 23                 break; 24             case 'Z': 25                 system("adb shell \"seq 4 | while read i;do input tap 350 1050 & input tap 350 1050 & sleep 0.01;done;\""); 26                 printf("dian zan\n"); 27                 break; 28             case 'Q': 29                 system("adb shell input keyevent 26"); 30                 printf("quit\n"); 31                 break; 32         } 33     } 34 } 35 int main(int argc,char **argv) 36 { 37     char deviceName[32]; 38     pthread_t readt; 39 40     if(argc<2){ 41         printf("uage:%s /dev/ttyS?\n",argv[0]); 42         return -1; 43     } 44 45     strcpy(deviceName,argv[1]); 46     if((fd = serialOpen(deviceName,115200)) == -1){ 47         printf("open %s error \n",deviceName); 48         return -1; 49     } 50 51     pthread_create(&readt,NULL,readSerial,NULL); 52     while(1){sleep(10);} 53 54     return 0; 55 }

执行代码后,唤醒语音模块,就可实现语音刷抖音的功能。