上次我們使用WiringPi 來Blink, 這次使用Python的RPi.GPIO子產品來操作樹莓派的GPIO.
安裝RPi.GPIO
① 方法一 (APT)
sudo apt-get install python-rpi.gpio
②方法二 (pip)
安裝Python的pip工具, 然後使用使用Python的pip(
pip is a package management system used to install and manage software packages written in Python. pip is already installed if you're using Python 2 >=2.7.9 or Python 3 >=3.4
)來安裝RPi.GPIO.
先來檢視一下樹莓派的python版本, 輸入指令
python --version
:
我的python版本是2.7.9, 是以已經安裝了pip, 沒有安裝pip的可以用這個指令
sudo apt-get install python-pip
來安裝.
使用pip安裝RPi.GPIO
sudo pip install RPi.GPIO
RPi.GPIO使用說明
RPi.GPIO的使用可以參考我的另一篇部落格: RPi.GPIO 官方使用文檔翻譯 .
Blink
①接線
輸入
gpio readall
指令檢視引腳命名:
我們把BCM編号方式的17引腳接到LED的正極, LED負極引腳接10kΩ電阻到GND. 如圖:
②程式
切換到/home/pi/Desktop目錄, 建立一個Blink_Python的檔案夾, 切換到該檔案夾, 建立一個 blink.py的檔案:
cd /home/pi/Desktop/
mkdir Blink_Python
cd Blink_Python
sudo nano blink.py
寫入以下代碼:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
# BCM GPIO編号
LED =
#初始化函數
def setup():
# 采用BCM編号
GPIO.setmode(GPIO.BCM)
#忽略警告
GPIO.setwarnings(False)
# 設定LED為輸出狀态,且輸出低電平
GPIO.setup(LED, GPIO.OUT)
GPIO.output(LED, GPIO.LOW)
#循環
def loop():
while True:
GPIO.output(LED, GPIO.HIGH) #LED亮
time.sleep() #延時0.5s
GPIO.output(LED, GPIO.LOW) #LED滅
time.sleep()
#退出前的清除函數
def destroy():
GPIO.cleanup(LED)
if __name__ == '__main__':
# 初始化GPIO
setup()
try:
loop()
except KeyboardInterrupt:
# 恢複GPIO口狀态
destroy()
按下Ctrl+X, 然後Y, 然後回車, 輸入以下指令執行:
sudo python blink.py
可以看到LED閃爍, 按下
Ctrl+C
結束程式運作, 可以試着自己修改下代碼中的參數來檢視效果.
參考
樹莓派學習筆記——RPi.GPIO 流水燈