就在幾天前,有一個非 Arduino 官方的技術社群宣布了 Arduino-Pico 的開源版本,可以在 Arduino 的開發環境下,支援 Raspberry pi pico 相關程式的開發,這個開源軟體可以從 github:earlephilhower/arduino-pico取得相關資訊。以下就實作如何在 Arduino-IDE 的開發環境下,撰寫 C 語言程式控制 Pi pico,設定完成後,使用預設的範例,讓板載的LED燈像是會呼吸一樣,從明到暗,再從暗到明。
回到主畫面選單,選擇「工具(Tools)」→ 「開發板(Board)」 → 「開發板管理員(Board Manager)」,在搜尋的地方輸入「pico」,出現如下圖的畫面,再按下紅框處的「安裝(Install)」進行安裝。
等待安裝完成後,回到主畫面選單選擇「工具(Tools)」→ 「開發板(Board)」 → 「Raspberry Pi RP2040 Boards(0.9.2) →「Raspberry Pi Pico」。
選好開發板後,再選擇 Pico 連接的 Port。這樣就完成環境的設定了。
以下就用內建的範例來執行,讓開發板上的燈呈現明暗的變化:
開啟範例程式後,進行編譯前,要特別注意操作的順序:
(1) 先斷開 Pi Pico USB電源
(2) 按住開發板上白色 BOOTSEL 按鍵,然後插上USB電源
(3) 按下 Arduino 開發環境下的「上傳」圖示,進行編譯並上傳開發板
(4) 等到編譯完成,中央的提示列出現「上傳中」時,再將 BOOTSEL 按鍵放開
(5) 等待上傳完畢,所有上傳程式的程序才算完成
過程中有個比較不方便的是,要一直按住開發板上的 BOOTSEL 按鍵,直到出現「上傳中」。如果未來 Pico 改版,不知是否能改成類似 STM32 使用 Jump 的方式選擇模式,應該會更方便些。上傳完成後,就可以看到開發板上的 LED 從暗到亮、又從亮到暗,一再重複,有點像是 LED 在「呼吸」。
拍了一小段影片,看一下執行的結果:
[環境設定]
打開Arduino IDE,選擇檔案(File) → 偏好設定(Preferences),在「額外的開發板管理員網址」輸入以下這行 URL:https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json輸入完成後按下「確定」離開此畫面。
回到主畫面選單,選擇「工具(Tools)」→ 「開發板(Board)」 → 「開發板管理員(Board Manager)」,在搜尋的地方輸入「pico」,出現如下圖的畫面,再按下紅框處的「安裝(Install)」進行安裝。
等待安裝完成後,回到主畫面選單選擇「工具(Tools)」→ 「開發板(Board)」 → 「Raspberry Pi RP2040 Boards(0.9.2) →「Raspberry Pi Pico」。
選好開發板後,再選擇 Pico 連接的 Port。這樣就完成環境的設定了。
以下就用內建的範例來執行,讓開發板上的燈呈現明暗的變化:
[程式]
以下程式來自 Arduino開發介面的範例,加上中文說明,程式開啟的方式,可選擇「檔案(File)」→「範例(Samples)」→「rp2040」→ 「Fade」。開啟範例程式後,進行編譯前,要特別注意操作的順序:
(1) 先斷開 Pi Pico USB電源
(2) 按住開發板上白色 BOOTSEL 按鍵,然後插上USB電源
(3) 按下 Arduino 開發環境下的「上傳」圖示,進行編譯並上傳開發板
(4) 等到編譯完成,中央的提示列出現「上傳中」時,再將 BOOTSEL 按鍵放開
(5) 等待上傳完畢,所有上傳程式的程序才算完成
過程中有個比較不方便的是,要一直按住開發板上的 BOOTSEL 按鍵,直到出現「上傳中」。如果未來 Pico 改版,不知是否能改成類似 STM32 使用 Jump 的方式選擇模式,應該會更方便些。上傳完成後,就可以看到開發板上的 LED 從暗到亮、又從亮到暗,一再重複,有點像是 LED 在「呼吸」。
int led = LED_BUILTIN; // 開發板上的 LED 燈 GPIO 值 int brightness = 0; // 亮度 int fadeAmount = 5; // 每次遞增或遞減值 void setup() { // 定義 LED 接腳為輸出 pinMode(led, OUTPUT); } void loop() { // 設定亮度 analogWrite(led, brightness); // 迴圈內改變亮度,每次增加遞增值fadeAmount: brightness = brightness + fadeAmount; // 當亮度大於255時,亮度往下逐漸遞減,每次減少遞增值fadeAmount:: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } delay(30); }如果沒有在開機前先按住 BOOTSEL,上傳結果會失敗,並出現以下錯誤:
[結果]
如果看到以下畫面,表示編譯上傳成功。拍了一小段影片,看一下執行的結果:
[參考資料]
- Github:earlephilhower/arduino-pico
張貼留言