自动化脚本之GPIO/LED相关适用于Android/Linux

简介: 自动化脚本之GPIO/LED相关适用于Android/Linux

自个调试的时候写的简简单单脚本  Android/Linux 都兼容

简单的LED循环控制shell脚本

脚本功能介绍

这个脚本是用来控制一些LED灯的亮灭的。它定义了五个函数,每个函数都是一个无限循环,用来向/sys/devices/platform/leds/leds/led文件写入一些数字,来控制不同的LED灯的状态。每个函数都在后台运行,所以可以同时控制多个LED灯。最后一个函数还调用了另一个脚本/opt/test_gpio2.sh来控制一些GPIO引脚的电平。

使用示例

要运行这个脚本,只需要在终端中输入:

bash led.sh

然后就可以看到一些LED灯开始闪烁。要停止这个脚本,只需要按Ctrl+C,就可以发送SIGINT信号来终止所有的后台进程。

#!/bin/bash
 
# 定义GPIO编号的数组
DO=(27 28 29 30) # 输出端口
IN=(107 108 109 110) # 输入端口
 
# 导出GPIO
for i in ${DO[@]} ${IN[@]}; do
    echo $i > /sys/class/gpio/export
done
 
# 设置方向
for i in ${DO[@]}; do
    echo out > /sys/class/gpio/gpio$i/direction
done
 
for i in ${IN[@]}; do
    echo in > /sys/class/gpio/gpio$i/direction
done
 
# 循环控制和读取电平
while true; do
    # 设置DO为高电平
    for i in ${DO[@]}; do
        echo 1 > /sys/class/gpio/gpio$i/value
        echo "Set DO$i to high level"
    done
 
    # 读取IN的电平,并打印到屏幕上
    for i in ${IN[@]}; do
        value=$(cat /sys/class/gpio/gpio$i/value)
        echo -n "IN$i: $value "
    done
    echo # 换行
 
    # 打印时间戳
    date "+%Y-%m-%d %H:%M:%S"
 
    # 延迟一秒钟
    sleep 1
 
    # 设置DO为低电平
    for i in ${DO[@]}; do
        echo 0 > /sys/class/gpio/gpio$i/value
        echo "Set DO$i to low level"
    done
 
    # 读取IN的电平,并打印到屏幕上
    for i in ${IN[@]}; do
        value=$(cat /sys/class/gpio/gpio$i/value)
        echo -n "IN$i: $value "
    done
    echo # 换行
 
    # 打印时间戳
    date "+%Y-%m-%d %H:%M:%S"
 
    # 延迟一秒钟
    sleep 1
done

简单的GPIO逻辑控制shell脚本

脚本功能介绍

这个脚本是用来控制一些GPIO引脚的电平的。它接受四个参数,分别是gpio方向、gpio number、gpio value和restore。gpio方向可以是in或out,表示输入或输出。gpio number是一个0到159之间的整数,表示要控制的引脚的编号。gpio value可以是0或1,表示要设置的电平,只有在gpio方向为out时才有效。restore可以是on或off,表示是否在退出脚本时恢复原来的引脚状态。

这个脚本会根据rockchip rk3568 gpio计算规则,将gpio number转换为GPIOx_Ay的形式,并检查是否有权限访问gpio,是否已经被导出或占用。然后,它会将引脚导出到sysfs中,并设置引脚的方向和值。如果引脚的方向为输入,它会循环读取引脚的值,直到按下Ctrl-C;如果引脚的方向为输出,它会根据是否提供了gpio value参数来设置或切换引脚的值,直到按下Ctrl-C。最后,它会根据restore参数来决定是否取消导出并恢复原来的引脚状态。

使用示例

要运行这个脚本,需要在终端中输入:

bash test_gpio2.sh gpio_direction gpio_number [gpio_value] [restore]

例如:

bash test_gpio2.sh in 10 # 将gpio10设置为输入,并循环读取值
bash test_gpio2.sh out 20 1 # 将gpio20设置为输出,并设置值为1
bash test_gpio2.sh out 30 # 将gpio30设置为输出,并在0和1之间切换值
bash test_gpio2.sh in 40 on # 将gpio40设置为输入,并循环读取值,在退出时恢复原来的状态

简单的循环监听GPIO状态shell脚本

脚本功能介绍

这个脚本是用来控制一些GPIO引脚的电平,并读取另一些GPIO引脚的电平的。它定义了两个数组,分别是DO和IN,表示输出端口和输入端口的编号。它会将这些端口导出到sysfs中,并设置相应的方向。然后,它会循环地将输出端口的电平设置为高或低,并读取输入端口的电平,并打印到屏幕上,每次操作之间延迟一秒钟。

使用示例

要运行这个脚本,只需要在终端中输入:

bash gpio.sh

然后就可以看到类似下面的输出:

Set DO27 to high level
Set DO28 to high level
Set DO29 to high level
Set DO30 to high level
IN107: 0 IN108: 0 IN109: 0 IN110: 0 
2023-07-05 15:09:48
Set DO27 to low level
Set DO28 to low level
Set DO29 to low level
Set DO30 to low level
IN107: 1 IN108: 1 IN109: 1 IN110: 1 
2023-07-05 15:09:49

要停止这个脚本,只需要按Ctrl-C,就可以发送SIGINT信号来终止循环。


相关文章
|
7月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
538 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
837 3
Linux系统初始化脚本
|
8月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
774 9
|
8月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
787 2
|
7月前
|
人工智能 监控 Kubernetes
77_自动化脚本:Makefile与Airflow
在当今AI大模型时代,高效的工作流管理对于模型训练、推理和部署至关重要。随着大模型规模的不断增长和复杂度的提升,传统的手动脚本管理方式已无法满足需求。自动化脚本和工作流调度系统成为构建健壮、可重复、可扩展的LLM Pipeline的关键工具。其中,Makefile作为经典的自动化构建工具,与Airflow作为现代工作流调度平台的结合,为LLM开发团队提供了强大的工作流管理能力。
223 0
|
10月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1183 1
|
9月前
|
机器学习/深度学习 Android开发 数据安全/隐私保护
手机脚本录制器, 脚本录制器安卓,识图识色屏幕点击器【autojs】
完整的UI界面,包含录制控制按钮和状态显示 屏幕点击动作录制功能,记录点击坐标和时间间隔
|
9月前
|
传感器 人工智能 JavaScript
Playwright实战:写UI自动化脚本,速度直接起飞
简介: 测试工程师老王因UI自动化问题深夜奋战,反映出传统测试工具的局限性。微软开源的Playwright凭借智能等待、跨域操作、移动端模拟与网络拦截等强大功能,正迅速取代Selenium,成为新一代自动化测试标准。其稳定高效的设计显著降低维护成本,助力企业构建高质量测试流程。
|
10月前
|
Android开发 数据安全/隐私保护 Python
微信抢红包脚本安卓插件,微信xposed抢红包模块, magisk微信抢红包模块
这个代码实现了一个完整的微信抢红包自动化工具,包含红包检测、自动点击、日志记录等功能