树莓派 LED 简易控制

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

Anderson Silva。CC BY-SA 4.0。

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

An LED connected to a breadboard

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

我第一个承认,插入套件中附带的所有电线、电阻器和 LED 可能有点吓人,如果设置不当,可能会对硬件造成损害。

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

The Pi Traffic Light
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,因为它们在板上更容易找到。

Pi Traffic Light plugged into a Raspberry Pi

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

插入后,启动您的树莓派并编写一些代码来控制 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 code screenshot

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

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

有关如何使用 Scratch 与 GPIO 引脚交互的更多信息,请查看这个 树莓派基金会资源

The full setup

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

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

标签
User profile image.
Anderson 在 1996 年由他的叔叔介绍接触了 Linux。在 2000 年代初期,他从开发人员转型为系统管理员。如今,Anderson 领导着红帽信息安全事件响应团队。他也是 Fedora 软件包的活跃维护者。

3 条评论

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

又一篇很棒的文章,Anderson!

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