谷动谷力

 找回密码
 立即注册
查看: 74|回复: 1
打印 上一主题 下一主题
收起左侧

【DIY制作】电子数字猜器

[复制链接]
跳转到指定楼层
楼主
发表于 2024-4-11 21:21:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
【DIY制作】电子数字猜器
70 年代著名游戏的便携式电子版本,您必须解码由对手组成的 4 色代码(从 6 种不同的颜色中选择),每次尝试时,对手都会指示正确位置的正确颜色数量和错误位置的正确颜色数量。通过这些辅助工具,玩家更接近解决方案。可用的尝试次数是预先确定的,在那些没有猜对之后,你输了,相反,你赢了。多年来,他们制作了各种版本,使用更复杂的代码或数字而不是颜色,我的版本使用数字。

我用Arduino创建的代码遵循以下规则:
在每次开始时,游戏都会生成一个随机的三位数数字,通过“A”键,最多可以更改 6 位数字,每按一次“A”键,它就会增加一位数字,最多 6 位,然后返回 3(假设循环)。
一旦您选择了密码的复杂性,您就可以输入第一次尝试,如果您在输入时出错,则必须使用“B”键进行确认,在使用“B”确认之前,您可以删除带有“C”键的数字,然后键入所需的数字。确认尝试后,屏幕上将显示尝试代码的反馈(类似于 70 年代制作的电子版“Invicta Electronic Master Mind”),即出现 2 位数字:“FLAG”下方左侧的第一个数字将表示在正确位置猜到的数字数量,而“X”下方右侧的数字将表示正确数字的数量,但位置错误。
ES中。
我选择用三位数的代码来玩
生成的我们不知道的密码:951
尝试 123,反馈 01(猜中了数字 (1),但位置不正确)
尝试 456,反馈 10(猜到的数字,在正确的位置 (5))
尝试 789,反馈 01(猜到了一个数字 (9),但不在正确的位置)
尝试 159,反馈 12(一个数字在正确的地方猜到(5),两个猜到但在错误的地方(1 和 9)
尝试 195,反馈 03(数字都在那里 (1-9-5),但它们都在错误的地方)
尝试 951,反馈 30(数字现在都在正确的位置,你赢了!
游戏会考虑并记住玩家使用多少次尝试来达成解决方案。

所以玩的关键是:
“A” 循环更改密码的长度(从 3 到 6)。
“0 到 9”密码选择。
“B”确认要尝试的代码。
“C” 用作 BackSpace 键,用于更正不需要的条目。
“D”离开游戏,显示当前密码(未猜到),以及在此之前使用的尝试次数。
" * 显示每个代码长度(3-4-5 或 6)的“评分”记录,记录在屏幕上保留几秒钟。(它们存储在EEPROM中)。
一旦您猜出代码然后赢得游戏,就会显示密码和使用的尝试次数。
要从不可播放状态(例如初始屏幕或获胜摘要)继续,请按任意键。
它包含一个 1602 I2C 显示屏和一个带 USB-Micro 端口的 Ardunio Nano。键盘是 4X4 薄膜。
游戏使用 3 节 AA 电池运行。我故意不想用可充电锂电池做充电电路,首先是为了保持我所能保持的复古精神,然后考虑到消耗没有多大意义。
但是,让我们看看您需要什么以及如何制作它......


70 年代著名游戏的便携式电子版本,需要解码对手组成的 4 色代码(从 6 种不同的颜色中选择),每次尝试时,对手都会指示正确位置的正确颜色数量和错误位置的正确颜色数量。通过这些辅助工具,玩家更接近解决方案。可用的尝试次数是预先确定的,如果你通过了这些尝试而没有猜到你输了,相反你赢了。多年来,他们制作了各种版本,使用更复杂的代码或数字而不是颜色,我的版本使用数字。
我使用Arduino创建的代码遵循以下规则:
在每次开始时,游戏都会生成一个随机的三位数数字,使用“A”键,可以将其更改为最多6位数字;每次按下“A”键时,它都会增加一位数字,最多达到 6,然后返回到 3(假设循环)。
一旦您选择了密码的复杂性,您就可以输入第一次尝试,必须用“B”键确认;如果输入错误,在使用“B”确认之前,您可以删除带有“C”键的数字,然后键入所需的数字。一旦确认尝试,屏幕上将显示尝试代码的反馈(类似于 1970 年代也生产的电子版“Invicta Electronic Master Mind”),即会出现 2 位数字:“FLAG”下方左侧的第一个数字将指示在正确位置猜到的数字数量, 而“X”下方右侧的数字将表示正确数字的数量,但位置错误。
例如。
我选择用三位数的代码来玩
生成的密码,我们不知道:951
尝试 123,反馈 01(猜到了一个数字 (1),但不在正确的位置)
尝试 456,反馈 10(猜到的数字并在正确的位置 (5))
尝试 789,反馈 01(一个猜测的数字 (9),但不在正确的位置)
尝试 159,反馈 12(一个数字猜到并在正确的位置 (5),两个猜到但在错误的位置(1 和 9)
尝试 195,反馈 03(数字都在那里 (1-9-5),但它们都在错误的地方)
尝试 951,反馈 30(数字现在都在正确的地方,你赢了!
游戏会考虑并记住玩家需要多少次尝试才能找到解决方案。

所以玩的关键是:
“A” 循环修改密码的长度(从 3 到 6)。
“0 到 9”密码数字。
“B” 确认要尝试的代码。
“C”的工作方式类似于BackSpace键,用于更正不需要的条目。
“D”退出游戏,显示当前密码(未猜到)以及在此之前所做的尝试。
“ * ” 显示每个代码长度(3-4-5 或 6)的“分数”记录,记录在屏幕上保留几秒钟。(它们存储在 EEPROM 中)。

一旦您猜到了代码并因此赢得了游戏,就会显示密码和尝试次数。
要从不可播放状态(例如初始屏幕或胜利摘要)继续,请按任意键。
包含一个 I2C 1602 显示器和一个带 USB-Micro 端口的 Ardunio Nano。键盘是 4X4 薄膜。
游戏使用 3 节 AA 电池运行。我故意不想用可充电锂电池创建充电电路,首先是为了尽可能地保持复古精神,然后考虑到消耗没有多大意义。

但是,让我们看看需要什么以及如何实现它......

所需材料



MT3608 升压转换器  (x1 )可选但推荐...可选但推荐...

虽然即使在 4.5V 电压下,整个事情似乎也能正常工作,但显示屏在 5V 时呈现得更多,所以我添加了一个 5V 稳压的升压电源。我本可以使用 4 节电池并解决这个问题,但它会增加占地面积,老实说它已经足够大了。

虽然在4.5V电压下一切似乎都很好,但显示器在5V电压下表现更好,所以我添加了一个5V稳压的升压电源。我本可以使用 4 节电池并解决这个问题,但它会增加体积,老实说它已经很大了。

老实说,我使用了 Arduino Nano 包装盒中的 15 个引脚(按尺寸切割)

M2 自攻螺钉 (x若干)  我用过这些,但它们也很好。

所需工具
烙铁
焊工

制作步骤

第 1 步:设计电路图
在图片中,所有组件的连接图和实际组件。
将 8 根电缆焊接到 8 针梳子上,然后焊接到 Arduino Nano(从 D2 到 D9)上(注意正确的顺序),检查几次,如果你错了,没有什么会爆炸,但没有什么可以正常工作。如果键盘出现故障,可能是您已经将连接器从里到外插入,请尝试将其翻转过来。
还要按照说明将显示器连接到 Nano。(SDA>A4 / SCL>A5 / GND>GND / VCC>VIN)
在任何情况下,您都可以在将组件插入零件之前连接所有组件。
隔离未覆盖的斑点以避免出现问题。

在图像中,所有组件和实际组件的连接图。
将 8 根电缆焊接到 8 针梳子上,然后焊接到 Arduino Nano(从 D2 到 D9)上,尊重图(注意正确的顺序),检查几次,如果犯了错误,没有什么会爆炸,但没有什么可以正常工作。如果键盘工作不正常,则可能是您向后插入了连接器,请尝试转动它。
同时按照指示将显示器连接到 Nano。 (SDA>A4 / SCL>A5 / GND>GND / VCC>VIN)
在任何情况下,您都可以在将组件插入零件之前将所有东西连接起来。
隔离暴露点以避免出现问题。

第 2 步:打印零件
另外 3 张图片

零件可以用PLA打印成你想要的颜色,让你的想象力尽情发挥。

在图片中,您可以清楚地看到我如何将它们相对于打印床进行定位。层可以很容易地保持在经典的0.2mm,记得激活支撑。鉴于电池盖关闭杆的脆弱性,在使用之前,我建议您在杠杆的曲线上贴上一条绝缘胶带,并将厚度的泡沫橡胶插入插槽中,在照片中它应该清晰可见。这是为了防止它在第一次使用时损坏。

无论如何,如果您熟悉CAD并想反击,那么众所周知,一切都可以改进。因此,如果您想重新设计它,请自己看看。我认为,其他两部分已经到位。

零件可以用PLA打印成您想要的颜色,随心所欲。

在图像中,您可以清楚地看到我如何将它们相对于打印床进行定位。该层可以很容易地保持在经典的0.2mm,记得激活支撑。鉴于电池盖闭合杆的脆弱性,在使用之前,我建议在杆的曲线上贴上一条绝缘胶带,并在插槽中插入一层泡沫橡胶,它应该在照片中清晰可见。这是为了避免在第一次使用它时损坏它。

无论如何,如果您熟悉 CAD 并想搞砸,众所周知,一切都可以改进。所以看看你是否想重新设计它。我认为其他两部分已经按原样到位。

附件
第 3 步:组装
另外 5 张图片

电池座在中央部分有两个固定孔,在这些孔下,键盘的扁平电缆将通过,然后必须制作新孔,快速操作。在图片中,有在哪里钻孔的迹象。请记住对电池侧的孔进行锪孔埋头。

取下数字键盘贴纸的保护膜,将扁平电缆穿过前面的槽口后,将键盘定位如图所示。前面部分没问题,现在让我们转动零件以插入其余组件。

按照指示拧紧显示器,使用两颗 M2X5 螺丝,将控制杆穿过窗口,然后将机身压入到位,用烙铁尖端稍微变形 PLA 座椅以锁定它(或使用一滴热胶)。相同的过程也适用于Arduino Nano板。

弯曲键盘的扁平电缆并将其放在电池座下方,然后用四个 M2x5 螺钉拧紧电池座。

如图所示定位升压,连接键盘连接器,然后小心使用电缆,用六个 M2x10 螺钉拧紧所有东西,用后盖关闭所有东西。拧紧不要过度。
我们可以在对Arduino进行编程后放置电池。

电池座在中央部分有两个固定孔,键盘的扁平电缆将从这些孔下方穿过,因此必须制作新孔,操作快速。在图像中,有钻孔位置的指示。请记住对电池侧的孔进行锪孔埋头。


从数字键盘贴纸上取下保护膜,将扁平电缆穿过正面的槽口后,将键盘放置在照片中。前部没问题,现在让我们转动零件以插入其余组件。
按照指示拧紧显示屏,使用两颗 M2X5 螺丝,将操纵杆穿过窗户,然后将机身压入到位,用烙铁尖端稍微变形 PLA 座椅以阻挡它(或使用一滴热胶)。相同的过程也适用于Arduino Nano板。

折叠键盘的扁平电缆并将其放在电池座下方,然后用四个 M2x5 螺丝拧紧电池座。

按照指示放置升压,连接键盘连接器,然后注意电缆,用后盖关闭所有东西,用六个 M2x10 螺钉拧紧所有东西。收紧不要夸张。
我们可以在对Arduino进行编程后放置电池。

第 4 步:Arduino 程序
要加载 .hex 代码,您只需要一根微型 USB 电缆,搜索并下载软件“AVRDUDESS”并将其设置为如图所示。

要重置 eeprom 内存以删除存在的任何记录,请先加载文件 (eeprom_eraser.hex),游戏显示屏将指示它已被删除。
您现在可以上传程序文件 (NanoMasterMind_v3.hex)。

如果一切顺利,在拔下 USB 插头并以正确的方式放置 3 节 AA 电池后,您应该可以让游戏正常工作。
对于任何错误,我提前道歉,英文版也是自动翻译的,所以会充满错误。
小时。。。关闭电池仓并享受。

最后,我声明,对于因本指南而对人或物造成的任何性质的损害,我概不负责。你可以自由地不遵循它。

要下载 .hex 代码,您只需要一根microUSB 数据线,搜索并下载“AVRDUDESS”软件并将其设置为如图所示。

要重置 eeprom 内存以消除存在的任何记录,请先加载文件 (eeprom_eraser.hex),游戏显示屏将指示删除。

此时,您可以加载程序文件 (NanoMasterMind_v3.hex)。

如果一切顺利,在拔下 USB 插头并正确插入 3 节 AA 电池后,您应该可以让游戏正常工作。

对于任何错误,我提前道歉,英文版也是自动翻译的,所以会充满错误。

现在。。。关闭电池仓并享受。

最后,我声明,对于本指南对人或物造成的任何性质的损害,我不承担任何责任。你可以自由地不跟着她。

附件
+10
回复

使用道具 举报

沙发
 楼主| 发表于 2024-4-11 22:05:03 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-4-30 03:12 , Processed in 0.095434 second(s), 43 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表