乐鑫技术交流
直播中

王焕锁

7年用户 969经验值
私信 关注
[问答]

如何使用可穿戴传感器和ESP2866驾驶鹦鹉无人机?

2016 年,我们
决定开始构建基于可穿戴传感器和软体动力学 (SBD) 研究的腕戴式手势识别系统。随着增强现实和虚拟现实的新兴趋势,未来几年我们在社会和科技领域面临的最大挑战之一将是如何与沉浸式技术互动。过去,我们遵循的模式是为计算机建立一些输入法(过去使用键盘和鼠标),然后修改我们对机器界面的行为。人们还渴望自然用户交互 (NUI),以及允许我们以自然地与人和世界交互的方式与计算机交互的技术的发展。
在研究各种应用的软体动力学和手势识别时,从无人机的 NUI 控制入手对我们来说似乎是一个自然而有趣的挑战。作为开发之旅的一部分,我们考虑了我们希望与哪些联网设备进行交互,而驾驶无人机是我们最初的灵感之一。我们一直在寻找可以玩的东西,而小型 Parrot 无人机几乎感觉就像一只宠物鸟或狗,而不是一台会飞的计算机。因此,我们着手将可穿戴传感器连接到 Parrot Mini Cargo 无人机。
我们选择了 Parrot Mini 无人机,因为它相对较小(可以在室内飞行)并且还包括一个 SDK 和一个蓝牙低功耗接收器,这使得它非常适合通过 JavaScript 程序与我们的 Arduino 硬件原型结合飞行。
智能表带的核心是软凝聚态传感器 (SCMS),本质上是
开发的一种导电聚合物复合材料。SCMS 允许我们连续测量皮肤上的应变,因此我们可以实际检测肌腱在手做出不同手势时的时刻。它基于纳米纹理导电碳颗粒与高弹性热塑性弹性体的高科技组合。研究表明,SCMS 可以测量与手势相关的压力,甚至可以灵敏地测量血液的脉搏波。
对于原型板,我们决定使用易于获得且灵活的组件,以确保任何人都可以重复我们的发现并改进它们而无需花费太多。选择的微控制器是 Espressif 的 ESP2866,它与 Arduino IDE 兼容并集成了 Wifi。Adafruit 的 Huzzah Feather Board 将它集成到一个漂亮的包中,添加了一个 LiPo 充电器和端口以及 USB 桥接器,以便于编程。它是一块功能强大的电路板,但也足够小,可以安装在手臂上用于可穿戴设备原型制作。由于 Feather Board 只有模拟输入通道到 ADC(模拟到数字),我们决定添加一个外部 ADC。我们选择了 ADS1015,这是一款具有可调增益的 12 位 ADC,可通过 I2C 访问,使其易于与各种微控制器集成。
具有可调增益意味着将测量电压保持在 0 到 1 伏特之间。使用分压器电路将 3.3v 的输入电压降至 0.5v 左右。然后将两个主要组件和两个分压器(每个传感器一个)放在面包板上。
对于软件,我们决定采用拆分模型:在 ESP2866 上读取 ADC 值(通过 Arduino IDE 编码),其余部分在主机上使用 JavaScript (node.js)。这为我们提供了开发灵活性,并允许在 node.js 生态系统中进行未来扩展。JavaScript 已经是最常用的编程语言之一,node.js 拥有超过 350000 个可安装包。这使得使用可用的库之一(例如鹦鹉滚动蜘蛛)添加到 Parrot minidrone 控件中变得非常容易。
微控制器程序是在 Arduino IDE 中开发的。它在循环中运行并执行以下操作:
- 获取时间戳
- 读取通道 0 的 ADC 值
- 获取另一个时间戳
- 读取通道 1 的 ADC 值
然后将时间戳和 adc 值组合成一个字符串并将其输出到串行端口通过 serial.writeln
serialport npm 模块允许从 node.js 访问串行端口。这样,写入微控制器串行端口的数据可以很容易地被 javascript 程序访问。
serialport 模块与解析器一起工作以识别传入数据的模式。在我们的例子中,我们在发送方使用 writeln,它只是在每个数据“数据包”之后添加一个返回字符。在 JavaScript 方面,每当有新数据包到达时,我都会调用 serialport ondata 处理程序。这个数据包只是在 ; 用于访问传感器值和时间戳以供参考的字符。
首先,使用卡尔曼滤波器对传感器值进行滤波。由于传感器值本质上非常动态,因此使用卡尔曼滤波器可以使它们更加稳定。过滤后,传感器值根据校准期间测量的最小值和最大值在 0 到 100 之间缩放。最后,将传感器值与预先存在的阈值进行比较,这些阈值是在佩戴智能带并记下各种手势的缩放值时确定的,并存储识别出的手势。
Parrot minidrone 演示向我们展示了我们可以使用可穿戴传感器轻松实现手势识别。凭借 node.js 和 Arduino 硬件的灵活性,我们现在正在扩展到不同的用例,并想出将自然用户界面 (NUI) 和软体动力学 (SBD) 集成到应用程序中的新方法。随着我们进一步开发该平台,我们将扩展我们的手势识别 API,以便它可以灵活地与其他程序和硬件平台集成,包括无人机控制、机器人手臂控制或用户界面控制。

更多回帖

发帖
×
20
完善资料,
赚取积分