亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

蛇形 LED 矩阵游戏

组件和用品

Arduino Proto Shield
× 1
Arduino UNO
× 1
模拟操纵杆(通用)
这是一个普通的黑色操纵杆
× 1
公/母跳线
× 1
SparkFun LED 阵列 - 8x7
这只是一个普通的 8 * 8 LED 矩阵(不是 RGB 矩阵)
× 1

应用和在线服务

Arduino IDE

关于这个项目

我用 Meccanoid 和 Erector 制作了一个很酷的游戏机作为框架,我使用了 Sergey Royz 代码(检查一下),我在其中添加了额外的东西并提高了速度,使其移动顺畅。我不会解释如何制作框架,但我建议您制作自己的框架。但你确实需要一个框架。玩得开心做你想做的事。我希望你喜欢这个项目!如果您有问题,请发表评论,我希望能够尽快回答,如果您对我的下一个项目有任何建议,请发表评论并告诉我。我的fritzing也不起作用,所以我会告诉你:

示意图:

将屏蔽连接到 Arduino Uno,这样您就可以在不使用面包板的情况下拥有更多的 GND 和 5v 插座。

矩阵:

  • VCC 转 5V Arduino
  • GND 到 GND Arduino
  • Arduino 上的 DIN 到数字引脚 10
  • CS 到 Arduino 上的数字引脚 9
  • CLK 到 Arduino 上的数字引脚 8

操纵杆:

  • Arduino 上的 Gnd 到 Gnd 引脚
  • Arduino 上的 +5v 至 5V
  • Arduino 上的 VRX 到 A0
  • Arduino 上的 VRY 到 A1
  • SW 至数字引脚 2

代码

SnakeC/C++
您所要做的就是复制并粘贴代码
/** * Snake * 经典贪吃蛇游戏的实现 * 其中蛇不断移动,玩家 * 必须避免与自身和边界相交。 *当蛇吃食物时,它会长大并加速一点。 * * 2016 年 6 月 23 日 * 作者:Sergey Royz 和 Hunter Buzzell */#include /* 操纵杆 PIN */#define VRX A0#define VRY A1#define SW 2/* 显示 PIN */#define CLK 8#定义 CS 9#define DIN 10#define SIZE 8#define ADVANCE_DELAY 20int snake[SIZE*SIZE][2];int length;int food[2], v[2];bool is_game_over =false;long current_time;long prev_advance; intblink_count;const short messageSpeed =5;LedControl lc =LedControl(DIN, CLK, CS, 1);void init_game() { prev_advance =current_time =0;眨眼计数 =3; int half =SIZE / 2;长度 =尺寸 / 3; for (int i =0; i =SIZE) { delay(1000); showGameOverMessage();返回真; } if (head[1] <0 || head[1]>=SIZE) { delay(1000); showGameOverMessage();返回真; } for (int i =0; i =0; i--) { snake[i + 1][0] =snake[i][0];蛇[i + 1][1] =蛇[i][1]; } 蛇[0][0] +=v[0];蛇[0][1] +=v[1]; return false;}void setup() { pinMode(SW, INPUT_PULLUP); pinMode(VRX,输入); pinMode(VRY,输入); attachInterrupt(digitalPinToInterrupt(SW),重启,上升); lc.shutdown(0, false); lc.setIntensity(0, 8); init_game(); render();}void loop() { if (!is_game_over) { clearScreen();使成为(); if (current_time - prev_advance> ADVANCE_DELAY) { is_game_over =Advance(); prev_advance =current_time; } } else { while (blink_count> 0) { clearScreen();延迟(300);使成为();延迟(300);眨眼计数--; } } readControls(); current_time++;}void restart() { init_game(); is_game_over =false;}void readControls() { int dx =map(analogRead(VRX), 0, 906, 2, -2); int dy =map(analogRead(VRY), 0, 906, -2, 2); if (dx !=0) {dx =dx / abs(dx);} if (dy !=0) {dy =dy / abs(dy);} if (dy !=0 &&v[0] !=0 ) { v[0] =0; v[1] =dy; } if (dx !=0 &&v[1] !=0) { v[0] =dx; v[1] =0; }}const PROGMEM bool gameOverMessage[8][90] ={ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0 ,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0 ,0,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0 ,1,1,0,0,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0 ,1,1,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,1,0,0,1 ,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0 ,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1 ,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0 ,0}, {0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,1,0 ,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0 ,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0 ,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0 ,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,0,0 ,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1 ,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1,0,0,0 ,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1 ,0,0,1,1,0, 0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0, 0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1, 0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0, 1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0, 1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,1,1,1, 0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1, 0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,0,0, 0,0,0,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0, 0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0}}; void showGameOverMessage() { for (int d =0; d  

制造工艺

  1. Arduino 游戏控制器
  2. Arduino Pong Game on 24x16 Matrix with MAX7219
  3. 自制 16x8 矩阵上的 Arduino Nano 俄罗斯方块游戏
  4. Arduino 带蓝牙控制 LED!
  5. LED Matrix + Motion Sensor Door Display [Arduino Holiday]
  6. Arduino Quadruped
  7. 像素追逐游戏
  8. 单 LED 矩阵 Arduino 翻转时钟
  9. Arduino RGB 混色器
  10. 使用 Arduino Uno 控制 LED 矩阵
  11. 带 WS2812 LED 灯条的 DIY Arduino 1D 乒乓球游戏
  12. DMX RGB LED 户外