文章目录[隐藏]
简介:代码破解游戏-基于Arduino的Puzzle Box
在本项目中,我将向您展示如何构建自己的密码游戏,在该游戏中,您将使用旋转编码器拨盘将随机生成的代码猜测到保险箱中。保险箱的前面有8个LED指示灯,可以告诉您您猜对了多少位数字以及正确位置的数字。
保险柜最初是打开的,可让您将某些物品放入内部隔间。Arduino和电池位于背面的单独隔间中。然后,您可以按下转盘以锁定保险柜,这是通过门内侧的伺服器完成的。然后,您需要通过转动拨盘选择数字并按下拨盘以确认每个数字来输入代码。选择第四个数字后,保险箱会使用门上的红色和绿色LED来显示正确的数字以及正确位置的数字。
红色的LED指示正确的数字,绿色的LED指示也位于正确的位置。因此,您需要点亮所有四个红色和绿色的LED才能破解密码并打开保险柜。
保险柜会跟踪您为破解代码而进行的猜测的次数,一旦设法破解,就会显示出来。起初听起来可能很复杂,但实际上并不那么困难,您只需要记住并基于您先前的猜测即可。大多数时候,您应该能够在5到10个猜测中破解代码,具体取决于您最初的猜测有多幸运。
材料清单:
为了构建此Crack the Code保险箱,您需要:
- Arduino Uno-在这里购买
- I2C OLED显示屏–在这里购买
- 按钮编码器–在这里购买
- 4 x 5mm红色LED –在这里购买
- 4 x 5mm绿色LED –在这里购买
- 8 x220Ω电阻器–在这里购买
- 微型伺服器–在这里购买
- 带状电缆-在这里购买
- 标题条-在这里购买
- 电源开关-在这里购买
- 3mm MDF薄板-在这里购买
您还需要一些基本工具,木胶,胶枪和烙铁。
保险箱的零件需要进行激光切割。如果您无法使用激光切割机,请考虑使用在线激光切割服务,它们已经变得相当实惠,可以将零件切割并将其交付给您。
步骤1:组装盒子
我设计了Inkscape中的保险箱,该保险箱是从3mm MDF切割而成的。如果需要,您也可以从3mm的丙烯酸或胶合板上切割零件。如果使用其他厚度的材料,则需要调整盒子组件中的插槽,以使它们正确地装配在一起。
盒子的外部有6个面板,后面板和前面板的前部和后部都有切口。面板在打印文件中标有标签,以便您可以跟踪它们。
表盘还使用一些激光切割件制成,然后将其粘在一起。
盒子的顶部和两侧贴有三块装饰面板,使它看起来更像一个保险箱。还有两个组成门的面板和一个分隔面板,该分隔面板进入箱子的中间,以将保险柜和电子柜分开。
这些零件可放在400 x 500mm MDF的单个零件上,如果激光切割器的大小不足以一次切割所有零件,则可以将它们分成较小的零件。
我首先将装饰面板粘贴到顶部和侧面。确保按正确的顺序拿到零件,以便知道哪一个是正确的。一共有三个不同的部分,顶部和底部是相同的,侧面是相同的,正面和背面是相同的。
面板干燥后,即可组装盒子。
确保中央分隔线的切口在侧面。这些用于将任何电线从包装盒的正面连接到Arduino和电池所在的包装盒的背面。
铰链也经过激光切割,一旦您排好门,它们就被粘在适当的位置。确保它们与门平行,否则您将很难打开它。您可能还需要从门的内侧铰接边缘打一点点,以免在门经过时不会擦在盒子的边缘上。
将四个正方形粘合到后面板后面的角上,以打孔后盖的螺钉。
然后,您可以在螺钉上钻孔,然后开始安装屏幕,Arduino,后盖以及编码器。
步骤2:连接电子设备
我在Tinkercad Circuits的面包板上设计了该电路,然后在OLED显示器中添加了该电路。
我们有8个LED连接到数字IO引脚6到13。锁定伺服器连接到引脚5。编码器连接到引脚2、3和4,OLED显示器连接到Arduino的I2C接口。
我为每个LED使用220欧姆电阻,将其直接焊接到负极LED上,并使用彩色带状电缆将组件连接在一起,以保持布线整洁,并帮助跟踪需要连接到每个Arduino引脚的导线。
我将带状电缆推到后部隔间,并将一些引脚排针焊在带状电缆上,以插入Arduino。
我还在后盖上安装了电源开关,并将其连接至电池插头,以连接至可充电电池为游戏供电。如果需要,您也可以使用9V电池。
最后,您需要将锁定伺服系统朝门的边缘定位,以便它越过盒子中的唇部,并且臂部能够向上推抵唇部的内部以锁定盒子。这不是最强大的锁定机制,但它确实很简单,并且可以很好地满足游戏的目的。
步骤3:对Arduino进行编程
我将不再详细介绍代码,因为其中包含很多内容。我已经写了详细的文章,解释了它的每个部分,以及通过此链接下载的代码-Crack The Code Game Code。
总之; 我们首先导入库来控制OLED显示屏和伺服系统。
然后,我们为显示设置参数并创建所有变量。有许多变量专用于跟踪编码器旋转,因为这些变量是通过引脚2和3上的上升沿中断来完成的。
创建了两个代码数组,一个用于存储随机生成的代码,另一个用于存储用户当前的猜测。
在设置功能中,我们启动显示器,连接伺服,设置IO引脚模式,然后在显示器上显示Crack the Code文本动画。
循环功能使LED闪烁并显示消息推送以锁定保险箱,然后等待用户按下拨盘开始游戏。游戏结束时会运行相同的代码,然后显示尝试次数并等待拨号以开始新游戏。
编码器按钮上有一些反跳代码,一旦按下,伺服将锁定保险柜,并生成一个随机代码。然后,代码会调用一个函数,要求用户输入他们的猜测,然后再调用另一个函数来检查猜测,重复此过程,直到用户正确猜测代码为止。
有一个更新显示的代码的功能,每次转动编码器并且需要更改显示的代码时都会调用该功能。
生成新代码的功能只需将一个随机数字分配给代码数组中的四个元素中的每个元素。
输入代码猜测的功能允许用户使用编码器选择一个数字,然后通过向下按下编码器来确认每个数字输入。
然后,校验码猜测功能将检查猜测的代码,并确定多少个数字是正确的,以及多少个数字在正确的位置。
更新LED功能可根据用户的猜测切换正确数量的红色和绿色LED。
启动ani函数在启动时显示“破解代码”动画。
最后,两个中断功能管理来自编码器的输入,一个中断功能顺时针旋转使数字向上递增,而当逆时针旋转时使数字向下递增。
步骤4:玩破解代码游戏
学习如何玩游戏的最佳方法是在开始时观看视频,其中有两个在即将结束时正在玩游戏的示例。
保险柜最初是解锁的,可让您在其中放入一些物品。
然后,您按下转盘以锁定保险箱并生成新密码。
一旦选择了全部四个数字,就可以使用拨盘输入猜出的代码以递增数字,然后按下拨盘以转到下一个数字或确认代码。
然后,前面的LED会亮起,以告诉我们我们的猜测是正确的。
然后,您可以使用此反馈进行下一个猜测,直到您能够猜出正确的代码并再次打开保险柜为止。输入正确的密码后,保险箱将解锁,并显示您破解密码的尝试次数。
乐于构建自己的密码保险箱。
FAQ:
24条留言
/1个生命 (author)
抱歉,我忘了放激光切割文件和草图的链接。由于某些原因,当我编辑Instructable时更新没有通过,这里是:
激光切割文件-https://www.the-diy -life.com/crack-the-code-game-built-into-a-diy-safe-puzzle-box/#laserfiles
Arduino Sketch- https://www.the-diy-life.com/crack-the-code-game-built-into-a-diy-safe-puzzle-box/#laserfiles#arduinosketch
DAColee第4步
您是否碰巧有一个可以转换为3D打印的文件。我没有激光切割机,也没有激光切割机。
谢谢!
您是否也可以将可以转换为3D打印的文件发送给我?我没有激光切割机,也没有激光切割机,
谢谢!
非常适合寻宝^^做得好!
您好,第一笔非常棒的工作。但是,为什么要先将盒子解锁?我如何设法让盒子关闭直到4位数字是好数字?谢谢你。
我最喜欢的那个不是10岁的孩子
对不起,找不到链接。请更新
我找到的。观看完整视频。然后,您找到链接。
https://www.the-diy-life.com/crack-the-code-game-b ...
非常感谢:-)
米里兹第4步
文件在哪里(INO,STL?)
我也希望下载文件。这是一个很棒的项目。
问题 11个月前
很棒,很乐意做这个,但是找不到激光切割文件?
11个月前在第1步
请问您要共享激光切割的文件吗?
细节不错,打印文件在哪里?在PDF中,他们没有链接?
版权说明
破解代码游戏,基于Arduino的Puzzle Box
本文遵循CC BY-SA版权协议,转载请附上原文出处链接及本声明。
链接:https://chandianzi.cn/crack-the-code-game-arduino-based-puzzle-box.html
作者:thediylife
版权协议:CC BY-NC-SA
分类名称:arduino-10
资源标识:Crack-the-Code-Game-Arduino-Based-Puzzle-Box
暂无评论