电子发烧友App

硬声App

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

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

3天内不再提示
电子发烧友网>电子资料下载>电子资料>Arduino扫雷游戏开源分享

Arduino扫雷游戏开源分享

2022-11-10 | zip | 0.08 MB | 次下载 | 免费

资料介绍

描述

我们都喜欢那种怀念童年和青春期玩过的游戏的感觉。几个游戏机和电脑游戏标志着这个时代。伟大的游戏之一是 Windows 操作系统的扫雷,如图 1 所示。

在这个游戏中,我们的目标是选择一个没有炸弹的位置。否则,我们输掉了比赛。

因此,我们在考虑这款游戏的概念时,我们创建了这个项目,目的是带回一款众所周知的游戏:雷区。

poYBAGNsWT-AZeMkAABus0_cjl0079.jpg
图 1 - Windows 操作系统的扫雷。
 

我们的项目包括一个简单的游戏,具有出色的动态,可以选择由两个人玩。

你的主要目标是选择一个没有炸弹的空方格。如果有炸弹,游戏就结束了。否则,游戏继续。基于此,每个位置将由连接到 Arduino 的按钮表示。

因此,在本文中,您将学习以下概念:

1. 为Arduino开发雷区游戏;

2.学习使用random和randomseed函数。

所以,接下来,我们将开始与Arduino一起开发雷区游戏,让您与朋友一起玩得开心。

使用 Arduino 开发扫雷游戏

基于此工作原理,开发了图 1 中的以下电路。

pYYBAGNsWUeAKCR9AARyP2jRT9Q610.jpg
图 2 - 面包板中的电子原理图。
 

如我们所见,该电路由负责处理游戏逻辑的 Arduino UNO、模拟位置的按钮以及 LED 和蜂鸣器组成,通过灯光和声音信号指示游戏中的胜负.

从现在开始,我们将介绍电路的操作和电路中实现的逻辑。

Arduino扫雷

游戏的主要目标是找到一个没有炸弹的空地。否则,如果用户按下泵所在的按钮,系统将产生用户输掉游戏的警报信号。

为此,我们将使用按钮来模拟每个正方形。我们将使用编程逻辑来绘制其中一个按钮的数字引脚号。抽奖后,地雷将分配给相应的按钮。

这样,我们现在将展示开发项目的代码。

代码如下所示。

int numero;
int estado;
int buzzer = 2;

void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
randomSeed(analogRead(A0));
numero = random(8,14);
}

void loop()
{
digitalWrite(3, HIGH);
estado = digitalRead(numero);
while(estado == 1)
{
digitalWrite(4, HIGH);
tone(buzzer,1500);
delay(100);
digitalWrite(3, LOW);
noTone(buzzer);
digitalWrite(4, LOW);
tone(buzzer,1500);
delay(100);
digitalWrite(3, HIGH);
noTone(buzzer);
delay(100);
while(estado == 0)
{
estado = 1;
}
}
}

如您所见,首先为连接到按钮的数字引脚声明了一个变量。此外,我们将创建一个变量来检查这些按钮的状态,即它们是处于高逻辑状态还是低逻辑状态。

最后,我们为蜂鸣器声明一个变量,并为该变量分配一个数字端口。

int numero; // Variável referente aos pinos digitais conectados aos botões //
int estado; // Variável para verificar o estado dos botôes, se estão em nivel lógico alto ou baixo. //
int buzzer = 2; // Váriavel atribuida ao pino digital 7, referente ao buzzer.//

接下来,我们有设置功能。在此函数中,我们将用于连接按钮的 I/O 引脚配置为输入,将 LED 和蜂鸣器引脚配置为输出。

此外,我们使用 randomSeed 函数。此函数使用在断开的模拟输入上读取的值作为参数来生成种子值。因为众所周知,断开的模拟引脚会生成随机值,因此,我们对代码中生成的值产生了真正的随机影响。

除了 randomseed 函数,我们还使用 random 函数。此函数从内部 Arduino 预先建立的列表中返回数字。这是一个巨大的乱码列表,并且总是相同的数字序列,实际上它不是随机数。

当我们重新启动 Arduino 时,它会再次启动此序列。

对于这个项目,我们抽奖了一个 8-14 范围内的数字。选择这些值是因为它们是连接到 Arduino 上的按钮的数字引脚的值。

void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
randomSeed(analogRead(A0));
numero = random(8,14);
}

最后,我们有循环功能。开始时,绿色 LED 被激活,表示游戏已经开始,玩家可以开始游戏。然后,用户必须选择一个按键,如下面的电路所示。

pYYBAGNsWUqAMOV1AAI1yAvUnlM372.jpg
图 3 - 开始扫雷游戏。
 

When a selected switch does not have the pump in place, the green LED will remain on and the red LED will remain off. 此外,蜂鸣器不会被触发。这可以在下图中看到。

pYYBAGNsWVGAYxyBAAJAvkg_vw8321.jpg
图 4 - 开始扫雷游戏。
 

如果用户选择了一个位置并有一个泵,红色 LED 将亮起,绿色 LED 将熄灭,蜂鸣器将继续响起。这可以在下图中看到。

poYBAGNsWVeAawu5AAJn08JgQ_8847.jpg
图 5 - 放置炸弹。
 

最后,我们包括一个重置按钮,用于在泵启动时重新启动游戏。按下按钮后,游戏重新开始,红色 LED 熄灭,绿色 LED 亮起。

然后绘制另一个随机图钉,您的乐趣将继续。这可以在图 5 中看到。

 
 
 
pYYBAGNsWVuAZVjpAAHlxG5sZ0g406.jpg
 
1 / 2图6 - 重新开始游戏。
 

接下来,我们将为您提供文件,以便在NEXTPCB 印刷电路板上安装此项目您可以免费使用和购买。

印刷电路板 NEXTPCB - Arduino Minesweeper

对于这个项目,我们决定为 Arduino UNO 创建一个 Shield 在此板上,将连接 JST 以连接按钮、LED 和蜂鸣器。

通过这种方式,我们为该项目开发了电子原理图设计。示意图如下图所示。

pYYBAGNsWWCAYpSoAAD7wj9qgJ8943.png
图 7 - 项目的电子原理图。
 

下图的原理图是从电子原理图中获得的。如您所见,我们放置了 10 个 JST 连接器来连接项目的元素。

poYBAGNsWWOAbp0nAACTrZ6GEAc990.png
图 8 - 2D PCB 设计。
 

您现在可以在 3D 视图中看到印刷电路板项目的结果。

poYBAGNsWWaAAZoSAABdHIryKJc626.png
图 9 - 3D PCB 设计。
 

使用您的NEXTPCB 盾牌 Arduino 扫雷器,您可以设置您的项目并与您的朋友一起玩乐。

结论

通过这个游戏的开发,我们学会了如何使用Arduino的几个功能中的一个,以及如何创建一个互动项目,让人们玩得开心。

这个项目很简单,可以在家中与父母和孩子一起设置,也可以在学校设置。

为了让您的乐趣更加完整,我们已经发布了所有文件,您可以通过此链接获得您的 PCB 单元来设置此项目。

我们感谢低成本印刷电路板 - NEXTPCB 公司的支持,并关注我们的个人资料以接收新的有趣项目。


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

评论

查看更多

下载排行

本周

  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次下载  |  免费