Arduino vs. micro:bit超級比一比

2018-12-18
Facebook
Twitter
自micro:bit兩年前開始在全球的科技教育領域掀起風潮後,很多已經熟悉Arduino的Maker或教學者,對micro:bit 可說是評價不一,大海是少數同時擁有電子、資工和工業設計學位且超過10年研發工程師經驗的資深Maker,讓我們聽聽他怎麼說?

圖/文 彭宇豪(大海)

 

圖 1、常見的Arduino板子(左),最近兩年竄起的mciro:bit板子(右)

(g6621.jpg)

 

這幾年在各級學校多少都有聽過Arduino這項產品,它是一塊單板電腦(Single Board Computer),上面有一顆簡單的CPU,可以透過個人電腦更換程式,被應用在製作互動裝置、科技專題或程式設計。最近出現了一款比Arduino的使用方法更為簡單,專門為了資訊教育而設計的的單板電腦-micro:bit,不到兩年的時間就風靡全球,但是Arduino這十年來所累積的學習資源以及建立的商業生態卻也根深蒂固,二者各有擅場。

 

(g6620.jpg)

圖 2、Arduino其中一種型號的微控制器(左),micro:bit採用的微控制器nRF51822(右)

 

 

單板電腦的核心:微處理器的比較

微控制器(Microcontroller)是一種半導體元件,有時叫做處理器(Processor)有時叫做單晶片(Single Chip)大多時候我們簡稱CPU,本身像是一台微型的電腦,包含了CPU以及各項周邊電路,可以隨時變更執行不同的程式並且透過接腳進行感測器的信號量測或是電訊號的控制,例如溫度量測、馬達轉速控制等應用。

Arduino常被使用的微處理器型號是Atmega32u4以及Atmega328P,兩者都是Atmel公司(已被Microchip Technology Inc.併購)設計的產品,在被選為Arduino的核心之前已經在業界佔有一席之地,內容為8位元CPU並整合多種周邊的微控制器。

 

micro:bit的核心為Nordic Semiconductor設計的nRF51822,它整合了為32-bits ARM® Cortex™ M0 CPU以及新一代藍牙BLE模組在同一顆晶片上成為系統單晶片(System On Chip, SOC)。ARM公司的Cortex M系列是專門為了微控制器市場所開發的處理器架構。

 

近十年來,由於製造成本的降低以及軟體工具的進步發達,因此微控制器的應用不再只是專業工程師才能掌握,價格上也不用非要專業公司才能負擔的鉅額費用,網路上的開放資訊以及社群玩家之間的資訊流通,讓非工程人員也能快速上手,讓許多創意能夠展現在人們面前,更進一步擔負資訊科學教育的重任。

 

單板電腦在教學的應用

Arduino大概在2003年開始發售,為非工程人員提供一種方便快捷的電腦控制的方法,例如藝術家、DIY玩家或是學生,利用自學的方式就可以學會利用微電腦進行控制。

 

Arduino使用的微控制器是當年的Atmel公司所開發的ATMEGA系列,在我們目前熟悉的Arduino開發環境出現之前,早在上世紀末九零年代Atmel公司就已經以ATMEGA系列產品佔有工控市場的一席之地。在那個年代的微控制器還只是工程師之間的高級玩具,這一類產品只會在工廠環境或是機器的深處才會看到,一般人是不會有機會碰觸這項技術的。直到Arduino的出現,進一步把軟體開發的步驟簡化,一方面是Arduino將硬體線路開源化(Open Hardware),再加上創客運動的風起雲湧,慢慢地把微控制器普及到讓更多人認識。

 

micro:bit是在2015年開始由英國國家廣播公司發起的一項計劃,計劃內容包括一塊電路板以及簡易的程式開發方式,並且免費提供給英國的七年級學生學習電腦科學。

Arduino在全球竄起的十年間,有另一款CPU架構的佔有率不斷地攀升,那就是ARM架構。。原本因為手機通訊裝置的普及而跟著聲勢水漲船高的ARM架構,後來更進一步將產品線擴展到與手機應用截然不同的低階應用。micro:bit在設計時採用了ARM架構的設計,也一併繼承它深厚的開發與應用資源。

 

表 1、常見的Arduino與micro:bit的功能比較

 

硬體規格的比較

