NEWTON 项目—— 智能家庭物联网控制完整解决方案
1. intel独家授权转载【intel开发人员专区】文章。2. 定期为创客小主po上最全最细最专业的intel项目教程或另类态度。
3. DF创客社区“创客召集令”带你玩转intel,更多惊喜,颠覆你想象。
原文链接
简介“智能家庭” 这一术语专门用于描述各种广泛的功能,这些功能支持用户通过智能手机、平板电脑和笔记本电脑控制和管理家庭设备,例如通过智能手机应用远程控制恒温器。 不过,许多人认为智能家庭存在两大主要劣势:没有统一的解决方案,缺乏实用性。 Newton 是英特尔的最新创新项目之一,能够有效缓解这些问题。https://dn-tracking.qbox.me/Newton.jpg问题“没有统一的解决方案”: 用户希望做出自己的选择。 他们希望购买智能设备,比如苹果、三星、腾讯或小米的电视、冰箱、空调。但制造商都各自开发了自己的智能家庭解决方案(例如,制造商们使用的通信协议各不相同)。 几乎无法形成标准化生态系统。“缺乏实用性”: 之前的智能家庭物联网控制解决方案包括: 语音控制:可能会受到背景噪音的影响;电话控制或其他远程控制器:便捷性不足,因为涉及到取电话、启动相关应用,搜索想要控制的物联网设备等;通过摄像头进行手势识别:依赖于光照条件和在房间内所站的位置/方向。Newton 项目Newton 旨在提供一款高级整体解决方案,以支持智能家庭物联网控制。
[*]连接所有智能家庭物联网设备
[*]不依赖手持设备
[*]低成本
[*]不受制于环境、光照强度、噪音水平或用户的方向
我们开发了一款可用于智能家庭物联网控制的高级整体解决方案 — Newton 项目。 该系统包含所有主要平台(英特尔® 酷睿™ 处理器、英特尔® Centrino* 处理器技术、英特尔® 凌动™ 处理器、ARM* 移动平台)和所有物联网平台(英特尔® Edison 开发板、英特尔® Galileo 开发板、Raspberry*、Spark*、Mbed*、Freescale*、Arduino Uno* 等)之间的连接。 因此,Newton 项目能够实时连接运行于所有当前主流操作系统(Windows*、Linux*、Android*)和 NonUI-OS(Mbed*、Contiki*、RIOT*、Spark*、OpenWRT*、Yocto*、WindRiver*、VxWorks*、Raspbian* 等)的平台。智能家庭厂商通常定义一套应用层通信协议,但这些协议相对比较封闭。 我们在 Newton 项目中使用 CoAP(受限应用协议),该软件协议旨在支持简易的电子设备通过互联网进行交互式通信。 CoAP 协议基于 RESTful 框架,可转化为 HTTP 协议以轻松构建智能网关。 Newton 项目中 CoAP 协议的基本设计过程如下所示。https://software.intel.com/sites/default/files/managed/4f/85/CoAP-design-of-project-newton.png
Newton 项目的 CoAP 设计为将该创意支持的所有操作系统进行分类,英特尔® Galileo 开发板、英特尔® Edison 开发板、UNO、和 Spark 开发板均支持 Arduino 编程标准。 通用物联网 LPC1768 开发板支持 Mbed 和 RIOT 操作系统。 Mbed 是面向联网设备(基于 ARM)的平台和操作系统,有利于通过调用相应对象轻松地运行硬件资源。 RIOT 是能够支持多线程和多种不同开发板的开源操作系统。 它的程序可由标准 C 语言编写而成。 LPC1768 芯片需使用外部 Wi-Fi* 模块进行通信。 Windows、Linux 和 Android 也可轻松适应 CoAP。 Newton 项目的软件架构如下所示。https://software.intel.com/sites/default/files/managed/c9/4d/software-architecture-of-project-newton.png
Newton 项目的软件架构实施 Newton 项目的操作系统连接
[*]CoAP 实施
CoAP 的源代码是被称为 "MicroCoAP" 的开源代码,支持下载。 它是用标准 C 代码编写而成的轻量级代码,能够在不同平台上轻松转化。 MicroCoAP 包含四个文件(CoAP.h、CoAP.c、endpoints.c 和 main.c)。 CoAP.h 和 CoAP.c 实施 CoAP 协议(如下所示);endpoints.c 包含与特定节点相关的响应函数。https://software.intel.com/sites/default/files/managed/ae/97/CoAP-protocol.pngmain.c 文件构建 CoAP 服务器。 我们主要使用 CoAP_packet_t、CoAP_parse、CoAP_handle_req 和 CoAP_build。 CoAP_packet_t 定义 CoAP 数据包的数据结构。 CoAP_parse function 解析从网络或串行端口接收的十六进制数据,并将数据转化为 CoAP_packet_t 结构。 CoAP_handle_req 函数分析接收的 CoAP 数据包并做出适当响应。 CoAP_build 函数将响应数据包转换成十六进制数据。 用于构建 CoAP 服务器的关键源代码如下所示。https://software.intel.com/sites/default/files/managed/e5/84/key-source-code-to-build-a-CoAP-server.png
[*]Arduino* 实施
Arduino 是一款可创建 Arduino 软件和硬件标准的开源电子原型构建平台。 英特尔® Edison 开发板、英特尔® Galileo 开发板和 Spark 核心开发板均遵循 Arduino 标准。 它主要包含两种函数:设置函数和循环函数。 设置函数对硬件进行初始化,并在循环函数前调用一次。 循环函数是一种死循环,可用于执行主函数。如欲将 COAP 添加至 Arduino 开发板,只需将三个文件(CoAP.h、CoAP.c、endpoints.c)添加至项目,并根据 microCoAP 中的 main.c (如下所示)修改设置函数和循环函数。https://software.intel.com/sites/default/files/managed/91/03/CoAP-server-on-arduino-platform.png
[*]Mbed 实施
Mbed 是面向对象的 C++通用库,专门针对 ARM Cortex*-M 处理器而开发。 我们可以通过使用相关类运行通用输入/输出 (GPIO) 和其他硬件资源。 不过没有默认 Wi-Fi 模块或通用库。 这时,我们可以通过 UART 转 WIFI 模块将 Wi-Fi 功能添加至 Mbed。 Class WIFI 基于 UART-WIFI 模块的产品说明开发而成,其所有函数均可向 UART-WIFI 模块发送相关字符串。您需要将三个文件(CoAP.h、CoAP.c、endpoints.c)添加至项目,并根据 microCoAP 项目中的 main.c 文件修改 main.c 文件。 为此,只需使用 make 命令,因为 Makefile 中的所有设置均已完成,如下所示。https://software.intel.com/sites/default/files/managed/9e/6d/CoAP-server-on-Mbed-platform.png
Mbed 平台上的 CoAP 服务器
[*]RIOT 实施
RIOT 是面向物联网的开源开发商友好型操作系统,支持多种不同的开发板,比如 Mbed LPC1768 和 Spark Core 开发套件。 它支持 C 和 C++ 语言编程。 测试文件夹包含许多可连接硬件的示例 API。 与 Mbed 类似,CoAP 服务器的实施方式是将 Mbed 的 Wi-Fi 类更改为 C 函数,然后修改与串行端口相关的 API。 不过,试验过程中它通常发生崩溃,因此仅仅面向测试阶段。 如欲编译该服务器,请使用根文件夹中的 “BOARD=Mbed_lpc1768 make clean all flash” 命令,并使用 “BOARD=Mbed_lpc1768 make term” 监控串行端口并获得来自 Mbed 的打印信息。 面向 RIOT 的 CoAP 服务器代码结构如下所示。https://software.intel.com/sites/default/files/managed/c5/6c/RIOT-code-structure.png
RIOT 代码结构
[*]Contiki 实施
Contiki 是一款多进程开源操作系统。 示例文件夹包含多个使用 API 控制硬件的示例。 它也不包含默认 Wi-Fi 模块。 为实施 CoAP 服务器,可使用 RIOT 的类似函数并重写 UART 示例。 如欲进行编译,可使用 “TARGET=cc2530dk make” 命令,并使用 jlink 下载二进制程序。 查看以下示例代码。https://software.intel.com/sites/default/files/managed/2d/e0/sample-code-of-CoAP-server-on-Contiki.png
基于 Contiki 的 CoAP 服务器的示例代码
[*]OpenWRT 实施
OpenWRT 是一款面向路由器的 eMbedded Linux。 它支持标准 Linux API, 因此其 microCoAP 代码可以直接使用。 在软件包文件夹中设置 microCoAP 项目,并根据其他项目的 Makefile 修改 Makefile。 然后在根目录中运行 make 命令。 编译后的应用将位于 bin 文件夹。 该应用可通过 ftp 或 usb 存储上传至开发板。 最后,使用 opkg 命令安装 CoAP*.ipk,以安装 CoAP 应用;CoAP 将被安装至 OpenWRT。 将 “/usr/bin/CoAP &” 添加至 /etc/rc. 本地文件。 面向 OpenWRT 的 CoAP 服务器代码结构如下所示。https://software.intel.com/sites/default/files/managed/f5/dd/OpenWRT-code-structure.png
OpenWRT 代码结构Newton 项目中的实际解决方案要想成为物联网的实际解决方案,必须能够通过自然手势控制所有物联网设备,无需穿戴任何电子可穿戴设备,也不受外界光照/噪音/等因素的影响。 通过使用 9 轴陀螺仪检测用户的手部动作,可以实施类似这种解决方案。https://software.intel.com/sites/default/files/managed/2b/14/sample-of-9-axis-gyroscope-with-Wi-Fi.png
使用 Wi-Fi* 的 9 轴陀螺仪示例模式识别算法能够实时分析数据,并检测用户的位置、方向和手势。 通过计算用户与物联网设置之间的相对位置/方向,系统能够识别用户所面向的设备。 进一步计算用户的手部方向和手势后,就可选择和控制目标物联网设备Newton 项目演示案例以下是我们实验室进行的演示案例,使用 Newton 项目连接和控制基于不同操作系统的设备。 这些演示案例包括环境(图 1)、控制开发板(英特尔® Edison 开发板(图 2))、控制安卓设备(图 3)、控制机械手臂(图 4),以及控制机器人汽车(图 5)。
图 1: 实验室环境演示案例https://software.intel.com/sites/default/files/managed/f0/15/figure-2-select-%28blue%29-and-control-%28green%29-boards-in-Project-Newton.png
图 2: 在 Newton 项目中选择(蓝色)和控制(绿色)开发板https://software.intel.com/sites/default/files/managed/d2/40/figure-3-control-android-devices-in-Project-Newton.png
图 3: 在 Newton 项目中控制安卓设备https://software.intel.com/sites/default/files/managed/0e/68/figure-4-control-robot-arm-in-Project-Newton.png
图 4: 在 Newton 项目中控制机械手臂https://software.intel.com/sites/default/files/managed/9f/68/figure-5-control-robot-car-in-Project-Newton.png
图 5: 在 Newton 项目中控制机器人汽车
未来计划Newton 项目是一款专门用于智能家庭物联网控制的高级整体解决方案,并且易于使用,支持用户连接所有想要连接的智能家庭物联网设备。 它是一款低成本解决方案,用户无需使用任何手持设备。 此外,它还不受外界因素(比如光照、噪音级别等)的影响。与所有开源项目一样,Newton 项目还有很大的提升空间。 我们下一步计划改进手势识别、启动性能,并集成可穿戴设备。 例如,据说,下一代 Google* Glass 将配备更大的凌镜,并采用英特尔凌动处理器。对于 Newton 项目来说,这将是更为出色的实际物联网控制解决方案。
关于作者Zhen Zhou 拥有上海交通大学软件工程专业的硕士学位。 他于 2011 年加入英特尔,在开发商关系部门移动支持团队担任一名应用工程师。 他与内部相关各方与外部 ISV、SP 和 运营商密切合作,负责在英特尔凌动处理器、传统英特尔架构和嵌入式英特尔® 架构平台等领域设计新的使用模式以及开发原型。
原文链接
啊,虽然跟Edison没啥关系,但是挺好玩的一个东东,Intel inside,大家当娱乐了啊。
楼主也不懂NEWTON
孙毅 发表于 2016-1-27 00:12
啊,虽然跟Edison没啥关系,但是挺好玩的一个东东,Intel inside,大家当娱乐了啊。
楼主也不懂NEWTON
...
大圣,大圣…… Edison为啥用arduino编译的? 智能家庭物联网控制完整解 hnyzcj 发表于 2016-1-27 07:41
大圣,大圣……
干嘛,干嘛。。。。 dsweiliang 发表于 2016-1-27 09:02
Edison为啥用arduino编译的?
看到的那只是个文本编辑器,其实背后的编译器用啥挺随意的啊。。。。。
Edison有一个 Edison for Arduino的IDE 大连林海 发表于 2016-1-27 10:50
智能家庭物联网控制完整解
你能搞定不。。。。。玩一个呗 孙毅 发表于 2016-1-27 22:47
你能搞定不。。。。。玩一个呗
你都搞不定 我怎么搞 孙毅 发表于 2016-1-27 22:42
干嘛,干嘛。。。。
不干嘛,不干嘛,召唤神兽呢{:5_163:} 看起来很厉害
但是感觉这种东西做起来一般会有很多坑。。。。 大圣,话说OLED点亮了吗
凌风清羽 发表于 2016-1-28 22:50
大圣,话说OLED点亮了吗
{:5_176:} 版主好认真!!!科普小王子 ~~ Juice 发表于 2016-2-16 11:53
版主好认真!!!科普小王子 ~~
我有点受宠若惊,您是如何临幸到我的啊?! 有人说过,字数少于3000字的都不算好文章,你的应该算好文章 swanglei 发表于 2016-2-26 17:03
有人说过,字数少于3000字的都不算好文章,你的应该算好文章
转发的“好文章” 。。。吼吼 孙毅 发表于 2016-3-1 16:08
转发的“好文章” 。。。吼吼
好大的原文链接。。。才看见
页:
[1]