Тот самый DOOM
Еще одна интерпретация легендарного Doom, портированная на микроконтроллер ESP32.
История создания
Идея собрать карманную консоль возникла после глубокого анализа существующих решений. Вдохновившись этим проектом, я обнаружил ряд слабых мест: использование редких комплектующих, вроде специфических джойстиков с I2C-интерфейсом, что неоправданно усложняло сборку и повышало бюджет. Кроме того, хотелось добавить полноценный звук и реализовать поддержку различных игровых уровней.
Техническое задание
Ключевые критерии для устройства: компактный форм-фактор, 2,8-дюймовый дисплей, встроенный аудиовыход мощностью 1 Вт и удобный доступ к слоту microSD для быстрой смены контента без разборки корпуса. В качестве системы управления — классические тактовые кнопки, питание от Li-ion аккумулятора емкостью порядка 1000 мАч.
Электрическая схема

Сердцем системы выступает ESP32 Wrover DevKit с 4 МБ PSRAM. В качестве средства вывода выбран SPI-дисплей ILI9341 (2,8 дюйма), за усиление аудио отвечает модуль на базе NS8002. Поскольку прямое питание от литиевого аккумулятора нецелесообразно, предусмотрен DC-DC преобразователь (использован стандартный на 5В), а 3,3В для карты памяти формируется средствами самого МК.
Компоненты
|
Наименование |
Описание |
Кол-во |
|
МК |
ESP32 Wrover DevKit SPI 4Mb |
1 |
|
LCD |
ILI9341 2,8“ SPI |
1 |
|
MicroSD |
Слот для MicroSD |
1 |
|
DC-DC |
Модуль преобразователя 3.7В => 5В |
1 |
|
NS8002 |
Аудиоусилитель, 3Вт |
1 |
|
Динамик |
FBF28-6F, 8 Ом, 1.5Вт |
1 |
|
АКБ |
Li-ion LP803040 1200mAh |
1 |
|
Переключатель |
Движковый, SS12F20G3 |
2 |
|
Резистор |
SMD 0805, 10 кОм |
6 |
|
Резистор |
DIP 0.125 Вт, 100 кОм |
1 |
|
Конденсатор |
100 мкФ, 6.3×5мм |
2 |
|
Конденсатор |
100 нФ, 0805 |
4 |
|
Разъем |
Гнездо PBS-20, 2.54 мм |
1 |
|
Джойстик |
5-позиционный навигационный модуль |
1 |
|
Кнопки |
Тактовые 12х12 с колпачками |
2 |

Особенности сборки:
-
Выбор Wrover обусловлен наличием достаточного объема PSRAM; встроенный ЦАП позволяет реализовать звуковые эффекты.
-
Дисплей ориентирован на драйвер ILI9341, но прошивка легко адаптируется под популярный ST7789.
-
Управление перемещением реализовано через навигационный модуль, заменяющий полноценный джойстик.
-
Предусмотрен физический тумблер для быстрого отключения аудиопотока.
Монтаж и программная часть
Печатная плата была разработана в Sprint-Layout и изготовлена методом ЛУТ в домашних условиях. При разводке пришлось прибегнуть к перемычкам, чтобы обеспечить доступ к портам USB и слоту карты памяти.
Прошивка осуществляется через среду Espressif ESP-IDF. Используется проверенный проект порта PRBOOM для ESP32.
git clone https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh
source ./export.sh
Команды для развертывания проекта:
git clone https://github.com/jkirsons/doom-espidf
cd doom-espidf
esptool --chip esp32 --port /dev/ttyUSB0 --baud 115200 --before default_reset --after hard_reset \ write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 \ build/bootloader/bootloader.bin 0x10000 build/esp32-doom.bin 0x8000 build/partitions.bin
Для кастомизации пинов или параметров дисплея воспользуйтесь командой `make menuconfig` перед сборкой.
Для игры потребуются стандартные файлы `prboom.wad` и `doom.wad` (WAD-архивы), которые необходимо записать в корень microSD. При возникновении проблем с запуском (белый экран), воспользуйтесь Serial-монитором для отладки файловой системы.
Конструкция корпуса
Для печати на 3D-принтере спроектирован корпус, учитывающий габариты всех компонентов.

Нюансы сборки корпуса:
-
Дисплей жестко фиксируется в рамке; углы матрицы можно слегка подточить для идеальной посадки.
-
Отверстия для выключателей и разъема заряда удобнее вырезать жалом паяльника, дорабатывая поверхность надфилем.
-
Кнопки «Огонь» и «Действие» монтируются на отдельном фрагменте макетной платы.
-
Для надежной фиксации элементов внутри рекомендуется использовать термоклей, а для внешних декоративных панелей — дихлорэтан.
Итог
Данный проект — отличный способ применить навыки схемотехники и программирования на практике. Весь авторский контент (модели и чертежи) доступен по ссылке. Надеюсь, этот опыт вдохновит вас на создание собственной игровой платформы.
По данным аналитиков, продажи видеоигр в Японии выросли на 13 процентов благодаря успеху Resident Evil Requiem
Студия GamesVoice выпустила русскую озвучку для Race of the Nine Worlds от авторов Sonic Omens
Microsoft уволила нарративного директора Gears of War: E-Day спустя четыре дня после ухода игры на золото
Экстрактор Arc Raiders получит премиальный боевой пропуск без влияния на геймплей
В Tarkov: Arena открыли бесплатный доступ до 27 сентября
Разработчик People Playground призвал срочно удалить все модификации игры из-за угрозы безопасности
Ubisoft назвала системные требования Rayman Legends Retold для ПК
Какой могла быть Uncharted 4 от Эми Хенниг с Сэмом в роли злодея