Raspberry Pi Pico微控制板(一):重磅出擊

本文使用的Raspberry Pi Pico開發板由台灣樹莓派Sosorry先生贊助提供,特此感謝!

在電子DIY愛好者Maker圈,樹莓派開發板和Arduino系列各自耕耘不同領域的應用市場,彼此互補。樹莓派適合伺服器和多媒體應用,運算效能較高,消耗電力也比較大;Arduino適合用於即時監控,消耗電力比較小,但運算效能也較弱。

2021年1月21日,樹莓派官方重磅發布了新的微電腦控制板產品:Raspberry Pi Pico(樹莓派Pico,以下簡稱Pico),“Pico”代表微小,它不僅是樹莓派的第一款微控制板,也是邁入Arduino固守疆域的一小步,而且Pico還採用了自家研發的32位元雙核心微控器:RP2040,或許最令競合廠商汗顏的是,樹莓派基金會維持了一貫的親民風格:一片定價美金4元。

Pico開發板有40支引腳,跟麵包板相容,微控器晶片上頭印有樹莓派的標誌。開發板的接腳有可以焊接排針的穿孔,外圍還有郵票孔接點,方便你直接將它貼焊在另一個PCB板。

Pico板

自研晶片的奔騰年代

樹莓派官方的 “The journey to Raspberry Silicon”貼文指出他們從2017年夏季開始研發RP2040晶片,採雙核心ARM Cortex-M0+架構、最高時脈133MHz、內建264KB記憶體。儲存程式碼的快閃記憶體採外接,Pico板搭載的是2Mb。

樹莓派基金會有對外販售RP2040微控器,這有點像賣咖啡的星巴克跟同業說:嘿,你們的咖啡豆太渣了,來跟我買吧~。美國知名的電子零組件供應商Adafruit以及SparkFun都將推出採用RP2040微控器的產品,像Adafruit Feather RP2040,以及SparkFun Pro Micro – RP2040微控制板。這些廠商的控制板只能用附加價值取勝,比方說,體積小一點、加入某個感測器晶片或是鋰電池充電插座…等等,價格恐怕難以跟樹莓派基金會比拼。

Arduino官方在1月20日(註:英國和義大利時差一小時)發表一篇“Welcome Raspberry Pi to the world of microcontrollers(歡迎樹莓派來到微控器世界)”文章,宣佈他們也將推出採用RP2040微控器的開發板“Arduino Nano RP2040 Connect”。

微控器(microcontroller)晶片,不像個人電腦的處理器長久以來被Intel設計的x86架構壟斷,也不像智慧型手機幾乎都採用基於ARM(安謀)設計的處理器。在Arduino出現之前,台灣技職教育體系的單晶片微電腦相關課程,幾乎都是採用Intel的8051系列,而在歐美地區,除了8051,電子DIY玩家也使用摩托羅拉的6805、Parallax公司的BASIC Stamp、微晶片科技(Microchip Technology)的PIC系列、Atmel的AVR系列(微晶片科技在2016年併購了Atmel)、意法半導體(STMicroelectronics)的STM系列…等等,以前的樂高Mindstorms機器人RCX控制器採用的是日立H8微控器。

微控器的市場基本上就是戰國群雄的勢態,摩托羅拉的半導體部門於2004年拆分獨立成飛思卡爾(Freescale Semiconductor),而前身隸屬於飛利浦公司的恩智浦半導體(NXP Semiconductors)則於2016年併購了飛思卡爾。台灣也不乏研發微控器的公司,像聯發科、晶心科技、新唐科技、應廣科技、新茂國際科技…等。

各國科技巨頭也相繼發布自家設計的晶片,除了大眾熟知的Apple M1、特斯拉的自動駕駛AI晶片,還有Google的神經網路加速單元(TPU),美國電商龍頭亞馬遜也自行研發了AWS Inferentia雲端AI晶片,同樣以電子商務起家的阿里巴巴也在2018年成立了「平哥頭半導體」,研發處理器晶片…這真是處理器大爆發的年代。

