openwrt虽然主力是在网路服务,但如果硬体与韧体的支援上有GPIO(通用型之输入输出的简称),也可以拿来做开发与使用,尤其树莓派定位在开发板,GPIO可说是十分重要的功能。配合感测器可以蒐集外界的资讯、配合LED/马达/继电器等可以输出控制、还有一堆可藉由I2C/SPI等通讯沟通控制的设备,花样非常多,如果可以好好搭配这个开源路由,可玩性会更高。
在Raspberry pi OS中,可以用c、python或是node.js等语言进行开发与控制。上图是曾在Day_15 Terminal & CLI出现过的脚位功能图,现在我们要来试着读取与输出。在linux中即便没有装python也可以使用命令来驱动IO脚位。登入命令介面後使用指令cat /sys/kernel/debug/gpio
,可以得到相关GPIO资讯,会载明名称与功能,若没有出现可能不支援或是没有安装相关核心套件,可以查有无相关套件包或驱动。
以下是一些相关指令。
# 初始化 GPIO17
echo 17 > /sys/class/gpio/export
# 设定 GPIO17 为输出脚
echo out > /sys/class/gpio/gpio17/direction
# 设定 GPIO17 为输入脚
echo in > /sys/class/gpio/gpio17/direction
# 设定 GPIO17 为high(高电位)
echo 1 > /sys/class/gpio/gpio17/value
#设定 GPIO16 为low((低电位)
echo 0 > /sys/class/gpio/gpio17/value
# 读取 GPIO17 数值
cat /sys/class/gpio/gpio177/value
试着做一个arduino的Hello_World:LED闪烁
mkdir app
cd app
vi blink.sh
#!/bin/bash
echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
while [ 1 ]; do
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
done
chmod +x blink.sh
sh blink.sh
ctrl + c
crontab
工作排程echo 17 > /sys/class/gpio/unexport
gpio4
套件,尚未测试
<<: Day 28 - WooCommerce: 显示虚拟帐号付款资讯
>>: [Day27] 建立 Mock Module / Function 的方式(ft. TypeScript)
0x1 前言 今天因为时间不是很够,所以很快地介绍 Message 解密的部分 0x2 Messag...
今天晚餐是我掌厨 妈妈跟我一起备料当二厨 煮了4菜一汤切水果 虽然我觉得煎鱼比较难 但煮饭还是一件很...
相关资讯 Parros IP:172.28.128.6 Linux IP:172.28.128.3 ...
本系列文之後也会置於个人网站 实际上,在昨天已经将多数基础都已经解释过了,不过我想到还有一些东西可...
Design Patterns(设计模式)的起点 一切都源自於 Erich Gamma、Richar...