151-gcConsole — хардкорная игровая консоль на Arduino Pro Mini и 0.96 OLED I2C

Автор: | 09.05.2018

 

На картинке выше — игровая AVR-консоль. Эта консоль задумывалась как отладочная платформа для создания игр под Arduino+OLED (после первой моей игры gcRogue, есть желание создать еще парочку). Платформа вышла довольно неплохой, и даже претендует на полноценное устройство. Конечно, она не может конкурировать с действующими проектами подобных консолей:


— зато у моей консоли есть одно большое преимущество — ее можно без проблем собрать самому. Для сборки понадобятся всего несколько компонентов и немного времени. Приступим?

Справедливости ради должен отметить, что подобная консолька получится и для проекта arduboy. Только нужны будут Arduino Pro Micro и  OLED с SPI — интерфейсом. Это немного дороже и не так компактно, но зато есть много готовых игр под этот проект. Может быть позже сделаю статью и под вариант arduboy.

Нам понадобится:

– макетная плата для основы. Размер 30х70мм. Подойдет любая, но желательно, чтобы она выглядела презентабельно.

– Arduino Pro Mini (ATmega328p, 16MHz)

— дисплей – 0,9’ OLED I2C.

— в качестве источника питания подойдет любой аккумулятор, можно даже взять аккумулятор от старого мобильного телефона. Можно вместо аккумулятора реализовать батарейное питание. В этом случае не нужна будет плата драйвера заряда, но понадобится батарейный отсек.

— для обеспечения правильной зарядки аккумулятора – плата драйвера заряда

— в качестве органов управления – тактовые кнопки (5х5мм – 6шт) и переключатель

— по мелочи – кусочки соединительных проводов, штырьки PLS, элементы крепления

 

Все перечисленное выше, без проблем можно приобрести и стоимость такого набора будет невысокой.

 

О конструкции.
Устройство без корпуса на макетной плате выглядит довольно своеобразно, но, с другой стороны, придает проекту изюминку — конструкция демонстрирует всем интересы своего владельца :).

Так как у конструкции нет корпуса, возникают определенные трудности, которые нужно учитывать при сборке:
— Конструкция получается довольно компактной за счет плотного расположения плат одна над другой. В виду этого, нужно следить при сборке за тем, чтобы не было соприкосновений плат между собой (либо оставлять достаточные зазоры, либо изолировать платы между собой диэлектрическим материалом).
— Так как конструкция не имеет корпуса, вся нагрузка при эксплуатации ложится на платы устройства. Соответственно, для плат необходимо предусматривать дополнительные усиливающие элементы для предотвращения их повреждения.

 

Сборка.
Элементы конструкции соединяются по следующей схеме:

На видео представлен общий процесс сборки и программирования консоли (простите за слегка затянутое видео — хотел ничего не  пропустить…).

Кратко последовательность сборки:

1 Первое, с чего необходимо начать – это припаять к Arduino Pro Mini штырьки для программирования. Дальше, кладем Ардуину на макетку и припаиваем к ней прямо через отверстия. Для того чтобы исключить замыкания между макеткой и Ардуиной нужно или подложить изоляцию или оставить небольшой промежуток между платами (на видео я оставил воздушный промежуток).

2 Припаиваем кнопки. Вариант установки кнопок зависит от конструкции самих кнопок и Вашей фантазии. Снизу макетки, согласно схеме, подсоединяем кнопки навесным монтажом (проводками) к соответствующим выводами Ардуины.

3 Припаиваем дисплей. Но перед пайкой подготавливаем провода для подключения дисплея. Провода питания проблем не создадут, а вот сигнальные провода шины I2C придется завести с другой стороны платы (I2C-выводы в Ардуине расположены в центре платы и к макетке их никак не припаять). Далее, устанавливаем дисплей, вплотную к Ардуине (не забывая про зазор между платами) и сзади платы пропаиваем выводы дисплея вместе с сигнальными проводами и проводами питания. Дополнительно закрепляем дисплей на макетной плате, пропаивая его через монтажные отверстия при помощи штырьков PLS.

4 Переходим к аккумулятору. Паяем все соединения аккумулятора, контроллера заряда и переключателя навесным монтажом на макетку. Подпаиваемся к соответствующим выводам питания Ардуины. Для жесткости конструкции, контроллер заряда устанавливаем на штырьки PLS. Сам аккумулятор можно закрепить на макетке либо горячим клеем, либо на двусторонний скотч, либо прихватить хомутиками (я приклеил акриловым клеем).

Сборка окончена. Теперь осталось только записать игру в консоль.

 

Запись прошивки.

В отличие от большинства плат, Arduino Pro Mini нельзя запрограммировать  через обычный USB-шнур — для этого нужен отдельный преобразователь USB-UART. Преобразователь лучше использовать как на картинке ниже (его можно подключать непосредственно к Ардуине), но подойдет и любой другой, только нужно правильно его подключить (смотри схему подключения ниже). Вообще для программирования достаточно сигналов TxD, RxD и «земли» с питанием от преобразователя, но в этом случае при программировании нужно удерживать нажатой кнопку сброса.

 

После того как подключен преобразователь, запускаем gcManager, обновляем устройства (Update), выбираем в нем проект gcConsole, устройство gcRogue (поймете по картинке, что это то что нужно), номер порта преобразователя и нажимаем иконку программирования. Через некоторое время игра будет записана в микроконтроллер и автоматически запустится. Подробней про работу gcManager читайте в соответствующей статье.

Теперь у Вас есть своя уникальная игровая консоль, собранная своими руками!

Заключение.

По факту использования консоли, скажу, что конструкция вышла довольно удобной и визуально привлекательной (конечно, нужно позаботиться о том, чтобы макетка и все остальные компоненты имели презентабельный вид). Небольшие размеры устройства позволяют его носить с собой в кармане (хотя, в виду угловатости конструкции, карман джинсов не очень хорошо подходит). Ток потребления консоли составляет порядка 30мА, соответственно, для моего аккумулятора 550мАч, время непрерывной работы будет в пределах 550/30=18 часов, что довольно неплохо.

Планирую еще что-то сделать под эту консоль, так что, возможно, будут варианты игр.

Update 28.07.2018
Появился звук
Появилась библиотека для Arduino IDE
Портировал несколько игр с проекта ArduBoy
Об изменениях читаем здесь

(Visited 39 220 times, 12 visits today)