2021年2月12日 星期五

Raspberry Pi Pico-MicroPython, CircuitPython 開發環境建置

網頁最後修改時間:2021/02/12

現在比較流行的微控制器和開發板,大多圍繞在 Arduino、Micro:bit、STM32、ESP8266、ESP32 等 ... 身上。不過,讓人興奮的是,最新樹莓派釋出他們自行研發的自製晶片 RP2040 和其開發板 Raspberry Pi Pico(Getting Started with Raspberry Pi Pico),支援 C/C++ 和 Python(MicroPython、CircuitPython)程式開發(後期 Arduino IDE 也會支援),相關資料可上官網網頁,裡面提供了非常完整的文件和範例程式碼。

跟其他晶片與開發板不同的是:Pico 所用的 RP2040 這顆晶片,擁有 8 個可程式輸入/輸出狀態機(Program I/O(PIO)state machines),支援客製化週邊介面(簡單說,就是您可以自行創建通訊介面,例如,方波、NeoPixel(WS2812B)、Manchester Encoding ...,I2C、SPI ... 也可以);個人覺得這地方應是 Pico 的重點部分,有興趣的可以深入去研究。

另外關於 Pico 韌體程式的燒錄,非常的容易!只需要 "拖" 檔案和 "放" 檔案這兩個動作,完全不需要額外的裝置。

** 關於 Pico 相關的資訊,網路上現在已經一堆資料可以看,所以在這裡會當作看倌們基本上都很清楚這些東西。對於 Pico 陌生的看倌,請自行搜尋資料補充一下。

要了解 Pico 除了閱讀它的資料手冊和程式碼之外,更重要的一點就是要有它的開發環境。本篇網頁撰寫的目的,就是要來分享如何使用 Python(MicroPython、CircuitPython)開發 Pico 的程式;若是要使用C/C++做開發,請參考另一個網頁。

主題有:


*********************************************************************************

若須購買 Pico,可參考:Raspberry Pi Pico RP2040 開發板分類賣場

