介紹如何在樹莓派(Raspberry Pi)中使用 Scratch 控制 GPIO,點亮與關閉連接的 LED 燈。
樹莓派的 GPIO 可以用來連接各種電子設備,製作出各種控制應用,最簡單的應用就是連接並控制 LED 燈。
這裡我們以 Scratch 3 來示範如何控制 LED 燈的開啟與關閉,這個應用非常適合讓小朋友學習入門的程式設計與自動控制。
安裝 Scratch 3
在安裝好基本的 Raspberry Pi OS 之後,可以透過 Recommended Software 來安裝各種版本的 Scratch,這裡我們以 Scratch 3 來作為示範。

樹莓派 GPIO 排針輸出腳位
若要查詢樹莓派 GPIO 排針輸出腳位,可以開啟終端機並執行 pinout
指令:
# 查詢樹莓派 GPIO 排針輸出腳位
pinout
執行此令之後,會自動偵測樹莓派的版本,並列出所有 GPIO 排針輸出腳位的配置圖。

Scratch 3 與 Raspberry Pi GPIO 擴充功能
打開 Scratch 3,點選左下角的擴充功能。

在 Scratch 3 的擴充功能中,選擇「Raspberry Pi GPIO」。

啟用「Raspberry Pi GPIO」擴充功能之後,就可以將裡面的模組加入程式中、控制樹莓派的 GPIO 了。

控制 GPIO 連接的 LED 燈
參考上面的樹莓派 GPIO 排針輸出腳位圖,選擇要使用的 GPIO 腳位,將 LED 燈接上去。

LED 燈的兩根針腳會有一長一短,長的那一根是正極,正極連接自己選擇的 GPIO 腳位(這裡我選擇 GPIO2),負極則連接任意的 GND 腳位。

當 GPIO 處於 high 的狀態時電壓是 3V3,不同的 LED 燈可能會有不同的工作電壓,所以要自己計算一下 LED 燈要串接多大的限流電阻,通常是建議至少加上一個低歐姆值(例如 100 Ω)的電阻以防萬一。

這是單一顆 LED 燈的接線圖。

若要使用 Scratch Raspberry Pi GPIO 擴充功能來控制連接 GPIO 的 LED 燈,可以使用這一個 GPIO 輸出的模組,它可以讓我們將指定的 GPIO 腳位設定為 low(0V)或 high(3V3),例如將 GPIO2 的腳位設定為 high 就可以這樣寫:

有了這個 GPIO 輸出模組,就可以搭配其他的 Scratch 程式做出各種 LED 燈的應用了。
在製作各種不同的應用時,可以搭配不同顏色的 LED 燈。

控制兩顆 LED 燈
若要放兩顆 LED 燈,讓它們交互發亮,可以將兩顆 LED 燈接在不同的 GPIO 腳位(這裡使用 GPIO2 與 GPIO3),然後搭配類似這樣的 Scratch 程式。

這是同時接上紅色與綠色兩顆 LED 燈的接線圖。

這是控制兩顆 LED 燈交互發亮的 Scratch 程式。

控制三顆 LED 燈
若將紅色、黃色與綠色三顆 LED 燈組合起來,就可以製作成紅綠燈了。

這是同時接上紅色、黃色與綠色 LED 燈的接線圖。

這是控制三顆 LED 燈的 Scratch 程式。

參考資料:Raspberry Pi