- Digitrode
- цифровая электроника вычислительная техника встраиваемые системы
- Консоль Gamebuino – Arduino для бесплатных игр своими руками
- Делаем игровую консоль с арканоидом на Ардуино
- Демонстрация
- Компоненты
- Сборка игровой консоли
- Как играть?
- Код проекта
- Определение нового экрана
- Образец (паттерн) стены
- Библиотеки
- Калибровка сенсорного экрана
- Анимация
- Избегаем арифметики с плавающей запятой
- Демо-режим
- Двухдисплейная игровая консоль на Arduino
- Портативная игровая консоль на основе Arduino и Arduboy своими руками
- Необходимые компоненты
- Схема проекта
- Изготовление печатной платы для портативной игровой консоли
- Сборка портативной игровой консоли
- Разработка программы для Arduino
- Тестирование работы проекта
Digitrode
цифровая электроника вычислительная техника встраиваемые системы
Консоль Gamebuino – Arduino для бесплатных игр своими руками
Если вы любите играть в различные игры, а также любите платформу Arduino, то можете самостоятельно сделать ретро игровую консоль, которая позволит скоротать время за различными простыми, но затягивающими играми.
Проект называется Gamebuino и предлагает полный набор документации, программного кода и прочих дополнительных файлов для сборки своей собственной консоли. Более того, с помощью специальной библиотеки можно самому писать игры для Gamebuino, что расширяет просторы для творчества.
Gamebuino является отличным проектом как для новичков, так и для заядлых любителей Arduino и игр. Возможность самому создавать игры является очень большим плюсом, расширяющим творческие горизонты. В итоге на этой консоли можно играть в различные аркады, головоломки, азартные игры бесплатные, простейшие симуляторы и другие не менее интересные игры.
Gamebuino обладает понятным графическим интерфейсом пользователя с различными меню и возможностью навигации с помощью клавиатуры. В качестве дисплея используется монохромный экранчик с разрешением 84×48 пикселей, как у старой доброй Nokia 3110. Здесь поддерживаются звуковые эффекты и даже музыка, выдаваемый с помощью четырехканальной системы магнитных динамиков. Также во время работы производится мониторинг состояния заряда аккумулятора. Аккумулятор в данном случае применяется литий-полимерный с емкостью 240 мАч. Кроме того, у Gamebuino есть своеобразный режим мультиплеера. Он реализуется путем подключения двух или более консолей Gamebuino в цепь с помощью интерфейса I2C. У Gamebuino есть два разъема I2C. Второй можно использовать для подключения различных модулей, например, акселерометра, модулей беспроводной связи, дополнительного джойстика и прочих устройств, расширяющих возможности игровой консоли. Помимо этого у данной консоли есть разъем microUSB и слот для SD-карт, предназначенный для загрузки игр.
Gamebuino можно использовать не только в качестве игровой консоли, но и как интерфейсный модуль для практически любой электронной системы. Gamebuino может быть контроллером, монитором, регистратором и всем тем, на что хватит фантазии у разработчика. Сама консоль очень компактна и имеет размеры 90*45*12 мм, что примерно сопоставимо с размерами обычной кредитной карты.
Схема, чертежи корпуса, загрузчик (bootloader) представлены на Wiki-странице проекта Gamebuino. Загрузчик представляет маленькую программу, которая находится в памяти Gamebuino и позволяет загружать игры через SD-карту или порт USB. Без его использования загружать игры в консоль пришлось бы с помощью внешнего программатора, подключаемого к порту ICSP.
По себестоимости Gamebuino будет значительно дешевле покупки какой-нибудь фирменной игровой консоли, для которой невозможно даже написать собственные игры. Так что, возможно, будущее за самодельными игровыми консолями.
Источник
Делаем игровую консоль с арканоидом на Ардуино
Создадим игровую консоль с игрой «арканоид» на основе Arduino UNO с TFT LCD экраном (240×320 пикселей), драйвером ILI9341 с 8-битной параллельной связью.
Демонстрация
Демонстрация игровой консоли представлена на видео ниже. Данный урок был опубликован благодаря поддержке бюро АСК Лаб — лаборатории по разработке электронных устройств на заказ.
Компоненты
Для создания нашей игровой консоли нам нужны будут следующие компоненты:
В этом проекте используется 2,4-дюймовый TFT ЖК-дисплей AZ-Delivery с резистивным 4-проводным сенсорным экраном и встроенным устройством чтения SD-карт.
Из программного обеспечения нам традиционно нужна среда разработки Arduino IDE.
Сборка игровой консоли
С распиновкой нашего шилда можно ознакомиться ниже:
Чтобы собрать нашу игровую консоль всё что нам нужно только соединить экран с нашей платой Arduino Uno.
В этой игре есть несколько экранов с различными настраиваемыми рядами и столбцами кирпичей, до восьми рядов. Каждые две строки имеют разный цвет, который можно запрограммировать (включить или выключить) с помощью различных шаблонов.
Используя единственный мяч, используя сенсорную панель, игрок должен сбить как можно больше кирпичей, используя стены и ракетку внизу игрового поля, ударив мяч о кирпичи и уничтожив их.
Если ракетка игрока не попадает по мячу, — игрок теряет ход. Каждый кирпичик ряда приносит разные очки:
На каждом уровне можно настроить размер ракетки и размер мяча. Скорость мяча увеличивается с каждым ударом, вы можете настроить начальную скорость для каждого экрана. В зависимости от того, под каким углом падает мяч на ракетку и в какое место, — изменяется скорость мяча.
Вы можете определить различный вид игровых экранов:
Как играть?
Держите устройство руками, а большими пальцами по экрану перемещайте ракетку влево или вправо.
Код проекта
Скачать файл .ino для игровой консоли вы можете ниже. Код проекта целиком:
Определение нового экрана
Эта структура используется для определения нового экрана:
Добавляем в набор новый экран:
Образец (паттерн) стены
Рисунок стены определяется как массив 8×8 бит.
Что соответствует этому битовому массиву:
Получаем в итоге такую стену (обратите внимание, что она зеркальная):
Библиотеки
В начале программы мы подключаем нужные нам библиотеки:
Калибровка сенсорного экрана
Вы должны откалибровать дисплей так, чтобы информация о местоположении была правильной при прикосновении к дисплею. Библиотека MCUFriend_kbv предоставляет пример с именем «TouchScreen_Calibr_native».
Пример отправляет результаты в последовательный порт. Запустите последовательный монитор IDE Arduino, чтобы вы могли скопировать код, созданный в примере.
Следуйте инструкциям на сенсорном дисплее, нажмите и удерживайте отображаемые маркеры положения, которые выделены белым. После того, как вы закончите с отметками положения, калибровка дисплея выводится вам на сенсорный дисплей и через последовательный порт.
Для этого проекта вам понадобятся данные для «портретной калибровки».
Анимация
Чтобы перемещать изображение по экрану с течением времени, нужно использовать статическую скорость и применять ее к положению изображения на каждом временном шаге.
Избегаем арифметики с плавающей запятой
Разрешение ILI9341 составляет 240 x 320, поэтому нам нужны два 9-битных целых числа для ссылки на пиксель на экране. Использование 16-битных целых чисел позволяет освободить 6 бит для представления десятичной части.
nnnn nnnn nndd dddd
Мы называем это число 6 двоичной экспонентой. И мы можем использовать эти шесть битов для получения десятичной части от 0,000 до 0,63. Таким образом, мы можем использовать целочисленную математику, избегая арифметики с плавающей запятой.
Чтобы получить целую часть числа, делаем арифметический сдвиг вправо.
число >> экспонента (number >> exponent)
Демо-режим
Раскомментируйте директиву define , и ракетка будет следовать за мячом, как показано в демо-видео:
Теперь вы можете самостоятельно создавать новые шаблоны, уровни и усложнять игру.
Источник
Двухдисплейная игровая консоль на Arduino
Какой дисплей лучше применить в игровой консоли на Arduino: алфавитно-цифровой на микросхеме HD44780 (КБ1013ВГ6) или матричный светодиодный с разрешением 8х8? Автор Instructables под ником Jordy2610 отвечает: лучше — оба.
Мастер составляет схему самоделки и выкладывает её в формате Fritzing сюда. Светодиодную матрицу берёт со встроенным драйвером. При желании можно изготовить матрицу своими руками, применив в качестве драйвера микросхему MAX7219.
Вначале мастер для отладки собирает схему на макетной плате типа breadboard:
Пишет ПО. Из сторонних библиотек применяет Timer и LedControl, из уже имеющихся в Arduino IDE — Liquid Crystal и EEPROM. Результат выкладывает сюда.
Изготавливает корпус, устанавливает другие кнопки, рассчитанные на размещение в отверстиях, просверленных в передней панели. Пересобирает схему заново пайкой без breadboard’а.
Отладка игровой консоли. Если ЖКИ не работает, проверить, правильно ли подключены все линии, и не попался ли вам дисплей с нестандартной цоколёвкой. Посмотреть, не вывернут ли регулятор контраста на минимум. Если количеств знакомест и строк на дисплее отличается от 16х2, поменять соответствующие настройки в программе. Можно также попробовать подключить другой дисплей, либо проверить уже имеющийся на другой Arduino-совместимой плате с простейшим скетчем, выводящим фразу «Здравствуй, мир».
Источник
Портативная игровая консоль на основе Arduino и Arduboy своими руками
В данной статье мы рассмотрим изготовление своими руками (DIY) портативной игровой консоли с помощью платы Arduino Pro Micro и пакета Arduboy. Arduboy представляет собой 8-битную программируемую игровую систему размером с кредитную карту, разработанную компанией Nintendo Gameboy. Система разработки игр Arduboy основана на крайне популярной сейчас платформе с открытым исходным кодом под названием Arduino. Система достаточно проста в освоении и позволяет разрабатывать собственные игры и делиться ими с игровым сообществом. Оригинальный игровой пакет Arduboy основан на микроконтроллере ATmega32U4 и OLED дисплее с разрешением 128×64 пикселов. Таким образом, для реализации нашего проекта нам понадобится основанный на Arduino микроконтроллер ATmega32u4 и 6-контактный OLED дисплей с интерфейсом SPI.
Также авторы проекта (ссылка на оригинал в конце статьи) изготовили печатную плату для данного проекта портативной игровой консоли с помощью компании NextPCB, которая уже более 15 лет специализируется на производстве печатных плат. Также данная компания оказывает услуги по поставке компонентов, разработке прототипа печатной платы, контролю качества и многие другие.
Необходимые компоненты
- Плата Arduino Pro Micro (купить на AliExpress).
- OLED дисплей с интерфейсом SPI (купить на AliExpress).
- Тактильные кнопочные переключатели – 6 шт.
- Зуммер (купить на AliExpress).
- Регулятор напряжения 7805 (купить на AliExpress).
- Ползунковый переключатель (Slide Switch) SPDT типа.
- Аккумулятор 18650 – 2 шт.
- Держатель для аккумуляторов 18650.
Схема проекта
Схема портативной игровой консоли на основе платы Arduino и Arduboy представлена на следующем рисунке.
Поскольку наша игровая консоль является клоном оригинальной игровой системы Arduboy, то мы использовали в ней те же самые компоненты, что и в оригинале.
Схема проекта была нарисована в симуляторе EasyEDA. Схема содержит плату Arduino Pro Micro, модуль OLED дисплея с интерфейсом SPI, регулятор напряжения и ряд кнопок.
Схема запитывается от двух элементов 18650, соединенных последовательно. Напряжение на их выходе составляет 7,4 В, поэтому в схеме мы применили регулятор напряжения на основе микросхемы 7805, который понижает это напряжение до значения 5V, необходимого для питания платы Arduino pro micro и других компонентов схемы. Полная схема соединений проекта представлена в следующей таблице.
Arduino pro micro | OLED дисплей |
Vcc | Vcc |
GND | GND |
D15 | SCL |
D16 | SDA |
D4 | DC |
D2 | RES |
Arduino pro micro | Кнопки |
A0 | UP |
A3 | Down |
A1 | Right |
A2 | Left |
D7 | A |
D8 | B |
Arduino pro micro | Зуммер |
D5 | Положительный контакт |
D6 | GND |
Как видите, схема соединений несложная.
Изготовление печатной платы для портативной игровой консоли
Если вы владеете навыками проектирования печатной платы, то вы можете сделать это в любом удобном для себя редакторе.
Но если у вас нет желания заниматься этим, то можете скачать готовые Gerber файлы для изготовления печатной платы данного проекта игровой консоли. Для этого выполните следующую последовательность шагов:
Шаг 1. Перейдите на сайт https://www.nextpcb.com/, зарегистрируйтесь на нем если вы посещаете его в первый раз. На главном экране сервиса нажмите на кнопку ‘Quote now’ (заказать сейчас).
Шаг 2. В следующем открывшемся окне загрузите Gerber фалы вашего проекта и заполните детали, необходимые для изготовления печатной платы: ее размеры, число слоев и число экземпляров печатной платы, которое вам необходимо.
Шаг 3. В следующем окне выберите время изготовления, страну доставки и метод доставки. От последних двух параметров будет зависеть финальная стоимость печатной платы.
На заключительном шаге выполняется финальная проверка (Checkout). На этом этапе сервис NextPCB детально проверяет ваши Gerber файлы на наличие ошибок. И если эта проверка прошла успешно, только тогда вы перенаправляетесь в окно оплаты заказа.
Разумеется, вы можете использовать любой другой сервис изготовления печатных плат, который вам нравится.
Сборка портативной игровой консоли
Авторы проекта получили готовую печатную плату через несколько дней после заказа. Как вы можете видеть из представленных ниже рисунков, качество изготовления печатной платы весьма достойное.
После того, как авторы проекта убедились в том, что все дорожки и посадочные места (footprints) на печатной плате в порядке, они приступили к сборке конструкции проекта. Печатная плата проекта со всеми припаянными к ней компонентами представлена на следующих рисунках:
Разработка программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим основные этапы его создания.
Для того, чтобы иметь возможность играть в игры Arduboy с помощью платы Arduino Pro Micro, мы первым делом должны добавить пакет Arduboy Homemade в Arduino IDE. Этот пакет содержит все библиотеки Arduboy с поддержкой всех альтернативных дисплеев.
Чтобы установить пакет Arduboy откройте Arduino IDE и выберите в ее меню пункт File > Preferences.
Preferences в Arduino IDE» src=»https://microkontroller.ru/wp-content/uploads/2021/07/arduino-ide-preference.jpg» alt=»Открытие пункта меню File > Preferences в Arduino IDE» width=»300″ height=»497″ srcset=»https://microkontroller.ru/wp-content/uploads/2021/07/arduino-ide-preference.jpg 300w, https://microkontroller.ru/wp-content/uploads/2021/07/arduino-ide-preference-181×300.jpg 181w» sizes=»(max-width: 300px) 100vw, 300px»/>
Затем скопируйте и вставьте представленный ниже URL в поле Additional Boards Manager URLs и нажмите OK.
Затем выберите пункт меню Tools > Boards > Board manager и в текстовом поле наберите там «homemade» или «Arduboy homemade». Затем нажмите на Arduboy Homemade package и затем на кнопку Install.
Таким образом, мы добавили Arduboy package в Arduino IDE и теперь мы можем скачивать и играть в наши любимые Arduboy игры на нашей игровой консоли. Теперь перейдите на официальный сайт платформы и скачайте любую игру Arduboy. После этого откройте файл с расширением .ino из папки с игрой. Затем перейдите в пункт меню Tools и выберите там следующие параметры:
Board: Arduboy
Bootloader: Cathy3K
Core: Arduboy optimized core
После этого выберите порт, к которому подключена плата Arduino micro и нажмите upload.
Тестирование работы проекта
После загрузки кода в плату Arduino и вставления элементов 18650 в конструкцию проекта вы должны увидеть как OLED дисплей начнет показывать заставку (demo) игры. Кнопка A используется для запуска и остановки игры, а кнопка B используется для атаки (Attack).
Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.
Источник