蘋果電腦的第一款手提式麥金塔電腦Macintosh Portable在1989年上市時,當時有電腦媒體特別披露這一款電腦除了配備16 MHz摩托羅拉68000處理器,還搭載原本用於Apple II電腦的6502處理器來管理電源。現在,你的電腦鍵盤、滑鼠、無線耳機…可能各自都有微處理器。

微電腦Maker的主流程式語言:C/C++/Arduino和MicroPython

積體電路設計製造工藝日益進步,微處理器的價格不斷下滑,使得以前專門為特殊用途而設計的數位IC(如:影音解碼、通訊協定轉換、訊號產生器…等)也逐漸被價格低廉的微控器取代。

就像《超圖解Python物聯網實作入門》第13章使用的馬達控制板,上面搭載了一個32位元的ARM Cortex-M0核心的微控器,只是為了「轉換序列與並列訊號」,而這個微控器的成本也許只有台幣10幾元。還有像儲存設備大廠,Seagate(希捷)和WD,也競相在新產品中改用自家研發的微控器取代原本的硬碟控制IC。

依照這個趨勢,微控器程式設計師會取代(或者說「接手處理」)一些硬體設計的工作,想必相關的工作需求也會持續增加。

雖然微控器的架構繁多,但它們必定都支援C/C++程式語言(多數情況下,也是除了組合語言之外的唯一選擇)。Pico開發板官方目前支援兩種程式語言的開發環境:

  • C/C++語言:適合嵌入式系統開發領域的工作者或者相關經驗的Maker。
  • MicroPython語言:MicroPython是個能在微控器上運作的Python 3語言直譯器,代表使用者可以用Python語言來操控微控器。

對廣大的微電腦Maker來說,MicroPython無疑是最好的選擇。在樹莓派官方的介紹文章中也提到,他們是和MicroPython的創造者Damien George(達米安·喬治)教授合作把MicroPython語言移植到RP2040晶片。

在這之前,MicroPython早已陸續被移植到ESP8266, ESP32, BBC Micro:bit,…等開發板。在樹莓派基金會的加持之下,MicroPython將會吸引更多開發者和廠商,也會有更多方便好用的程式模組被開發出來。

Pico板目前尚未支援Arduino開發環境,但由於Arduino官方也將推出採用RP2040晶片的控制板,所以能夠使用Arduino語言開發Pico板的日子也為期不遠了。

使用MicroPython控制樹莓派Pico板

Pico板有26個可程式IO接腳、兩組SPI、兩組I2C、兩組UART序列埠、3個類比輸入埠(輸入電壓上限為3.3V),每個數位IO都能輸出PWM訊號。

PICO接腳

開發板上面的按鈕叫做“BOOTSEL”(啟動選擇),先按著它再將控制板插入電腦USB,然後再放開按鍵,電腦會將控制板識別成USB磁碟。

Pico磁碟的內容

從樹莓派官網的Raspberry Pi Pico韌體下載網頁,下載最新的韌體檔案(.uf2格式),再將它拖入Pico板的「USB磁碟」,它就會自動燒錄韌體並重新啟動。

這時,電腦將把Pico板識別為USB序列通訊裝置。在Windows系統上,你可以從「裝置管理員」查看它的序列埠(COM)編號。

接下來的步驟就跟其他執行MicroPython的控制板(如:ESP8266和ESP32)一樣了,你可以使用程式編輯器編寫Python,或者使用終端機軟體,如:PuTTY,連接Pico板,像下圖這樣:

PuTTY操作畫面

Pico板內建的LED是接在25腳,所以只要修改《超圖解Python物聯網實作入門》第1章的閃爍LED範例程式的接腳編號,其餘不變,貼入PuTTY就能控制Pico板的LED每隔1秒閃爍了:

from machine import Pin
import time

led = Pin(25, Pin.OUT)
while True:
    led.value(0)
    time.sleep(1)
    led.value(1)
    time.sleep(1)
Posts created 470

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top