极客大讲堂:手把手教你用树莓派控制红绿灯

简介: 涉及硬件:树莓派以及相关套件、LED红绿灯 涉及知识:电路实验板、CanaKit 当准备好以上,我们就可以开始啦。使用树莓派进行LED原型控制。 首先要明白的是,接入所有的电线、电阻器以及工具包附带的指示灯需要谨慎操作,毕竟如果你设置操作不当将有可能损坏你的硬件。

涉及硬件:树莓派以及相关套件、LED红绿灯

涉及知识:电路实验板、CanaKit

当准备好以上,我们就可以开始啦。使用树莓派进行LED原型控制。

首先要明白的是,接入所有的电线、电阻器以及工具包附带的指示灯需要谨慎操作,毕竟如果你设置操作不当将有可能损坏你的硬件。

为了简化与树莓派和LED的接触,也为了方便编写控制代码,我决定编写一个叫做Pi交通灯的小玩意,这是用树莓派控制LED的第一步。

有了这个“红绿灯”之后,你要做的就只是把这个小装置直接插到树莓派的GPIO接口上。你不需要担心连接到线路板的导线是否正确,也不需要费心思寻找与LED匹配的电阻,更不用搞清楚线路板上哪里是正极哪里是负极。

在默认设置下,Pi交通灯是被标记在GPIO第10、9、11和GND这几个接口上的,这几个接口在Pi设置上都是紧挨着的。但是在后来版本的树莓派中,这几个接口都是在GPIO的中间位置,这就有点不好办了(万一视力不好或是光纤太暗,那就很难看清了)。我一般会把我自己的Pi交通灯插在13、19、26号GPIO接口和GND接口上,这样操作起来会容易得多。

在插好这些接口之后,你就可以打开树莓派,然后编写一些代码来控制LED了。在这篇文章中,我会写一些示例。第一个例子,我是用了Python来读取树莓派的CPU使用率,通过RPi.GPIO库来显示红、黄、绿三种LED灯。

原理

如果CPU负载低于50%,会显示绿灯;在50%到90%之间,显示黄灯;高于90%就会显示红灯。也设计了异常处理程序,只要按下Ctrl+C就可以退出程序,这样所有的灯都不会亮。这样设计的原因和意图只有一个,那就是通过这个交通灯提醒你树莓派对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。它是一种免费的visual程序设计语言,允许程序员用它来创建互动游戏、故事和动画。它最初由麻省理工学院开发,作为一种面向儿童的编程概念,现在已经取得了巨大成功。

为了使得Scratch与树莓派的GPIO接口建立联系,你首先要做的是就是打开这个程序,进入编辑界面,选择启动GPIO服务器。然后你就可以使用广播块来分辨你想要使用的GPIO接口了。在上面的截图中,这两个广播块分别指向config19out和gpio19on。而GPIO 19指向的就是红色LED灯。

关于如何将Scratch连接到GPIO接口,可以点击此处了解更多信息。

最后,如果你不擅长操作这些电子设备,我希望这篇关于Pi交通灯的简介可以让你对树莓派更加感兴趣。如果有人想要学习怎样编写代码,我希望使用Scratch可以让事情变得更加有趣,就像用它控制LED灯那样。

*参考来源opensource

相关文章
|
存储 监控 vr&ar
第一章 微型计算机系统导论【微机原理】
第一章 微型计算机系统导论【微机原理】
364 0
|
10月前
|
C#
手把手教你用C#写一个刷屏软件
手把手教你用C#写一个刷屏软件
107 0
|
10月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
382 0
|
10月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
337 0
|
10月前
|
开发者 索引
俄罗斯方块游戏开发实战教程(8):下落处理
俄罗斯方块游戏开发实战教程(8):下落处理
160 0
|
JavaScript Java
【游戏开发】自从遇见了口袋方舟后,我的世界变得精彩了起来
【游戏开发】自从遇见了口袋方舟后,我的世界变得精彩了起来
229 0
|
存储 程序员
【微机原理笔记】第 1 章 - 微型计算机基础概论
【微机原理笔记】第 1 章 - 微型计算机基础概论
156 0
连夜整理七个开源项目:练手、毕设、接私活都不愁了
项目一:cloud-platform 学习重点: 服务鉴权中心 用户间鉴权 服务之间鉴权 springcloud组件大回顾
|
人工智能 计算机视觉
你还在纯手工玩打地鼠么,快来看看这个AI自动打地鼠吧!手残党的福音!
你还在纯手工玩打地鼠么,快来看看这个AI自动打地鼠吧!手残党的福音!
1289 0
和12岁小同志搞创客开发:如何使用继电器?
和12岁小同志搞创客开发:如何使用继电器?
和12岁小同志搞创客开发:如何使用继电器?