查看: 5969|回复: 17

[intel程序猿笔记] NEWTON 项目—— 智能家庭物联网控制完整解决方案

[复制链接]
1. intel独家授权转载【intel开发人员专区】文章。
2. 定期为创客小主po上最全最细最专业的intel项目教程或另类态度。
3. DF创客社区“创客召集令”带你玩转intel,更多惊喜,颠覆你想象。


原文链接

简介
“智能家庭” 这一术语专门用于描述各种广泛的功能,这些功能支持用户通过智能手机、平板电脑和笔记本电脑控制和管理家庭设备,例如通过智能手机应用远程控制恒温器。 不过,许多人认为智能家庭存在两大主要劣势:没有统一的解决方案,缺乏实用性。 Newton 是英特尔的最新创新项目之一,能够有效缓解这些问题。
问题
“没有统一的解决方案”: 用户希望做出自己的选择。 他们希望购买智能设备,比如苹果、三星、腾讯或小米的电视、冰箱、空调。但制造商都各自开发了自己的智能家庭解决方案(例如,制造商们使用的通信协议各不相同)。 几乎无法形成标准化生态系统。
“缺乏实用性”: 之前的智能家庭物联网控制解决方案包括: 语音控制:可能会受到背景噪音的影响;电话控制或其他远程控制器:便捷性不足,因为涉及到取电话、启动相关应用,搜索想要控制的物联网设备等;通过摄像头进行手势识别:依赖于光照条件和在房间内所站的位置/方向。
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 协议的基本设计过程如下所示。

Newton 项目的 CoAP 设计
为将该创意支持的所有操作系统进行分类,英特尔® Galileo 开发板、英特尔® Edison 开发板、UNO、和 Spark 开发板均支持 Arduino 编程标准。 通用物联网 LPC1768 开发板支持 Mbed 和 RIOT 操作系统。 Mbed 是面向联网设备(基于 ARM)的平台和操作系统,有利于通过调用相应对象轻松地运行硬件资源。 RIOT 是能够支持多线程和多种不同开发板的开源操作系统。 它的程序可由标准 C 语言编写而成。 LPC1768 芯片需使用外部 Wi-Fi* 模块进行通信。 Windows、Linux 和 Android 也可轻松适应 CoAP。 Newton 项目的软件架构如下所示。

Newton 项目的软件架构
实施 Newton 项目的操作系统连接
  • CoAP 实施
CoAP 的源代码是被称为 "MicroCoAP" 的开源代码,支持下载。 它是用标准 C 代码编写而成的轻量级代码,能够在不同平台上轻松转化。 MicroCoAP 包含四个文件(CoAP.h、CoAP.c、endpoints.c 和 main.c)。 CoAP.h 和 CoAP.c 实施 CoAP 协议(如下所示);endpoints.c 包含与特定节点相关的响应函数。
main.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 服务器的关键源代码如下所示。
  • Arduino* 实施
Arduino 是一款可创建 Arduino 软件和硬件标准的开源电子原型构建平台。 英特尔® Edison 开发板、英特尔® Galileo 开发板和 Spark 核心开发板均遵循 Arduino 标准。 它主要包含两种函数:设置函数和循环函数。 设置函数对硬件进行初始化,并在循环函数前调用一次。 循环函数是一种死循环,可用于执行主函数。
如欲将 COAP 添加至 Arduino 开发板,只需将三个文件(CoAP.h、CoAP.c、endpoints.c)添加至项目,并根据 microCoAP 中的 main.c (如下所示)修改设置函数和循环函数。
  • 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 中的所有设置均已完成,如下所示。

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 服务器代码结构如下所示。

RIOT 代码结构
  • Contiki 实施
Contiki 是一款多进程开源操作系统。 示例文件夹包含多个使用 API 控制硬件的示例。 它也不包含默认 Wi-Fi 模块。 为实施 CoAP 服务器,可使用 RIOT 的类似函数并重写 UART 示例。 如欲进行编译,可使用 “TARGET=cc2530dk make” 命令,并使用 jlink 下载二进制程序。 查看以下示例代码。

基于 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 服务器代码结构如下所示。

OpenWRT 代码结构
Newton 项目中的实际解决方案
要想成为物联网的实际解决方案,必须能够通过自然手势控制所有物联网设备,无需穿戴任何电子可穿戴设备,也不受外界光照/噪音/等因素的影响。 通过使用 9 轴陀螺仪检测用户的手部动作,可以实施类似这种解决方案。

使用 Wi-Fi* 的 9 轴陀螺仪示例
模式识别算法能够实时分析数据,并检测用户的位置、方向和手势。 通过计算用户与物联网设置之间的相对位置/方向,系统能够识别用户所面向的设备。 进一步计算用户的手部方向和手势后,就可选择和控制目标物联网设备
Newton 项目演示案例
以下是我们实验室进行的演示案例,使用 Newton 项目连接和控制基于不同操作系统的设备。 这些演示案例包括环境(图 1)、控制开发板(英特尔® Edison 开发板(图 2))、控制安卓设备(图 3)、控制机械手臂(图 4),以及控制机器人汽车(图 5)。
figure-1-the-demo-show-cases-environment-in-our-lab.jpg
图 1: 实验室环境演示案例

