[翻译] 握手(HandShake)

micro:bit编程、教学、展示
STEM
回复
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

[翻译] 握手(HandShake)

#1

帖子 shaoziyang »

来自:https://sites.google.com/site/hardwarem ... /handshake

握手该项目的目标是为行动受限的人提供独特的手势识别。几乎所有的手势识别软件都专注于用户复制预定义的手势,例如滑动或手势语言。对于我在博蒙特学院  (Beaumont College)与之合作的患有脑瘫(CP)的学生来说,这是不切实际的。我们打算识别学生可以舒适地做出的任何动作,然后使用它来触发控制。该控件将允许学生与他或她的通信软件进行交互以创建语音或与环境控件进行交互。

使用基于Micro:bit的硬件进行测试
最新的HandShake硬件基于  BBC Micro:bit。一个Micro:bit戴在手腕上,另一个则连接到笔记本电脑或通信设备。当学生移动手腕时,手腕上的Micro:bit会检测到运动。这使用内置无线电向连接到笔记本电脑的Micro:bit发信号。然后,这会触发笔记本电脑上的事件。该触发器也可以用作控制通讯软件(例如Sensory Software的Grid  软件)的开关  。感谢Sensory Software授予我该软件的许可证,以便我可以使用该软件测试硬件。

使用Micro:bit的优点是其他人可以做到!不必由我自己构造,而是由其他人制作的板,其中包含我需要的所有小部件。一旦一切正常,我将提供有关如何复制已完成工作的所有代码和说明。然后其他任何人都可以使用这个想法。Micro:bit板每个约12英镑。该项目需要两个。有关如何用3英镑的iPod腕带制作Micro:bit时尚腕托的说明,请参见  此处

可以在我的github站点上找到所有代码以及显示如何复制系统的手册:https://github.com/hardwaremonkey/microbit

本文的其余部分讨论了我自己开发的较早版本的硬件。 使用基于XBee的硬件进行测试下图显示了其中一位学生在博蒙特进行的初步测试。学生手腕上的小袋包含一个微控制器板和一个XBee模块,用于无线数据传输。加速度计已连接到XBee模块。随着学生的移动,数据由微控制器收集并发送到笔记本电脑进行分析。当学生在舒适的“晃动”范围内摇动手臂   时,右侧笔记本电脑上连接的称为眨眼1的明亮LED  闪烁。 笔记本电脑屏幕显示加速度计数据。 最终,我们希望在学生手腕上的微控制器内进行处理和手势识别,并将其直接发送给学生的通信设备。笔记本电脑上的加速度计数据显示使我能够开发软件来执行此操作。有关硬件的更多详细信息,请参见下文。

图片

最初的研究  使用了  Leap Motion。我们发现,对于我们的用户组,参与者可以与Leap Motion进行交互的空间太有限了。但是,为记录和匹配手势而开发的代码将与其他技术一起进行测试,因此不会浪费时间。

为了继续进行这项研究,我转而使用加速度计来测量手或腕部的运动。最初,我们将在笔记本电脑中处理和模式匹配此数据,以识别学生的手势。 

为了显示实时加速度计数据,我使用python库pyside编写了一个用户界面。python库pyqtgraph用于显示x,y,z轴的加速度计数据。下面的YouTube视频显示了该界面的早期版本的录制内容,其中实时显示了来自加速度计的数据,并且更改了采样率。现在显示更加复杂(原文如此)。

项目完成后,我将提供所有代码。我使用一个  assembla  存储库来存储代码,并鼓励任何程序员设置git存储库。您可能会认为您的代码有足够的备份...加速度计硬件硬件经过了几次迭代。最初,我通过与 数字加速度计相连的pyboard建立了双向无线通信。pyboard是使用micropython编程的,因此从硬件到用户界面的整个工具链都是python3。其代码是建立在其他程序员的工作之上的,他们将代码在线。pyboard可以工作,但是有点笨重。我得到了一个精简的系统,该系统使用XBee系列1直接对连接的模拟加速度计进行采样。这方面的一些详细信息都在我的博客  在这里。这对于测试非常有效,并且证明了该想法是可行的。然后我去讲的T 他  microbit。杀手级功能是它们具有板对板无线通信以及加速度计和微处理器。这个小板看起来像是要走的路。另外,我可以再次使用micropython进行编码。我需要更改板载加速度计的默认灵敏度范围。在弄清楚如何做到这一点之后-请参阅  此链接  -我想我可以在这个平台上实现我的想法。我为什么不使用此板开始?当我开始这个项目时,它不存在。

