经过一个轮回,硬件开发、硬件创业又被推到了历史的前台。

面向低端、初级的硬件爱好者,以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

【NetDIY智能主控】开发计划的更多相关文章

  1. 【开源】OSharp3.3框架解说系列:开发计划与进度

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  2. 使用C#开发计划任务调度服务

    在系统运维中常常需要定期去跑一些计划任务,比如扫描服务器监控其性能.检查SQL Server作业是否正常.监控MQ队列是否存在堵塞现象等.如果使用Windows计划任务调度,一来管理起来就比较松散,二 ...

  3. Fragment开发计划

    Fragment是什么 Fragment正如字面意思所言是碎片,所以这是一个管理碎片时间的应用程序.目前考虑的是先在Android上实现,如果IOS的合作伙伴靠谱可以交给他做,如果不靠谱就等Andro ...

  4. 引擎设计跟踪(九.14.2h) 开发计划

    以后的开发计划: 完善game runtime code, 跑简单的demo目前只有编辑器的运行流程, 没有游戏/demo流程, 图形的测试主要在编辑器上测试, 现在需要测试android系统的图形, ...

  5. 智能合约开发环境搭建及Hello World合约

    如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. 就先学习任何编程语言一样,入门的第一个程序都是Hello World.今天我们来一步一步从搭建以太坊智能合约 ...

  6. 智能合约开发solidity编程语言开发一个以太坊应用区块链投票实例

    智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合 ...

  7. NEO智能合约开发(二)再续不可能的任务

      NEO智能合约开发中,应用合约比较简单,是的你没看错,应用合约比较简单. 应用合约三部曲,发布.调用.看结果.除了看结果工具比较缺乏,发布调用neogui最起码可以支撑你测试.   鉴权合约比较麻 ...

  8. EOS智能合约开发(四):智能合约部署及调试(附编程示例)

    EOS智能合约开发(一):EOS环境搭建和创建节点 EOS智能合约开发(二):EOS创建和管理钱包 EOS智能合约开发(三):EOS创建和管理账号 部署智能合约的示例代码如下: $ cleos set ...

  9. EOS智能合约开发(三):EOS创建和管理账号

    没有看前面文章的小伙伴可以看一下 EOS智能合约开发(一):EOS环境搭建和启动节点 EOS智能合约开发(二):EOS创建和管理钱包 创建好钱包.密钥之后,接下来你就可以创建账号了,账号是什么?账号保 ...

随机推荐

  1. Intellij IDEA 导入Eclipse或MyEclipse的Web项目

    1.通过TortoiseSVN客户端将远程项目checkout出来,保存到硬盘上 2.File -> Import Module -> 选择之前检出的项目 3.进入"Import ...

  2. linux tr命令详解

    通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复 ...

  3. Hibernate框架概念

    1.Hibernate是ORM框架,完成对象的持久化操作. 2.允许开发者采用面向对象的方式来操作数据库. 3.安装Hibernate的插件到Eclipse中来自动生成配置文件. 4.Hibernat ...

  4. 易语言软件加VMProtect壳的正确方法

    VMP是一款很强大的加密壳,代码虚拟化技术可以很好的保护程序不被恶意修改破J但是很多人不知道怎么给自己的程序加壳,今天给大家晋级下加壳的正确方法 相信很多新手都以为只要把软件直接拖到VMP里重新编译一 ...

  5. linux C学习笔记01--makefile

    不知不觉毕业五年了,以前学的linux基本都忘了,重新温习起来吧! 下面是自己写的makefile文件,供新手和自己回头时查阅 CC=gcc EXE=c.out CCC=g++ EEE=cc.out ...

  6. Xcode 字体 设置-- Xcode family没有显示的字体

    前往文件夹 -> /Users/user/Library/Developer/Xcode/UserData/FontAndColorThemes/  (user改为自己的用户名) -----如果 ...

  7. C++ dll调用

    HINSTANCE PH=LoadLibrary(_T("APlayerCaller.dll")); HWND hwnd = AfxGetMainWnd()->m_hWnd; ...

  8. Android菜鸟成长记2-内部类

    Java内部类 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同.       内部类可以是静态static的,也可用public,default,protected和private修 ...

  9. word 批量删除书签

    打开word    按住alt+F11 进入vba 界面 Sub test() Dim MyBk As Bookmark For Each MyBk In ActiveDocument.Bookmar ...

  10. gdb调式

    1.PCB版的相应目录下执行命令: gdbserver 10.18.13.84:5555 DvdPlayer 2.linux操作系统执行:(如果是android找到android项目路径下的gdb)m ...