有賣場布拉格網頁可參考,可用於 MicroPython 的週邊裝置:

    *********************************************************************************

    Pico 板上的 <BOOTSEL> 按鈕只要在插上電腦的(或通電)的同時一起按下,就會進入到燒錄模式。燒錄模式已經寫進 Pico 的 ROM 裡面,所以不會因為進行任何燒錄的動作毀壞它。


    【(01)MicroPython 開發環境設置】

    Pico 支援兩種特定的 Python 韌體:MicroPython CircuitPython(CircuitPython 不同於 MicroPython 之處,可參考 CircuitPython 文件中 differences-from-micropython 一節的說明)。


    /*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//

    *(01-01)下載 Pico MicroPython 韌體:

    進入到 MicroPython 的下載網頁;CTRL + F 搜尋 pico,再點擊 Raspberry Pi Pico 連結,就可到達韌體下載網頁。

    網頁撰寫當日(2021/02/06)最新的版本是 v1.14。直接下載穩定版本(除非想要試用新功能,否則不要下載 **-unstable-**.uf2 類型檔案),下載的檔案名稱為:rp2-pico-20210202-v1.14.uf2

    /*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*
    2021/02/17 下載的韌體版本說明:

    rp2-pico-20210201-v1.14.uf2 在執行 pio_asm 會產生 ImportError: no module named array 的錯誤,解決的方法是使用 unstable 的韌體版本;以上圖來說,就是直接下載 (latest) 那一個。

    更新此部分實測試所用的韌體版本是:rp2-pico-20210217-unstable-v1.14-56-g5cb91afb9.uf2 
    /*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*


    /*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//

    *(01-02)燒錄 Pico MicroPython 韌體:

    直接將 Pico 接上 MicroUSB 線後插到電腦,等一會兒就會跳出檔案總管(若是沒有,就自己開啟),並且會出現一個名為 RPI-RP2 的磁碟機,如下圖所示。

    /*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*
    上面的情況只適用於剛拿到且沒有燒錄任何韌體的 Pico。

    如果之前已經有燒錄過其他韌體的話,要先按下 BOOTSEL 再插上電腦,才會出現該目錄。

    /*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*

    開啟另一個檔案總管,將 rp2-pico-20210202-v1.14.uf2 拖拉複製到磁碟機 RPI-RP2 中。


    當檔案複製完成後,檔案總管會自動關閉,Pico 會開始燒錄韌體並重置,此時就可以開始使用 MicroPython(預設的 REPL 通訊速率為 115200bps, 8N1)了。


    /*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//

    *(01-03)MicroPython 程式撰寫建議軟體

    MicroPython 有多個適用的程式撰寫工具軟體,沒有限定一定要使用哪一個?只要用的順手跟方便,哪一個都好!

    下面介紹的是官方建議使用的 MicroPython 程式撰寫軟體:Thonny

    進入到 Thonny 官方網站,根據作業系統下載最新的版本(網頁撰寫當日,最新的版本是:V3.3.3)。

    下載完成後,滑鼠雙擊檔案進行安裝。安裝完成後開啟它,就如下圖所示。

    軟體選單選擇  "工具/選項...",開啟 "Thonny 選項" 設定視窗。

    切換到 "直譯器" 頁籤,設定和選擇:

    • Thonnuy 應該使用哪一個直譯器或設備來執行你的程式?MicroPython (Raspberry Pi Pico)
    • 連接埠請根據實際的 USB 序列裝置號碼選擇

    正確選擇後,按下 "確認 " 按鈕,Thonny 會自動重新連線。

    成功連線 Pico 後的 Thonny 如下圖所示。

    現在,您就可以開始撰寫您的 MicroPython 程式了。


    /*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//

    *(01-04)Pico MicroPython 學習資源

    下面是幾個學習 Pico MicroPython 的資料與連結:

    其他更多的資源請參考 Pico 官網網站


    【(02)CircuitPython 開發環境設置】


    /*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//

    *(02-01)下載 Pico CircuitPython 韌體

    進入到 CircuitPython 的下載網頁;CTRL + F 搜尋 Raspberry Pi,再點擊 Pico 圖示連結,就可到達韌體下載網頁;如下圖所示。

    網頁撰寫當日(2021/02/06)最新的版本是 6.2.0-beta.1,請直接按下 "DOWNLOAD .UF2 NOW" 按鈕下載,下載的檔案名稱為:adafruit-circuitpython-raspberry_pi_pico-en_US-6.2.0-beta.1.uf2


    /*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//

    *(02-02)燒錄 Pico CircuitPython 韌體

    將 Pico 插上電腦(注意,Pico 若不是完全沒燒錄過韌體,<BOOTSEL> 按鈕要一起按下!)

    開啟另一個檔案總管,將 adafruit-circuitpython-raspberry_pi_pico-en_US-6.2.0-beta.1.uf2 拖拉複製到磁碟機 RPI-RP2 中。


    當複製完成後,檔案總管會自動關閉,Pico 會開始燒錄韌體並重置,然後開啟一個新的檔案總管視窗,裡面會新增一個名叫 CIRCUITPY 的磁碟機。

    以後只要插上 Pico 到電腦,就會出現同樣的情況;這樣就完成了 CircuitPython 的韌體燒錄。


    /*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//

    *(02-03)Pico CircuitPython 程式撰寫建議軟體

    Thonny 和下面所要介紹的 Mu Editor(官方建議軟體)都支援 CircuitPython,只要可用和用的順手,哪一種都可以,沒有特別限定一定要用哪一種。

    進入到 Code With Mu 網站,按下 Download 連結進入到下載網頁。

    請根據作業系統下載適合的 Mu 版本,滑鼠雙擊檔案進行安裝。安裝完成後開啟它,就如下圖所示。

    按下畫面左上角的 "Mode" 按鈕,在出現的選單上選擇 Adafruit CircuitPython,最後按下 "OK" 完成模式選擇。

    Mu Editor 會自動重新連線,連線成功之後的畫面就如下圖所示。

    現在,您就可以開始撰寫您的 CircuitPython 程式了。


    /*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//

    *(02-04 )Pico CircuitPython 程式撰寫建議軟體

    下面是幾個學習 Pico CircuitPython 的資料與連結:

    其他更多的資源請參考 Pico 官網網站


    【03-結論】

    Python 是很容易入門的程式語言,結合微控制器來學習,更是一舉多得的不錯選擇!

    Raspberry Pi Pico 提供非常完整地的文件和學習資料,如果想要學習微控制器和 Python 語言,快去入手一片吧!


    .

    .

    .

    .

    沒有留言:

    張貼留言

    留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!

    發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?

    不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !