电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>触摸井字游戏开源分享

触摸井字游戏开源分享

2022-10-28 | zip | 0.39 MB | 次下载 | 免费

资料介绍

描述

不久前,我构建了我的Touch-A-Mole游戏,它是 Whack-A-Mole 游戏的一个版本,它使用 4x4 电容式触摸板,每个触摸板的中间都装有 LED在构建它时,我想如果我用双色 LED 代替单色 LED,我可以把它变成井字游戏的一个版本。

Touch Tic-Tac-Toe 游戏演示

设计

我选择使用 ATtiny3216 微处理器作为游戏的大脑。它有足够的引脚来控制 LED、按钮和扬声器。它可以以 20MHz 运行,具有 32k 的闪存和 2k 的 RAM

pYYBAGNYulCAJ4RsAARJXB6vi8Q704.png
示意图
 

双色 LED 是共阴极,阳极成列连接,并通过限流电阻连接到 ATtiny3216 上的引脚。阴极成排连接,由 ATtiny3216 控制的晶体管启用。

4x4 电容式触摸开关面板由两条信号线控制。虽然 PCB 有时会标记这些引脚 SCL 和 SDA,但它不使用 I2C 协议。它们实际上只是时钟引脚和数据引脚,它们使用专有的两线协议。

我设计了一个 PCB 来固定 LED 和表面贴装组件。如果您希望将电路板商业化或您可以自己制作,则已包含 Eagle 文件。我用碳粉的方法来制作我的。

pYYBAGNYulWACInrAAR-BbxDVHA528.jpg
PCB 可容纳 16 个 LED 并安装在 XC4602 触摸按键模块下方
 

建造

首先添加 SMD 组件。我发现在焊接 SMD 元件时使用焊膏比使用卷盘中的焊料更容易。

如果您的电路板是单面的,请添加链接。

poYBAGNYulmAKzY7AAHt2H8EHAM291.jpg
添加 SMD 组件和链接
 

在触摸板上的 3/6 引脚之间连接一个链接,以启用所有 16 个触摸板。

poYBAGNYulyAdodtAACQQOdK01g225.jpg
添加链接以启用所有 16 个触摸板
 

小心地在每个触摸板中间为 LED 钻一个 2.5 毫米的孔。当心 PAD 5。有一条轨道非常靠近打击垫底面的中心如果你打破它(我在我的构建中做了),你需要刮掉孔两侧的抗蚀剂并焊接一些镀锡铜线以绕过孔。

pYYBAGNYul-AW6gAAAHXcoaYvcQ591.jpg
添加 USB 插座、LED 和扬声器
 

当我建造我的时,我先添加了 LED,然后在焊接所有组件后添加了垫片。我建议您先打印并添加垫片,然后将它们粘到 PCB 上。插入 LED(确保它们的方向正确),但不要焊接它们。将触摸板放在垫片上并向下推每个 LED,使它们位于各自孔的中间,并且在将它们焊接到位之前硬靠在触摸板上。

poYBAGNYumOAa9F2AALUnvQzpE8016.jpg
将垫片粘到 PCB 上,将触摸矩阵线粘到 PCB 上
 

添加连接两块板的四根镀锡铜线(VCC、GND、SCL、SDO)。

3D 打印保险杠并将组件添加到其中。

最后使用 UPDI 程序员上传代码(见下一节)。

pYYBAGNYumaATOqCAAGzc5A39A0139.jpg
将程序集添加到保险杠并上传代码
 

编程

ATtiny3216 是新一代 ATtiny 微处理器的一部分。与 ATtiny85 等早期系列不同,新品种使用 RESET 引脚对 CPU 进行编程。要对其进行编程,您需要一个 UPDI 程序员。我用 Arduino Nano 做了一个。您可以在Create Your Own UPDI Programmer中找到完整的构建说明。它还包含将megaTinyCore板添加到 IDE 的说明。

USB 插座为游戏提供电源 (5V)。ATtiny3216 处理器的 UPDI 引脚连接到 USB 插座上的 D+ 引脚。这允许使用定制电缆对 ATtiny3216 进行编程。USB Mini 插头可在 eBay 上买到,或者您可以剪断旧的 USB Mini 电缆。

pYYBAGNYummAVJnlAABeDUl3iRM501.jpg
用于我的自制 UPDI 编程器的 USB-Mini 连接器电缆
 

玩游戏

通电后,计算机将迈出第一步。所有后续游戏,而单位保留权力将假定玩家首先开始。

poYBAGNYumuALJRWAABFGm6oO34699.png
4x4井字游戏规则
 

该软件

当计算机需要移动时,它会尝试每个可用的方格并评估移动的结果。为此,对于它测试的每个方格,它必须测试用户可以做出的每一个可能的移动并评估这些移动中的每一个。这个过程以递归方式继续,直到棋盘满了,没有赢家,或者玩家赢了,或者电脑赢了。这意味着要评估的测试总数(假设计算机启动)为 16!或大约 21 万亿个排列。显然,使用 20MHz 处理器,这将需要很长时间。同样在 4x4 游戏中,计算机在评估每一步棋时需要测试 19 种获胜组合。

为了使游戏具有可玩性,它看起来只有 3 到 4 步。它有点松散,因为如果它发现它不可能获胜的情况,它基本上会认输并选择任何可用的方格。

在 Game.h 中有以下几行:

//Comment out for 4x4 tic-tac-toe
//#define _3X3
//Comment out to store winning table in RAM (reduces CPU cyles in evaulation function)
//#define WINNING_MOVES_IN_RAM
//Comment out to use C version of evaluateBoard function
//#define EVAL_IN_ASSEMBLER

取消注释 #define _3X3 行会将游戏配置为仅使用左上角的 9 个触摸板。您无法击败 3x3 游戏,因为它可以预见到游戏结束。你能做的最好的就是平局。

取消注释 #define WINNING_MOVES_IN_RAM 会将获胜组合表放入 RAM 而不是闪存中。RAM 比闪存快,但由于只有 2K 可用 RAM,由于递归游戏评估,堆栈确实需要它。

不要取消注释#define EVAL_IN_ASSEMBLER。我试图看看我可以加快评估板功能的速度。任何速度增加都不明显。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费