經過一個輪回,硬件開發、硬件創業又被推到了歷史的前台。
面向低端、初級的硬件愛好者,以Arduino和81單片開發板為核心的開源硬件越來越深入人心,參與的人群越來越多,相關硬件和周邊模塊也越來越便宜。另外隨着各個創客空間的創立,給愛好者即提供了硬件模塊,也提供了參與空間和交流平台。不過愛好者也越來越低齡化,參與其中的初高中學生也越來越多,不管怎樣,這也算是一種時代的進步。
面向高端、復雜的硬件設計和開發,一般都是面向公司或資深硬件從業者。一部分是以裸機開發為主,Main函數+While循環+各種中斷+各種基礎庫實現各種功能。另外一部分偏於復雜和高端的硬件應用往往基於操作系統了,相對簡單的就是uCOS-II、FreeRTOS,復雜的VxWorks、uClinux,大型一些的就是Linux、WinCE和安卓等系統了。
其實無論是愛好者還是硬件從業者,其最終目的不過是希望快速完成心目中的一個產品而已。當制作者心目中想象的產品越來越復雜,其相關的代碼越來越多,其硬件平台的限制便越來越凸顯了。硬件本身的運算能力,接口數量,擴展能力;以及開發工具的代碼編寫、開發、調試,管理能力就是一道藩籬。能否突破,或者說能否持續非常關鍵。
之所以選擇.NET技術構建智能主控,就是考慮開發要簡單,要快速,並且可擴展性和可持續性要好,要有跨平台的能力,並且代碼開發、維護、調試工具要非常強大。
.NET技術可以用一致的開發語言(C#/VB.net等),一致的開發工具(Visual Studio 2010/2012),開發從嵌入式單片硬件、手機、平板、游戲機,Web、雲計算平台上的代碼。其最大的好處,就是少了新語言學習和平台切換的代價。
NetDIY智能主控是什么?
所謂的NetDIY智能主控,其硬件主板尺寸不超過四個兩兩並列的1元硬幣的大小。采用Cortex-M4為核心的芯片,主頻168M,片內Flash 1M byte,片內RAM 192K byte。對外引出的功能接口有:
A、1路USB
B、3路I2C
C、3路SPI
D、24路PWM(含3路軟PWM)
E、2路 DA(可以播放WAV語音)
F、12路 AD(12位精度)
G、6路TTL串口
H、31路GPIO
I、1個用戶按鈕,1個用戶LED
J、1個復位按鈕,1個電源LED
K、集成如下三個傳感器
MPU6050 三軸數字陀螺儀+三軸數字加速度傳感器(自動穩定用)
BMP085 數字氣壓傳感器(鎖定高度用)
HMC5883L 三軸數字磁阻傳感器(電子羅盤,鎖定航向用)
注:尺寸單位為毫米。
其軟件平台基於開源的.NET Micro Framework系統,並在此基礎上擴展了很多實用功能,比如MDK C++用戶驅動開發(流式驅動模型)、多路I2C通信、TinyGUI等。
為什么開發NetDIY智能主控?
基於.NET Micro Framework硬件平台已經有SideShow、MsnDirect、Netduino和.NET Gadgeteer平台了。為什么還要推出NetDIY?
SideShow和MsnDirect是早期的系統,目前就不必多說了。Netduino外形完全仿照Arduino,對外接口有限,要開發一個比較復雜的智能設備,需要外擴很多模塊。.NET Gadgeteer平台更是需要各種模塊的堆疊。另外問題相對嚴重的是,如果是開發一些比較實時的功能,僅靠C#是很難實現的。
NetDIY智能主控對外引出31個PIN腳(n種功能),支持USB調試開發,無需擴展接口模塊,可直接作為智能設備的大腦,控制周邊模塊。支持C++用戶驅動開發,滿足實時+易用的開發需求。
NetDIY智能主控的架構模型是什么?
大腦的作用: 整合信息,處理信息,發出指令。
用戶代碼(C#): 采集信息,邏輯控制,接收命令,傳達命令。
小腦的作用: 維持姿勢平衡,調節肌緊張,協調身體運動。
用戶驅動(C/C++):采集MPU6050/ BMP085/ HMC5883L芯片信息,發出控制指令,維持設備平衡(對自平衡智能車,四翼機,人形機器人來說,這個功能很重要)。
腦干的作用: 維持個體生命,包括心跳、呼吸、消化、體溫、睡眠等重要生理功能
TinyCLR: .NET MF核心,維系Net運行時的正常運行,負責解析用戶代碼,為用戶代碼提供各種功能支持。
脊髓的作用: 控制肌體,傳遞大腦命令,反射。
功能接口: 連接各種功能模塊,傳遞控制指令,收集傳感器反饋信息。
NetDIY智能主控能做什么?
NetDIY智能主控的定位非常明確,也是專為具體的項目而設計的。其主要項目為:智能車(可以是自平衡車),四翼飛行器,人形機器人,智能家居等。
自平衡小車:NetDIY自帶平衡芯片,支持多路PWM,可以直接控制相關電機驅動模塊。
四翼飛行器:I2C或PWM接口驅動電調,控制機翼旋轉,根據傳感器芯片調節自身平衡。外接470M無線模塊,支持遠程調控。多路PWM可以控制舵機,調整攝像頭(樹莓派+攝像頭)位置。串口通信,可以控制樹莓派何時拍照和錄制視頻。串口外接GPS模塊,支持一鍵返航。
人形機器人:人形機器人一般有17或21個自由度(也就是17或21個舵機),NetDIY有24路PWM,可以直接驅動舵機(可以直接插入NetDIY的PWM專有接口)。直接支持Sony PS2遙控模塊,方便遠程操控。多個串口,多個SPI、對個I2C接口,可以外掛其他傳感器模塊。
智能家居:對門禁系統來說,可同時支持8路WG26的刷卡器。對控制和采集來說,31路GPIO,多路通信接口,可以采集各種信息,和控制各種設備。
注:以上不僅僅是設備本身的控制,還會通過藍牙,wifi或GPRS模塊和安卓、Windows Phone手機進行通信控制。另外還支持Web Server,遠程傳遞相關信息。
如何參與NetDIY智能主控能開發計划?
NetDIY開發計划,其實是學習計划,是通過具體的項目,可以對物聯網,對嵌入式式設備有更深地了解。可以把相關的技術用在實際的項目當中去。
目前NetDIY計划之四翼機已經初步啟動, 相關內容,可以看討論帖。
《四翼機任務、分工及參與說明》
http://www.yfiot.net/forum.php?mod=viewthread&tid=1963&extra=page%3D1
《NetDIY主板設計》
http://www.yfiot.net/forum.php?mod=viewthread&tid=1961&extra=page%3D1