这是显示硬件的三个迭代的图片。左侧是xbee系列1,该系列与加速度计连接在一起,该加速度计在面包板上混杂在一起。该板由一个AAA电池供电,并使用DC-DC转换器将电压提升至3.3v。中间是相同的硬件,但焊接在原型板上。最好在摇动时将所有东西焊接起来!右侧是由2节AAA电池供电的微板,这是我现在正在使用的板。

图片

在推出microbit之前,我探索了许多不同的想法。请看下面。较早的硬件平台许多智能手表,例如内置了加速度计的  Pebble,都经过了试用。它们旨在与使用低功耗蓝牙(BLE)的智能手机配对,并定期发送和接收数据,而不是将加速度计数据不断地流到PC,这是初始开发工作所需要的。可以在此平台上可靠地工作,因为博蒙特的学生会很高兴佩戴最新的智能手表,这将是非常不错的。我发现与PC稳定可靠连接的唯一智能手表是Texas Instruments  EZ430-Chronos。它带有自己的接收器加密狗,因此在此手表和PC之间建立可靠的链接没有问题。但是,数据采样率是有限的。

我 在实验室中找到了一些Sparkfun WiTilt加速度计和陀螺仪传感器板,这些板子是一个  漫长而无用的项目,用于跟踪室内人员。这些都是精心设计的板,具有有线和老式蓝牙接口。使用蓝牙接口很麻烦,因为每次迭代代码都必须重新连接设备。使用有线串行接口可加快代码迭代速度,因为每次更改软件时都无需进行重新连接。我将此流加速度计数据传输到笔记本电脑。但是,该设备不再制造。我给Sparkfun发了电子邮件,后者说他们没有计划了。所以我开始研究一下我们现在可以得到的东西。使用实时硬件可以使其他人轻松复制和改进我的构想。

该  Pyboard  吸引我的目光。它运行micropython,这使我可以使用Python  编程语言的版本对电路板进行  编程。因为这是我用于手势识别代码的语言,所以我认为这给了我最终在板上完成所有模式匹配的机会。最初,我将实时从板上获取加速度计数据,并在笔记本电脑上进行处理。在加速度计硬件上完成模式识别后,将成为一个不需要与PC经常配对的更好的设备。板子将自动退出,并在识别到手势后发出信号。无论如何,这是计划。

我听说micropython已有一段时间了,但是我从小就对固件产生了兴趣,“如果您无法在C语言中完成,请在汇编器中完成。如果您无法在汇编器中执行此操作,则不值得这样做。然后,我在这里听了一个关于micropython的播客, 并认为这是我不再成为这种curmudgeon的  时候了。有两种类型的傻瓜。一个说“这是旧的,因此是好的”,而另一个说“这是新的,因此是更好的”。通过硬件设计,我可以同时成为两者。

我将pyboard与一个mpu-6050  加速度计/陀螺仪板连接起来。如果您想获得其中之一,请在eBay上找到几磅的这些主板。我 在Hackaday上修改了该项目的代码,  该网站是挑剔的电子爱好者的站点。我正在将数据从传感器流式传输到我的笔记本电脑。我需要添加一些错误检查以标记是否有丢失的数据样本,并对其进行补偿并检查采样率是否正确。然后编写一些单元测试,以避免成为硬件设计伪君子。 

与任何新平台一样,我遇到了通常的痛苦世界。我设法在笔记本电脑上的一个常规python软件包上安装了一个micropython软件包。我从来没有想过如何解决这个问题。幸运的是,我从前 一天晚上获得了一个clonezilla图像,仅用了20分钟即可完成加载。Matt的最高提示-经常使用clonezilla!
 

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章