亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

还原蜘蛛侠中的伊迪斯眼镜

发布时间:2022-10-26
分享到:

还原蜘蛛侠中的伊迪斯眼镜

发布时间:2022-10-26
分享到:

本文将告诉你,《蜘蛛侠:英雄远征》中的眼镜几乎是可实现的!

如果您还没有看过《复仇者联盟:终局之战》或《蜘蛛侠:英雄远征》——我希望您或许可以看完更深入的了解这个项目!

在《英雄远征》中,彼得通过一些超级 AR 眼镜从斯塔克手中接过火炬,这使他能够查看实时数据并调用各种超级斯塔克工业设备。当我在电影中看到这些时,我就知道我对这个项目心动了,所以我赶忙从 eBay 上拿到了眼镜,并着手制定计划和零件。

让我们开始吧!

我要达成的目标:

  • 制作外观一模一样的EDITH 眼镜。
  • 使其具有语音记录功能。
  • 让它做一些很酷的事情。

组成部分:

  • 伊迪丝眼镜
  • Pi Zero W
  • Powerboost 500c
  • 锂聚合物电池 1200mah
  • 转变
  • 散热器
  • Pi 零相机
  • 128×32显示
  • OTG 垫片
  • USB声卡
  • PS4 耳塞
  • 微型 SD 卡
  • 双凸透镜
  • 金属丝
  • 电工胶带
  • 蓝钉

首先,我将 Powerboost 500c 连接到 Pi Zero 上,我用电工胶带覆盖了一些暴露的部件以防止短路并将其焊接到 Pi 上,使用此处的图像作为指导:

装上散热片:

然后在 Pi 上连接屏幕——VCC 连接到 3v,GND 连接到 GND,SDA 连接到 SDA1,SCL 连接到 SCL1——并针对镜头和眼镜进行测量以获得正确的距离和角度:

两者都用热胶粘上。

接下来将相机连接并粘在前面:

并且 Pi 用大量热胶粘在侧面,以及 Powerboost 周围的胶水:

正如您在上方看到的,电池也已连接并粘贴在背面。

我还在鼻子部位涂了一些蓝色的大头钉,因为它们很滑,还会由于重量而不断从我的鼻子上掉下来。

硬件部分完成!

我做了通常的设置——这次是通过NOOBS来确保我得到了最新的Buster安装。

需要注意,这个项目是为在 python3 上运行而设计的。因此,其中的任何代码都需要使用“python3”命令运行。

这个构建中最酷的部分是Wolfram—— 它是一个计算答案引擎,可用于获取有关各种事物的信息;因此,如果被问及地球有多大,它将返回信息等。

我为此注册了 Wolfram Alpha API ,我为从 Wolfram 获取数据而编写的模块只需为请求输入一个文本字符串并返回一个作为答案。

screen 模块是用来在小 LCD 上绘制图像的,导入后可以实例化其主类,然后允许主代码向其绘制文本和图像;当调用另一个绘图命令时,它会在任何先前的项目旁边绘制新项目。这允许链接图像和文本,并且可以使用 screenClear 功能清除和重置位置。它可以绘制文本和形状,甚至显示 Pi 的统计数据,尽管在眼睛的小屏幕上有点难以阅读。

如前所述,其他模块来自 The Nvidianator  ,因此您可以去那里查看正在使用的其他模块以及它们是如何工作的。唯一的例外是对象检测,它需要 TensorFlow,据我所知,它不会在 Pi Zero 上运行。

我不得不在 Pi Zero 本身上编译PyTorch ,因为在尝试运行从另一个 Pi (3 A+) 编译的安装时出现错误(非法指令),大约需要 3 天。

新闻抓取工具方面,我所做的只是添加一些代码,以便它可以单独运行以进行测试,并返回所有标题的列表以供在主程序中使用。

设置 TTS/STT ,我使用wit.ai进行 STT的 Nvidianator  ,您可以转到那里的链接注册 API 密钥。

对于我使用 espeak 的 TTS,我也安装了这些:

sudo apt install espeak python3-espeak Speech-Dispatcher-espeak

再一次重申,这都是模块化的,因此每个单独的函数都有自己的.py 文件,该文件是从主文件导入的,这些文件可以独立运行以进行单元测试。

主程序首先询问可以在一种访问列表中配置的用户名,如果该名称在该列表中,它将允许他们进入下一部分。

这是菜单侦听器功能启动并显示用户名称以表明他们能够使用眼镜的地方,此时如果用户说出菜单关键字之一,它将打开菜单功能。它将向用户显示它已准备好接受命令,并且还将通过 TTS 询问用户想要做什么。

