|

Arduino演化歷程圖的5個意涵

   

文章導覽

作者:陸向陽
 

有關Arduino的演化歷程圖,筆者過去有稍微看一下,但只是把圖檔留存,等有時間再仔細看,而昨天仔細看一遍的結果,雖然歷程圖已經有所簡化,跳過一些過渡性的開發板不談,圖中也依然超過30片開發板。

若按照演進路線的箭頭逐一閱讀,還是會覺得眼花撩亂、缺乏頭緒,到底整張圖要跟大家交代什麼?這個演進歷程有什麼意義?那個演進歷程有什麼意義?筆者仔細思索了一下,此圖大致可分成5種面向的意涵,以下逐一說明:

1.應用開發意涵

Arduino開發板的改變有時是為了某種應用目的,例如Diecimila/Duemilanove/Uno這個路線,主要是提供一個大宗平價化的開發板,供學習之用。又如2008年、2009年的Nano主要是方便插置於麵包板,適合各種實驗、試做;或者LilyPad/LilyPad Simple/LilyPad Simple Snap路線的演化是為了穿戴式應用;另外,Fio是專門設計用來以電池供電、無線相關的應用,Pro則是用於半永久性裝設的應用。

2.程式開發意涵

程式開發意涵牽涉到開發板的記憶體多寡與運算效能的強弱,主要是觀看圖右側寫的ATmega8、ATmega168等字樣,這是指Arduino開發板使用的主控晶片、微控制器晶片的型號。

2005年~2008年間的Arduino開發板多使用ATmega8系列晶片,程式記憶體(Flash)只有8KB,系統記憶體(SRAM)只有0.5KB,但2006年~2008年已有開發板改行ATmega168,程式記憶體與系統記憶體均倍增(16KB、1KB)。而後2008年起開始使用ATmega328,兩種記憶體再次倍增(32KB、2KB)。

而後又有新的開發板使用ATmega32u4、ATmega1280、ATmega2560等晶片,32u4再略增系統記憶體,自2KB增至2.5KB。1280增至128KB、8KB,2560增至256KB、8KB。如Mega開發板即使用ATmega1280開發板,Mega2560開發板即使用ATmega2560。

以上大體為記憶體容量的提升,使程式開發者可以寫更長的程式,而不會被記憶體容量給限縮,但另一個重點是運算效能,ATmega8與ATmega168只有8MHz運作時脈,執行起來比較慢。ATmega328開始有的仍是8MHz,有的已經提升到16MHz,執行起來倍增效能,至於32u4、1280、2560一律是16MHz。

更重要的是,上述均為8位元運算,2012年Due推出後,首次進入32位元運算(ARM Cortex-M3架構,不再是Atmel AVR架構),程式記憶體增至512KB,系統記憶體也增至96KB,時脈增至84MHz,讓程式開發更寬裕、執行更快速。

3.通訊功能意涵

撇開將開發程式載入到開發板上的UART管道不算,以及用於控制應用的I2C介面不算,Arduino基本上沒什麼通訊功能,但通訊應用在後續演進過程中逐漸被重視,2007年提出的Arduino BT(Bluetooth)開發板即加入藍牙功能,之後在2011年再改版,同年也推出Arduino Ethernet開發板,加入乙太網路功能。2013年Arduino Yún(取自漢字:雲)開發板登場,加入Wi-Fi功能。

Arduino Yun提供Wi-Fi功能,定位在IoT應用。

4.電子工程意涵

電子工程意涵是對開發板的各種硬體細節精進提升,並沒有特定的精進提升路線,而是能讓整體更良善就加以改善。例如2006年Arduino Extreme開發板加入接腳孔,以方便用杜邦線連接做實驗,同時加入UART收發狀態LED燈號,在傳輸程式或串列埠有輸出入反應時會閃爍亮燈。另外Arduino NG(Nuova Generazione)加入現在最耳熟能詳的pin-13腳位的LED燈號。

進入ATmega168晶片後,主控晶片也不再使用很古老的DIP穿孔接腳封裝,開始有TQFP、VQFN的表面黏著封裝,這時才容易發展出小型化的開發板,如LilyPad、Nano等。

而在進入ATmega32u4晶片後,Arduino開發板上也不用再額外配置一顆UART轉USB的轉換晶片,因為32u4內建USB控制器電路,如此可使電路板再小一點。

5.風雲浪漫意涵

蘋果喜歡講自己產品的開發故事,用風雲浪漫傳奇來增強產品行銷,而Arduino自有一套演進歷史,自然也有些風雲浪漫傳奇素材,但這些演進與改變,對一般人的開發不具意涵,但卻可以提提。

例如2005年第一片Arduino開發板Arduino Serial仍是使用UART轉RS-232的方式來連接電腦,但2005年已經少有電腦具備9-pin、25-pin的Serial COM埠了,多是使用USB埠,言下之意不方便且落伍。

在Serial之後是一片手工製做(Home-Etched)印刷電路板的Arduino開發板,而且所有電路都只用單層板就完成(Single-Sided Serial),顯示很簡陋、草根,較具水準的電路板多採機械化生產,且為四層板,而非手工洗焊,即便採手工製做,很多也是雙層板,仍比單層板先進些。草根作法之後有精進版本,即Severino,但手工法實現的開發板也到此為止。

還有Arduino USB開發板,是第一片在背面寫有Arduino字樣的開發板;第一片採行ATmega168晶片的開發板為Arduino NG+;第一片採行表面黏著主控晶片的開發板是Arduini Mini,而後有精進的Arduino Pro Mini;第一片使用32u4晶片的開發板為Arduino Leonardo,而後產生小型化版本的Arduino Micro。

最後有兩個,原本期望有產業提升意涵、應用變革意涵的,但卻未能如願,所以被筆者歸入風雲浪漫意涵,一是Leonardo因首次內建USB控制器電路,因此允許將整片開發板模擬成USB滑鼠、鍵盤,期望擴增新應用,但至今不多人如此用。

另一是2011年5月Google在其技術年會Google I/O上宣佈推動Android手機配件計畫,鼓勵協力廠商(Third Party)以Arduino為基礎開發各種能與Android手機搭配的電子週邊配件,以進一步強化Android技術生態圈,為此Google提出配件開發套件(Accessory Development Kit, ADK)。

Google I/O年會上的ADK開發示範是打造一台健身車,健身車裝上Android手機後開始用腳踏,Android手機就會顯示里程、速度、消耗熱量等資訊,換言之健身車即是Android手機的一個電子配件,健身車內的電子設計即是用Arduino開發板來實現,並用Arduino IDE來撰寫健身車內部控制程式。

Google I/O年會推出Arduino ADK開發環境。

Arduino社群為了配合此一發展,以Mega2560開發板衍生發展出Arduino ADK開發板,但結果ADK配件推動計劃成效不如預期,現在已少有人提。

小結

至此,筆者說明完整張演進歷程圖的每片開發板了,但在演進歷程圖外還有兩個值得關注的,一是Arduino Zero/Zero Pro,另一是Arduino Tian(取自漢字:天),前者是Arduino Due的降規降價版,但依然是32位元的主控晶片,對程式開發者具有意涵,可用更便宜的價格入門32位元的Arduino運算。

後者可視為Arduino Yún的延續,將原有Yún所具備的Wi-Fi收發器晶片(等於一顆微處理器,並執行OpenWrt此一嵌入型Linux)規格升級,並加入藍牙功能,等於將Arduino BT、Arduino Yún兩片開發板的後續發展路線統整為一,若干收斂發展軸線的紊亂。

不過,Zero/Zero Pro與Tian的推行,已涉及Arduino社群的分家,這已是另一個故事,詳情可見《Arduino戰爭:公司分裂與新產品發布》(2015年3月5日)。

陸向陽
陸向陽

Author: 陸向陽

從電子科系畢業後,即以媒體人的角色繼續這段與「電子科技」的不解之緣。歷任電子技術專書作者、電子媒體記者、分析師等角色,並持續寫作不殆。近來投入Arduino、Raspberry Pi等開放硬體的研究與教程介紹。

Share This Post On

Submit a Comment

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