本次實驗是用Python來做GPIO控制,做法非常簡單易用。
先確定系統在更新狀態:
root@bpro:/home/regis# apt-get update
root@bpro:/home/regis# apt-get upgrade
再來安裝 git:
root@bpro:/home/regis# apt-get install git
root@bpro:/home/regis# apt-get install python-dev
root@bpro:/home/regis# apt-get install gcc g++ make git-core vim
裝Python的gpio控制模組:
### For Banana Pro
root@bpro:/home/regis# git clone https://github.com/LeMaker/RPi.GPIO_BP -b bananapro
root@bpro:/home/regis# cd RPi.GPIO_BP
root@bpro:/home/regis# python setup.py install
root@bpro:/home/regis# sudo python setup.py install
裝好後:
root@bpro:/home/regis/RPi.GPIO_BP# ls
build debug.sh PKG-INFO RPi source
CHANGELOG.txt LICENSE README.md setup.py test
有一堆測試程式:
root@bpro:/home/regis/RPi.GPIO_BP/test# ls
add_event_detect.py led_read.py pwm_test2_RAW.py
add_event_detect_RAW.py myReadMe pwm_test.py
event_detect.py polling.py serial_test.py
gpio_pull.py polling_RAW.py test_gpio_function.py
info_RPi.GPIO.py pwm.py test.py
led.py pwm_test2.py wait_for_edge.py
安裝好後,先找個簡單的led亮暗的program來測試:
root@bpro:/home/regis/RPi.GPIO_BP/test# nano led.py
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
PIN_NUM = 7
#GPIO.setmode(GPIO.BCM)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIN_NUM,GPIO.OUT)
while True:
GPIO.output(PIN_NUM,True)
time.sleep(1)
build debug.sh PKG-INFO RPi source
CHANGELOG.txt LICENSE README.md setup.py test
有一堆測試程式:
root@bpro:/home/regis/RPi.GPIO_BP/test# ls
add_event_detect.py led_read.py pwm_test2_RAW.py
add_event_detect_RAW.py myReadMe pwm_test.py
event_detect.py polling.py serial_test.py
gpio_pull.py polling_RAW.py test_gpio_function.py
info_RPi.GPIO.py pwm.py test.py
led.py pwm_test2.py wait_for_edge.py
安裝好後,先找個簡單的led亮暗的program來測試:
root@bpro:/home/regis/RPi.GPIO_BP/test# nano led.py
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
PIN_NUM = 7
#GPIO.setmode(GPIO.BCM)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIN_NUM,GPIO.OUT)
while True:
GPIO.output(PIN_NUM,True)
time.sleep(1)
GPIO.output(PIN_NUM,False)
time.sleep(1)
要開始接LED電路和改程式前,先了解pin的定義。
CON6是主要我們要接外面模組的通道,Pin1是從左下角開始算,pin2左上角,然後pin3是在pin1右邊,以此類推。
在BananaPro的CON6第7根pin接到LED正極,第9根的Ground接到電阻。
請切記,最好是斷電的狀態接電路,不然會有燒燬的風險。
time.sleep(1)
要開始接LED電路和改程式前,先了解pin的定義。
CON6是主要我們要接外面模組的通道,Pin1是從左下角開始算,pin2左上角,然後pin3是在pin1右邊,以此類推。
所以,在GPIO.setmode(GPIO.BOARD)的設定 ,建議用GPIO.BOARD,用板子上pin位置來定義,比較不會接錯。
那LED的接法如下:
在BananaPro的CON6第7根pin接到LED正極,第9根的Ground接到電阻。
請切記,最好是斷電的狀態接電路,不然會有燒燬的風險。
接好後,開機進入:
root@bpro:/home/regis/RPi.GPIO_BP/test# sudo python led.py
BAPI: revision(2)
如果看到LED每秒交互閃動,恭喜,成功!
或者,也可以直接進入Python:
root@bpro:/home/regis/RPi.GPIO_BP/test# python
Python 2.7.3 (default, Mar 14 2014, 17:55:54)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as GPIO
BAPI: revision(2)
>>> PIN_NUM = 7
>>> GPIO.setmode(GPIO.BOARD)
>>> GPIO.setup(PIN_NUM,GPIO.OUT)
>>> GPIO.output(PIN_NUM,True)
>>> GPIO.output(PIN_NUM,False)
>>>
可以隨自己想法設pin和on & off
參考文章:
沒有留言:
張貼留言