目录

一、手机连接Linux步骤

二、adb控制指令

三、基于Linux串口实现语音刷抖音

1、语音模块控制详情

2、代码实现


一、手机连接Linux步骤

1、把手机接入开发板
2、安装adb工具,在终端输入adb安装指令:
sudo apt-get install adb
3、dmesg能查看到手机接入的信息
4、在手机开发者选项中,打开USB调试,重新拔插手机,点击信任此设备
5、输入adb devices
6、输入adb shell

二、adb控制指令

用shell指令来操作手机屏幕,模拟手动滑屏幕
1、向下滑动。从坐标点(540,1300)用100ms滑动到坐标点(540,500)
adb shell input swipe 540 1300 540 500 100

2、 向下滑动。从坐标点(540,500)用100ms滑动到坐标点(540,1300)

adb shell input swipe 540 500 540 1300 100

3、双击。点击坐标点(540,1050)两次,间隔0.1s

adb shell "seq 2 | while read i;do input tap 540 1050 & input tap 540 1050 &
sleep 0.1;done;" 

4、锁屏。

adb shell input keyevent 26

三、基于Linux串口实现语音刷抖音

1、语音模块控制详情

智能公元/AIOT快速产品化平台

2、代码实现

uartTest.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 <unistd.h> #include <pthread.h>
#include "uartTool.h"int fd; void* readSerial()
{ char cmd; while(1){ cmd = myserialGetchar(fd); switch(cmd){ case 'N': printf("next\n");system("adb shell input swipe 540 1300 540 500 100");break; case 'L': printf("last\n");       system("adb shell input swipe 540 500 540 1300 100");break; case 'Z': printf("zan\n"); system("adb shell \"seq 2 | while read i;do input tap 540 1050 & input tap 540 1050 & sleep 0.1;done;\"");break; case 'Q': printf("quit\n"); system("adb shell input keyevent 26");break;      }   }
}int main(int argc, char **argv)
{ char deviceName[32] = {'\0'}; pthread_t readt; if(argc < 2){ printf("uage:%s /dev/ttyS?\n",argv[0]); return -1; }strcpy(deviceName, argv[1]); if( (fd = myserialOpen(deviceName, 115200)) == -1){ printf("open %s error\n",deviceName); return -1; }pthread_create(&readt, NULL, readSerial,NULL); while(1){sleep(10);} }

uartTool.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 "wiringSerial.h"char myserialGetchar (const int fd)
{char x ;if (read(fd , &x, 1) != 1)return -1 ;return x ;
}int myserialOpen (const char *device, const int baud)
{ struct termios options ; speed_t myBaud ; int status, fd ; 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 ; //1位停止位options.c_cflag &= ~CSIZE ; //用数据位掩码清空数据位设置options.c_cflag |= CS8 ; //数据位为8options.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) ; // 10mS return fd ;
}void serialSendstring (const int fd, const char *s)
{ int ret;ret = write (fd, s, strlen (s)); if (ret < 0) printf("Serial Sendstring Error\n");
}int serialGetstring (const int fd, char *buffer)
{ int n_read; n_read = read(fd, buffer,32); return n_read;
}

uartTool.h

char myserialGetchar (const int fd);int myserialOpen (const char *device, const int baud);void serialSendstring (const int fd, const char *s);int serialGetstring (const int fd, char *buffer);

四、守护进程不让控制程序退出

需求:要求语音刷手机的程序一直保持运行,防止应用程序崩溃意外

Linux的热拔插UDEV机制 / 守护进程_大头1213的博客-CSDN博客

【Orangepi Zero2 全志H616】语音刷抖音 / 手机连接Linux热拔插相关相关推荐

  1. Orangepi Zero2 全志H616(一):配置初始化和启动流程

    目录 一,Orangepi简单说明 ①为什么使用全志H616 ②基本特性 ③配套操作系统支持 二,刷机和系统启动 ①准备工具 ②登录系统 ● 开发板供电 ● 登录 ● 开发板上板载LED灯测试说明 ③ ...

  2. 【Orangepi Zero2 全志H616】wiringPi外设SDK安装

    Orangepi Zero2 全志H616开发板 一.网络配置 命令扫描周围的WIFI热点 nmcli dev wifi 命令接入网络 nmcli dev wifi connect xxxxxxxx ...

  3. Orangepi Zero2 全志H616(驱动蜂鸣器)

    一.Orangepi Zero2 全志H616信息 1.接口相关信息: 2.引脚图 二.代码实现 #include <stdio.h> #include <wiringPi.h> ...

  4. Orangepi Zero2 全志H616简介

    一.简介 Linux 系统 ,平台是 ARM 架构 特性 CPU 全志H616四核64位1.5GHz高性能Cortex-A53处理器 GPU MaliG31MP2 SupportsOpenGLES1. ...

  5. 【Orangepi Zero2 全志H616】OLED屏应用/IIC协议

    一.Orangepi的IIC接口 二.开发步骤 1.启动 linux 系统后, 先确认下/dev 下存在 i2c-3 的设备节点         从命令运行结果能观察到系统支持i2c-3和i2c-5的 ...

  6. 【Orangepi Zero2 全志H616】普通IO操作

    一.wiringPi库示例代码 #include <stdio.h> #include <wiringPi.h>#define NUM 17 //26pin //#define ...

  7. 树莓派开发——语音控制adb刷抖音

    1.综述 利用语音模块,adb 控制刷抖音小项目,增长了相关方面认知(无什么实际作用) 2.语音模块 这里使用的语音模块为 YS-LDV7语音识别模块 通过阅读官方代码,修改所需识别的词条: (1)增 ...

  8. Orange Pi Zero2 (全志H616) 开箱配置

    背景 之前一直使用树莓派做一些物联网开发的小项目.然而,今年,由于芯片的涨价,树莓派4B裸板要卖到700人民币,连上一代的树莓派3B也要搭配套装一起买,价格也大多到了5.600人民币.更离谱的是连树莓 ...

  9. 疫情当下,你是在家里躺着刷抖音?还是在做这些?

    2020年本来可以是很开心的一年 没想到一开头就给了我们一个重重的一击 疫情的出现让我们非常的恐慌 新型病毒肺炎让我们无处可躲 原来热闹的新年因为疫情让我们逼不得已只能待在家里 走亲访友更是不可能的 ...

最新文章

  1. R语言包_rCharts
  2. 【POJ 3274】Gold Balanced Lineup (stl map )设计hash表,处理碰撞
  3. jsp连接mysql数据库代码_JSP连接MySQL数据库代码
  4. 简单使用Modelsim跑个仿真
  5. 前端学习(3014):vue+element今日头条管理--自定义验证
  6. java continue goto_Java中goto和break、continue实现区别
  7. 经典面试题(12):关于事件循环,以下代码将输出什么?
  8. MySQL数据库 --基础
  9. Flask实现发送邮件功能
  10. 服务提供者框架讲解 之 myJDBC
  11. python 将绘制的图片保存为矢量图格式(svg)
  12. 如何在html中加入下划线,文档中加入下划线
  13. termux自动启动ssh
  14. Java集合概览、实现细节、数据结构
  15. [译]ng指令中的compile与link函数解析 转
  16. 结对-动漫网页设计-需求分析
  17. 从一元函数极值问题理解遗传算法
  18. python 百度云不限速版_现在各位是怎么应对百度网盘限速的?
  19. js,jQuery时间与时间戳相互转换
  20. python对Excel文件的读写操作

热门文章

  1. java实现点歌操作_Java中linked list集合实现KTV点歌台功能
  2. FPGA图像处理的一些基础知识,FPGA是如何实现最高实时性的?相比于GPU的优势在哪?
  3. 电脑如何连接windows server服务器
  4. u盘装puppy linux,U盘及硬盘安装、配置、中文化 Puppy linux 4.00
  5. 数据分析盒马生鲜迭代选址策略!
  6. LIKE语句通配符:%|_|[]
  7. 使用MQTT远程控制树莓派继电器开关
  8. 开一家洗车店需要购买哪些设备
  9. 【Python3学习笔记】之【Python基础——注释与运算符】
  10. 微信移动端招聘项目总结