樹莓派控制入門篇 - LED閃爍

學程式語言第一個程式大概都是列印或顯示出 Hello World ,而學物聯網第一個實作大概都是學習 LED 控制,算是硬體編程的 Hello World,來試試吧!本學習是用 Python 語言開發,匯入 RPi.GPIO 模組來控制 LED 燈的亮燈與熄滅,做為學習樹莓派的入門篇,所以會多做說明。

前置準備

教具準備

名稱 數量 規格 備註
樹莓派 1 Raspberry Pi 4 Model B (4G) 就只是現在頂規是這個版本,用三代的也可以
麵包板 1 不限 測試時容易連結
杜邦線 1 不限 保證沒有斷芯就好
LED燈 1 不限 測試此設備能發光閃爍
電阻 1 10K 為了不讓 LED 燒掉

安裝 RPi.GPIO

不管用什麼方式,請在樹莓派的 Python 虛擬環境安裝 RPi.GPIO 模組,上述前置準備可以學習到怎麼連到此環境,安裝命令可以參考官方 RPI.GPIO 連結,命令如下 :

(dsalearning) $ pip install RPi.GPIO

安裝結果如下

(dsalearning) pi@raspberrypi:~/Documents/envs/dsalearning $ pip install RPi.GPIO
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting RPi.GPIO
  Using cached https://www.piwheels.org/simple/rpi-gpio/RPi.GPIO-0.7.0-cp37-cp37m-linux_armv7l.whl (69 kB)
Installing collected packages: RPi.GPIO
Successfully installed RPi.GPIO-0.7.0

看到 Successfully installed 就來檢查一下虛擬環境已匯入的模組是否有 RPi.GPIO

(dsalearning) $ pip list

檢查結果

(dsalearning) pi@raspberrypi:~/Documents/envs/dsalearning $ pip list
Package    Version
---------- -------
pip        20.0.2 
RPi.GPIO   0.7.0  
setuptools 46.1.3 
wheel      0.34.2 

嗯,確定是已安裝進來了,可以放心的使用嘍~

連線圖

在開始連接硬體電路之前,請把樹莓派關機,並斷開電源,因為樹莓派主板帶電時,進行插接電路很可能會導致電子元件的燒毀,筆者在學習時,旁邊座的是讀 Double E 的大哥,總是提醒我這件事,誰叫我一個 E 都沒有,只好找時間進修了。連接如下圖。

LED 電路連線圖

接線要注意的是 LED 長針 (正極) 黃色線連接主板的 GPIO ,這裡筆者是接 GPIO25 (BCM編號),短針 (負極) 綠色線接電阻與接地 (Ground) 串聯,筆者有另外買 T-Cobbler Plus for Paspberry Pi(以下簡稱 T 型接頭),接線就不用這樣數腳位了。

注意! 連接硬體電路之前,請把樹莓派關機,並斷開電源,因為很重要,所以再說一次。

程式開發

連線好後,我們就用 Python 來開發程式,而 Python 的 IDE 筆者接觸過的就有 Spyder 、 PyCharm 與 VS Code ,不過這裡筆者是使用樹莓派內建的 Thonny ,可以參考本站的「初探樹莓派內建的 Thonny Python IDE」,直接在樹莓派裡開發,這個 IDE 也是很不錯喔,所以請開啟 Thonny 吧,因為買來的 T 型接頭是 BCM 編號規則的,授課的老師也是教 BCM ,所以接下來的 Python 也就是用 BCM 的編號規則。。

範例程式碼如下

# 實作 : 亮一秒暗一秒
import RPi.GPIO as GPIO
import time

def setup():
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(25,GPIO.OUT)
    print("OK")

def blink():
    while True:
        GPIO.output(25,GPIO.HIGH)
        time.sleep(1)
        GPIO.output(25,GPIO.LOW)
        time.sleep(1)

if __name__=="__main__":
    setup()
    blink()

迫不急待的可以先貼碼試試,把程式上傳到樹莓派,在 Thonny 就只要按 F5 執行即可。

如果想更進一步了解 RPi.GPIO 模組,請參考下一篇「樹莓派 RPi.GPIO 使用說明」。

參考文章

  1. A Python module to control the GPIO on a Raspberry Pi

留言