×

制作googly eyes眼镜

消耗积分:0 | 格式:zip | 大小:0.16 MB | 2023-02-07

12268

分享资料个

描述

概述

呆呆的眼睛总能让人们在意外出现的地方微笑和大笑。我首先为另一个项目订购了一些圆形显示器,但在测试它们时,我认为连接一个加速度计并创造一个 googly 眼睛会很有趣。

在获得初步积极反馈后,我决定制作 googly eyes 眼镜,这样我就可以在任何地方佩戴 googly eyes。该项目教您如何制作自己的粘性眼镜。

与许多开源项目一样,这个项目非常感谢其他人,他们为我的起点奠定了基础。Tod Kurt 解释了如何在 CircuitPython 中使用多个显示器,Ruiz 兄弟解释了我修改的 3D 可打印 LED 眼镜模型,Phil Burgess 完成了我在自己工作中发现的一个 googly eye Arduino 项目,这对我有帮助了解使边缘碰撞看起来更好所涉及的数学。稍后会找到这些项目的链接。

零件信息

Things部分列出了所有使用部件,但有一些关于它们的小注释:

  • Adafruit Feather RP2040 - 驱动该项目的微控制器不必基于 RP2040。微控制器确实需要支持两条 SPI 总线和一条 I2C 总线(您可能可以在一条 SPI 总线上运行,但速度可能会慢一些。我从未测试过)。
  • Adafruit LSM9DS1 - 我选择这个加速度计的原因很简单,因为我已经有了它。任何加速度计都应该工作。如果您希望避免一些焊接,Adafruit 有 LSM9DS1 的新 STEMMA 版本。
  • 1.28 英寸 TFT 圆形显示屏- 这些圆形显示屏是从 AliExpress 购买的。他们使用 GC9A01 驱动程序并具有 240x240 分辨率。代码是假设 240x240 编写的,因此如果您尝试不同尺寸的显示器,则需要更改尺寸设置。如果您的显示器使用另一个驱动芯片,驱动初始化很容易在 CircuitPython 中换出。该代码应在方形显示器上运行,但包含在圆形中。

第 1 步:3D 打印眼镜

眼镜打印由三部分组成:框架、支撑羽毛的左臂和支撑加速度计的右臂。所有部件都将打印平整,不需要支撑。手臂通过两个 M2.5 螺钉和螺母连接到框架。

 
 
 
img_7811_mrwbtdypBI.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
 
1 / 2从上到下依次为右臂、框架和左臂。
 

 

第 2 步:组装眼镜和电子产品

下一步是将电子设备连接在一起并将它们连接到眼镜上。在将电子设备连接到眼镜之前进行焊接是最简单的。

重要:小心你想要电线去哪里。在我的构建中,我让 TFT 显示器将电线穿过框架连接到 Feather。这意味着一旦我将电线焊接到 TFT,我必须先将电线穿过框架中的孔,然后再将其他电线末端焊接到 Feather。

所有电子部件之间的连接都显示在接线图上。

  • TFT 和 LSM9DS1 都将 VCC 连接到 Feather 上的 3.3V,并将 GND 连接到地。
  • LSM9DS1 的 SCL/SDA 连接到 Feather 上的相应引脚,即 RP2040 上的 I2C 总线 1。
  • 每个 TFT 有 5 个引脚连接到 Feather,Feather 连接到 RP2040 上的 SPI0 和 SPI1 总线。SCL 与 SPI SCK 相关,SDA 与 SPI MOSI 相关,CS 与 SPI CS 相关。TFT 上的 DC 和 RST 引脚不需要 RP2040 上的特定引脚。他们连接到任意选择的引脚。
googly-eyes_bb_JI1cdJcZ7H.png?auto=compress%2Cformat&w=740&h=555&fit=max
接线图 - 这里有很多事情要做
 

所有组件都使用 M2 螺钉和螺母连接到眼镜上。这些部件附在眼镜的外侧。

 

 
 
 
img_7814_vFoigsG7Zv.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
 
1 / 3安装了 Feather RP2040 的左臂
 

第 3 步:为眼镜编程

最后一步是将代码加载到眼镜上并修改您想要调整的任何配置设置。所有代码都可以在GitHub上找到

眼镜在CircuitPython上运行,并在 7.3 和 8.0-alpha 版本上进行了测试。为了能够同时在两个显示器上显示眼睛,您需要自定义构建版本的 CircuitPython 来启用两个显示器。我在 Googly Eye 存储库中为 Adafruit Feather RP2040 包含了一个预构建的两个显示器 CircuitPython 版本。Tod Kurt 的博客文章详细介绍了如果您想为另一块板构建具有两个显示器的 CircuitPython,如何启用两个显示器。

运行代码需要两个外部库。LSM9DS1 库位于主CircuitPython 库包中。GC9A01 显示驱动程序可在 CircuitPython社区捆绑包中找到这两个库都必须放在CircuitPython 驱动器上的lib目录中。

运行眼镜所需的 Googly Eye 存储库中有两个 python 文件。主要文件code.pygooglyeye.py定义了运行单眼的类。

该代码显示了两个独立行动的谷歌眼睛,默认设置仅用于我认为看起来不错的设置。

code.py的开头,可以修改四个设置以允许您更改眼睛的行为:

  • G_SCALE :可用于增加加速效果,使眼睛更加灵敏。数字越高,响应越快。
  • DRAG :1.0 表示没有摩擦。任何较低的值都会使眼睛在移动时变慢。越接近 0 摩擦越大。
  • 弹性:1.0 表示当眼睛从两侧弹起时没有能量损失。越接近 0,反弹时损失的能量就越多。
  • EYE_RADIUS :瞳孔本身的大小。这个值越大,眼睛就会越大。但要注意尺寸太大,因为每次更新需要刷新的屏幕越多,帧率就越慢。

 

完成的googly眼镜
 

现在怎么办?或其他有趣的想法和可能性!

因此,您已经用有趣和令人兴奋的大眼睛让您的朋友惊叹不已,如果您还没有在 Teams 工作会议上尝试过它们,您还在等什么?但接下来是什么。

就像他们的塑料同行一样,电子谷歌眼有上百万种用途。我抛出的一些想法是:

  • 将一个贴在任何物体上,就像每个人都用塑料眼睛做的那样。
  • 改变瞳孔颜色或图形。CircuitPython 支持图像和它们的许多教程,可让您将矢量圆更改为您想要的任何图像。
  • 改变眼球运动。让眼睛默认位于中心并围绕设定点弹跳。
  • 添加传感器以跟踪运动并让眼睛跟随房间周围的人。如果将此添加到绘画中,将加分。
  • 给眼睛加上眨眼,这是塑料眼睛做不到的!

如果您确实制作了眼镜或基于它们的任何想法,请在您(希望)分享您的创作时告诉我或标记我。我愿意去看。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !