一、Pico:bit breakout 擴展板!?
可以看見 Pico:bit breakout(以下簡稱為Pico:bit)的外型和英國 BBC(British Broadcasting Corporation)所設計的 micro:bit 十分相像,其作為一款強大且易於入門的學習工具,適合學生、教育機構和愛好者使用,目前在國小階段也有很多的老師已經將 micro:bit 列入教學內容裡面,所以在新手入門相關的生活科技專題,micro:bit 可以說是相當的普及了。
對於新手而言另一款快速學習的開發板想必一定有人會想起樹梅派 Raspberry Pi Pico 吧!但這邊問題就來了,若是已經為了 micro:bit 開發板已經購買了許多相應的擴展板了,那這不就代表可能會需要在購買其他的擴展板嗎?不用擔心!接下來為讀者們介紹的 Pico:bit 擴展板就可以幫助樹梅派開發板 Pi Pico 嵌合到 micro:bit 上面,免除掉擴充套件不相容的麻煩!
二、Pico:bit breakout 的特點與方便之處
Pico:bit可以讓 Raspberry Pi Pico 或 Raspberry Pi Pico W 相容上 micro:bit 擴展板和套件。使用 1.3 吋全彩 LCD 螢幕替代了 micro:bit 的矩陣 LED,使顯示功能更具有彈性。且繼承了 Pi Pico 的多種開發方式,支援 Arduino IDE、Python、BlocklyDuino 和 C++,更可以搭配各種 CIRCUS Pi 擴充板。不用更換掉原有的相關擴展板或是套件,就能從 micro:bit 無痛開始學習 Raspberry Pi Pico!
要特別注意接入方向,紅色方框處是對應 Raspberry Pi Pico W 上面有 USB 接口的方向。
Pico:bit 也保留了A、B按鈕,所以在互動顯示上也能發揮更多創意!
若讀者本身手邊已既有 CIRCUS Pi 的系列產品的話,Pico:bit 也同樣可以和這些硬體做搭配使用喔!
三、使用 Pico:bit 操作登月小車實作避障功能
那麼筆者就來實際帶大家操作一次該如何使用 Pico:bit 來操作 MoonCar 登月小車吧!
首先先請讀者們準備好撰寫程式的軟體 BlocklyDuino ,點擊連結就可以到安裝教學的介面囉!BlocklyDuino 支援非常多常見的開發板,藉由拖曳程式積木的方式來撰寫程式可以降低初學者上手的門檻,也會根據開發板轉換相應的程式碼,可以說是非常方便的應用程式!
下載完成後就可以解壓縮到自己的電腦,但要注意以下事項:
- 存放檔案的路徑不能包含有”中文字體”。
- 下載主程式以外,也要記得下載更新檔並依照指示更新。
初次使用 Pi pico w 撰寫程式注意!
因為 Pi pico w 有寫入模式切換的關係,所以第一次使用時會沒辦法從 BlocklyDuino 內讀取到連接埠,需要先從 Arduino IDE 中讀取並寫入程式一次後,便可以正常使用!那麼我們先準備好 micro usb 傳輸線 將 Pi pico w 接上電腦,要注意需要有數據傳輸功能喔!有些像是行動電源附贈的線是僅有充電功能的沒辦法讀取到開發板,沒有辦法連接燒錄程式。
隨後打開 BlocklyDuino,會發現連接埠的地方是無法顯示的。
接下來就可以簡單拖曳一些程式方塊做程式燒錄(可以仿造上方的內容),點擊儲存檔案。要注意這邊的儲存路徑不可以包含“中文字體“喔!
儲存完成之後就可以點擊開啟 Arduino IDE 按鍵前往燒錄程式。
開啟後將開發板選擇 Pi pico w 之後,請選擇序列埠 UF2 Board。若是沒有安裝過樹莓派開發板的話則需要先行到 boards manager 那邊安裝完成喔!Boards Manager URL 可以輸入下面這行網址:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
若是沒有出現連接埠的話,可以將 USB 連接線拔起,按下 Pi pico w 上面的 BOOTSEL 切換模式(原子筆指向處)後,再接上去就會看見囉!
之後在 Arduino IDE 中燒入程式,燒入成功之後可以回到 BlocklyDuino,可以看見這邊就能夠成功地找到連接埠了!要記得使用 BlocklyDuino 時也要檢查選好對的開發板喔!
首先因為我們使用的是 Pi pico ,要特別注意它跟 micro:bit 的腳位之間並不是對號入座的關係,所以我們需要參考下面這一張圖片去查找對應的腳位為何。
在此實作中我們需要使用登月小車的三個功能,因為我們燒入程式的開發板是 Pi pico ,所以只需要查找其對應到 Pi pico 上面的腳位分別是:
- RGB LED【GP21】
- 超音波Echo【GP9】超音波Trig【GP0】
- M1馬達【GP28、GP18】M2馬達【GP8、GP16】
接下來想示範的程式內容為當前方並無7公分距離內的障礙物,登月小車將會亮起綠燈前行,若是出現7公分內的障礙物時,登月小車將會停下並亮起紅燈右轉,無障礙物則會回到綠燈狀態前行。
在積木程式的邏輯中要知道的是,針對某種開發板而去做撰寫的積木不一定能契合上我們想要的開發板,所以當拉錯區域的積木方塊時就會發現程式編譯錯誤,通常是找不到相關的函式,除了一些較為通用的功能就有機會可以做使用。
也因為目前 BlocklyDuino 裡面還沒有針對 Pi pico 開發板所撰寫的程式方塊,所以並沒有完全適配Pico:bit 的程式積木,下方的程式積木基本上都會從【法蘭斯積木】>【Web:bit】>【登月小車】分類中拖曳,在此實作中的馬達功能則會使用原設積木方塊中的【類比I/O】分類中拖曳。
那麼首先我們先進行 LED 燈以及超音波距離感測器的腳位設定,RGB LED 的亮度可以自由更改。
再來從【邏輯】分類中拖曳出[如果執行積木]放置在重複執行區域內,點擊其左上角設定圖示將”否則”拖曳到右側”如果”的下方。
隨後一樣從【邏輯】分類中拖曳[比較積木]下拉選單設定為>,接著分別從【法蘭斯積木】中的登月小車找到[距離感測器積木]並拖曳,從【數學】分類中可以找到[數字]積木,我們先設定為7公分。
在【類比I/O】分類中可以找到[類比寫入積木],因為一個馬達是由兩個腳位所控制,所以當一個腳位是高電壓,另一個無電壓則可以使其旋轉,以下設定就可以達到讓登月小車向前進的效果。馬達的PWM最高是4069,可以藉由調整數值來調整馬達的快慢,為方便觀察所以筆者先設定為100。
接著在【法蘭斯積木】分類中可以找到 [WS2812積木],這邊就可以設定登月小車前行時的顏色。
接下來處理”否則”區域的程式撰寫,我們先調整馬達數值為0,使登月小車停下,也拖曳控制LED燈的積木,調整登月小車停下時要顯示的顏色。
停下後需要讓登月小車右轉改變面向,所以這邊調整類比輸入的數值,將腳位18以及腳位8的數值修改成100,其餘為0。之後在【時間】分類中可以找到[延遲積木],這邊保留旋轉時間為300毫秒。
這樣子程式就完成囉!最終完整的積木程式如下圖,各位讀者也可以參照或是自行修改。
點擊上排最左邊的圖示可以看見程式碼,接著點擊下載就可以進行燒錄了!
燒入成功之後要記得將 usb 連接線拔起,然後將登月小車的開關開啟,就能夠獲得一台有避障功能的小車囉!要注意若是有修改程式插拔 usb 連接線的話,要檢查 blocklyduino內的連接埠有找到再進行燒入程式喔!
若是小車運行方式怪怪的有可能是模式沒有切換,記得檢查小車右前方的 micro:bit / web:bit 開關要切換到 micro:bit 那邊才可以正常運行。
三、總結
對於新手來說,micro:bit 和 Raspberry Pi Pico 皆是相對容易入門的開發板,但在功能和應用的方面就有一些小差異了,micro:bit 主要用於教育,具有一些基本的感應器和輸出設備,適合製作簡單的專案;Raspberry Pi Pico 則更適合廣泛的應用,包括嵌入式系統、物聯網應用等較為複雜的專案。
若讀者是初學者且希望著重在程式入門和基礎項目製作,micro:bit 是一個很好的選擇!若是對於更多的硬體控制和廣泛應用感興趣,或者已經有一些撰寫程式的基礎,那麼就可以考慮 Raspberry Pi Pico 做為邁開下一步的起點!如此一來 Pico:bit 就能幫助到更多不想另外花錢更換套件的學習者們,且適合 micro:bit 介面的擴展板也沒有複雜的I/O介面,更能為新手省下不少麻煩!