涉及硬件:樹(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燈那樣。