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


     說起.NET Gadgeteer,不得不先說一下.NET Micro Framework,雖然.NET Micro Framework已經有十幾年的發展歷史了,但是在全球范圍內,.NET Micro Framework的知名度,遠遠低於它的近親.NET Framework和.NET Compact Framework,其原因值得探究。

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

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

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

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

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

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

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

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

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

 

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

http://www.yfiot.net/forum.php?mod=viewthread&tid=1977&extra=page%3D1

以前的一篇博客文章《Microsoft .NET Gadgeteer 簡介及其它

NetDIY智能主控(簡介:http://blog.csdn.net/yfiot/article/details/18970109)硬件簡單擴展以后也可以變身成為.NET Gadgeteer主板。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM