Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Игра Snake LED Matrix

Компоненты и расходные материалы

Arduino Proto Shield
× 1
Arduino UNO
× 1
Аналоговый джойстик (общий)
Это обычный черный джойстик
× 1
Провода перемычки "папа / мама"
× 1
Светодиодный массив SparkFun - 8x7
Это обычная светодиодная матрица 8 * 8 (не RGB)
× 1

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте

Я сделал классную игровую консоль из Meccanoid и Erector, установленной в качестве каркаса, и использовал Сергея Ройза . кода (ПРОВЕРИТЬ), и я добавил в него дополнительные материалы и увеличил скорость, чтобы он двигался плавно. Я не буду объяснять, как сделать каркас, но рекомендую вам сделать его самостоятельно. Но вам нужна рама. Получайте удовольствие от этого, делайте то, что хотите. НАДЕЮСЬ, ЧТО ВАМ НРАВИТСЯ ЭТО ПРОЕКТ! Прокомментируйте, если у вас есть вопрос, и я надеюсь, что смогу ответить на него как можно скорее, и если у вас есть какие-либо рекомендации для моего следующего проекта, прокомментируйте и сообщите мне. Также мой фритзинг не работал, поэтому я просто скажу вам:

Схема:

Присоедините экран к Arduino Uno, чтобы у вас было больше розеток GND и 5 В без использования макета.

Матрица:

  • От VCC до 5 В Arduino
  • GND к GND Arduino
  • DIN к цифровому выводу 10 на Arduino
  • CS к цифровому выводу 9 на Arduino
  • CLK к цифровому контакту 8 на Arduino

Джойстик:

  • Вывод Gnd на Gnd на Arduino
  • + 5–5 В на Arduino
  • VRX в A0 на Arduino
  • VRY в A1 на Arduino
  • SW на цифровой контакт 2

Код

  • Змея
Змейка C / C ++
Все, что вам нужно сделать, это скопировать и вставить код
 / ** * Snake * Реализация классической игры Snake *, в которой змея постоянно перемещается, а игрок * должен избегать пересечений с самим собой и границами. * Когда змея ест пищу, она немного увеличивается и ускоряется. * * 23 июня 2016 г. * Авторы:Сергей Ройз и Хантер Баззелл * / # include  / * ПИН-коды джойстика * / # определить VRX A0 # определить VRY A1 # определить SW 2 / * Показать PIN-коды * / # определить CLK 8 # define 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; int blink_count; const короткое сообщениеSpeed ​​=5; LedControl lc =LedControl (DIN, CLK, CS, 1); void init_game () {prev_advance =current_time =0; blink_count =3; int half =РАЗМЕР / 2; длина =РАЗМЕР / 3; для (int я =0; я <длина; я ++) {змея [я] [0] =половина - 1; змея [i] [1] =половина + i; } еда [0] =половина + 1; еда [1] =половина - 1; v [0] =0; v [1] =-1;} void render () {for (int i =0; i  =РАЗМЕР) {задержка (1000); showGameOverMessage (); вернуть истину; } если (голова [1] <0 || голова [1]> =РАЗМЕР) {задержка (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 (ВРИ, ВХОД); attachInterrupt (digitalPinToInterrupt (SW), перезапуск, RISING); lc.shutdown (0, ложь); lc.setIntensity (0, 8); init_game (); render ();} void loop () {если (! is_game_over) {clearScreen (); оказывать(); if (current_time - prev_advance> ADVANCE_DELAY) {is_game_over =advance (); prev_advance =current_time; }} еще {в то время как (blink_count> 0) {clearScreen (); задержка (300); оказывать(); задержка (300); blink_count--; }} readControls (); current_time ++;} аннулировать перезапуск () {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; } если (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,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,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,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 на матрице 24x16 с MAX7219
  3. Игра Arduino Nano Tetris на самодельной матрице 16x8
  4. Arduino с Bluetooth для управления светодиодом!
  5. Светодиодная матрица + датчик движения дверной дисплей [Arduino Holiday]
  6. Четвероногий Arduino
  7. Игра Pixel Chaser
  8. Перекидные часы Arduino с одной светодиодной матрицей
  9. Цветовой микшер Arduino RGB
  10. Управление светодиодной матрицей с помощью Arduino Uno