By thediylife in Circuits

保险箱
保险箱
保险箱

我将向您展示如何构建自己的密码游戏,在该游戏中,您将使用旋转编码器拨盘猜测随机生成的代码密码已破解保险箱。保险柜的前面有8个LED指示灯,可以告诉您,您猜对了多少位数字以及正确位置的数字。

保险柜最初是打开的,可让您将某些物品放入内部隔间。Arduino和电池位于背面的单独隔间中。然后,您按下转盘以锁定保险柜,这是通过门内的伺服器完成的。然后,您需要通过转动拨盘选择数字并按下拨盘以确认每个数字来输入代码。选择第四个数字后,保险柜会使用门上的红色和绿色LED来显示正确的数字以及正确位置的数字。

红色LED指示正确的数字,绿色LED显示正确的位置。因此,您需要点亮所有四个红色和绿色的LED才能破解密码并打开保险柜。

保险柜会跟踪您为破解代码而进行的猜测的次数,一旦设法破解了,就会显示出来。乍一看听起来很复杂,但实际上并不那么困难,您只需要记住并基于您先前的猜测即可。大多数时候,您应该能够在5到10个猜测中破解代码,具体取决于您最初的猜测有多幸运。

耗材:

  • Arduino Uno
  • I2C OLED显示屏
  • 按钮编码器
  • 4 x 5mm红色LED
  • 4 x 5mm绿色LED
  • 8 x220Ω电阻器
  • 微型伺服器
  • 带状电缆
  • 杜邦线
  • 电源开关
  • 3mm MDF薄板

您还需要一些基本工具,木胶,胶枪和烙铁。

保险箱的零件需要用到激光切割机。

步骤1:组装盒子

保险箱

文末附设计图,可能须根据实际使用材料种类及尺寸进行修改后才可使用。

保险箱
保险箱
保险箱

该保险箱是从3mm MDF切割而成的。如果需要,您也可以从3mm的丙烯酸或胶合板上切割零件。如果使用其他厚度的材料,则需要调整盒子组件中的插槽,以使它们正确地装配在一起。

盒子的外部有6个面板,后面板和前面板的前部和后部都有切口。表盘还使用一些激光切割件制成,然后将其粘合在一起。

盒子的顶部和两侧贴有三块装饰面板,使盒子看起来更像保险箱。还有两个组成门的面板和一个分隔面板,该分隔面板进入箱子的中间,以将保险柜和电子柜分开。

我首先将装饰面板粘贴到顶部和侧面。确保以正确的顺序拿到零件,以便知道哪个是哪个。一共有三个不同的部分,顶部和底部是相同的,侧面是相同的,正面和背面是相同的。面板干燥后,即可组装盒子。

确保中央分隔线的切口在侧面。这些用于将任何电线从包装盒的正面连接到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进行编程

保险箱
保险箱

我们首先导入库来控制OLED显示屏和伺服系统。然后,我们为显示设置参数并创建所有变量。有许多变量专用于跟踪编码器旋转,因为这些变量是通过引脚2和3的上升沿中断来完成的。

创建了两个代码数组,一个用于存储随机生成的代码,另一个用于存储用户当前的猜测。

在设置功能中,我们启动显示器,连接伺服器,设置IO引脚模式,然后在显示器上显示Crack the Code文本动画。

循环功能使LED闪烁并显示消息推送以锁定保险箱,然后等待用户按下拨盘开始游戏。游戏结束时将运行相同的代码,然后显示尝试次数并等待拨号以开始新游戏。

编码器按钮上有一些反跳代码,一旦按下,伺服将锁定保险箱,并生成一个随机代码。然后,代码会调用一个函数,要求用户输入他们的猜测,然后再调用另一个函数来检查猜测,重复此过程,直到用户正确猜测代码为止。

有一个更新显示的代码的功能,每次转动编码器并且需要更改显示的代码时都会调用该功能。

生成新代码的功能只需为代码数组中的四个元素中的每个元素分配一个随机数字。

输入代码猜测的功能允许用户使用编码器选择一个数字,然后通过向下按下编码器确认每个数字输入。然后,校验码猜测功能将检查猜测的代码,并确定多少个数字正确,以及多少个数字在正确的位置。

更新LED功能可根据用户的猜测切换正确数量的红色和绿色LED。启动ani函数在启动时显示“破解代码”动画。最后,两个中断功能管理来自编码器的输入,一个中断功能顺时针旋转使数字向上递增,而当逆时针旋转时使数字向下递增。

步骤4:玩破解代码游戏

保险箱
保险箱

学习如何玩游戏的最佳方法是在开始时观看视频,其中有两个在即将结束时正在玩游戏的示例。

保险箱最初是解锁的,可让您在其中放入一些物品。然后,您按下转盘以锁定保险箱并生成新密码。

一旦选择了全部四个数字,就可以使用拨盘输入猜出的代码以递增数字,然后按下拨盘以转到下一个数字或确认代码。然后,前面的LED会亮起,以告诉我们我们的猜测是正确的。

您可以使用此反馈进行下一个猜测,直到您能够猜出正确的代码并再次打开保险柜为止。输入正确的密码后,保险箱将解锁,并显示您破解密码的尝试次数。

            

下载设计图

注:本文经翻译并转载,

可能部分翻译有误,请谅解。

来源:https://www.instructables.com/

进群交流
进群交流
报价咨询
报价咨询
技术支持
技术支持
返回顶部