使用 Raspberry Pi 进行简单的 LED 控制

还没有读者喜欢这篇文章。
Simple LED control with Raspberry Pi

Anderson Silva。CC BY-SA 4.0。

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

An LED connected to a breadboard

要使 LED 与面包板一起工作,需要很多部件。对于初学者来说,这可能会令人困惑和不知所措。

我首先承认,插入套件随附的所有电线、电阻器和 LED 可能会让人感到有些害怕,如果设置不当,可能会对您的硬件造成损害。

为了简化您对 Raspberry Pi、LED 以及编写控制它们的代码的接触,我决定写一篇关于一个小玩意儿的文章,叫做 Pi Traffic Light。它几乎包含了您开始使用 Pi 控制 LED 所需的一切。

The Pi Traffic Light
Pi Traffic Light 的特写镜头。

使用 Pi Traffic Light,您只需将这个小设备直接插入 Raspberry Pi 上的 GPIO 引脚即可。您无需担心在面包板上正确连接电线,为 LED 找到合适的电阻器,或者弄清楚哪根电线连接到面包板的负极或正极。

默认情况下,Pi Traffic Light 标记为插入 GPIO 引脚 10、9、11 和接地 (GND),这些引脚在 Pi 上彼此相邻设置。在 Raspberry Pi 的更高版本中,这些引脚位于 GPIO 区域的中间,可能有点难以计数(特别是如果您的视力或光线不佳)。我更喜欢将我的 Pi Traffic Light 设备插入 GPIO 引脚 13、19、26 和 GND,因为它们在板上更容易找到。

Pi Traffic Light plugged into a Raspberry Pi

将设备插入 3.3V 侧 GPIO 引脚的最末端,您就可以开始了。

一旦您插入设备,启动您的 Raspberry Pi 并编写一些代码来控制 LED。对于本文,我编写了几个示例。在第一个示例中,我使用 Python 读取 Raspberry Pi 的 CPU 使用率级别,使用 psutil 库,并使用 RPi.GPIO 库控制红、黄、绿灯。

如果 CPU 负载低于 50%,则显示绿色。如果 CPU 负载在 50% 到 90% 之间,则显示黄色。如果 CPU 负载超过 90%,则显示红色。还有一个异常处理程序,因此当有人按下 Ctrl+C 退出程序时,所有灯都会关闭。就所有意图和目的而言,这段代码使您的 Pi Traffic Light 成为 Raspberry Pi 的 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 是一种免费的可视化编程语言,允许程序员创建交互式游戏、故事和动画。它最初由 MIT 开发,并在世界范围内取得了巨大的成功,成为向孩子们介绍编程概念的一种方式。

Scratch code screenshot

这段小小的 Scratch 代码片段将使红色 LED 亮起 25 秒。

要使 Scratch 能够与 Raspberry Pi 的 GPIO 引脚交互,您必须做的第一件事是打开程序,转到 编辑,然后选择 启动 GPIO 服务器。然后您可以使用广播块来识别您想要使用的 GPIO 引脚。在上面的屏幕截图中,两个广播块指的是 config19outgpio19on。您猜怎么着?GPIO 19 映射到红色 LED。

有关如何使用 Scratch 与 GPIO 引脚交互的更多信息,请查看此Raspberry Pi 基金会资源

The full setup

GPIO 19(又名红色 LED)由 Scratch 控制。

最后,如果您对电子设备感到畏惧,我希望这篇关于 Pi Traffic Light 的快速介绍将帮助您对 Raspberry Pi 的功能产生更多的好奇心和兴趣。如果您或您认识的人正在尝试学习如何编码,我希望使用 Scratch 将使您在控制 LED 时保持乐趣和兴趣。

User profile image.
Anderson 在 1996 年由他的叔叔介绍接触了 Linux。在 2000 年代初期,他从开发人员转变为系统管理员。今天,Anderson 领导着 Red Hat 信息安全事件响应团队。他还是 Fedora 包维护员。

3 条评论

在我看来,Pi 基金会提供的最有价值的服务之一是对 Scratch 1.4 系列的持续维护。

又一篇精彩的文章,Anderson!

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.