我想创建 Magic 8 Ball 的数字版本...
它的主体是 3D 打印的,显示器已经从蓝色染料的多面体变成了由编程到 Arduino NANO 中的随机数发生器控制的小型 OLED。我还包含了仅显示建议的精简代码。一切都在第 10 步中揭示。
我在 Solidworks 中创建了 100mm 空心球体
我不想沿着球体的赤道有任何接缝,所以顶部和底部部分被切掉,在顶部留下一个 50 毫米的孔,在底部留下一个 56 毫米的孔。
因为我不想让任何紧固件露出来,所以我在底部孔的外侧做了一个 57 毫米的切口,深度为 1 毫米,并添加了两个直径为 4 毫米的杆,它们正好垂直于大约 4 毫米长的孔中。
通过反转顶部孔的初始切割部分来模拟顶部孔塞。在插头的内部曲线上添加了一个额外的 2mm 环,然后整个东西就变得坚固了。
我从顶部画了一个大数字 8,这个轮廓是从顶盖上剪下来的。这反过来又被用来创造一个数字 8 的作品。
这部分包含所有电子设备和内部工作原理。它还旨在成为更换电池的接入点。
我不想在这上面看到任何紧固件,所以我把开口变成了一个螺丝,它转动了大约 36 度并锁定到位。
部件中间有一个直径约为 1 英寸的端口,可以查看建议。
端口内侧是一个方形切口区域,用于容纳 2 毫米厚的塑料或玻璃片。
该窗口用于该玩具的所有尺寸。
还需要两个 electronicsBrace 部件和一个 ElectronicsTray 和 nanoTray。
球和号码使用 ABS 黑色印刷。而顶盖是使用 ABS natural 印刷的。我试过 ABS 白色,但它看起来太鲜明了。
数字 8 压入顶盖。
顶盖足够小,可以通过底部开口进入球内。
这是一种摩擦配合,但它也用 ABS 粘合剂固定到位。
我有点担心将所有零件都装进去,所以我继续制作了另一个,这次它的直径为 120 毫米。
我移除了 3D 模型的顶部切口,并在天然 ABS 中打印了两个球体,然后在蓝色 ABS 中打印了窗口访问端口。
当直视它时,它给出了一个合理的眼球传真。
我比原来的 8Ball 更喜欢这个版本。
第 5 步:电子产品
空间和外观一样是一种限制。
不得有任何外部突出物或妨碍美观的东西。
玩具通电并通过动作与之互动。
玩具在倒置之前处于关闭状态。
我没有使用按钮开关,而是使用了倾斜开关。
以前我使用 MOSFET来控制微控制器的电源。然而,这并不理想,因为它允许少量电流持续为微控制器供电,从而在大约一个月左右的时间内耗尽电池。
在这种情况下,我使用了一个小型继电器,就像我在我的cryptex USB 驱动器项目中使用的那样。
随附的示意图显示了使硬件工作所需的接线。
继电器。我使用 6V 线圈,因为电池电压为 6V,这需要一个从简单的 NPN 晶体管切换的继电器驱动电路。
来自亚马逊的Waveshare 128 X 128 OLED模块。
该模块是 SSD1327 类型,并且有一个非常强大的代码库用于这些 LCD。
最初尝试使用此代码导致失败,因为内存使用量太大。
一个简单的解决方法是使用制造商提供的精简代码。
我删掉了大部分示例并使用原始代码片段来显示所需的信息。
该程序的工作原理如下:
静止的球处于断电状态。
倒球看窗是原来的通电状态。
一旦 Arduino 启动并显示指令“Ask Your Question Then Invert”。程序通过程控继电器接管并为Arduino供电。
指令一直可见,直到玩具被翻转过来,倾斜开关关闭,程序进入思考模式。读数显示“正在思考...”,因此您知道它仍然处于活动状态。
然后再次将球倒转,使窗户直立。
此操作由打开的机械倾斜开关读取,程序将在窗口朝向顶部的一秒钟内生成随机响应。
在将玩具球面朝上之前,该信息一直可见。
这个过程一直持续到球被放置在窗户朝下超过 16 秒,此时程序将停用继电器并关闭电源。
这个程序的重要说明在 random(); 功能。
我遇到了出现相同响应的问题,我什至同时在两个设备上进行了测试,发现是的,它们是相同的。
使用 randomSeed(analogRead(0)) 至关重要;常规。可以在此处找到对此的解释:
该组件有五个印刷部件,它们组成了窗口、电池座和盖子。
第一个是支持 OLED 的可见组件,第二个是连接到窗口 VIA 支架的电池和控制器载体。
我用一小块切割玻璃做窗户。这是用氰基粘合剂粘合到位的。我在一侧有一些带有粘合剂的挡风雨条泡沫,将其切成小条并放置在窗户组件内侧的玻璃周围。
窗口周围有 4 个螺丝孔。这些是我选择的模块的间隔。它们使用烙铁安装了4-40 个热固插件。
模块就位后,使用 1/4 英寸的支架将其固定。
当组件到达时我很幸运,电池座刚好放在开口内,这意味着我不必将它垂直放置。这意味着较小尺寸的球可以正常工作。
电子设备舱的底部装有电池座,并有 2 个切口,一个用于继电器,一个用于倾斜开关。
盖子有 3 个部件,可以扣在一起并牢固地固定电池,并提供一个平面来连接 NANO 模块。
然后将这 2 个部件拧到 OLD 模块背面的 4 个支架上。
慎用!我最终用水银开关代替了倾斜开关。这产生了更可靠的操作。
完成后的窗户组件将非常紧密地穿过球底部的切口。
将最终窗口组件安装到球中时,可能会有一些干扰
如果发生这种情况,则可能需要如图所示修剪球中窗口支撑的内唇。
这些是直径 120mm 的大型球锉
我已经完成了精简代码,所以这个球与原来的球有相似的操作。
现在当你把它翻过来时,程序启动并显示建议大约需要 4 秒。
这种类型的操作也可以通过更简单的硬件构建来实现。
可以消除电路的所有功率部分,并且根本不需要数字驱动 D2。
倾斜开关可以为开关晶体管供电,为电路板上的原始电源输入供电。
我将组件留在原地以进行此更改。
如果更改电路,则可以从程序中删除 powPin 的程序声明以及与此相关的所有后续部分。
如果构建了原始电路并且您想使用无电源代码。当倾斜开关打开微控制器的电源时,它应该仍然可以工作。
在这种模式下,程序启动和显示建议总是需要大约 4 秒的时间。
通过移除输入引脚,可以进一步简化它。我还没有测试过这种模式,但它应该是一样的。请务必从程序中删除任何对读取输入的引用。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !