破解游戏代码,基于Arduino的益智盒

19684年

220

18

游戏介绍:破解代码,基于Arduino的益智盒

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

保险柜最初是打开的,你可以把东西放进里面的隔间里。Arduino和电池被安置在后面一个单独的隔间里。然后你按旋钮锁定保险箱,这是通过在门里面的伺服来完成的。然后您需要通过转动拨盘来选择数字并按拨盘来确认每个数字来输入代码。当你的第四个数字被选中后,保险柜会用门上的红色和绿色led灯显示你的数字有多少是正确的,有多少是在正确的位置。

红色LED表示正确的数字,绿色LED表示数字也在正确的位置。所以你需要点亮所有的红色和绿色led来破解密码,打开保险箱。

保险箱会记录你为了破解密码所做的猜测,一旦你成功破解了密码就会显示出来。一开始可能听起来很复杂,但实际上并没有那么难,你只需要记住并建立在你之前的猜测之上。大多数情况下,您应该能够在5到10次猜测中破解密码,这取决于您最初猜测的幸运程度。

如果你喜欢这个说明,请考虑在Arduino比赛中投票。

供应:

为了建立这个破解密码保险箱,你需要:

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

保险箱的零件需要激光切割。如果你没有激光切割机,考虑使用在线激光切割服务,他们已经变得相当便宜,将切割和运送组件到你的门。

这是激光切割机,我使用在Instructable -K40激光切割机

老师的笔记

老师!你在课堂上用过这本小册子吗?
添加一个老师笔记来分享你是如何将它融入到你的课程中的。

第一步:组装盒子

我用Inkscape设计了保险箱,从3毫米的中密度纤维板上切割。如果你愿意,你也可以用3mm的丙烯酸或胶合板来切割零件。如果你使用不同厚度的材料,那么你需要调整槽在盒子组件,使他们正确地结合在一起。

你可以下载激光切割文件

有6个面板,构成了外面的盒子,背面和正面有剪纸在他们为前面和后门。在打印文件中对面板进行了标记,以便您可以跟踪它们。

表盘也使用一些激光切割片,然后粘在一起。

盒子的顶部和两侧有三个装饰面板,使它看起来更像一个保险箱。也有两个面板,构成门和分隔面板,进入中间的盒子,以分开安全隔间和电子隔间。

如果你的激光切割机不够大,不能一次切下所有的碎片,这些碎片可以被分割成更小的碎片。

我一开始把装饰面板粘在顶部和侧面。确保你把每一块都按正确的顺序排列好,这样你就知道哪些是哪些了。有三个不同的部分,顶部和底部是相同的,侧面是相同的,正面和背面是相同的。

一旦面板干了,你就可以组装盒子了。

确保中心分隔线的裁剪在两边。这些装置将把所有电线从盒子前面连接到盒子后面,Arduino和电池就放在那里。

铰链也激光切割,只是粘合到位,一旦你已经排好门。确保它们与门平行,否则你很难打开它。你也可能需要沙子的内部铰链的门的边缘,以便它不会摩擦的边缘上的盒子,因为它移动过去。

用胶水把四个方块粘在背板后面的角落里,这样就可以把螺丝固定在后盖上了。

然后就可以钻出螺丝的孔,开始安装屏幕、Arduino、后盖,最后安装编码器。

步骤2:连接电子设备

我用Tinkercad电路在一个面包板上设计了电路,然后添加到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引脚模式,然后在显示器上显示破解代码的文字动画。

循环功能闪烁的led和显示的信息,推动锁定保险箱,然后等待,直到用户推动拨号开始游戏。同样的代码在游戏结束时运行,然后显示尝试的次数,并等待按下拨号盘开始新游戏。

编码器按钮上有一些解密代码,一旦被推,伺服锁保险箱和随机代码产生。然后代码调用一个函数来要求用户输入他们的猜测,然后调用另一个函数来检查猜测,这样重复直到用户正确地猜测代码。

有一个函数来更新正在显示的代码,这是调用每次编码器是转身和显示的代码需要改变。

生成新代码的函数只向代码数组中的每个元素分配一个随机数字。

输入猜测码的功能允许用户使用编码器选择一个数字,然后按下编码器确认每个数字的输入。

check code guess函数然后查看猜测的代码,并决定有多少位数字是正确的,有多少位在正确的位置。

更新led功能开关正确的数量的红色和绿色led基于用户的猜测。

启动ani函数在启动时显示破解代码动画。

最后,两个中断函数管理来自编码器的输入,一个是顺时针向上递增数字,另一个是逆时针向下递增数字。

第四步:玩破解密码游戏

学习如何玩这个游戏的最好方法是看一开始的视频,这里有两个游戏接近尾声的例子。

保险箱一开始是不锁的,你可以把东西放进去。

然后按拨盘锁定保险箱并生成新密码。

猜测的代码是通过拨号盘来输入的,以增加数字,然后在拨号盘上按下按钮以转到下一个数字,或者在四个数字都选择好后确认代码。

然后,前面的led灯就会亮起来,告诉我们什么是正确的猜测。

然后您使用这个反馈来进行下一次猜测,直到您能够猜出正确的密码并再次打开保险柜。一旦你输入了正确的密码,保险箱就会解锁,你破解密码的次数就会显示出来。

享受建立自己的破解密码保险箱。如果您喜欢这个说明,请考虑在Arduino比赛中投票。

Arduino比赛2020

这是。中的一个条目
Arduino比赛2020

第一个分享

    建议

    • 后院的比赛

      后院的比赛
    • 傻帽速度挑战

      傻帽速度挑战
    • Arduino比赛2020

      Arduino比赛2020

    18岁的讨论

    0
    DAColee

    问题10日前于步骤4

    你是否有一个文件可以转换为3D打印。我没有激光切割机,也无法使用。

    谢谢!

    0
    thediylife

    10天前回覆

    你不能真正转换激光切割文件到3D打印,因为它是在2D做的。我也会去画一个保险箱的3D模型。

    0
    Kuchbert

    10天前

    完美的地理定位^^做得好!

    0
    endofsilence

    17天前

    你好,首先,做得很好。但你为什么一开始就打开盒子?我怎样才能让盒子关闭,直到4位数字是正确的?谢谢你!

    0
    thediylife

    17天前回覆

    嗨Endofsilence,
    我希望保险箱在游戏之间打开,并在你按下按钮开始新游戏时锁定。你可以只是移动伺服运动代码在循环的开始到循环的结束,如果你想它开始锁定。

    0
    endofsilence

    15天前回覆

    你好,谢谢你的回复。我尝试了好几种方法,但是没有任何东西可以在游戏开始时关闭。我想这超出了我的知识范围。我会试着在网上寻求帮助。谢谢你分享你的伟大工作。

    0
    stutzmaster

    16天前

    首先,我认为这不是10年前的事

    0
    miritz

    问题18日前步骤4

    文件在哪里(INO, STL ?)

    0
    fred_dot_u

    18天前

    我也希望下载文件。这是一个很棒的项目。

    0
    steviestickers

    问题18天前

    太棒了,会喜欢做这个,但找不到激光切割文件?

    0
    pasky3366

    18天前

    好工作爱好者细节,打印文件在哪里?在pdf中他们没有链接?

    0
    daniel138

    18天前

    我缺少激光切割文件下载:/

    我瞎了吗?,)

    0
    procolorgraphics

    18天前

    我好像找不到盒子的剪切文件链接了…

    0
    Penolopy Bulnick

    19天前

    这看起来真的很有趣!我喜欢盒子的设计:)