Arduino在業餘開發者與電子設計愛好者的圈子裡廣受歡迎,但在專業嵌入式系統開發工程師的眼中似乎是聲名狼藉──筆者自己必須坦承,有很長一段時間我認為Arduino太簡單、對專業工程師來說近乎無用;但現在我已經改變看法。

過去幾年來,我在不少場合上發現利用Arduino與Arduino擴充板(shield)快速打造的原型,已被證明在推進設計專案上的價值難以估計;儘管──或者就是因為──它非常簡單,卻扮演了將抽象化想法轉為經定義之產品的關鍵。為了這個理由,讓我們更靠近一點看Arduino,以及專業開發工程師如何能從它獲得好處。

Arduino硬體平台

對專業開發工程師來說,Arduino最強大的一個方面是支援它的硬體生態系統;每款Arduino開發板以及衍生產品都有標準硬體介面,能讓客製化設計電子元件堆疊在處理器電路板之上,以充實正在開發的嵌入式系統原型。

那些客製化電子元件電路板就被稱為擴充板,應該大多數開發者都知道,如其名稱能在該種電路板添加各種電子裝置如馬達驅動器、感測器、致動器、LED或任何應用所需的元件。Arduino在業餘開發者社群的高人氣,也對專業嵌入式系統工程師有利,因為幾乎你想像得到的各種應用,都有不同現成的Arduino擴充板可以取得。

我個人最喜歡的擴充板之一是Sparkfun推出的天氣感測擴充板;這款擴充板提供一系列的類比與數位感測器,非常適合嵌入式系統開發教學課程。總之如果你有特殊需求,快速搜尋幾乎所有電子零件供應商的網站,就可以找到一大堆各式各樣的Arduino擴充板,而且價格不貴,根據上面的感測器與電子元件多寡,幾乎都是50美元有找。

專業開發工程師也能利用Arduino硬體平台與感興趣的商用設備介接;採用現成的CAN、SPI、RS-485、乙太網路以及其他設備介面擴充板,可以快速進行概念驗證原型製作,或是一次性的客戶展示;只要花費幾百美元,開發工程師就能輕易地組裝出一個嵌入式系統提案的完整的完整硬體呈現,而且只要撰寫一些「dirty code」就能讓它運作。

Arduino硬體介面在過去幾年有些微改變,其最新版本是以UNO R3腳位配置(pinout)為基礎,其標準介面包含6個類比輸入、14個數位輸入/輸出、專屬I2C通道以及各種各樣的電源軌,和其他參考連接埠;圖1是UNO R3腳位配置的範例。

20160706NT01P1
圖1 Arduino Uno R3標準腳位。



Arduino擴充板介面是為低成本、低接腳數微控制器設計的,不過專業嵌入式系統開發工程師有可能會需要更多;為此各家微控制器供應商已經嘗試解決這個問題,紛紛為他們更強大的處理器打造了腳位與Arduino擴充板相同的開發板。

開發者可以為那些功能強化的開發板打造擴充板,或者是採購與開發板相容的現成Arduino擴充板。

Arduino軟體平台

Arduino不只是硬體,它具備完整軟硬體的原型製作系統;其軟體開發環境以及程式庫雖然以專業開發工程師的觀點來說有許多待改進之處,但對於Arduino如何處理軟體開發仍能取得實用的基本理解。

首先,開發工程師檢視Arduino官網(arduino.cc)時,可能會發現在軟體的討論上有一些很奇怪的語言;因為Arduino為普羅大眾發明了一種稱為「畫草圖(sketching)」的概念,也就是專業工程師說的「寫程式」。所謂的畫草圖就是軟體開發專案,但Arduino發展出這個術語,是來自於它原本就是為藝術家等非軟體或電子專業人員開發的原型製作工具。

接下來,即將使用Arduino的開發者會發現,得用Arduino編程語言來為Arduino裝置寫程式。這種語言與C/C++差不多,但實際上所指的只是為微控制器週邊控制,提供一致性的API程式庫總集。

對專業開發工程師來說,Arduino程式庫能為速成原型提供快速的追蹤;還有針對內部微控制器週邊控制,以及外部元件如EEPROM、馬達控制器控制的不同程式庫功能。開發工程師能選擇使用這些程式庫,或是自己撰寫程式。

Arduino軟體是開放原始碼並能使用於各種用途,但開發工程師或是公司主管需要銘記於心,這種軟體是為原型製作的目的所開發,其程式碼的撰寫並非為了容錯、安全性或使用於任何量產意圖環境。開發工程師仍需要經歷整個生產流程,才能讓產品上市;但Arduino至少能用來早期證明系統是可以運作,而不是花費數個月的時間卻遭遇失敗。