【树莓派真好玩】八:现实交互(GPIO与控制LED)

in #hive-1050173 years ago

我认为树莓派与Arduino等设备的最迷人的地方就是可以让程序与现实世界交互,这种交互有两个方向:一,感知现实世界(从现实世界获取输入信息);二,控制现实世界的设备。

20211106_165132.jpg

对于树莓派而言,这两种交互方向都可以通过GPIO来实现(当然,通过摄像头、USB什么的也是可以的),这节我们来演示最简单的操作,使用树莓派来控制LED闪烁,这大概是所有和硬件&控制相关的课程的第一课。

说到树莓派的GPIO,在【树莓派真好玩】二:给树莓派4B穿上马甲 & 电源上电中,为了连接风扇的电源和地,我们曾经简单地提及GPIO,这里我们把之前的图片再拿来一下。

这就是树莓派GPIO管脚示意图喽:
image.png

可以看到,除了5V电源、3.3V电源、地(Ground),以及标准的GPIO外、有些管脚还兼具其它功能,比如说UART、SPI、I2C等,通过这些管脚我们可以连接各种协议的设备,实现我们想要的获取信息或者输出控制等功能。

小图看着太累,来个大图,这个比较容易对应了:
image.png

或者我们可以在树莓派上使用pinout工具(由 GPIO Zero Python库提供)来查看树莓派上的接口以及针脚对应关系等等:

image.png

我们有很多手段控制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、电阻、面包板、杜邦线之类的材料。

这是连接好的线路:

20211106_165125.jpg

其实简化一下就是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的时间间隔,就可以控制小灯点亮或者熄灭的间隔时间啦。

点亮后的效果如图:

20211106_165143.jpg

(我使用的是一枚双色LED,所以拍照时不是什么颜色哦)

当然了,控制LED只是最简单的操作,下节我们来做一些复杂的操作,不过我要测试&操作成功才会写文章,就好比你看到的这个系列文章,其实都是我失败无数次后才测试成功的呢。

好了,今天就写到这里,再问一遍,你学废了嘛?


好了,这次的分享先到这里,后续内容,敬请期待哦。
(注:本系列文章同步首发于https://hive.blog & 电子产品世界官方论坛

相关链接

Sort:  

我说我学废了,估计都没人相信。因为学废了,好歹是学进去了,只是最后废了😂。