65.9K
CodeProject 正在变化。 阅读更多。
Home

连接 Intel® RealSense™ 3D 摄像头与 Intel® Edison - JavaScript

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2015年9月15日

CPOL

6分钟阅读

viewsIcon

13858

在本文中,我们将使用 Intel® RealSense™ 技术 JavaScript 框架将手势数据发送到服务器,服务器将数据发送以触发连接到 Intel® Edison 的蜂鸣器和 LED。

获取新的 Intel® 物联网开发者套件,这是一个完整的硬件和软件解决方案,允许开发者使用 Intel® Galileo 和 Intel® Edison 开发板创建令人兴奋的新解决方案。访问 Intel® 物联网开发者中心

引言

Intel® 已经推出了许多伟大的创新。其中之一是 Intel® RealSense™ 技术,通过 Intel® RealSense™ 3D 摄像头和 SDK;我们可以创建能够执行手势检测、面部分析、背景分割、语音识别、语音合成等的应用程序,SDK 为 CSharp、Java、JavaScript、Processing 和 Unity 等软件框架提供了更多支持。开发者可以根据他们熟悉的框架轻松入门创建应用程序。

Intel® 技术中的另一个酷炫之处是 Intel® Edison 平台。物联网开发者可以构建收集传感器信息或向其他设备发送控制指令的原型,并创建创新产品。Intel® Edison 已集成 Wi-Fi 和蓝牙低功耗* (LE),因此我们可以连接到互联网并创建真正的物联网解决方案。

Peter Ma 撰写了一篇很棒的文章 将 Intel® RealSense™ 技术与 Intel® Edison 开发平台结合使用。在这篇文章中有两个此类应用程序的示例。一个使用 Intel® RealSense™ 3D 摄像头作为输入,Intel® Edison 开发板作为输出。SDK 触发开发板上的 LED 灯。在第二个示例中,使用 Intel® Edison 开发板作为输入,Intel® RealSense™ 3D 摄像头作为输出,语音合成用于读取开发板上的传感器数据。

该项目启发我基于 JavaScript 创建类似的东西。在本文中,我们将使用 Intel® RealSense™ 技术 JavaScript 框架将手势数据发送到服务器,服务器将数据发送以触发连接到 Intel® Edison 的蜂鸣器和 LED。

硬件

  • 带有 Arduino* 分线板的 Intel® Edison 板
  • Seeed Grove* – Starter Kit Plus - Intel® IoT Edition
  • 第四代(或更高版本)Intel® Core™ 处理器
  • 8GB 可用硬盘空间
  • USB 3.0
  • 一款 Intel® RealSense™ 3D 摄像头 F200(系统集成或外围版本)
  • 一台配备 Node.js 的服务器

软件

步骤 1:设置 Intel® RealSense™

Intel® RealSense™ 的设置非常简单。首先将 Intel® RealSense™ 3D F200 摄像头连接到 USB 3.0 端口。安装摄像头驱动程序和 Intel® RealSense™ SDK:https://software.intel.com/en-us/intel-realsense-sdk/download

安装 SDK 后,导航到安装位置,然后使用浏览器打开 RSSDK\framework\JavaScript\FF_HandsViewer\FF_HandsViewer.html 中的 JavaScript 示例,它会进行一些检查。

在浏览器中点击链接安装 Intel® RealSense™ SDK Webapp Runtime,然后重启浏览器并再次尝试打开文件。然后尝试将手举到摄像头前,如果一切顺利,您将在浏览器中看到手部数据可视化。

请注意底部文本手势:{"timeStamp": ,"handId": ,"state": ,"frameNumber": ,"name":"spreadfinger"} , 我们将把 "name":"spreadfingers" 发送给服务器。

  • RSSDK\framework\JavaScript\FF_HandsViewer 文件夹复制到另一个位置
  • 复制位于 RSSDK\framework\common\JavaScript 的 realsense.js 文件,并将其放在 FF_HandsViewer 文件夹中
  • 创建 edisonconnect.js 文件以接收手势数据并发送到服务器,*注意:请更改您的服务器 IP 地址
  • 编辑 sample.js 文件以拦截手势数据并将其传递给 edisonconnect.js
  • 编辑 FF_HandsViewer.html 文件以重新定位 realsense.js 文件路径,链接 socket.io 和 edisonconnect.js 脚本

到此为止,我们已经准备好发送手势数据到服务器。下一步是设置服务器和 Intel® Edison。

步骤 2:设置服务器

我假设我们已经设置了一个基于 Debian Linux 的服务器(我使用的是 Ubuntu 发行版),并且我们将在该机器上设置 Node.js 服务器。

  • 远程连接到您的服务器并通过 SSH 登录
  • 更新服务器
  • 安装 Nodejs
  • 安装 npm
  • 安装 socket.io express
  • 创建文件 server.js 和 index.html
  • 使用 vim 编辑 server.js 文件
  • 写入以下脚本
  • 最后,运行脚本,如果您看到“listening at port 1337” 那么就没问题了

步骤 3:设置 Intel® Edison

Intel® Edison 易于部署,Intel® 提供了清晰的文档。您可以在以下位置找到它:

好的,现在是时候将代码放入 Intel® Edison 中了,这段代码用于连接到服务器并监听服务器的任何广播。如果收到手势数据,Intel® Edison 将触发数字引脚的开启/关闭。

  • 让我们开始打开 Intel® XDK IoT Edition 并从模板创建新项目。我们将使用数字写入模板
  • 编辑 package.json 添加依赖项 socket.io-client
  • 编辑 main.js 以连接到服务器并检查手势数据名称是否为 "spreadfingers",然后将 Digital Pins2 和 Digital Pins8 的状态触发为 1 / 开启,如果收到其他手势数据则改回 0 / 关闭状态。* 请更改您的服务器 IP 地址,如果您想更改引脚,请在 mraa.Gpio(selectedpins) 中进行更改

最后,安装/构建您的项目然后运行,*确保 Intel® Edison 设备已连接

现在让我们确保服务器已启动并正在运行,并且 Intel® Realsense™ 笔记本电脑/计算机和 Intel® Edison 已连接到互联网。

您可以在 此处 观看演示。

结论

这是一个非常简单的项目,修改了 Intel® RealSense™ JavaScript 框架示例脚本,将捕获的手势数据发送到 Node.js 服务器。服务器会将手势数据广播给任何套接字客户端。安装了 socket.io-client 的 Intel® Edison 监听来自服务器的广播,如果手势数据名称为 "spreadfingers",它将触发数字引脚的状态更改。以同样的方式,可以基于 JavaScript 框架创建使用面部数据、Blob 数据和语音识别的项目。

那么你将创造什么?


Aulia Faqih - Intel® 软件创新者

来自印度尼西亚日惹的 Intel® RealSense 创新者,目前在日惹的 UIN Sunan Kalijaga 担任讲师。喜欢玩 Galileo / Edison、Web 和所有极客的东西。

Intel® 物联网开发者中心

立即开始创新!Intel® 物联网开发者计划提供知识、工具、套件以及专家社区,助您快速轻松地将您的创新想法转化为物联网解决方案。

使用适用于 Intel® Edison 和 Intel® Galileo 平台的 Intel® 物联网开发者套件,让您的梦想成为现实。这些套件用途广泛,性能优化,并且是完全集成的端到端物联网解决方案,支持多种编程环境、工具、安全、云连接和硬件。

如需更多资源并了解新的 Intel® 物联网开发者套件 v1.0 如何帮助您简化物联网项目

© . All rights reserved.