Hackaday.io上的树莓派项目-3D 触觉背心,适合视障人士和玩家
收藏
分享
脑图
Hackaday.io上的树莓派项目-3D 触觉背心,适合视障人士和玩家
关于项目
项目描述:这种背心允许视障者或盲人通过其 48 个振动电机阵列在 3D 中感知其环境。这种背心也可用于玩在线或游戏机游戏的玩家,以给他们提示和其他重要信息。
项目图片
背心的工作原理:
本项目使用环绕躯干的48个振动电机的矩阵。背心向用户发送触觉反馈,以便他们能够以 3D 方式感知他们面前的环境。这是通过使用不同级别的振动完成的。对可能的4096级使用了8个振动水平。与佩戴者越接近(或游戏中声音越响),电机中与物体(或声音)位置相对应的振动强度越高。每个电机使用最多 60 毫安。如果所有 48 台电机以最高速度运行一小时,则消耗 2.88 安培。运行背心需要深度传感器、计算机、电池组和带 IC(集成电路)的微处理器。电脑、电池组和电子产品都装在背包里。
此项目中使用的深度传感器是 Microsoft Kinect。通过使用 Kinect,背心仍然可以在完全黑暗中工作。这是因为 Kinect 使用红外摄像机传感器。
背心将使用立体声摄像机(如 Xbox Kinect 的摄像机)、处理器、计算机和电池电源。Kinect 以外的电子产品将存放在背包中。
皮肤,一个感觉器官,包含触摸的生物传感器,这是受体(负责热感应),嗅觉器(负责疼痛感应),和机械受体(对机械刺激和皮肤变形敏感)。在四种机械器中,与这个项目相关的一种是响应振动的帕西尼语料库。
歧视皮肤上刺激的能力在整个身体是不同的。两点歧视阈值 (TPDT) 是衡量两个压力点必须相距多远的指标,才能被视为皮肤上的两个不同点。链接中显示的测量值用于本项目的设计。该链接显示身体不同区域的 TPDT。
最终设计是购买的氯丁橡胶背心与48电机氯丁橡胶垫上连接到尼龙搭扣。背心有一条 50 线带状电缆和一条连接到电子盒的接地电缆。焊工用于将电线的末端连接到背心背面的带状电缆。连接是绝缘的,织物胶水用于连接双折偏置胶带,以覆盖电线。所有接地线都连接到一条长接地线。
带状电缆和接地电缆都连接到电子盒上。此盒(参见图 3)包含一个专用电路板(参见图 4),并连接了 48 个晶体管和两个 LED 驱动器板。盒子里还有一个螺旋桨板、一个带状电缆插头、一个USB插头和两个电源插头适配器。
电子箱
从深度传感器到背心的信息流。C# 主控制器程序 (MCP) 从深度传感器(即 3D 摄像机)收集数据,并将其转换为低分辨率 3D 视频。该图片将发送到通信程序。C# 通信器程序从 MCP 中收集信息,并通过 USB 电缆将其发送到螺旋桨微处理器。视差推进器程序采用低分辨率 3D 视频并将其发送到电路盒中的 LED 驱动器。LED 驱动器将深度视频转换为背心中电机的振动。
可添加的其他功能包括:
更好、更小的深度传感器(使用所需的功率更少;体积更小;可以在室外工作)
用于游戏的音频传感器
更小、重量更轻的计算机(使用所需的功率更少)
项目框中所有电子设备的表面安装版本。
可用于 其他应用程序, 可用于
防止造成许多伤亡的武装部队的空间迷失方向。
军官给部队指挥
向飞行员传递信息
产品化设计
最终产品使用氯丁橡胶方块,放在一块1"泡沫。振动电机安装在氯丁橡胶平台上。氯丁橡胶平台安装在氯丁橡胶背心上,相距2"。由于电机没有在整个背心中传播振动,因此此背心效果明显更好。
2 X Adafruit 12 位 24 通道 Led 驱动程序
1 X 树莓派
1 X 视差螺旋桨
1 X 麦克风
1 X 运行 Windows 的笔记本电脑
48 X PNP 晶体管
48 X 封闭式振动电机
1 X 氯丁橡胶背心
1 X 微软Kinect
1 X 50-线带电缆
1 X 微软可视化 C# WPF 编程语言
1 X Windows SDK 的 Kinect - 微软
1 X 微控制器的编程软件
1 X 后包
1 X 氯丁橡胶
1 X K 插头 - 男性和女性
1 X 串行电缆
1 X 30 仪表线环绕线
1 X 22 仪表实心线
1 X 22 仪表螺纹芯线
1 X 50-线带电缆公连接器
1 X 50-线带电缆母连接器
1 X 电气胶带
1 X 双折偏置胶带
1 X 焊料
4 X 3mm 螺钉
4 X 垫圈
4 X 坚果
4 X 锁紧螺母
2 X D 电池
1 X 2 个 D 电池容器
1 X 18 伏电池
1 X 18 伏电池连接器
1 X 小盒子
1 X 12 伏稳压器
1 X 织物胶
1 X 热胶
1 X 塑料盒
1 X 威扣
1 X 清除磁带
从视差螺旋推进器运行电机的代码在这里。此代码用于 Adafruit 24 通道 12 位 PWM LED 驱动器 - SPI 接口 (TLC5947)。以下是它如何工作的解释。要运行 LED 驱动器,请首先向时钟和闩锁发出 0 信号。然后向驾驶员发送 12 位信息,然后通过向时钟发送脉冲来转移它们。重复此过程 24 次(每个 LED 或电机一个)。当所有数据都位于时,程序向启动 PWM 的闩锁发送脉冲。然后程序不断重复此 PWM 过程。
注意: 在 Adafruit 24 通道 12 位 PWM LED 驱动器 - SPI 接口 (TLC5947) 和 Adafruit 12 通道 16 位 PWM LED 驱动器 - SPI 接口 (TLC59711) 之间的信息转换有很大的不同,这不起作用。
不同的是,TLC5947 有一个闩锁的输入,微控制器可以物理连接到与 TLC59711 。TLC59711 的闩锁通过发送特定代码进行控制,然后传输 12 个输出引脚的 LED 组和 PWM 的单个引脚的数据。发送此信息的速度超过 Python 在树莓派上以 700 MHz(默认速度)运行的速度。如果我使用 C 或 C++树莓派或旋转在视差螺旋螺旋桨发送的信息, 我相信它会正常工作。
要在树莓派上运行 FFT,我下载并修改了 FFT 程序。这允许我运行实时 FFT。在该代码中,他们把 2^11 作为常规 44,100 Hz 音频设置的最小块(一段音频)大小。最初,我使用2+13的实时FFT,因为它的工作在Pi。为了加快过程,使电机对噪声发生即时反应,我以 14,400 Hz 的速率将设置从 2^11 降低到 2+8。为了降低播放使命召唤游戏的音频采样率,我使用了 USB 麦克风,而不是使用 USB 声卡中麦克风插槽的公/男性适配器。另一个从男性到男性的适配器连接到 Xbox 的音频输出。
将 Hz 降低至 14,400,将区块大小降低至 2+8,Pi 能够处理 FFT 计算,从而将速度按比例从 5 倍到 56 倍/秒。我很震惊,我能够得到这一切与树莓派的处理能力。在使程序更快的过程中,我发送出 4 个控制字节和一个 2 个字符的返回字节,用于每个 FFT 迭代来控制背心。此程序占用了树莓派的计算能力的大约 60%,不包括 GPU,同时仍使用 c 库运行 python 程序。当我发现这一点时, 我也感到震惊。因此,在未来,我将做一个更好的模式识别程序,并希望从方程中删除视差螺旋桨,只有一个主要的微控制器运行整个过程。我还写了代码运行背心在不同的频率,以便任何人都可以使用它为不同的游戏通过改变代码的设置一点点。树莓派需要额外的库 Pyaudio, Pyserial, NumPy 来运行代码。这个玩家背心真有趣!
我研究过树莓派的快速 Fournier 变换 (FFT), 并决定在这件背心中为游戏玩家实现它。我用使命召唤游戏测试了背心。佩戴者现在能感觉到反冲时,他们开枪和其他低音听起来像心脏砰砰从低健康,敌人的响亮的枪声,手榴弹和火箭发射器。真的很有趣!背心可用于其他游戏,也可用于看电影。如果将电机阵列嵌入到电影院座椅的后面,为电影观看体验添加另一个维度,那将非常美妙。有点像米奇的菲尔哈魔术®在迪斯尼世界的节目/电影,在那里你可以闻到气味或感觉有东西跑过房间,让你的脚踝与空气发痒。
FFT 使 Pi 能够根据任何声音制作音频的光谱图。模式识别程序用于确定何时有音频提示。然后,通过 USB 电缆将信号发送到视差推进器,然后向 Adafruit 24 PWM LED 驱动器发送信息,该驱动器打开背心中的电机。
背心使用 LED 驱动器控制 48 个振动电机。我研究,但找不到一个好的解决方案,所以我最初使用移位寄存器做脉冲宽度调制。但后来我想到了LED司机,他们工作得更好。巧合的是,它们都有相似的属性。
我想在这个项目使用树莓派,因为它是一个微型计算机,可以取代大笔记本电脑,我用于控制背心。最初,因为我想做另一个盒子,我做了一个Python程序来控制阿达水果12PWM端口LED驱动程序,但Python在树莓派太慢运行他们。因此,对于我第二次尝试使树莓派(我从元素14购买)控制背心,我发送启动和控制器命令到视差推进器,让它做艰苦的工作,以控制在原始框中的阿达夫鲁伊特24PWM LED驱动程序。
据我所知,这样的背心还没有为视障人士做。我的背心有48个振动马达,这是一大堆相比,其他游戏背心。
我还使用一种创新的方式抑制振动从电机到电机的转移。我用氯丁橡胶背心与安装电机的氯丁橡胶垫。这减少了电机之间的振动转移,也减少了导线和电机之间的振动转移。
树莓派上的快速 Fournier 转换 (FFT:我使用 Python 调用多个库(如 NumPy、PyAudio、PySerial),以来自音频流的 14,400 Hz 的采样速率实现 FFT 56 次/秒。这是不寻常的,因为其他人使用树莓派没有GPU只能得到FFT到5次/秒。但特别的是,这个过程只拿走了大约60%的计算能力。这给了我非常好的响应时间, 没有明显的滞后。穿着背心玩游戏是真棒!
我在背心上加了一个按钮,这样视障者就可以向那些可以帮助他们的人发送电子邮件,以防他们跌倒或需要帮助。已预先配置电子邮件地址和消息。它使用 Wi-Fi 进行连接。
9月2日,我在AL.移动的视觉康复社区服务(CSVR)上为JoeFonenot博士演示了我的背心。(http://csvrlowvision.org/请参阅。法律上失明的Fonenot博士也试穿了背心。他给出了一些积极的反馈。我们还讨论了视障人士在日常生活中面临的挑战。这件背心给他留下了深刻的印象,而且在市场上并不知道有类似的东西。他喜欢用它与远程助手交流的想法。如果我能让背心发送包含图片的电子邮件,那么远程助手可以打电话帮助识别周围环境中的物品。远程助理电子邮件可以配置为亲戚或朋友的电子邮件。
为了测试这个项目,我让十几个志愿者在蒙上眼睛时用背心,他们中的一些人听着响亮的摇滚乐。他们没有任何直接碰撞时,放入一个迷宫的障碍。他们每人花了大约一分钟或更少的时间学习如何使用背心。因此,这是非常直观的。传感器正前显示在腹部,外设显示在背面的左右部分。高对象可以从低对象确定,因为有 4 行电机。较高的对象在较高的行上,较低的对象在较低的行上。很快我会试穿合法盲人的背心。
如果有人正在寻找一个更便宜的视差螺旋桨板。当我上次检查时, 我想我看到阿达水果卖的比视差少 (笑) 。
这个项目不仅限于使用螺旋桨板,其他人最肯定可以使用阿杜伊诺与阿达夫瑞特开源引导司机代码。
振动电机应批量购买,以便成本更低。我从易趣上买了我的
氯丁橡胶运动背心也是从易趣购买的。
使用氯丁橡胶上的氯丁橡胶方块来隔离振动是防止感知到的 3D 图像失真的最佳方法。将电机连接到电子盒的导线具有 CARRY 振动。隔离这些振动是完全必要的,有一个良好的质量,感知的图像。其他项目,类似于这一个有很大的麻烦,以获得高质量的图像,但这个项目有伟大的质量图像。
这是一种非常有效的方法来同时使用 PWM 控制 48 个电机。只需使用 2 个引导驱动程序并加快输出电流, 就是我能想出的最佳方法。它肯定比使用许多微控制器做 Pwm。
第 1 步
购买氯丁橡胶背心。
将氯丁橡胶方块放在 1" 的泡沫上。
在氯丁橡胶平台上安装振动电机。
将氯丁橡胶平台安装到背心上,以网格模式相隔 2",以便可以识别彼此的振动。
将电线的末端从电机焊接到背心背面的带状电缆。(我用了30个仪表线。不要使用 30 仪表,使用较低的仪表,但不要过低。我用高量表防止振动扩散,它的工作。
隔离连接。
用织物胶水将双折偏置胶带连接到背心上,以覆盖电线。
将所有接地线连接到长接地线。
电子箱程序
要同时控制 48 个电机(这是真棒),请按照图表进行。
这使用 2 个 Adafruit LED 驱动器、48 个 PNP 晶体管(可处理至少 60 毫安,我的可处理 800 毫安)、一个盒子、1 个视差螺旋桨和 D 电池(它们可以有大约 12 安培的电量)。
评论
0 / 100
查看更多
Sen
2020-08-28
1465
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号