6712| 10
|
[intel程序猿笔记] 将英特尔® 实感™ 技术与英特尔® EDISON开发平台结合使用 |
1. intel独家授权转载【intel开发人员专区】文章。 2. 定期为创客小主po上最全最细最专业的intel项目教程或另类态度。 3. DF创客社区“创客召集令”带你玩转intel,更多惊喜,颠覆你想象。 简介 在后手机时代,我们发现,智能设备与我们从未想到过的事物实现互连,构建了一个称为 “物联网” 或 IoT 的世界。 IoT 设备仍处于起步阶段,比如手表带有计步器,汽 车可通过手机发动。 IoT 设备比较有意思的是,它们可配备各种低成本传感器,以读取温度、 湿度、心率,以及手机或电脑无法显示的数值,从而帮助我们在第一时间访问这类信息。 此外 ,借助英特尔® Edison 平台和英特尔® Quark™ 处理器,我们可轻松构建原型,以收集传感器 信息,开发创新型产品。 英特尔另一大创新是英特尔® 实感™ 技术。 借助英特尔实感 3D 摄像头和 SDK,应用能够 执行手势检测、面部分析、背景分割、语音识别,语音合成等功能,成为可完成多种检测的超 级传感器。 结合英特尔® Edison 套件的多种用法及输出,我们可构建许多创意性、实用性与 娱乐性兼备的应用。 本文将列举两个关于此类应用的示例,其中一个示例将英特尔实感 3D 摄像头用于输入、英 特尔® Edison 开发板用于输出,并使用 SDK 触发开发板上的 LED 灯。 另一个示例将英特尔® Edison 开发板用于输入、英特尔实感 3D 摄像头用于输出,并使用语音合成朗读开发板的传感 器数据。 硬件
英特尔实感 SDK 与软硬件和 3D 摄像头结合使用时,可提供面部分析、手部和手指追踪、 语音识别、语音合成、增强现实对象追踪器、背景分割,增强现实及其他功能。 当前的 SDK 可支持 Microsoft .NET 4.0 框架、Unity* Pro 4.1.0 或更高版本、Processing* 2.2.1 或更 高版本,以及 JDK 1.7.0_11 或更高版本。 在本文的示例中,我们将使用 .NET 和 C#。 借助英特尔实感 SDK 开发而成的常见应用包括浸入式协作、游戏、自然交互、交互式故事 ,以及英特尔®捕捉和共享,但这些只是冰山一角。 如欲了解有关英特尔实感技术的更多信息,请访问 http://www.intel.com/content/www/us/en/architecture-and- technology/realsense-overview.html。 您可以访问 https://software.intel.com/zh-cn/intel-realsense-sdk/download,下载免费 SDK。 硬件详情 英特尔® Edison 开发板是低成本、通用型计算平台系列计划的首款硬件。 经过专门设计, 它有助于快速、轻松地构建物联网项目的原型,同时还可提供面向商业化的产品就绪型路径。 英特尔® Edison 开发板使用 22 纳米双核英特尔® 凌动™ SoC,其运行速度为 500MHz。 它 支持 40 个 GPIO,并以微小外形集 1GB LPDDR3 RAM、4 GB EMMC 存储,以及双频 Wi-Fi* 和 蓝牙* 于一身。 它运行完整 Linux 内核。为了发挥其最佳性能,您可能希望编写硬件级 Linux 代码。 此外,英特尔® Edison 开发板的 Linux 版本以 Linux 程序的形式包含 Arduino 实施。 简单来说,这意味着您可以编写熟悉的 Arduino sketch,并在开发板上运行这些 sketch。 这 就是我们下面要进行的操作。 如欲了解更多有关英特尔® Edison 开发板的信息,请访问: http://www.intel.com/content/www/us/en/do-it- yourself/edison.html Arduino* Breakout 开发板 Arduino breakout 开发板可用于两种用途。 第一,它提供更大的原型构建平台,以轻松访 问 IO 针脚。 第二,它提供可兼容 Arduino 的硬件平台,这意味着我们能够同时使用标准 Arduino 屏蔽器和英特尔® Edison 开发板。 图 1 所示为安装于 Arduino breakout 开发板的 Edison 开发板。 图 1. 安装于 Arduino* breakout 开发板的英特尔® Edison 开发板 Grove Starter Kit Plus 该套件的全称为 “Grove Starter Kit Plus - Intel® IoT Edition”,最初针 对英特尔 Galileo 第二代开发板而设计。 幸运的是,它通过 Arduino breakout 开发板可完 全兼容英特尔® Edison 开发板。 该套件(如图 2 所示)旨在借助传感器、制动器和屏蔽器简化运行和原型构建。 它包含一 个可兼容 Arduino 的屏蔽器以及四 (4) 个标准化针脚连接器。 这些连接器供应给可连接线缆 的 IO 端口,其中的线缆也可轻松连接套件内的传感器和控制器。 这意味着,您可轻松构建项 目,无需摆弄小型电线,上拉/下拉电阻,也无需担心极性问题。 如欲了解更多信息或购买套件,请访问: http://www.seeedstudio.com/depot/Grove-starter-kit-plus-Intel-IoT- Edition-for-Intel-Galileo-Gen-2-p-1978.html Grove 套件的生产商 Seeed Studios 还在线提供许多有用资源。 我建议克隆或下载 Sketchbook Starter 库,具体请访问: http://Github.com/Seeed-Studio/Sketchbook_Starter_Kit_V2.0 请访问下列链接,为 Grove Wiki 页面设置书签: 图 2. Grove Starter Kit Plus - 英特尔® 物联网 (IoT) 版 英特尔® 实感™ 3D 摄像头 F200 英特尔® 实感™ 3D 摄像头可为系统集成版,也可为外设版,专门针对游戏互动、娱乐、摄 影和内容创建而构建。 该 3D 摄像头是一个复杂的传感器,从某种程度上说,它是物联网的一 部分(毕竟,它名为实感摄 像头)。 该摄像头的最低要求包括:USB3、第四代英特尔® 酷睿™ 处理器,以及 8GB 硬盘空间。 该摄像头(如图 3 所示)是一枚全 1080p 彩色摄像头,并配有一个深度传感器,可为 PC 呈现 3D 视图效果和浸入式体验。 您可以访问 https://software.intel.com/zh-cn/realsense/devkit,购买包含该摄像头的完 整开发人员套件。 图 3. 英特尔® 实感™ 3D 摄像头 F200 采用第四代英特尔® 酷睿™ 处理器或更高版本的英特尔® 下一代计算(英特尔® NUC)英特尔 NUC 是一种可选设备,可用作英特尔实感 3D 摄像头和英特尔® Edison 模块的中心 枢纽,也可发挥其他功能,比如保存和检索云数据,执行进一步分析等等。 它不属于开发的必 备条件,因为您可通过 USB 串行端口连接摄像头和英特尔® Edison breakout 开发板套件。 然而,如果使用 NUC,可处理摄像头传来的信息并将其发送至开发板,以激活告警系统、发动 机,LED 等输出。开发板上的传感器所传来的信息可发送至英特尔 NUC,以使用英特尔实感 SDK 激活语音合成功能。 摄像头要求 USB3、8GB RAM 和第四代英特尔酷睿处理器或更高版本,然而英特尔 NUC(如 图 4 所示)更容易满足这些要求。 英特尔 NUC 还具备一项优势,即用户界面。如有需要,借 助 HDMI 端口,可轻松将该界面用作计算机。 如果没有安装必备软件的 PC,英特尔 NUC 会是 一个相对经济的选项。 更多英特尔 NUC 详情,请访问: http://www.intel.com/content/www/us/en/nuc/products- overview.html 图 4. 采用第四代英特尔® 酷睿™ 处理器的英特尔® NUC 安装软件并开始编写代码 我们开始编写两种代码示例:
面向英特尔® 物联网平台的 Arduino IDE 您需要下载专门准备的 Arduino IDE 版本,以将 Sketch 部署至您的开发板。 当前的版本 为 1.6.0,位于: 面向英特尔® Edison 开发板的驱动程序您还需要下载和安装面向英特尔® Edison 开发板的驱动程序,地址为: 它应该位于 “Driver Software” 下方页面的最后一个链接。 当前版本为 1.2.1。 如需了解更多说明,请参考入门指南: https://software.intel.com/zh-cn/iot/library/edison-getting-startedVisual StudioVisual Studio 是一套全面的开发人员工具和服务,可 帮助您创建面向多种平台的应用。 英特尔 SDK 的最低软件要求包括 Visual Studio 和 Windows 8.1。 Visual Studio 可支持 C、C++、VB.NET、C#、F#、M、Python*、Ruby, JavaScript* 等多种语言。 本具体指南使用 C#。 您可以免费下载 Visual Studio Express 版本。 通过面向学生的 DreamSpark* 和面向初学者的 BizSpark* 等程序,可免费获取商用版 Visual Studio。 访问 https://www.visualstudio.com/ 和 https://msdn.microsoft.com/en-us/default.aspx,了解更多关于 Visual Studio 和 C# 的信息。 英特尔® 实感™ SDK英特尔 SDK 支持开发人员充分发挥 3D 功能以及上述诸多功能。 当前版本为 4.0.0.112526(或 Gold R2 版),下载链接为: 测试英特尔® Edison 开发板在开始演示之前,请确保您能够运行 Blink 示例 sketch。 它位于 examples -> 01.Basics -> Blink 文件夹中的 Arduino IDE 下载软件包。 安装 Visual Studio* 和英特尔® 实感™ SDK 安装 Visual Studio 非常简单,但安装英特尔实感 SDK 时,需要将 3D 摄像头插入 USB3 。 如果您可以通过 C++ 和 C# 示例浏览桌面上出现的英特尔实感 SDK Sample Browser(图 5 ),说明安装成功。 还提供特定于摄像头的示例;我们将使用 Hand Viewer 示例。 安装完 SDK 后,必须单独下载 F200 Depth Camera Manager。 下载地址为: 如果没有摄像头管理器,代码示例将无法正确初始化。 图 5. 英特尔® 实感™ Sample Browser 示例 #1,将信号从英特尔® 实感™ 3D 摄像头发送至英特尔® Edison 开发板关于第一种示例,我们将构建一个简单的应用,使用手势发送摄像头的信号,以控制开发板 上的 LED。 针对英特尔® Edison 开发板的代码 我们首先需要构建代码接收端。 连接 Grove 套件和 Arduino breakout 开发板,并将 LED 插座套件 v1.3 连接至 D2,如图 6 所示。 图 6. 在 Arduino* 扩展板上连接 LED 插座套件 v1.3 和 Grove Kit D2 将 USB 端口连接至您的 PC 或英特尔 NUC,使用 Windows* Device Manager 查找英特尔® Edison 开发板所使用的串行端口。 如图 7 所示,所使用的串行端口为 “COM16” 。 当开发板连接 PC 后,Windows 自动检测开发板,并分配端口。 图 7. Windows* Device Manager 以及英特尔® Edison Board 的 Virtual Com 端口 在 Tools 下的 Arduino IDE 中,我们选择 “Intel® Edison” 为开发板, “COM16” 为端口,如图 8 和图 9 所示。 图 8. Arduino* IDE 中的开发板选择 图 9. Arduino* IDE 中的端口选择 最后,我们需要进行编程。 由于开发板用作输出设备,下列几行代码将控制其串行端口, 即 1 表示开灯,0 表示关灯。
现在,我们已完成面向英特尔® Edison 开发板的示例代码。 英特尔® 实感™ 应用代码 示例 C# F200 的下方为 Hand Viewer 应用。 点击右侧的源,打开 RSSDK/FF_HandsViewer.cs 文件夹。 将整个文件夹复制到桌面,以便我们修改项目。 我们使用的特定手势为张开手指。 如果愿意,您还可以换做其他手势。 如图 10 所示,为 本示例选择手指张开手势。 图 10. 使用 Hand Viewer 追踪手指张开手势 在 MainForm.cs 下修改和添加下列代码。 该程序相对简单,只需宣布串行端口,追踪最终 手势即可。 如果手势不同,我们需要更改 LED 的标记。 UpdateInfo 即现有示例代码更新用 户的手势。 我们可使用多种状态追踪是否提供手指张开手势。 如果是,我们将 SerialPort 的标记设置为 1,打开 LED。 手势做完后,我们向标记发送 0,关闭 LED。
如果所有步骤正确,点击开始按钮,追踪手指张开。 如果手指张开,LED 将亮起,如图 11 所示。 图 11. 使用手势张开手势通过英特尔® Edison 开发板点亮 LED。 示例 #2,使用英特尔® 实感™ 应用(用作输出)读取英特尔® Edison 开发板的数据在本示例中,我们将连接至英特尔® Edison 开发板的温度传感器用作输入,并使用英特尔 实感应用的语音合成功能赋予传感器数据人性化。 针对英特尔® Edison 开发板的代码 Grove* - 温度传感器 v1.1 是一款模拟传感器,我们可通过 Grove 套件将其插入开发板的 A0。 下列 Arduino 代码可读取 Celsius 的温度数据。 代码每隔 15 秒有一个延时,以便扬 声器完成文本-语音部分。 您可以根据自己的需求调整该延时。 您可以编写其他逻辑,以发送 温度过高或过低告警。
英特尔® 实感™ 应用 Speech Synthesis 位于 Common Samples 下方。 复制源文件夹 “ambitious, persistence, resilient risk taker”,与复制 Hand Viewer 示例的做法相同。 界面 保持原样,但使用语音合成的目的变成了朗读开发板的传感器数据。 我们仍然使用 “COM16”。 按照如下方式更改 MainForm.cs 文件:
如果所有步骤正确,程序将每隔 15 秒朗读温度传感器数据。 您可根据自己的个人需求修 改该程序,比如更改界面,或将 VoiceSynthesis.cs 和 VoiceOut.cs 复制到您自己的项目。 展望未来 我希望这两个示例有助于开发人员和企业家拓展思路,激发灵感,以充分利用这些技术的强 大功能。 我曾构建了一个名为 Anti-Snoozer 的原型,其中的英特尔实感 3D 摄像头可检测出 驾驶人员出现疲劳状态,然后通过英特尔 Edison 开发板发送警报,以提醒驾驶人员打起精神 。 这两类技术的强大潜能,可幻化出数千种完美组合。 那么,您将创造出哪种组合? 关于作者 Peter Ma 拥有 14 年的 web、移动应用和物联网应用开发经验。 他曾效力于五家新兴企业 ,致力于数据库、web 后端、web 前端、移动(Android* 和 iOS*)应用及物联网开发。 他是 一名英特尔® 软件创新者,使用英特尔® 技术构建各种演示。 目前,Peter 定居于旧金山,是一名快速原型专家,专门为大型企业和新兴企业提供咨询服 务。 闲暇期间,他参加过许多创客马拉松活动,经常获胜! 在他人眼中,他是一位胸怀大志 、意志顽强、精力旺盛、敢于冒险的人。 Peter Ma ©2015 年版权所有 本文件根据 Apache 2.0 许可(“许可”)发布;文件使用需遵守许可规定。 如欲获取该许可的副本,请访问: http://www.apache.org/licenses/LICENSE-2.0 除非适用法律规定或以书面形式达成一致,否则根据该许可发布的软件以“按原样 ”方式提供,未提出任何明确或隐含的担保或条件。 请查看该许可,了解规定许可权限 和限制条件的特定语言。 原文链接 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed