Marblevator,永久?,摇篮
“Marblevator, Pertual?, Cradle”,例如“Marblevator, Perpetual?, Version 2”和“Marblevator, Perpetual?” 根本不是永恒的,因为它只是另一种幻觉。和它的前辈一样,它是一种非常安静的幻觉,唯一的噪音是大理石在摇篮中来回滚动的声音。
我在这个模型中加入了 Arduino Nano 33 IoT。Nano 软件使用两个红外收发器激活的两个中断服务程序来控制错觉。当滚珠轴承经过红外收发器时,会通过与红外收发器关联的 Nano 输入引脚产生中断,从而调用与该引脚关联的中断服务程序。每个中断服务程序利用两个中断服务程序的中断历史来检测下坡滚珠轴承运动。当检测到下坡运动时,软件会向电磁线圈发出脉冲,以将滚珠轴承加速到轨道的另一侧(因为模型使用红外收发器来感应滚珠轴承,
我还包括通过电阻分压器和模拟输入引脚监控电池电压的软件,当 LiPo 电池电压降至指定截止电平(9.6vdc)以下时,使 Nano 进入睡眠状态。
像往常一样,我可能忘记了一两个文件,或者谁知道还有什么,所以如果你有任何问题,请不要犹豫,因为我确实犯了很多错误。
使用 Autodesk Fusion 360 进行设计,使用 Ultimaker Cura 4.12.1 进行切片,并在 Ultimaker S5 上使用 PLA 进行 3D 打印。
最后要注意的是,我不会为此模型中使用的设计、零件和/或材料获得任何形式的补偿。
工具
- 烙铁和焊料。
- 红色、黑色、绿色和蓝色 28AWG 绞合线各一卷。
- 微网抛光片(1200、1500、2400、3200)。
- 砂纸(120、220、400 和 600 粒度)。
- 厚的氰基丙烯酸酯胶。
- 双面胶带。
- 魔术贴。
- 热缩管。
第 1 步:零件。
我购买了以下配件:
- 一个Arduino Nano 33 IoT [ABX00027]
- 一节 11.1vdc 300mAh 3S 30C 电池 LiPo 电池。
- 一个用于电池的 JST 配对连接器。
- 一只Gikfun EK1909“磁悬浮线圈”。
- 两个 TCRT5000 红外收发器。
- 一个 FQP30N06L MOSFET。
- 一只1N4007二极管。
- 一个 10kΩ 电阻。
- 一个 2.7kΩ 电阻。
- 两个 1KΩ 电阻。
- 一个 M3 x 8mm 沉头螺钉。
- 一个 11MM 直径的滚珠轴承。
- 一个 M3 x 8mm 沉头螺钉。
我以 0.1 毫米层高、20% 填充量 3D 打印了以下部件:
- 一个支持 PLA 的“Base.stl”。
- 两个“螺栓、安装、线圈.stl”。
- 一个“底部.stl”。
- 一个“Mount, Coil.stl”。
- 一个带有分离或 PVA 支持的“Track.stl”(需要双挤压 3D 打印机,参见上面的 Cura 图像)。
这是一个精密打印和装配模型,有时使用非常小的零件,非常狭窄的空间。在组装之前,测试装配和修剪、锉刀、沙子等所有必要的零件,以使运动表面平滑移动,并紧密配合非移动表面。根据您的打印机、您的打印机设置和您选择的颜色,可能需要或多或少的修整、归档或打磨。仔细归档所有与构建板接触的边缘,以确保所有构建板“渗出物”均已清除且所有边缘均光滑。我使用小型珠宝商screwdriver和足够的耐心来执行此步骤。在 3D 打印Base.stl
和Track.stl
后,我使用平头螺丝刀和尖嘴钳小心地移除了支撑材料。
该模型还使用螺纹组件,因此 M8 x 1.25 丝锥和模具将在必要时协助进行螺纹清洁。
附件
第 2 步:电路板和线圈安装组件。
参考随附的该模型的电子设计原理图,我将电路板和线圈支架组装如下:
-
向下弯曲 MOSFET 栅极和源极引线,然后向上弯曲漏极引线。
-
用电工胶带绝缘 MOSFET 散热片的背面。
-
在 Nano 的引脚 A7 和 GND 之间插入 2.7kΩ 电阻。
-
在 Nano 的引脚 A7 和 Vin 引脚之间的 2.7kΩ 电阻上插入 10kΩ 电阻。
-
将前两个插入的电阻器焊接到 Nano 并修整引线。
-
使用沉头螺钉将线圈连接到“Mount, Board and Coil.stl”。
-
将 MOSFET 从底部插入 Nano,栅极引脚到 D3,源极引脚到 GND,漏极引脚向上。
-
将 Nano 卡入安装组件。
-
将 MOSFET 放置在 Nano 下侧表面上方 3mm 处,将 MOSFET 栅极和接地引线焊接到 Nano,然后修整栅极引线,留下源极引线以供稍后焊接。
-
将一根未绝缘的线圈导线尖端缠绕在 MOSFET 漏极引脚周围,然后将其焊接。
-
将二极管的阳极引线缠绕在 MOSFET 漏极引脚周围,然后将其焊接。
-
将剩余的未绝缘线圈导线尖端缠绕在二极管的阴极引线上,然后将其焊接。
-
将热缩管滑到 JST 匹配连接器黑线上,将黑线焊接到 MOSFET 源极引线,将热缩管滑到焊接接头上,并为热缩管施加足够的热量以使接头绝缘。
-
将 JST 配对连接器红线焊接到二极管的阴极引线。
-
将 JST 配对连接器的红线绝缘胶粘到安装座上以消除应力。
-
在二极管阴极和 Nano 的 VIN 引脚之间焊接了 60 毫米长的导线。
-
小心地将 MOSFET 绝缘源极导线弯曲到板上。
-
将 JST 配对连接器的红线和黑线绝缘胶粘到底座上以消除应力。
第 3 步:红外收发器组装。
再次参考该模型的电子设计示意图,我将红外传感器组装如下:
-
将第一个 TCRT5000 阳极引线弯曲到第一个 TCRT5000 发射器引线,将两条引线焊接在一起,然后修剪所有引线。
-
在第一个 TCRT5000 阳极引线上焊接一个 1KΩ 电阻。
-
将 80mm 长的红线焊接到 1KΩ 电阻的自由端,然后用热缩管将电阻焊点绝缘。
-
将 80 毫米长的黑线焊接到第一个 TCRT5000 发射器引线。
-
将 80 毫米长的绿线焊接到第一个 TCRT5000 集电极引线上,然后用热缩管对焊点进行绝缘。
-
将第二条 TCRT5000 阳极引线弯曲到第二条 TCRT5000 阴极引线,将两条引线焊接在一起,然后修剪所有引线。
-
将一个 1KΩ 电阻焊接到第二个 TCRT5000 阳极引线上。
-
将 80 毫米长的蓝线焊接到第二个 TCRT5000 集电极引线上,然后用热缩管对焊点进行绝缘。
-
将第一个 TCRT5000 组件放置在安装组件附近,将其电线插入安装组件中的第一个 TCRT5000 孔,然后将它们向上穿过安装组件中的第二个 TCRT5000 孔。
-
将 80 毫米长的黑线和来自第一个 TCRT5000 组件的黑线焊接到第二个 TCRT5000 发射器引线。
-
将 80 毫米长的红线和 TCRT5000 组件中的红线焊接在一起,将 20 毫米长的热缩管套在电线上,将这些电线焊接到第二个 TCRT5000 电阻自由端,将热缩管滑过焊点,然后加热使其收缩。
-
将第一个 TCRT5000 的绿线焊接到 Nano 引脚 D10。
-
将第二个 TCRT5000 的蓝线焊接到 Nano 引脚 D9。
-
将第二个 TCRT5000 的黑线焊接到 Nano GND 引脚。
-
将第二个 TCRT5000 的红线焊接到 Nano 3.3V 引脚。
-
在“Track.stl”上用 120 号砂纸打磨滚珠轴承导轨,然后用 220、400 和 600 号砂纸打磨,然后使用 Micromesh 1500、1800、2400 和 3200 片对导轨进行精细抛光。
-
小心地将每个 TCRT5000 滑入轨道中的收发器插座。
-
使用两个“Bolt, Mount, Board and Coil.stl”将轨道连接到安装组件。
第 4 步:软件。
Arduino 文件“MarblevatorCradle.ino”,其中包含将下载到 Nano 中的软件。该软件分为四个部分;setup()、loop()、InterruptServiceInfraredTransceiver1() 和 InterruptServiceInfraredTransceiver2()。
setup() 函数包含初始化代码。禁用中断后,代码将用于驱动 mosfet 的引脚分配为数字输出并清除输出。接下来分配两个红外收发器输入引脚并附加相应的中断。最后,软件将内置 LED 引脚设置为输出,然后启用中断。
loop() 函数包含监控电池电压所需的代码。我在这个模型中使用的锂聚合物电池没有低压切断保护,所以我让 Nano loop() 函数承担这个责任。在声明、初始化和计算各种电池电压参数后,会遇到十秒的延迟。延迟后,获取电池电压a/d
计数并将其与计算的截止 a/d
计数进行比较。如果电池电压低于截止电压,Nano 将进入睡眠状态。
最后是两个中断服务程序,InterruptServiceInfraredTransceiver1()
和 InterruptServiceInfraredTransceiver2()
,每一个都与一个红外收发器相关联。当滚珠轴承在红外收发器上滚动时,红外收发器收集器输出将变为低电平,从而导致调用该红外收发器的中断服务程序。延迟后,中断服务程序等待中断引脚的上升沿,然后确定是否对线圈进行脉冲。此时全局变量bLastInfraredTransceiverSensorInterrupt
将变为三个值之一;0、1 或 2。如果为 0,表示之前没有发生中断,表明模型刚刚通电,因此线圈将发出脉冲。如果为 1 且当前中断服务程序为 1,或者如果 2 并且当前的中断服务程序是 2,那么中断服务程序就是上一个轴承滚动上坡时的中断服务程序。同一中断服务程序中的第二个连续中断表明滚珠轴承正在下坡滚动,因此线圈将产生脉冲。无论线圈是否有脉冲,软件都会在bLastInfraredTransceiverSensorInterrupt
中记录中断服务传感器编号,为下一次中断做准备。
附件
-
MarblevatorCradle.ino
第五步:滚珠轴承行程调整。
该软件包括设置为 1600 微秒(1.6 毫秒)的常量COIL_ON_MICROSECONDS
。根据滚珠轴承导轨的打磨和抛光程度,如果滚珠轴承移动太远(例如与轨道端盖碰撞),则可能需要减小该值,如果滚珠轴承移动不够远,则可能需要增加该值。我执行以下步骤调整 COIL_ON_MICROSECONDS
的值:
- 将轨道和安装组件放在一个小虎钳中并检查水平,如果不水平,我将其调平。
- 将 Nano 连接到我电脑上的 USB 端口,将软件下载到 Nano,然后断开 USB 电缆。
- 将电池连接到组件 JST 连接器。
- 将滚珠轴承放在轨道的一端并松开。
- 监控滚珠轴承的运动。
- 如果需要调整行程,我拔下电池,将 USB 电缆连接到 Nano,将
COIL_ON_MICROSECONDS
的值从 100 更改为 150,将更改下载到 Nano,断开 USB 电缆,重新连接电池,然后根据需要重复。
如果 COIL_ON_MICROSECONDS
的值变得太大(超过 3.0 毫秒的 3000 微秒),我会再次抛光轨道,因为线圈可能会变得足够热以扭曲安装组件和/或轨道。我测量了原型模型在大约 2 华氏度(因此线圈温度为 74 华氏度)时的平均线圈温升超过环境室温(72 度)。
线圈脉冲宽度为 1.6ms,原型模型中的滚珠轴承在端盖到端盖之间滚动,最大电流消耗为 112mAh(线圈脉冲期间),最小电流消耗为 10mAh(放置前滚珠轴承),平均电流消耗为 25mAh(运行 30 分钟后)。
第 6 步:总装。
对于最终装配,在滚珠轴承行程调整后。我执行了以下步骤:
-
拔下电池。
-
使用 Velcro 将电池连接到“Base.stl”。
-
卸下将轨道固定到安装组件的螺栓。
-
小心地从轨道插座上取下 TCRT5000 组件。
-
将安装组件放入“Case.stl”中,使 TCRT5000 组件退出机箱顶部的轨道槽。
-
小心地将 TCRT5000 组件完全插入轨道插座。
-
用两个螺栓将轨道固定到安装组件和外壳上。
-
插上电池。
-
将底座组件压入外壳组件中。
-
从轨道的一端松开滚珠轴承。
这就是我 3D 打印、焊接、调整和组装“Marblevator, Perpetual?, Cradle”的方式。