图 2: 在 Newton 项目中选择(蓝色)和控制(绿色)开发板

图 3: 在 Newton 项目中控制安卓设备

图 4: 在 Newton 项目中控制机械手臂

图 5: 在 Newton 项目中控制机器人汽车

未来计划
Newton 项目是一款专门用于智能家庭物联网控制的高级整体解决方案,并且易于使用,支持用户连接所有想要连接的智能家庭物联网设备。 它是一款低成本解决方案,用户无需使用任何手持设备。 此外,它还不受外界因素(比如光照、噪音级别等)的影响。
与所有开源项目一样,Newton 项目还有很大的提升空间。 我们下一步计划改进手势识别、启动性能,并集成可穿戴设备。 例如,据说,下一代 Google* Glass 将配备更大的凌镜,并采用英特尔凌动处理器。对于 Newton 项目来说,这将是更为出色的实际物联网控制解决方案。

关于作者
Zhen Zhou 拥有上海交通大学软件工程专业的硕士学位。 他于 2011 年加入英特尔,在开发商关系部门移动支持团队担任一名应用工程师。 他与内部相关各方与外部 ISV、SP 和 运营商密切合作,负责在英特尔凌动处理器、传统英特尔架构和嵌入式英特尔® 架构平台等领域设计新的使用模式以及开发原型。

原文链接

孙毅  版主
 楼主|

发表于 2016-1-27 00:12:13

啊,虽然跟Edison没啥关系,但是挺好玩的一个东东,Intel inside,大家当娱乐了啊。
楼主也不懂NEWTON
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2016-1-27 07:41:39

孙毅 发表于 2016-1-27 00:12
啊,虽然跟Edison没啥关系,但是挺好玩的一个东东,Intel inside,大家当娱乐了啊。
楼主也不懂NEWTON
...

大圣,大圣……
回复 支持 反对

使用道具 举报

dsweiliang  版主

发表于 2016-1-27 09:02:33

Edison为啥用arduino编译的?
回复 支持 反对

使用道具 举报

大连林海  初级技神

发表于 2016-1-27 10:50:02

智能家庭物联网控制完整解
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2016-1-27 22:42:44

hnyzcj 发表于 2016-1-27 07:41
大圣,大圣……

干嘛,干嘛。。。。
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2016-1-27 22:47:07

dsweiliang 发表于 2016-1-27 09:02
Edison为啥用arduino编译的?

看到的那只是个文本编辑器,其实背后的编译器用啥挺随意的啊。。。。。
Edison有一个 Edison for Arduino的IDE
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2016-1-27 22:47:44

大连林海 发表于 2016-1-27 10:50
智能家庭物联网控制完整解

你能搞定不。。。。。玩一个呗
回复 支持 反对

使用道具 举报

大连林海  初级技神

发表于 2016-1-27 22:52:40

孙毅 发表于 2016-1-27 22:47
你能搞定不。。。。。玩一个呗

你都搞不定 我怎么搞
回复 支持 反对

使用道具 举报

hnyzcj  超级版主

发表于 2016-1-28 08:24:01

孙毅 发表于 2016-1-27 22:42
干嘛,干嘛。。。。

不干嘛,不干嘛,召唤神兽呢
回复 支持 反对

使用道具 举报

吹口琴的钢铁侠  版主

发表于 2016-1-28 19:53:14

看起来很厉害
但是感觉这种东西做起来一般会有很多坑。。。。
回复 支持 反对

使用道具 举报

凌风清羽  版主

发表于 2016-1-28 22:50:37

大圣,话说OLED点亮了吗
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2016-1-29 00:55:25

凌风清羽 发表于 2016-1-28 22:50
大圣,话说OLED点亮了吗

回复 支持 反对

使用道具 举报

Juice  高级技师

发表于 2016-2-16 11:53:05

版主好认真!!!科普小王子 ~~
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2016-2-16 18:23:36

Juice 发表于 2016-2-16 11:53
版主好认真!!!科普小王子 ~~

我有点受宠若惊,您是如何临幸到我的啊?!
回复 支持 反对

使用道具 举报

swanglei  超级版主

发表于 2016-2-26 17:03:11

有人说过,字数少于3000字的都不算好文章,你的应该算好文章
回复 支持 反对

使用道具 举报

孙毅  版主
 楼主|

发表于 2016-3-1 16:08:23

swanglei 发表于 2016-2-26 17:03
有人说过,字数少于3000字的都不算好文章,你的应该算好文章

转发的“好文章” 。。。吼吼
回复 支持 反对

使用道具 举报

swanglei  超级版主

发表于 2016-3-2 10:16:36

孙毅 发表于 2016-3-1 16:08
转发的“好文章” 。。。吼吼

好大的原文链接。。。才看见
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail