Arduino点阵屏实现贪吃蛇游戏

Arduino贪吃蛇

作者:Saddam
翻译:Tony
原文地址:https://circuitdigest.com/microcontroller-projects/arduino-snake-game-using-8x8-led-matrix

自从手机问世以来,贪吃蛇游戏就非常受欢迎。最初它是从黑白屏手机上而来,很快就变得非常有名。随着手机的发展,该游戏也发生了很大的变化,现在也可在彩屏版本上使用。

贪吃蛇游戏也已成为电子爱好者和学生非常流行的DIY项目。今天我们将演示Arduino贪吃蛇的基本功能,同时使其保持简单。

使用组件

  • Arduino UNO

  • 8x8LED点阵屏

  • 移位寄存器74HC595

  • LCD1602

  • 1K电位器

  • 按键开关

  • 连接线

  • 面包板

  • 电源

操作说明

贪吃蛇游戏实现起来稍微复杂,但在本教程中,我们帮你对其做了简化。为了完成这个项目,我们使用了8x8红色点阵来显示蛇及其食物,使用LCD602显示得分,使用五个按键控制方向和开始游戏,最后通过一块Arduino UNO来控制整个流程。如下给出8x8点阵的引脚图以及制作好的硬件:

点阵引脚图
实物图

当上电后,首先在液晶屏上显示欢迎消息,然后显示"Press Start To Play"提示。然后LCD将分数显示为零,点阵上显示两个点表示蛇,一个点表示食物。

现在,用户需要按下中间按键开始游戏,并且默认情况下,蛇开始向上移动。然后,用户需要通过按中间按键周围的“方向键”来控制蛇的方向。在这里,我们使用了五个按键,即向左键,向右键,向上键,向下键和开始键。每当蛇到达食物点吃东西时,分数每次增加5,蛇的长度每次增加1个点,蛇的速度也比以前快。每当蛇撞到任何墙壁或到达LED矩阵的边界时游戏结束。然后,用户需要按开始键再次开始游戏。

系统图解

电路说明

贪吃蛇电路并不复杂。在这里,我们通过使用移位寄存器74HC595连接点阵屏。使用两个移位寄存器,一个用于驱动列,另一个用于驱动行。列移位寄存器和行移位寄存器[SH,ST]这两个寄存器的控制引脚分别连接到Arduino的14和16引脚。列移位寄存器和行移位寄存器的DS引脚连接到Arduino的15和17引脚。用于开始游戏的开始按键连接在3号引脚上,左方向按钮插在4号引脚上,右方向按钮插在6号引脚上,上方向按钮在引脚2上,下方向按钮插在引脚5上。LCD1602的RS和EN引脚连接到Arduino的13和12。RW引脚接地。数据引脚d4-d7连接到Arduino的11、10、9、8引脚。其余连接参照如下电路图。

电路原理图

编程说明

要编写Arduino贪吃蛇游戏代码,首先包含LCD库头文件并定义LCD引脚,然后是方向按键和移位寄存器的相关引脚。

#include<LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);

#define ds_col 15
#define sh_col 16
#define st_col 14
#define ds_row 17

#define start 3
#define up 2
#define down 5
#define left 4
#define right 6

然后,我们初始化程序中使用到的功能。在setup函数中,我们初始化LCD,设置IO口方向,上拉相关位并在LCD上显示欢迎消息。

void setup()
{   
    lcd.begin(16,2);
    pinMode(ds_col, OUTPUT);
    pinMode(sh_col, OUTPUT);
    pinMode(st_col, OUTPUT);
    pinMode(ds_row, OUTPUT);
    pinMode(start, INPUT);
    ... ....
    .... ....

然后在loop函数中开始游戏。

void show_snake(int temp)
{
 for(int n=0;n<temp;n++)
 {
   int r,c;
  for(int k=0;k<21;k++)
  {
  ... ....
  .... ....

在这里我们使用如下函数从按键读取方向。

void read_button()
{
 if(!digitalRead(left))
 {
   move_r=0;
   move_c!=-1 ? move_c=-1 : move_c=1;
   while(!digitalRead(left));
   ... ....
   .... ....

完整的贪吃蛇代码:

Arduino点阵屏贪吃蛇完整代码:
百度云链接:https://pan.baidu.com/s/117xzixC4Qh_OqZN-2mpQtA
密码:cju9

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容