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

标签: 极客 LED灯 树莓派 | 发表时间:2016-03-20 04:30 | 作者:极客小默
出处:http://www.freebuf.com

8.png

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

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

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

88.jpg

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

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

888.jpg

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

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

7.jpg

在插好这些接口之后,你就可以打开树莓派,然后编写一些代码来控制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程序设计语言,允许程序员用它来创建互动游戏、故事和动画。它最初由麻省理工学院开发,作为一种面向儿童的编程概念,现在已经取得了巨大成功。

8888.png

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

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

88888.jpg

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

*参考来源: opensource,FB小编极客小默编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

相关 [极客 手把 树莓派] 推荐:

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

- - FreeBuf.COM | 关注黑客与极客
涉及硬件:树莓派以及相关套件、LED红绿灯. 涉及知识:电路实验板、CanaKit. 当准备好以上,我们就可以开始啦. 首先要明白的是,接入所有的电线、电阻器以及工具包附带的指示灯需要谨慎操作,毕竟如果你设置操作不当将有可能损坏你的硬件. 为了简化与树莓派和LED的接触,也为了方便编写控制代码,我决定编写一个叫做Pi交通灯的小玩意,这是用树莓派控制LED的第一步.

树莓派初级折腾

- - 极客范 - GeekFan.net
前些天在网上买了一个二手的树莓派 裸板子190包邮 (新品套装280 360什么的太贵了啊岂可修). 到手目测没有问题 主IC还有一个铜质散热片 不错. 电源就用买移动电源送的充电器(标称5v 1000mA输出 )和数据线. SD卡么… 把很久没玩的PSP掏出来 把马甲卡中的东西倒到记忆棒里 记忆棒插回PSP TF卡装到转接卡上 (话说还是个class10的呢).

安装树莓派 Raspberry PI

- - CSDN博客综合推荐文章
树莓派终于到货了,是这个样子的. 上面有一行日期是 Raspberry PI (c) 2011.12. 选择这个镜像: RASPBIAN Debian 2014-01-07. 780M的压缩包,很大的样子. 似乎还有个NOOBS的安装方式,完全无感. 顺便展示一下SD卡,通过查阅可用SD卡列表,似乎是支持个别的64G Class10的卡的,就像这个,编号是 Transcend SDXC 64G Class10 TS64GSDXC10.

在树莓派上用python控制LED

- - 极客范 - GeekFan.net
初步学习RPi.GPIO模块的过程中写了一个控制8个LED的模块,基本上只是一个对RPi.GPIO的一个封装. 一个已经安装配置好了的树莓派. 连接控制树莓派所用的其他必须设备. 按照电路图所示,在面包板上进行连接. 首先得确定RPi.GPIO已安装. 最新的系统已经自带了,如果没有的可以使用命令.

PiLarm: 便携式树莓派警报器

- - 极客范 - GeekFan.net
我一直在寻找一些能给自己孩子带来教益的瞬间. 当我五岁的儿子来寻求我的帮助,别再让他的弟弟偷偷溜进他的房间的时候,我突然灵光一现,发现这是教他关于输入、输出和其他一些编程知识的绝佳时机. 而且让他在解决自己实际问题中学习这些也会相对容易. 我本来可以用很多不同的方法来建立一个简单的警报系统,但是我想要让这个系统是一体化的并且在功能上不止能满足我儿子最初的原始需求.

树莓派的10个最佳资源

- - 极客范 - GeekFan.net
如果还没有找到答案,你是时候要从线上或者线下的资源寻找一些想法和项目,来帮助你将树莓派的潜能完全发掘出来. 树莓派没有内置的操作系统,也经常甚至连存储设备都没有. 但树莓派已经被证明了是一个非常成功的小型计算设备. 而很多学校(树莓派的目标用户),狂热爱好者,和那些想要打造一个小型家庭影音中心(包括其他设备)的用户都将树莓派作为他们的一个选择.

树莓派2 折腾记录

- - 操作系统 - ITeye博客
淘宝买来的 树莓派2代 B型. 这玩意还分国产和UK产,价格差距在10-20左右 不过不超过200. 另外就是要单独配个 5V2A 的电源,可选外壳和散热片,必备的是 TF 卡,可以用8G,我直接用的 32G TF 卡. 这玩意安装比较麻烦,简单的说第一次进系统你需要显示器,他只有HDMI接口,可以考虑用 HDMI转VGA连显示器,要么就直接HDMI连液晶电视(我就用的电视装的).

树莓派快速入门指南

- - C++博客-牵着老婆满街逛
转载自:http://segmentfault.com/a/1190000002587653. 接触树莓派已经有一年多的时间了,主要用于Linux服务器. 前一段时间树莓派2发售了,树莓派又小火了一把. 现在我介绍一下我的经验,希望对于各位读者有多帮助吧. 不过还是建议用吧,能省下不少工作. 这里下载喜欢的镜像,我选择的是RASPBIAN,Debian大法好.

采访树莓派之父Eben Upton的10个问题——记在树莓派诞生两周年之际

- - 极客范 - GeekFan.net
作为庆祝树莓派2周岁生日的活动之一,我采访了 Eben Upton,树莓派之父和树莓派基金会前任委托人. – Stett Holbrook,MAKE杂志高级编辑. 两年了,你看到了哪些树莓派在教育贡献方面的变化,并且你如何衡量成功. 这确实是一个有意思的问题. 如果两年前你问我如何衡量成功,我可能会说是出货数量.

嵌入式平台选择:树莓派 or BeagleBone Black(BBB)

- - 极客范 - GeekFan.net
已经有很多文章比较过 Arduino、树莓派和BeagleBone Black(BBB),但本文的侧重点不同. 我相信大家都会认为Arduino和另外两者明显属于不同的阵营,因为Arduino的用途完全不一样. 我曾试图去寻找这样一篇文章但最终没有找到:它全面的比较树莓派和BBB的优缺点并分析各自的最佳适用领域.