×

音乐石纸灯开源

消耗积分:0 | 格式:zip | 大小:0.56 MB | 2022-11-15

贾熹

分享资料个

描述

介绍

石版纸是一种半透明的蚀刻物体,一旦背光就会显示图像。借助现成的 3D 打印机,可以轻松制作各种形状和尺寸的石版纸。

这个项目的目的是创建一个石纸灯,而不是只是静止的,我希望灯可以旋转,创建一个 360 度的石纸“灯罩”,让所有侧面都可见,而无需观众移动自己。

在最初的设计之后,我决定添加一个巨大的按钮会很有趣,按下该按钮将为每个人启动音乐和灯光秀。

该项目由5个主要部分组成:

  • 圆柱石纸
  • 运行灯的电子设备
  • 齿轮和外壳,因此石纸以足够慢的速度旋转
  • 容纳所有组件的外壳
  • 使一切正常的代码

石粉

我们将要生成的石蜡纸高 152 毫米,周长为 375 毫米,因此直径为 119 毫米。此信息对于确保创建立石纸的图像具有正确的长宽比非常重要。长度变成高度,宽度变成圆周。

上述测量值意味着周长与高度的比率为 2.47。在实践中,这可能会因石版纸的厚度和 3d 打印机的精度而异。

我在我的 lithophane 上放了三张图片,但重要的是确保宽度是高度的 2.47 倍。我在图像之间(和末端)添加了灰色条,以在图片之间创建一些分隔。

进入网站后,您需要将样式设置为“外曲线”。然后在“设置”下,将“最大尺寸”设置为 375 毫米,将“曲线”设置为 360。使用图片选项卡上传您的图片,然后等待网站生成石版纸。然后下载按钮将下载您的 lithophane STL。

pYYBAGNxjtqAQrYPAAFMuqNIlY0477.png
石粉代
 

我使用 Ultimaker Cura 来打印我的石版纸,但您可以使用您最熟悉的任何工具。确保已将填充设置为 100%。这将创造出最好看的石粉。在此步骤中,您可以确保您的高度和宽度(直径)测量值是正确的。

pYYBAGNxjtyAZFNDAAEOhyUWc98255.png
准备打印
 

请注意,我花了 40 多个小时打印出高质量的石版纸。我建议以较低的质量打印测试,并在打印几厘米后停止打印,以确保它适合。

完成打印后,您可以立即在里面放一个光源来预览它的外观。

pYYBAGNxjt-AIw2PAAET-sQIdjs648.jpg
印刷的石版画
 

电子产品

灯的核心是 Adafruit ItsyBitsy M4。这是一个功能强大且有用的电路板,非常适合驱动新像素和伺服系统等项目。它有一个特殊的 5V 输出引脚,可为这些设备提供更多电压。

ItsyBitsy 附在上面:

  • 音频放大器(将挂钩连接到扬声器) - 连接到 A0
  • 电源开关 - 连接到 D10 并启用
  • 模式/旋转按钮 - 切换到 LED,并打开伺服 - 连接到 D11
  • 街机按钮 - 开始音乐表演 - 按钮连接到 D7,LED 连接到 D12
  • Neopixels - 连接到 D5
  • 伺服 - 连接到 D9
pYYBAGNxjuKAJcNMAAIxVS5fMtc307.png
示意图
 

将所有的地面连接在一起很棘手,因为有很多。我将所有的接地都焊接到一根电线上,然后用电工胶带覆盖。

poYBAGNxjuiAEA8cAAmvTcq7O7s310.jpg
地线 - 锂电池组稍后移除
 

由于一些组件延伸穿过底座的盖子,因此使用连接器(如 JST)以允许它们在需要时断开连接可能是有益的。如果必须移动某些东西,它可以节省精力或拆焊电线(这是我惨痛的教训!)。

这对于伺服、neopixel 和街机按钮线特别有用。

代码

代码相当简单;从配置和设置开始,然后是操作灯的主循环。运行时的灯会监视要按下的两个按钮之一。较小的模式按钮将交替打开 LED,使石纸旋转,然后将其关闭。按下街机按钮将触发定时动画表演。

SERVO_SPEED = 0.07 # speed to rotate the servo at
LED_FLASH_TIME = 30 # how long to flash the arcade button for

伺服速度控制灯的旋转速度。闪烁时间控制街机按钮在不使用时闪烁的时间。如果它总是闪烁它确实很烦人!

# Set up the servo
lid_servo_pwm = pulseio.PWMOut(board.D9, frequency=50)
lid_servo = servo.ContinuousServo(lid_servo_pwm, min_pulse = 420, max_pulse = 2500)

伺服设置也可能需要稍作改动。必须设置 min_pulse 和 max_pulse 以确保伺服在它应该静止时不会移动。默认值通常应该有效。

# Set up the audio playback
audio = AudioOut(board.A0)
mp3files = ["dance-mono.mp3"]

mp3files 是按下街机按钮时将播放的 MP3。由于这些设备上的空间稀少,MP3 必须短且压缩质量。由于扬声器是单声道的,因此使用立体声也没有意义。我能够拥有 5 分钟的 MP3 并具有足够的压缩率。使用 Audacity 之类的工具来编辑 MP3。

# define animation for the arcade button
rainbow = Rainbow(pixel_wing_vertical, speed=0.1, period=2)

