去年,在 Pi Day 左右,我曾在 Opensource.com 上撰写了一篇文章,关于如何使用树莓派设置音乐灯光秀。在创建灯光秀之前,我鼓励读者了解面包板和 CanaKit,作为使用树莓派和 LED 进行一些原型控制的方法。

我第一个承认,插入套件中附带的所有电线、电阻器和 LED 可能有点吓人,如果设置不当,可能会对硬件造成损害。
为了简化您对树莓派、LED 以及控制它们的代码的接触,我决定写一篇关于一个名为 Pi Traffic Light 的小玩意儿的文章。它几乎包含了您开始使用 Pi 控制 LED 所需的一切。

Pi Traffic Light 的特写。
使用 Pi Traffic Light,您只需将这个小设备直接插入树莓派上的 GPIO 引脚即可。您无需担心在面包板上正确连接电线,为 LED 找到合适的电阻器,或弄清楚哪根电线连接到面包板的负极或正极。
默认情况下,Pi Traffic Light 被标记为插入 GPIO 引脚 10、9、11 和接地 (GND),这些引脚在 Pi 上彼此相邻。在树莓派的后期版本中,这些引脚位于 GPIO 区域的中间,可能有点难以数到(尤其是当您的视力或光线不好时)。我更喜欢将我的 Pi Traffic Light 设备插入 GPIO 引脚 13、19、26 和 GND,因为它们在板上更容易找到。

插入后,启动您的树莓派并编写一些代码来控制 LED。对于本文,我编写了几个示例。在第一个示例中,我使用 Python 读取树莓派的 CPU 利用率水平,使用 psutil 库,并使用 RPi.GPIO 库控制红、黄、绿灯。
如果 CPU 负载低于 50%,则显示绿色。如果 CPU 负载在 50% 到 90% 之间,则显示黄色。如果 CPU 负载超过 90%,则显示红色。还有一个异常处理程序,因此当有人按下 Ctrl+C 退出程序时,所有灯都会熄灭。就所有意图和目的而言,这段代码使您的 Pi Traffic Light 变成树莓派的 CPU 利用率仪表板。
#!/usr/bin/env python
# to use with Pi Traffic Light
import RPi.GPIO as GPIO
import psutil
GREEN = 26
YELLOW = 13
RED = 19
# Pin Setup:
GPIO.setmode(GPIO.BCM) # Broadcom pin-numbering scheme.
GPIO.setwarnings(False)
GPIO.setup(GREEN, GPIO.OUT)
GPIO.setup(YELLOW, GPIO.OUT)
GPIO.setup(RED, GPIO.OUT)
try:
while (1):
cpu_pc = psutil.cpu_percent(interval=2)
print 'CPU: %d%%' % (cpu_pc)
if cpu_pc = 50:
GPIO.output(RED, False)
GPIO.output(YELLOW, False)
GPIO.output(GREEN, True)
if 50 cpu_pc 90:
GPIO.output(GREEN, False)
GPIO.output(RED, False)
GPIO.output(YELLOW, True)
if cpu_pc >=90 :
GPIO.output(GREEN, False)
GPIO.output(YELLOW, False)
GPIO.output(RED, True)
except KeyboardInterrupt:
print "Good bye"
GPIO.output(GREEN, False)
GPIO.output(YELLOW, False)
GPIO.output(RED, False)
第二个示例更简单,但在某种程度上也更有趣,因为我使用了 Scratch 来控制 LED。Scratch 是一种免费的可视化编程语言,允许程序员创建交互式游戏、故事和动画。它最初是在麻省理工学院开发的,并在世界各地取得了巨大的成功,成为向孩子们介绍编程概念的一种方式。

您要做的第一件事是允许 Scratch 与树莓派的 GPIO 引脚交互,打开程序,转到编辑,然后选择启动 GPIO 服务器。然后您可以使用广播块来识别您想要使用的 GPIO 引脚。在上面的屏幕截图中,两个广播块指的是 config19out 和 gpio19on。您猜怎么着?GPIO 19 映射到红色 LED。
有关如何使用 Scratch 与 GPIO 引脚交互的更多信息,请查看这个 树莓派基金会资源。

最后,如果您对电子设备感到害怕,我希望这篇关于 Pi Traffic Light 的快速介绍能帮助您对树莓派提供的功能产生更多的好奇心和兴趣。如果您或您认识的人正在尝试学习如何编码,我希望使用 Scratch 能让您在控制 LED 的过程中保持乐趣和兴趣。
3 条评论