Pico 2 W × Thonny|第 1 次課程
Pico 2 W、Thonny 與 MicroPython 入門
本篇從開發板、程式編輯環境與第一段 MicroPython 程式開始,帶你讓 Pico 2 W 控制 LED、讀取按鍵,建立「程式可以感知並控制真實世界」的第一個經驗。
作者:施朝斌
一、Pico 2 W 是什麼?
Pico 2 W 是一塊可程式化的微控制器開發板。它使用 RP2350 晶片,具備 GPIO 等硬體介面,並整合 Wi-Fi 與 Bluetooth 無線連線能力。課程後續會讓它連上網路,交換感測資料;不過在開始網路通訊以前,先熟悉程式如何和硬體互動,會更容易理解整套物聯網流程。
可以先把 Pico 2 W 想成一個小型「感測與控制節點」:感測器把環境變化交給它,程式依照輸入做判斷,再透過輸出控制 LED、馬達或其他裝置。第一堂先從 LED 和按鍵入手。
二、Thonny:編寫與執行 MicroPython 的工具
Thonny 是適合初學者使用的 Python 開發環境。連接 Pico 2 W 後,Thonny 的編輯區可用來撰寫程式,Shell 則能顯示執行結果、錯誤訊息,也能直接輸入指令測試。
main.py。這個「修改、執行、觀察、修正」的循環,是初學程式很重要的工作方式。若 Thonny 無法連線,先檢查 USB 線、Interpreter 與連接埠是否選對,再查看 Shell 顯示的訊息。
三、第一個程式:讓板載 LED 閃爍
下面的程式會將 Pico 2 W 的板載 LED 設為輸出,並每隔半秒切換一次亮暗狀態。
from machine import Pin
import time
led = Pin("LED", Pin.OUT)
while True:
led.toggle()
time.sleep(0.5)
Pin("LED", Pin.OUT)代表以輸出方式控制板載 LED;while True讓程式持續重複執行;toggle()切換 LED 狀態;time.sleep(0.5)則暫停 0.5 秒。執行後若 LED 持續閃爍,就表示程式已成功控制硬體。
四、從輸出到輸入:按鍵控制 LED
LED 是輸出裝置,按鍵則提供輸入。以下範例讀取接在 GPIO 15 的按鍵,再依照按鍵狀態控制 LED。
from machine import Pin
led = Pin("LED", Pin.OUT)
button = Pin(15, Pin.IN, Pin.PULL_UP)
while True:
led.value(not button.value())
Pin(15, Pin.IN, Pin.PULL_UP)將 GPIO 15 設為輸入,並啟用內部上拉。使用上拉時,按鍵未按下的讀值通常為 1,按下後會變成 0;因此程式用 not 反轉讀值,讓按鍵按下時 LED 亮起。實際接線仍要依課堂使用的按鍵模組與電路圖確認,避免把電源與 GPIO 接錯。
這段程式呈現物聯網裝置的基本概念:程式讀取輸入,再控制輸出。日後把輸入換成溫度、水位或光線資料,再把結果送到網路,就能逐步建構感測應用。
五、認識常見硬體介面
- GPIO:讀取或輸出數位訊號,例如按鍵、LED 或繼電器控制。
- ADC:讀取類比電壓,可應用於光敏元件或電池電壓等情境。
- PWM:以脈波方式控制輸出,常用於調整 LED 亮度或控制馬達。
- I²C:讓控制板透過共同的通訊線路與多種數位感測器交換資料。
第一堂不必立刻精通所有介面。先知道它們各自能處理哪一類訊號,之後遇到感測器或控制任務時,就能選擇適合的連接方式。
六、第一堂實作任務
- 讓板載 LED 每秒閃爍一次。
- 使用按鍵控制 LED 亮起或熄滅。
- 按下按鍵時,讓 LED 快速閃爍。
- 記錄程式修改後的現象,並說明輸入、程式處理與輸出的關係。
完成後,學生不只看過程式碼,也已經讓程式和實體裝置互動。這是後續連線、建立 Web Server、使用 HTTP/JSON,以及透過 MQTT 傳送 IoT 資料的起點。
本篇重點回顧
- Pico 2 W 是可透過程式讀取輸入、控制輸出的微控制器開發板。
- Thonny 負責編寫、執行與除錯 MicroPython 程式。
- GPIO 可設定為輸入或輸出;按鍵與 LED 是最容易觀察的練習組合。
- 透過反覆修改、執行與觀察,逐步建立程式除錯能力。
下一篇將接續介紹 Pico 2 W 如何連上 Wi-Fi、查看網路資訊,並開始理解裝置如何進入 Internet。
沒有留言:
張貼留言