这是用户可以选择的指令:

  • 拍照
  • 与聊天机器人交谈
  • 问 Wolfram Alpha 一些事情
  • 显示新闻标题
  • 拍照并识别里面的人
  • 在任何新面孔上重新训练 PyTorch 神经网络
  • 重新启动
  • 关机

如果用户说出未知命令,菜单就会循环播放。

目前我正在使用列表来保存和比较关键字——我将来可能会转向更高级的东西,这样用户就不必对他们所说的内容如此具体,但目前它是有用的,并且作品。

我将 main.py 程序添加到 /etc/profile 中,这会导致它在登录时启动并确保它在正确的目录中运行:

cd /home/pi/EDITH && python3 main.py&

所以我决定 USB 声卡有点笨重,有人说我应该尝试蓝牙耳机,所以我后面购买了这些。

我通过简单地打开它们,按照配对说明将它们连接起来,然后在 Pi 本身上使用 UI 与它们配对。

然后我按照本指南获取蓝牙音频,它工作正常!

我确实想使用耳机上的麦克风,但即使音量和增益设置为最高,它似乎也不能很好地收录音频。

因此,我选择将USB 麦克风放在之前声卡所在的位置。幸运的是,与声卡相比,麦克风非常小,因此改善了眼镜的外观。

它似乎也比 PS4 耳塞更好、更清晰地拾取音频,所以我对此非常满意。

我不得不对现在反映在我的GitHub 上的代码做一点小改动——Pimoroni上有关于如何设置麦克风的说明。

做完这一切并不是无功而返,与之相对的是现在眼镜的外观和功能都得到了完善!

之后我决定加入一些局域网唤醒功能——类似于我在Pi Badge中使用的技术,通过使用语音命令,我可以将“魔术包”发送到 PC 以将其打开。

它本质上是一个新模块,调用etherwake并检查 PC 列表及其 MAC 地址 - 如果通过语音给出的 PC 名称在文件中匹配,则通过网络发送魔术数据包并且机器应该打开。

它还发送数据包 6 次,以确保正确发送。

在测试环节中,它们戴起来很笨重,但比我以前的眼镜 ——PiGlass 要小得多。所以我认为这已经是一个长足的进步——同时这个项目也不会以任何方式阻碍用户的视线。它们也更轻巧且更易于使用;但尽管如此,问题仍然非常明显,而且还不够。总的来说,有点像做了一个谷歌眼镜。

播放新闻头条可能会有点啰嗦,而且会持续一段时间,但戴上它们并免提获取信息很酷——尽管我可能会考虑使用更好的麦克风,因为 PS4 确实很难收录一些音频。

我认为这是对斯塔克和他的遗产的一个很好的致敬。我对语音识别及其获取新闻和其他此类信息的能力感到非常满意。Wolfram Alpha 很棒,并且确实为这些添加了一定程度的信息技术。

唯一的问题是速度,我相信 Pi Zero 在 CPU 方面仍然只能与原始 Pi 相提并论。我希望有一天能有一个四核版本,我会用更快的 PyTorch 功能制作这些版本的续集,而且添加TensorFlow也很棒。但我认为这会在当前的 Pi Zero 上运行缓慢/根本不运行。

有一个不足的点是,屏幕稍微有一点偏右,所以你必须有目的地查看它正在显示的内容,但它的焦点正确,这样背景世界就不会模糊:

同样在强光条件下,文本更难阅读——这与我在与 Pi-ron Man进行类似项目时看到的问题相同。

我可以用它来访问 IOT 的东西,通过LAN 唤醒打开 PC  ,甚至可以将它与 Nerf 项目(例如我的 Nerf Gun Ammo Counter / Range Finder 或 Fingerprint ID Nerf 项目)连接起来。

在某些时候,我还必须编写一些更具防御性的代码,以帮助解决 API 错误和其他此类奇怪的错误,有时它会因超时或其他原因而崩溃,我不得不通过 SSH 登录并重新启动程序.

我很高兴看到我可以进一步扩展这些功能,并希望有一天Adafruit 或有人会制作透明的聚焦显示器;这样我就可以真正制作出具有全彩色、图像和一切的增强现实眼镜。

如上所述,搭载 Pi-Zero 的四核版本出现时会非常惊艳,所以我会很快抢购一个并用它制作更好的眼镜。

我希望你喜欢这个项目,这些眼镜看起来和感觉都很好用。

你有什么建议或意见或方法可以让设计变瘦吗?我也对任何人为 AR 眼镜提供的任何解决方案以及将图像投射到用户视觉上的更好方法都非常感兴趣。

Endgame 让我感到难过,但 Stark 技术将继续存在。

本文中所用到的一些代码

如果您对此项目有任何想法、意见或问题,请在下方留言。

以上内容翻译自网络,原作者:Michael Darby,如涉及侵权,可联系删除。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论