Arduino這十幾年來出品許多種類的單板電腦,從最簡單的只有一顆微控制器(圖 4)的到綜合多種功能的多晶片架構都有,而micro:bit目前為止只有一款產品。micro:bit硬體架構上有兩顆微控制器(圖 3),一顆負責透過USB介面與電腦的溝通,讓電腦可以上傳程式碼到micro:bit以便執行,同時也負擔從USB抽取電力供應的功能。另一顆微控制器負責主程式運行以及藍芽通訊,另外板子上搭載有兩顆感測器分別負責加速度與磁強度的量測。

 

在連接器方面,Arduino使用常見的2.54mm間距的排針連接器,讓Arduino能夠方便地連接擴充模組。而micro:bit使用1.27mm間距的金手指,雖然並不常見但是micro:bit特地放大其中三隻信號腳的孔徑,4mm直徑的端子孔能夠讓鱷魚夾連接,如果要使用到其他的信號接腳則需要另外採購有金手指插槽的擴充板。micro:bit的接腳功能有19隻輸出入接腳(Input and Output Pin,I/O Pin),其中有6隻有ADC功能可作類比(Analog)輸入,而PWM功能可同時輸出三組。所謂PWM功能又稱作脈波寬度調變(Pulse Width Modulation, PWM),利用晶片內的計時器控制接腳在固定頻率時輸出不同時間的高電位,常用在亮度控制、直流馬達轉速控制或是伺服馬達控制,是一種利用數位輸出達到類比輸出效果的技術。

 

PWM在應用上很常見,使用上卻是要很注意,因為他是利用晶片內的計時器作為信號的開關,如果程式的設計有瑕疵就會讓PWM的信號輸出不準確,連帶使得控制發生問題。PWM還有另一個問題需注意,因為晶片內的計時器數量有限,因此往往會一個計時器要負責多條的PWM輸出,因此有時會無法完全產生正確的時脈到每一隻接腳。有時候為了要獲得準確的PWM控制,在硬體上會獨立使用晶片來控制,在單板電腦上有時只是為了方便而允許輸出多組PWM但上述問題必須在應用時審慎考慮。

 

電源電壓方面,Arduino由於有內建穩壓器,因此大多型號的工作電壓都很寬廣,多半可以允許7V~12V之間的輸入電壓。而mciro:bit電源要求比較單純,除了USB供電的5V以外就只能供給3.3V的電源電壓。在接腳輸出入的最高電壓方面,Arduino根據型號不同,使用的微處理器有3.3V或5V的差異,micro:bit的接腳就只有最高3.3V的輸出入。

 

在輸出入方面,Arduino的常見兩型號只有準備一個LED,而micro:bit為了讓板子預設就有顯示能力於是在板上預設安裝了5×5個LED,以及兩個按鍵作為輸入。

 

(microbit_block.jpg)

圖 3、micro:bit硬體方塊圖

 

(arduino_block.jpg)

圖 4、Arduino UNO或Leonardo硬體方塊圖

 

 

通訊能力的比較

單板電腦沒有鍵盤螢幕等輸出入裝置,因此單板電腦對外界的通訊能力十分重要,一般來說都具備有線的通訊能力,例如非同步傳輸(UART)或是無線化的通訊協定。早先Arduino如果需要無線通訊能力例如藍牙或是WiFi,必須另外連接模組。micro:bit在開發之時,剛好遇到藍牙技術第四代BLE 發展成熟,因此特別找到整合BLE控制器的微處理器作為核心,此為一大特點。

 

 

軟體的比較

Arduino在剛推出時只有一種程式寫法:Arduino IDE,程式語言採用C/C++語法,並且透過編譯器與程式庫的搭配,讓使用者免去一般微控制器必須且複雜的初始化過程,讓程式開發者可以更專注在應用。經過十多年的發展,除了開發出大量的程式庫可供取用,現今的Arduino也有圖形式程式開發,能夠與Scratch程式介接,擴大了Arduino的可用性。

 

micro:bit吸取其他單板電腦的使用者體驗與新式的技術以及明確的教育用途,因此micro:bit一推出就採用圖形式程式語言為主要的開發語言,一種以Google Blockly為基礎的拼圖式程式,而本身因為ARM的晶片設計關係而保有產業常用的文字型程式語言開發選項,比如一種名為Micro Python的精簡版Python程式語言。除了使用者友善的開發方式,兩者也依然保有原始的工程開發方式,也就是使用晶片原廠的開發工具,就Arduino來說可以使用Atmel Studio,而micro:bit就是使用ARM的Mbed開發方式。

 

使用方法的比較

(g6622.jpg)

