经过一个轮回,硬件开发、硬件创业又被推到了历史的前台。
面向低端、初级的硬件爱好者,以Arduino和81单片开发板为核心的开源硬件越来越深入人心,参与的人群越来越多,相关硬件和周边模块也越来越便宜。另外随着各个创客空间的创立,给爱好者即提供了硬件模块,也提供了参与空间和交流平台。不过爱好者也越来越低龄化,参与其中的初高中学生也越来越多,不管怎样,这也算是一种时代的进步。
面向高端、复杂的硬件设计和开发,一般都是面向公司或资深硬件从业者。一部分是以裸机开发为主,Main函数+While循环+各种中断+各种基础库实现各种功能。另外一部分偏于复杂和高端的硬件应用往往基于操作系统了,相对简单的就是uCOS-II、FreeRTOS,复杂的VxWorks、uClinux,大型一些的就是Linux、WinCE和安卓等系统了。
其实无论是爱好者还是硬件从业者,其最终目的不过是希望快速完成心目中的一个产品而已。当制作者心目中想象的产品越来越复杂,其相关的代码越来越多,其硬件平台的限制便越来越凸显了。硬件本身的运算能力,接口数量,扩展能力;以及开发工具的代码编写、开发、调试,管理能力就是一道藩篱。能否突破,或者说能否持续非常关键。
之所以选择.NET技术构建智能主控,就是考虑开发要简单,要快速,并且可扩展性和可持续性要好,要有跨平台的能力,并且代码开发、维护、调试工具要非常强大。
.NET技术可以用一致的开发语言(C#/VB.net等),一致的开发工具(VisualStudio 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系统,并在此基础上扩展了很多实用功能,比如MDKC++用户驱动开发(流式驱动模型)、多路I2C通信、TinyGUI等。
为什么开发NetDIY智能主控?
基于.NET MicroFramework硬件平台已经有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