【Orangepi Zero2 全志H616】语音刷抖音 / 手机连接Linux热拔插相关
目录
一、手机连接Linux步骤
二、adb控制指令
三、基于Linux串口实现语音刷抖音
1、语音模块控制详情
2、代码实现
一、手机连接Linux步骤
sudo apt-get install adb
二、adb控制指令
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热拔插相关相关推荐
- Orangepi Zero2 全志H616(一):配置初始化和启动流程
目录 一,Orangepi简单说明 ①为什么使用全志H616 ②基本特性 ③配套操作系统支持 二,刷机和系统启动 ①准备工具 ②登录系统 ● 开发板供电 ● 登录 ● 开发板上板载LED灯测试说明 ③ ...
- 【Orangepi Zero2 全志H616】wiringPi外设SDK安装
Orangepi Zero2 全志H616开发板 一.网络配置 命令扫描周围的WIFI热点 nmcli dev wifi 命令接入网络 nmcli dev wifi connect xxxxxxxx ...
- Orangepi Zero2 全志H616(驱动蜂鸣器)
一.Orangepi Zero2 全志H616信息 1.接口相关信息: 2.引脚图 二.代码实现 #include <stdio.h> #include <wiringPi.h> ...
- Orangepi Zero2 全志H616简介
一.简介 Linux 系统 ,平台是 ARM 架构 特性 CPU 全志H616四核64位1.5GHz高性能Cortex-A53处理器 GPU MaliG31MP2 SupportsOpenGLES1. ...
- 【Orangepi Zero2 全志H616】OLED屏应用/IIC协议
一.Orangepi的IIC接口 二.开发步骤 1.启动 linux 系统后, 先确认下/dev 下存在 i2c-3 的设备节点 从命令运行结果能观察到系统支持i2c-3和i2c-5的 ...
- 【Orangepi Zero2 全志H616】普通IO操作
一.wiringPi库示例代码 #include <stdio.h> #include <wiringPi.h>#define NUM 17 //26pin //#define ...
- 树莓派开发——语音控制adb刷抖音
1.综述 利用语音模块,adb 控制刷抖音小项目,增长了相关方面认知(无什么实际作用) 2.语音模块 这里使用的语音模块为 YS-LDV7语音识别模块 通过阅读官方代码,修改所需识别的词条: (1)增 ...
- Orange Pi Zero2 (全志H616) 开箱配置
背景 之前一直使用树莓派做一些物联网开发的小项目.然而,今年,由于芯片的涨价,树莓派4B裸板要卖到700人民币,连上一代的树莓派3B也要搭配套装一起买,价格也大多到了5.600人民币.更离谱的是连树莓 ...
- 疫情当下,你是在家里躺着刷抖音?还是在做这些?
2020年本来可以是很开心的一年 没想到一开头就给了我们一个重重的一击 疫情的出现让我们非常的恐慌 新型病毒肺炎让我们无处可躲 原来热闹的新年因为疫情让我们逼不得已只能待在家里 走亲访友更是不可能的 ...
最新文章
- R语言包_rCharts
- 【POJ 3274】Gold Balanced Lineup (stl map )设计hash表,处理碰撞
- jsp连接mysql数据库代码_JSP连接MySQL数据库代码
- 简单使用Modelsim跑个仿真
- 前端学习(3014):vue+element今日头条管理--自定义验证
- java continue goto_Java中goto和break、continue实现区别
- 经典面试题(12):关于事件循环,以下代码将输出什么?
- MySQL数据库 --基础
- Flask实现发送邮件功能
- 服务提供者框架讲解 之 myJDBC
- python 将绘制的图片保存为矢量图格式(svg)
- 如何在html中加入下划线,文档中加入下划线
- termux自动启动ssh
- Java集合概览、实现细节、数据结构
- [译]ng指令中的compile与link函数解析 转
- 结对-动漫网页设计-需求分析
- 从一元函数极值问题理解遗传算法
- python 百度云不限速版_现在各位是怎么应对百度网盘限速的?
- js,jQuery时间与时间戳相互转换
- python对Excel文件的读写操作
热门文章
- java实现点歌操作_Java中linked list集合实现KTV点歌台功能
- FPGA图像处理的一些基础知识,FPGA是如何实现最高实时性的?相比于GPU的优势在哪?
- 电脑如何连接windows server服务器
- u盘装puppy linux,U盘及硬盘安装、配置、中文化 Puppy linux 4.00
- 数据分析盒马生鲜迭代选址策略!
- LIKE语句通配符:%|_|[]
- 使用MQTT远程控制树莓派继电器开关
- 开一家洗车店需要购买哪些设备
- 【Python3学习笔记】之【Python基础——注释与运算符】
- 微信移动端招聘项目总结