Snake Game була дуже популярна з початку створення мобільних телефонів. Спочатку він випускався в чорно-білих стільникових телефонах і незабаром став дуже відомим. Потім із розвитком Мобільних телефонів ця гра також сильно змінилася, і тепер доступно багато графічних та барвистих версій цієї гри.
Гра "Змія" також стала дуже популярним проектом "зроби сам" для любителів електроніки та студентів. Отже, сьогодні ми продемонструємо Arduino Snake Game з усіма її основними функціональними можливостями, одночасно зберігаючи її простістю.
Використовувані компоненти:
- Arduino UNO
- 8x8 світлодіодний матричний дисплей
- Реєстр зміни 74HC595
- РК-дисплей 16x2
- ПОТ 1К
- Кнопки
- Підключення проводів
- Хлібна дошка
- Блок живлення
Робоче пояснення:
Це трохи складна гра для побудови. Але в цьому підручнику ми спростили для вас це. Для створення цього проекту ми використовували матричний дисплей 8x8 червоного кольору Dot для відображення змії та її харчової точки, РК-дисплей для відображення балів або балів, 5 кнопок для вказівки та початку гри та, нарешті, Arduino UNO для управління весь процес. Схема контактів 8x8 світлодіодного матричного дисплея з оригінальним зображенням подана нижче:
Коли ми вмикаємо схему, спочатку ми показуємо привітальне повідомлення, а потім на РК-дисплеї підказку «Натисніть кнопку« Пуск для відтворення ». Після цього на РК-дисплеї відображається оцінка як нуль, а матричний дисплей показує дві крапки як змія і одну крапку як їжу.
Тепер користувачеві потрібно натиснути середню кнопку, щоб почати гру, а змія за замовчуванням починає рухатися вгору. Потім користувачеві потрібно дати вказівку змії, натискаючи на клавіші керування навколо середньої кнопки. Тут ми використовували п’ять клавіш (кнопок), а саме ліву клавішу, праву клавішу, клавішу вгору, клавішу вниз і клавішу Пуск. Всякий раз, коли змія доходить до точки з їжею або з’їдає їжу, оцінка щоразу збільшується на 5 балів, а довжина змії кожного разу збільшується на одну крапку (світлодіод), і швидкість змії стає швидшою, ніж раніше. І всякий раз, коли змія б’є по будь-якій стіні або досягає кінця світлодіодної матриці, це закінчує гру (“Game Over”). Потім користувачеві потрібно знову розпочати гру, натиснувши клавішу старту.
Пояснення схеми:
Схема цього проекту Snake Game є мало складною. Тут ми підключили матричний дисплей за допомогою Shift Register 74HC595. Тут використовуються два регістри зсуву, один для керування колонами, а другий для керування рядками. Керуючі штифти обох регістрів, регістру зсуву стовпців та регістру зсуву рядків (SH, ST),безпосередньо підключені до контактів Arduino 14 та 16 відповідно. А штифт DS регістра зсуву стовпців і регістр зсуву рядків безпосередньо підключені до виводів No 15 і 17 Arduino. Кнопка "Пуск" для початку гри під'єднана до контакту 3, ліва кнопка напрямку на піні 4, кнопка правого напрямку до контакту 6, кнопка напрямку вгору на піні 2 і кнопка напрямку вниз на піні 5. РК-дисплей також підключений до нашого обладнання до показати рахунок. Штирі RS і EN безпосередньо з'єднані на виводах 13 і 12. RW-штир безпосередньо заземлений. А шпильки даних d4-d7 підключені на висновках 11, 10, 9, 8 Arduino. Інші з'єднання показані на схемі.
Пояснення програмування:
Щоб написати цей ігровий код Arduino snake, насамперед ми включаємо файли заголовків та визначаємо шпильки для РК-дисплея. А потім визначте кілька штифтів для кнопок напрямку та штифт даних для регістрів зсуву.
#включати
Потім ми ініціалізуємо всі речі, які ми використовували в програмі. У функції налаштування ми ініціалізуємо РК-дисплей, даючи напрямок вихідним висновкам, підтягуючи біти та відображаючи привітальне повідомлення на РК-дисплеї.
void setup () {lcd.begin (16,2); pinMode (ds_col, ВИХІД); pinMode (sh_col, ВИХІД); pinMode (st_col, ВИХІД); pinMode (ds_row, OUTPUT); pinMode (старт, ВХІД);……………
І тоді ми починаємо гру в циклі .
void show_snake (int temp) {for (int n = 0; n
Тут ми використали наведену нижче функцію для зчитування напрямку введення за допомогою кнопки.
void read_button () {if (! digitalRead (ліворуч)) {move_r = 0; переміщення_c! = - 1? переміщення_c = -1: переміщення_c = 1; while (! digitalRead (ліворуч));……………
Перегляньте повний C Code of Snake Game нижче.