初步學習rpi.gpio模組的過程中寫了乙個控制8個led的模組,基本上只是乙個對rpi.gpio的乙個封裝
電路圖
按照電路圖所示,在麵包板上進行連線。
安裝rpi.gpio
首先得確定rpi.gpio已安裝。最新的系統已經自帶了,如果沒有的可以使用命令
sudo apt-get update
sudo apt-get install python-dev python-rpi.gpio
來安裝
編寫模組
用文字編輯器新建乙個led.py檔案。(高手們都用vi,我只會用nano...)
cd
mdir gpio
cd gpio
nano led.py
python**如下:
import rpi.gpio as gpio
import time
channels = [16,18,22,24,26,19,21,23]
def init():
gpio.setmode(gpio.board)
for x in channels:
gpio.setup(x,gpio.out)
pass
def on(i):
gpio.output(channels[i], gpio.high)
def off(i):
gpio.output(channels[i], gpio.low)
def ctrl(data):
for i in channels:
gpio.output(i, data & 0x1)
data = data >> 1
pass
def test():
for i in xrange(512):
ctrl(i)
time.sleep(0.1)
def clean():
gpio.cleanup()
你可以在樹莓派上直接編輯這個檔案,也可以將檔案在電腦上編輯好,然後用sftp或者linux下的scp命令傳到樹莓派上。
呼叫模組
你可以編寫乙個test.py呼叫剛剛編寫好的led模組:
import led
led.init()
led.test()
led.clean()
也可以直接在python shell中操作,這裡是我在python shell中呼叫寫好的模組的乙個例子
sudo python
而在執行自己寫的test.py的時候也要加sudo:
sudo python test.py
rpi.gpio模組函式說明:
rpi.gpio.setmode(naming_system)
設定將gpio針的命名方式。naming_system可用的取值有 rpi.gpio.bcm 和 rpi.gpio.board,分別代表boardcom命名系統和樹莓派板子上的命名系統。而因為使用bcm 的時候(據說)不同的版本bvm針腳定義不一樣,所以同一套程式在多個樹莓派系統上使用的時候建議用board。
rpi.gpio.setup(channel, state)
將標號為channel的針設定為state模式。channel取值為1~26,state取值為rpi.gpio.in 或者rpi.gpio.out,分別表示輸入和輸出。例如 rpi.gpio.setup(1, rpi.gpio.in)表示將1號針設定為輸入模式;rpi.gpio.setup(3, rpi.gpio.out)表示將3號針設定為輸出模式。具體哪個號是哪根取決於setmode()中設定成什麼。
rpi.gpio.output(channel, state)
將標號為channel的針設定為state指定的電平。channel取值為1~26,state取值為rpi.gpio.high 和rpi.gpio.low,或者1和0,或者true和false,表示高電平和低電平。例如rpi.gpio.output(1, 1) 表示把1號針設定為高電平,rpi.gpio.output(3, flase) 表示將3號針設定為低電平。具體哪個號是哪根取決於setmode()中設定成什麼。
rpi.gpio.input(channel)
獲取將標號為channel的針的電平磚頭。channel取值為1~26。例如rpi.gpio.input(1) 表示獲取1號針的狀態。
rpi.gpio.cleanup()
清除掉之前rpi.gpio.setup()設定的狀態。退出程式之前一定要呼叫,否則下次呼叫的時候會報錯。
led.py模組說明
channel中儲存的是連線中使用的針的標號,按順序。
init()是初始化gpio介面的**,使用控制lcd去前要呼叫。主要工作是設定介面命名模式和 將channel中的針設定為輸出模式
on()/off()是將channel 中第i個針設定為高電平/低電平
ctrl()是根據引數設定全8根針的電平。引數的低0位、低1位、低2位...分別表示channel下標為0、1、2...的針的電平狀況,1為高電平、0為低電平
test()是測試函式。用8位二進位制表示8個燈的狀態,每隔0.1秒到下乙個狀態: 0000 0000, 0000 0001, 0000 0010, 0000 0011,0000 0100 ... 實際上就是從0數到255
clean()是對
rpi.gpio.cleanup() 的乙個封裝
---------update 2014-4-8 20:25:31-----------------
今天又用上了74hc164,下次再有進展的時候再加上去吧
在樹莓派上用python控制LED
初步學習rpi.gpio模組的過程中寫了乙個控制8個led的模組,基本上只是乙個對rpi.gpio的乙個封裝 電路圖按照電路圖所示,在麵包板上進行連線。首先得確定rpi.gpio已安裝。最新的系統已經自帶了,如果沒有的可以使用命令 shell 1 2 sudo apt getupdate sudo ...
在樹莓派上配置mono
mono是跨平台的.net編譯環境,試著在樹莓派上部署一下 1.獲取raspbian系統 如何獲取就不多說了,主要是要燒錄到sd卡里並正常啟動 1.1 獲取sudo許可權 建議使用管理員許可權,這樣問題可能少一些 也許更多 sudo s 2.安裝m4 gun tar zxvf m4 1.4.9.ta...
在樹莓派上安裝OpenVINO
準備工作 這裡我推薦2019 r3版本,之前裝了2020版本不好用,又退回到了2019 r3版本 開啟終端,執行命令 cd downloads 3.建立乙個安裝資料夾 sudo mkdir p opt intel openvino 4.解壓安裝包到安裝路徑下 sudo tar xf l openvi...