欢迎!在我们之前的教程“ 用你的思想控制一个机器人”和 IBM Bluemix 物联网中,我们介绍了 Joshua Carr 使用 Emotiv Insight 耳机用他的思想控制一个星球大战 BB-8 机器人。如果您不相信我,请查看或观看下面的视频。
一些令人惊叹的消费类硬件和 IBM Bluemix 与物联网的集成使这成为可能。
在今天的教程中,我将引导您完成对 IT 咨询专家 Rob Peeren 的采访。他在顶部制作了精选视频,展示了他如何使用臂章和手臂手势来控制 BB-8 以足够准确地踢足球(或某些人所说的无脑震荡足球)。
我们还可能会继续这个关于 IBM Bluemix 和物联网 (IoT) 的系列,并提供有关如何尝试更多自己的项目的具体分步教程。请让我们知道您希望在未来看到更多关于哪些类型的 IoT 主题。
与往常一样,请在下面的评论中分享您的想法和反馈,或直接在 Twitter @reifman上与我联系。您还可以通过 @robobob或通过 @IBMCloud 联系Rob Peeren。
臂章控制器组件
以下是Peeren臂章示范的元素:
Myo 手势控制臂章
蓝色Raspberry Pi 从臂章接收输入并将其发送到 Bluemix 云(未图示)
银色 Raspberry Pi ,通过低功耗蓝牙 将数据从 Bluemix 传输到 BB-8
Sphero 星球大战 BB-8 机器人
未显示高尔夫球和达斯维德(可能在他们的明星预告片中闲逛)
您可以以 199 美元的价格购买黑色或白色的 Myo 臂章:
这里有一些关于 Myo Armband 的介绍视频,观看起来很有趣,尤其是如果您以前没有看过它。
当然, 这里又是 BB-8 以及它是如何形成的:
构建应用程序
现在,让我们深入了解 Peeren 如何使用IBM Bluemix Internet of Things构建演示。在今天的节目中,我将概述我对 Peeren 的采访。有可能在不久的将来我们会一步一步地一起做——如果你对此感兴趣,请在下面的评论中告诉我们!
下面的屏幕截图显示了 Bluemix 如何与设备和 IoT 一起工作:
这是 Peeren 视频中 Bluemix 和每个 Raspberry Pi 之间发生的事情的高级架构图(在此处了解有关 MQTT的更多信息):
设置 Bluemix 应用程序
由于我不会逐步指导您完成应用程序设置,因此您可能会对 IBM 设计主管 Tarun Gangwani 提供的 Bluemix 应用程序 UX 之旅感兴趣:
基本上,您可以从任何 Bluemix 样板(包括Internet of Things Platform Starter)创建应用程序。
这是 Peeren 的物联网仪表板,其中包括 nodeJS 的SDK和他用来从 Myo 臂章接收数据并将其发送到 BB-8 的物联网平台:
根据您的动作校准臂章
Peeren 建议您在校准后使用 Myo 臂章进行练习。这是一个来自创建 Myo Armband 的自定义校准的视频, 它显示了它是如何工作的(另请参阅Myo armband 实际上可以做什么):
基本上,你用几个简单的手势来校准它,然后练习你的动作,这样它就可以捕捉到你的意图。Peeren 在视频中使用了以下手势:
挥手向左转
挥手向右转
拳头让它停止
张开手指让它去
举起你的手臂旋转 180 度(托尼霍克会很自豪然后说,“在半空中做机器人!”)
正如 Carr 花费数小时来训练 Emotiv Insight 一样,Peeren 说使用 Myo 需要练习。控制系统还不是完全自动化的——你不能只是戴上头盔就可以准确地驾驶直升机(很抱歉让你们动作电影作家失望了。)
将 Armband 遥测数据发送到 Bluemix
正如我上面提到的,蓝色的 Raspberry Pi 从臂章接收输入并将其发送到 Bluemix 云。它通过运行 python 代码和MQTT与 Bluemix 通信来实现这一点。
本质上,Myo Armband 通过蓝牙将遥测数据发送到 Raspberry Pi 上的蓝牙适配器。然后,Python 代码获取遥测数据并将其发送到云中的 Bluemix。所有数据都以 JSON 有效负载的形式出现。
下面是 Peeren 的 Python 代码截图:
如果您想深入研究该领域,我建议您查看Thalmic Labs 开发人员门户 及其 非官方库页面。您还可以查看有关指导 Raspberry Pi 轮式机器人的 Myo 臂章的相关视频(它有很棒的配乐):
在 Bluemix 中,可以使用 Node-RED 可视化编辑器转换数据。我们需要将传入的 Myo 手势转换为 BB-8 在其驱动程序/语言中可以理解的命令。
例如,armband up 翻译为 BB-8:开始和停止。这是 Peeren 的 Node-RED 翻译流程的屏幕截图:
向 BB-8 下达命令
为了从 Bluemix 向机器人获取命令,它们通过 Internet 从 Bluemix 发送到 NodeJS 和银色 Raspberry Pi 上的 Cylon.js SDK。银色 Pi 通过蓝牙向 BB-8 机器人发送命令。
Cylon.js是用于机器人、物理计算和物联网的javascript框架。它使指挥机器人和设备变得异常容易。Sphero 的 BB-8还有一个特定的Cylon.js SDK。另请参阅GitHub 上的 Cylon.js 驱动程序。
这是一些 Peeren 的 Cylon 代码,通过以下方式连接Bluemix via MQTT到 BB8 cylon-sphero-ble:
一旦 BB-8 接收到命令,其内部系统就会激活每个命令,从而创建机器人的运动和灯光效果。
关键要点
我问 Peeren 在这项工作中最难的是什么,他回答说:“实际上相当简单。” 他说他只是连接一堆api。
“我没有在这里建造任何东西。我没有编写任何设备驱动程序或更低级别的代码。我正在使用 API 并通过 MQTT 协议以标准方式连接到 Bluemix。我不需要发明任何东西来让它发挥作用。”
Peeren 想激励我们考虑以更大的方式使用 Bluemix。当然,Bluemix 对 Emotiv Insight 耳机、Myo Armband 和 Raspberry Pi 硬件所做的一切都让我深受启发。令人难以置信的是,这个行业已经走了多远。
十几岁的时候,我尝试了语音信号捕获并梦想着识别。在大学里,我尝试了数位板以及手写识别的工作原理(一个下午晚些时候向Nathan Myhrvold演示 帮助我在 Microsoft 找到了我的第一份工作。)但现在,这大部分都可以通过 Bluemix 和物联网实现。
Peeren 说:“基本管道非常简单。” Bluemix 提供超过 120 种企业就绪服务;“这不仅仅是关于臂章和机器人。” 或者麦克风和语音识别——还有更多。
他建议尝试使用Bluemix 分析引擎来提高手势解释的智能或其视觉识别能力。
当您在 Bluemix 中构建自己的应用程序时,您将所有内容都集中在一个地方。你不必去不同的平台。业务规则、报告规则引擎、 Hadoop等的一个地方。可能性几乎是无穷无尽的。
下一步是什么?
希望您喜欢我们的 IBM Bluemix 物联网视频演示和教程。也许您会受到启发,尝试构建自己的演示。
Peeren 向我提到,Bluemix IoT 最好的部分是没有什么是非常复杂的。他能够通过结合 Bluemix 和第三方供应商提供的构建块来实现他的目标。
IBM 还通过其developerWorks 站点为 Bluemix 提供一系列培训和认证 。以下是一些相关资源:
IBM Bluemix 在线课程入门
快速启动应用程序、代码、教程和视频
200 天的 Bluemix
Bluemix 论坛
如果您想了解有关 Bluemix 和 IoT 的更多信息,请告诉我们 — 在评论中发帖或通过 Twitter @reifman或 Rob Peeren @robobob 或通过@IBMCloud 与我们联系。如果您构建了一个很酷的物联网设备应用程序,请告诉我们,也许我们会为您编写一个功能!
您可以在我的 Envato Tuts+ 讲师页面上查找我未来的各种教程。我希望您还可以查看我的两个系列 How to Program With Yii2 和 Building Your Startup With php 关于构建 Meeting Planner的内容。
如果您想了解有关 IBM Bluemix 和物联网的更多信息,请访问 http://ibm.com/bluemix。
相关链接
- 设置 Bluemix 应用程序
- 根据您的动作校准臂章
- 将 Armband 遥测数据发送到 Bluemix
- 向 BB-8 下达命令