天天看點

面向對象開發方式的開源硬體--.NET Gadgeteer

說起.NET Gadgeteer,不得不先說一下.NETMicro Framework,雖然.NET MicroFramework已經有十幾年的發展曆史了,但是在全球範圍内,.NETMicro Framework的知名度,遠遠低于它的近親.NET Framework和.NETCompact Framework,其原因值得探究。

.NET Micro Framework僅從名字上了解,就是一個架構,和.NETFramework還有.NET Compact Framework應該沒有什麼大的不同,但是.NETMicro Framework有自己的特色,就是自啟動功能,也就是不需要作業系統也能運作。這個特色将.NETMicro Framework逐漸演化為一個作業系統的角色。恰是這一點,在.NETMicro Framework早期發展過程中,越來越顯得沒有優勢和特色。

早期的.NET Micro Framework并沒有直接對第三方開放,而是作為微軟.NET全戰略的一環,以.NETMicro Framework為基礎,推出一系列産品。目前比較火熱的可穿戴裝置,比如智能手表。其實.NETMicro Framework為核心的第一代産品就是智能手表,早在2003年的拉斯維加斯的Comdex貿易展上,比爾蓋茨就曾親自戴着智能手表進行過推廣。這項以.NETMicro Framework為核心發展起來的技術叫MSN Direct,除了手表産品外,還有可以預報天氣的咖啡壺,GPS導航器等産品。

以.NET MicroFramework為核心的第二代産品是SideShow,曾以筆記本的第二屏、智能遙控器和智能鍵盤的面目出現,華碩、三星的筆記本就包含這樣的SideShow顯示屏。

但是無論是MSN Direct,還是SideShow,其産品并不成功,這和微軟早期強制推廣.NET戰略相關的,因為基于.NET技術開發此類産品,雖然開發比較快,但是對硬體資源需求比較高,其.NET托管代碼相比原生C++代碼,速度要慢許多。是以此類産品一旦批量生産,成本效益肯定比較低。最初微軟也打算全部用.NETC#語言開發作業系統(比如Longhorn系統),後來事實證明這種做法是行不通的。

2009年起始微軟開始調整.NETMicro Framework發展戰略,首先以Apache2.0 license的授權方式完全開源.NET MicroFramework,并基于.NETMicro Framework推出第三代産品Netduino,微軟這個思路其實是仿照Arduino産品而做的,從産品命名還有實際硬體接口上,都是學習Arduino。我個人認為這個思路是對的,至少充分發揮了.NETMicro Framework優勢,小巧,開發迅速,并且采用強大的Visual Studio進行程式開發和線上調試,讓所有的.NET程式員很容易進入到嵌入式領域進行相關開發,這不得不說在軟硬體開發結合越來越緊密的時代,對.NET程式員是一個福音。

而其後推出的基于.NET MicroFramework技術的.NET Gadgeteer産品更是充分發揮了.NETMicro Framework優勢,在Netduino産品的基礎上,更上一層樓,青出于藍而勝于藍,完全演化成具有微軟自己特色的産品。特别是微軟定義的20種.NET Gadgeteer接口類型,應該是微軟為工控領域制訂OPC技術标準以來,最重要的一個接口标準。

更具特色的是硬體拖拉可視化程式設計。在DOS時代我們開發一個界面程式,可以說是摸着石頭過河,邊寫代碼,邊運作測試,以确認相關界面的位置是否合适。Windows平台下最初的VisualBasic等可視化程式設計工具,讓我們的界面開發帶入一個新時代,每個功能子產品都被封裝為一個控件,通過可視化拖拉的方式,設計界面,讓我們的界面開發提升到一個新的水準。同理,我們以軟體界面開發的眼光審視目前的硬體開發,其實發現,開發模式仍處在DOS時代,每外接一個功能子產品,都需要我們的程式員匠心獨運,小心翼翼配置設定相關的Pin腳,并用心開發相關驅動,最終通過應用程式調用底層接口,進行資料互動。

而.NET Gadgeteer的開發環境,讓我們抛棄了這些瑣碎和繁雜的步驟,視每個外接子產品為一個控件,通過拖拉方式,讓核心主機闆和這些子產品相連,自動完成接口初始化、子產品初始化等工作。留給我們所做的,就是一些業務邏輯的實施和完善,這是硬體開發領域的面向對象程式設計,是一個具有裡程碑意義的硬體開發變革。

有了這些特色.NET Gadgeteer已經和Netduino、Arduino等相關DIY産品不同,跳出了僅僅是學習硬體,電子産品小制作的範疇。再結合目前的發展的如火如荼的3D列印技術,.NETGadgeteer已經成為快速制作最終産品最好的選擇(特别是小批量、個性化産品)。在物聯網發展迅猛的今天,.NETGadgeteer更是可以大顯身手,可以友善接入各種傳感器子產品,并把相關資料上傳到雲端。

【說明】以上内容摘自譯著《玩轉.NET Gadgeteer電子積木》上的譯者序,目前該書已經出版,詳情可以單擊下面的連結:

http://www.yfiot.net/forum.php?mod=viewthread&tid=1977&extra=page%3D1
面向對象開發方式的開源硬體--.NET Gadgeteer

以前的一篇部落格文章《Microsoft .NETGadgeteer 簡介及其它》

NetDIY智能主要(簡介:

http://blog.csdn.net/yfiot/article/details/18970109

)硬體簡單擴充以後也可以變身成為.NETGadgeteer主機闆。

面向對象開發方式的開源硬體--.NET Gadgeteer
面向對象開發方式的開源硬體--.NET Gadgeteer

繼續閱讀