【树莓派真好玩】八:现实交互(GPIO与控制LED)
我认为树莓派与Arduino等设备的最迷人的地方就是可以让程序与现实世界交互,这种交互有两个方向:一,感知现实世界(从现实世界获取输入信息);二,控制现实世界的设备。
对于树莓派而言,这两种交互方向都可以通过GPIO来实现(当然,通过摄像头、USB什么的也是可以的),这节我们来演示最简单的操作,使用树莓派来控制LED闪烁,这大概是所有和硬件&控制相关的课程的第一课。
说到树莓派的GPIO,在【树莓派真好玩】二:给树莓派4B穿上马甲 & 电源上电中,为了连接风扇的电源和地,我们曾经简单地提及GPIO,这里我们把之前的图片再拿来一下。
这就是树莓派GPIO管脚示意图喽:
可以看到,除了5V电源、3.3V电源、地(Ground),以及标准的GPIO外、有些管脚还兼具其它功能,比如说UART、SPI、I2C等,通过这些管脚我们可以连接各种协议的设备,实现我们想要的获取信息或者输出控制等功能。
小图看着太累,来个大图,这个比较容易对应了:
或者我们可以在树莓派上使用pinout工具(由 GPIO Zero Python库提供)来查看树莓派上的接口以及针脚对应关系等等:
我们有很多手段控制GPIO,比如说Wiring Pi、RPi.GPIO以及树莓派官网推荐的GPIO Zero Python库。
安装GPIO Zero
如果你的树莓派系统上还没有安装GPIO Zero Python库,并且使用的是Raspberry Pi OS、 Debian、Ubuntu那么可以使用如下指令安装:
sudo apt update
sudo apt install python3-gpiozero
否则可以使用PIP来安装:
sudo pip3 install gpiozero
(注:我个人推荐使用Python3以及Python3版本的GPIO Zero)
硬件连线
为了演示树莓派GPIO控制LED,我们需要准备LED、电阻、面包板、杜邦线之类的材料。
这是连接好的线路:
其实简化一下就是LED正极串接个电阻连接到GPIO 18对应的针脚上,LED负极连接的Ground对应的针脚上。
程序代码
代码也很简单:
from gpiozero import LED
from time import sleep
led = LED(18)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
执行代码
将上述代码保存为blink.py 然后在命令行执行如下命令即可:
python3 blink.py
我们就可以看到LED小灯以1秒种的间隔交替点亮、熄灭,我们可以根据自己的喜好调整sleep的时间间隔,就可以控制小灯点亮或者熄灭的间隔时间啦。
点亮后的效果如图:
(我使用的是一枚双色LED,所以拍照时不是什么颜色哦)
当然了,控制LED只是最简单的操作,下节我们来做一些复杂的操作,不过我要测试&操作成功才会写文章,就好比你看到的这个系列文章,其实都是我失败无数次后才测试成功的呢。
好了,今天就写到这里,再问一遍,你学废了嘛?
好了,这次的分享先到这里,后续内容,敬请期待哦。
(注:本系列文章同步首发于https://hive.blog & 电子产品世界官方论坛)
相关链接
Leave 【树莓派真好玩】八:现实交互(GPIO与控制LED) to:
Read more #cn posts
Best Posts From oflyhigh
We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.