圖 5、Arduino常見的麵包板應用接線方式(左),micro:bit典型的鱷魚夾接線方式(右)

 

Arduino在硬體的應用上大多使用連接線從連接器連接到外部感測器或是其他電路板。micro:bit可以用鱷魚夾直接連接,如果要使用更多的信號接腳則是要用特定的擴充板。

Arduino由於連接器形式的緣故,只能用公頭的連接線或是排針來連接,但由於使用Arduino的場合大多是創意發想階段,實驗性的電路大多是在麵包板上面實現,此種連接方法對於麵包板的對接有其方便性(圖 5左)。

 

micro:bit的使用對象規劃為小學中高年級以上的小朋友使用,操作上無法使用太精細的連接線,所以為了讓年紀比較小的使用者能夠快速連接其接腳,因此設計五個4mm直徑的大孔,方便讓鱷魚夾夾取與連接(圖 5右)。micro:bit除了五大連接孔以外也保有其它以1.27mm間距的金手指連接方式,這一連接方式必須使用特定的連接器才能使用,坊間有許多針對micro:bit設計的擴充板能將其它接腳擴展出來應用。

 

模組的連接

Arduino的周邊商品中,有一些會將常用的功能零件集中在一塊板子上,例如網路連接的擴充、WiFi或藍牙的擴充等等,在使用上只要直接安插於Arduino的上方,將接腳直插入Arduino的連接器中就可以使用。更多的時候是將單個感測器以模組化的方式安裝於小板子上,再以連接線連接到Arduino來使用,。

micro:bit出現之後便承襲了Arduino所累積出來數量眾多的模組可供連接,原本以為是美事一樁,但由於micro:bit在連接器的設計上採用了罕見的設計,造成在與這些模組連接時還需要一塊擴充板作為micro:bit與模組間的橋樑,真所謂魚與熊掌不可兼得。

 

表 2、Arduino與micro:bit的電源來源


電源的選擇

在設計專題的時候,電源的選擇是個重要的議題。如果專題是桌上型裝置,電源的設計可以用自帶穩壓的變壓器(Adapter),但如果專題是攜帶式裝置則需要多一些考量,如果是一般儀器可能功耗不大,使用一般乾電池搭配線性穩壓的電路就可以,但如果是自走車之類有馬達的專題,那就需要鋰電池搭配交換式電源(Switching Power)供應模組。

 

板子的電源來源:Arduino的板子電源設計大多有內建穩壓電路,因此可以接受的電源來源比較多,例如行動電源的5V或是鋰電池串連之後的7~12V。但micro:bit在電源設計上比較精簡,板子的供電只能是3.3V(表 2),如果周邊有更高電壓的需求,例如伺服馬達或是直流馬達等周邊,則需要另外連接驅動電路板並連接額外的電源,如此一來將造成使用上的不便。

 

坊間目前有針對micro:bit電源單一化設計的擴充板,讓專題的設計只需要連接一組外部模組使用的高電壓(5~12V)然後擴充板上面有穩壓電路產生micro:bit所需的3.3V,再透過連接器的3V連接腳輸入電源。

 

模組的電源來源:不管是Arduino或是micro:bit,兩者的外部模組所需要的電源最好是另外給予,然後板子的GND腳與模組的GND腳要接在一起,尤其是馬達類等耗電大的模組,不要從板子上的電源腳接取,以免造成板子上的穩壓電路負荷過大燒毀,這是一般常見的問題。

 

用途的比較

Arduino的出現是為了解決跨領域應用的專業問題,讓非工程背景的使用者也能快速應用科技的工具,而micro:bit的出現是為了增加科技教育的豐富度,兩者的設計思考並不相同所以並沒有相互取代的關係。Arudino受限於當年的技術而其簡化的程度有限,而micro:bit一開始就明確定義使用者的面向是在於中小學的科技教育,因此當技術背景到達一定程度時,它就橫空出世並且相當程度簡化了軟體及硬體的複雜度。

 

 

大海/資深工程師

十年研發工程師經驗,專長類比與數位線路設計、感測器線路設計、嵌入式系統軟硬體開發、醫療產品研發、醫療產品認證。 現任《FunSTEAM玩轉教育》主編、《Make》雜誌國際中文版《Circuit Cellar嵌入式系統》雜誌技術編輯、泰電電業MakerCamp專任講師。

 

 

 

文章來源:iPOE科技誌( http://ipoe.cc/)授權刊登