加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

極客大講堂:手把手教你用樹(shù)莓派控制紅綠燈

2016/05/26
24
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買后不支持退換且無(wú)法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

涉及硬件樹(shù)莓派以及相關(guān)套件、LED紅綠燈

涉及知識(shí):電路實(shí)驗(yàn)板、CanaKit

當(dāng)準(zhǔn)備好以上,我們就可以開(kāi)始啦。使用樹(shù)莓派進(jìn)行LED原型控制。

首先要明白的是,接入所有的電線、電阻器以及工具包附帶的指示燈需要謹(jǐn)慎操作,畢竟如果你設(shè)置操作不當(dāng)將有可能損壞你的硬件。

為了簡(jiǎn)化與樹(shù)莓派和LED的接觸,也為了方便編寫控制代碼,我決定編寫一個(gè)叫做Pi交通燈的小玩意,這是用樹(shù)莓派控制LED的第一步。

有了這個(gè)“紅綠燈”之后,你要做的就只是把這個(gè)小裝置直接插到樹(shù)莓派的GPIO接口上。你不需要擔(dān)心連接到線路板的導(dǎo)線是否正確,也不需要費(fèi)心思尋找與LED匹配的電阻,更不用搞清楚線路板上哪里是正極哪里是負(fù)極。

在默認(rèn)設(shè)置下,Pi交通燈是被標(biāo)記在GPIO第10、9、11和GND這幾個(gè)接口上的,這幾個(gè)接口在Pi設(shè)置上都是緊挨著的。但是在后來(lái)版本的樹(shù)莓派中,這幾個(gè)接口都是在GPIO的中間位置,這就有點(diǎn)不好辦了(萬(wàn)一視力不好或是光纖太暗,那就很難看清了)。我一般會(huì)把我自己的Pi交通燈插在13、19、26號(hào)GPIO接口和GND接口上,這樣操作起來(lái)會(huì)容易得多。

在插好這些接口之后,你就可以打開(kāi)樹(shù)莓派,然后編寫一些代碼來(lái)控制LED了。在這篇文章中,我會(huì)寫一些示例。第一個(gè)例子,我是用了Python來(lái)讀取樹(shù)莓派的CPU使用率,通過(guò)RPi.GPIO庫(kù)來(lái)顯示紅、黃、綠三種LED燈。

原理

如果CPU負(fù)載低于50%,會(huì)顯示綠燈;在50%到90%之間,顯示黃燈;高于90%就會(huì)顯示紅燈。也設(shè)計(jì)了異常處理程序,只要按下Ctrl+C就可以退出程序,這樣所有的燈都不會(huì)亮。這樣設(shè)計(jì)的原因和意圖只有一個(gè),那就是通過(guò)這個(gè)交通燈提醒你樹(shù)莓派對(duì)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)

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)

第二個(gè)例子相比第一個(gè)而言簡(jiǎn)單很多,在某種程度上也有趣很多,因?yàn)槲沂褂昧薙cratch來(lái)控制LED。它是一種免費(fèi)的visual程序設(shè)計(jì)語(yǔ)言,允許程序員用它來(lái)創(chuàng)建互動(dòng)游戲、故事和動(dòng)畫。它最初由麻省理工學(xué)院開(kāi)發(fā),作為一種面向兒童的編程概念,現(xiàn)在已經(jīng)取得了巨大成功。

為了使得Scratch與樹(shù)莓派的GPIO接口建立聯(lián)系,你首先要做的是就是打開(kāi)這個(gè)程序,進(jìn)入編輯界面,選擇啟動(dòng)GPIO服務(wù)器。然后你就可以使用廣播塊來(lái)分辨你想要使用的GPIO接口了。在上面的截圖中,這兩個(gè)廣播塊分別指向config19out和gpio19on。而GPIO 19指向的就是紅色LED燈。

最后,如果你不擅長(zhǎng)操作這些電子設(shè)備,我希望這篇關(guān)于Pi交通燈的簡(jiǎn)介可以讓你對(duì)樹(shù)莓派更加感興趣。如果有人想要學(xué)習(xí)怎樣編寫代碼,我希望使用Scratch可以讓事情變得更加有趣,就像用它控制LED燈那樣。

  • 21.png
    描述:暫無(wú)
  • 代碼.txt
    描述:源碼

相關(guān)推薦

電子產(chǎn)業(yè)圖譜