有一个部分定义了按下 Arcade 按钮时将播放的所有动画(以“#define animations”的注释开头。这些是将播放的原始动画,而不是将使用的序列和时间。

除了VolumeTimedAnimatedSequence之外,使用的所有动画都来自 Adafruit CircuitPython LED Animation 库我基于 Adafruit 库编写了这两个。

# modes the program can be index
MODE_OFF = 0    # nothing running
MODE_LIGHT = 1  # neopixels lit only
MODE_SPIN = 2   # neopixels lit and servo moving
MODE_MUSIC = 3  # music show is on
MODE_MAX = 3    # only the arcade button will get to MUSIC

主循环是一个永远持续的while循环。它检查按钮并根据用户的操作更改当前模式。

唯一感兴趣的模式是播放动画序列的 MODE_MUSIC。

核心是设置TimedAnimationSequence

animations = TimedAnimationSequence(
                solid, 12,
                loud, 20, # 32
                rainbow, 16.5, # 48.5
                rainbow_comet, 14, # 1:02.5 62.5
                rchase2, 36, # 1:38.5 98.5
                rainbow, 16.5, # 1:55 115
                rainbow_comet, 14, # 2:09 129
                loud, 33, # 2:42 162
                clear_sparkle, 16, # 2:58 178
                rcomet2, 14, # 3:12 192
                rainbow_sparkle, 32, # 3:44 224
                rchase2, 16, # 4:00 240
                loud, 37, # 4:37 277
                clear_sparkle, 5,
                solid, 60,

                auto_clear=True,
                auto_reset=True,
            )

每行定义要播放哪个先前定义的动画以及播放多长时间。我使用注释来跟踪运行时间,以帮助将动画与音乐同步。

齿轮箱

齿轮箱由几个没有外壳的齿轮组成。您必须打印两个ComboGear.stl和一个GearBox Base.stl GearBox Lid.stl Spur Gear.stlDrive Gear.stl 驱动齿轮稍后将安装在伺服系统上。

齿轮松散地位于盒子的底部,盖子会将它们全部固定到位。我建议将盖子固定到位,以确保在将盖子涂在底座上之前,一切都可以自由转动。对于 3D 打印部件,您可能需要旋转一段时间以松开它们并确保它们正常工作。

pYYBAGNxjuqACGPVAACP-LgYFjs312.png
齿轮箱内部
 

 

 
 
 
pYYBAGNxjvCAWZTbAA2GsxxAHVc851.jpg
 
1 / 2正在组装的齿轮箱
 

 

外壳

外壳组件由三个主要部分组成:

  • 带齿轮箱和伺服箱的支架
  • 灯座装有电子设备和按钮
  • Lithophane,顶部的盖子,并将所有东西连接在一起
poYBAGNxjveAJbJlABB8VfAoed8338.jpg
除立石纸外的所有印刷部件
 

支架、齿轮箱和伺服箱

这三个部分用环氧树脂连接在一起。支架顶部有一个凸起的小凹坑,与齿轮箱底部的小孔相匹配。齿轮与支架的中心对齐。

要安装伺服箱,请插入带有驱动齿轮的伺服。使用它来确定伺服箱的适当高度。驱动齿轮应与齿轮箱的下齿轮干净啮合。重要的是它不能与两个齿轮啮合,否则什么都不会移动!伺服箱也附有环氧树脂。

pYYBAGNxjvmAdawhAAAuAsQbYl4735.png
带有附加齿轮箱和伺服箱的中央支架
 
poYBAGNxjwGAAAW-AA0VwffIBP8534.jpg
将伺服箱与齿轮对齐
 

灯座按钮

底座包含运行灯的电子设备。ItsyBitsy M4 和音频放大器有支架,但我建议使用热胶或胶带以确保它们固定到位。用于打开和关闭灯泡的电源开关和模式按钮安装在外壳的侧面。我建议再次使用热胶将它们固定到位。

扬声器和可选电池(我后来拆掉了)位于机箱的空白区域,应该再次粘上。

pYYBAGNxjweACZkOAACKQ8wUC2s560.png
灯座内装有电子元件
 

打开灯光秀的街机按钮拧入底盖件。在电线上使用连接器可以使其更容易连接,否则您必须在拧入后将按钮焊接到 ItsyBitsy。

盖子按扣安装到底座上,以便在必要时拆卸。

pYYBAGNxjwmAXlePAACTFx37CrA325.png
带盖底座
 

Lithophane、盖子和连接一切

设置好底座后,下一步就是安装齿轮箱支架。它用环氧树脂连接到中心的底盖上。伺服箱朝向电源开关所在的底座背面。

poYBAGNxjwuAd0WcAABNw9f7Pus884.png
安装在底座上的支架
 

胶合支架后,neopixel LED 将连接到支架的侧面。同样在此步骤中,建议在新像素末端使用连接器,而不是直接焊接。

许多新像素上都有塑料涂层,这使得胶合变得困难。你的选择是去除塑料和胶水,或者使用大量的热胶水(即使这样它也给我带来了麻烦!)。

pYYBAGNxjxKAfvbhABFSfbjUeJI564.jpg
固定在灯座上的支架
 

连接底盖后,您需要将立石环氧树脂涂在立石盖上。这允许伺服系统和齿轮箱一致地旋转整个组件。

胶水固定好齿轮箱顶部的齿轮后,将其插入石粉盒盖底部的槽中。有一个螺丝孔(M3 尺寸)用于将盖子固定到齿轮上。

poYBAGNxjxWAdYMQAABBu-eMLwI579.png
附上立石纸和盖子
 

有了它,您就可以开始操作了!

结果

poYBAGNxjxuAIWo1AA7VyaEVM98400.jpg
最终产品
 

看灯在行动!

 

 


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

评论(0)
发评论

下载排行榜

全部0条评论

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