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

面向低端、初级的硬件爱好者,以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. JavaScript 对象 之继承对象 学习笔记

    假设,我们有个这样的需求: 两个种族,每个种族都有 名字.血量(默认200).行为(行为有 跳跃.移动速度 这些属性)等共有属性. 人族能量值比兽人多10%,兽人血量比人族多10%. 职业有战士和法师 ...

  2. Hadoop HDFS编程 API入门系列之从本地上传文件到HDFS(一)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs5; import java.io.IOException; import ja ...

  3. Deep Learning(深度学习)学习笔记整理

    申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...

  4. 解决多网卡SNMP获取不到数据的问题

    前言 前几天,公司的某个平台突然访问不了,我以为是网站挂了,于是想连接服务器查看,谁知道连服务器都连不上,然后我尝试PING,结果一直PING不通,此时我有点慌了,但我的头脑还是保持清醒的,我马上连接 ...

  5. PowerDesigner15中定义varbinary(max)列

    PowerDesigner15 概念数据模型(Entity)中要定义数据类型为varbinary(max)的特性(Attribute),应将数据类型(Data Type)选择为other,在代码(Co ...

  6. html a tag's href javascript issue

    a标签的href中写js中遇到的问题(ie中有问题,chrome没问题) <a class="free" href="javascript:{$('#suiteTy ...

  7. newCachedThreadPool线程池

    public static ExecutorService newCachedThreadPool()创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们.对于执行很多短期异步任 ...

  8. htmL5 html5Validate

    http://www.zhangxinxu.com/wordpress/2012/12/jquery-html5validate-html5-form-validate-plugin/

  9. 解决方法:An error occurred on the server when processing the URL. Please contact the system administrator

    在WINDOWS7或SERVER2008上安装了IIS7.5,调试ASP程序时出现以下错误: An error occurred on the server when processing the U ...

  10. Swift3.0基础语法学习<四>

    协议和扩展: // // ViewController4.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...