Проект Paragon: DOOM на Arduino Nano ESP32

Doom на Arduino Титульное изображение

Во вселенной компьютерных игр существует классический вопрос - а сможет ли он запустить Crysis? Однако в мире микрокомпьютерных игр и микроконтроллеров вопрос стоит несколько иначе - а сможет ли он запустить DOOM?

Наконец-то мы нашли ответ для Arduino Nano. И ответ этот таков: да!

На Arduino Nano ESP32 действительно можно играть в DOOM, хотя и с некоторыми необходимыми настройками.

Но к концу этого небольшого проекта у вас будет полностью портативная консоль DOOM.

Огромный респект Навину, который создал это и затем загрузил детали на сайт hackster.io, чтобы показать вам, как вы можете собрать это самостоятельно!

Кредит: Навин.

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

На странице hacker.io указано, что этот проект займет у вас 5 часов. Но я бы сказал, что с помощью фантастических инструкций Навина вы сможете сделать это гораздо быстрее.

Оборудование

Итак, как уже говорилось, этот проект основан на Arduino Nano ESP32. Навин выбрал Емкостной сенсорный экран Adafruit 2,8″ TFT в качестве дисплея, но если у вас есть другой дисплей, то он наверняка подойдет.

Кроме того, Навин использовал макетную плату для крепления всех элементов. Для проверки концепции, как вы могли заметить, эта консоль также сделана из остатков пластика. Конечно, подобное решение может быть лишь временным.

Если вы хотите подключить устройство на постоянной основе, вам придется проявить изобретательность, используя 3D-печатный корпус и паяльник.

В любом случае, если вы посмотрите на рисунок ниже, то увидите, что Навин также использовал джойстик M5Stack и двухкнопочный Seeed Studio Grove. Опять же, если у вас есть другой джойстик или другие кнопки, то они вполне подойдут.

Кредит: Навин.

Наконец, конечно, вам понадобятся провода-перемычки, чтобы соединить все вместе через макетную плату.

Как объясняет Навин, связь между Nano и TFT-дисплеем осуществляется на основе последовательный периферийный интерфейс (SPI). При этом джойстик и кнопки подключаются через шина межсоединений (I2C).

Программное обеспечение

Навин поясняет, что для переноса DOOM требуется некоторая модификация игры, поскольку оригинальная игра требует больше оперативной памяти и дискового пространства, чем предлагает Arduino Nano.

Таким образом, настройка основана на Очень крутой репозиторий Retro-Go от Ducalex на GitHub, которая представляет собой прошивку, модифицирующую классические игры для устройств ESP32.

Специально для этого проекта Навин настроил его на работу с джойстиками, кнопками и дисплеем. создав конфигурацию DOOM, которую вы наверняка оцените по достоинству.

Затем нужно просто прошить прошивку. А затем нужен файл конфигурации для автоматического включения WiFi на ESP32.

Запишите эти данные на SD-карту, а затем вставьте ее в Arduino Nano.

Кредит: Навин.

Средняя частота кадров в игре составляет 34 FPS при разрешении 320×240 пикселей.

Теперь вы можете получить DOOM на ходу с помощью Arduino Nano!

Заключение

Полную схему, код и другие подробности можно найти на сайте страница на сайте hacker.io.

Вы также можете ознакомиться с другими проектами Paragon, о которых мы рассказывали, нажав кнопку здесь.

Мы уже рассказывали об одном из проектов Навина, микроконтроллерный компьютер.

Позвольте мне закончить это признанием. Честно говоря, я никогда не проходил классический, полный DOOM - а вы?

21 комментарий

  1. Виталий Сентябрь 15, 2023 в 12:49 пп

    Это ложь в некоторой степени. Представленная ссылка ведёт на Ардуино наносит с атмега 128, а на картинках esp32. это небо и земля

    • Adam Октябрь 9, 2023 в 10:45 дп

      Да, ссылка была неверной - спасибо за комментарий!

  2. motosega Сентябрь 15, 2023 в 1:03 пп

    это не Arduino nano с atmega 328 (как тот, на который вы дали ссылку).

    Это Arduino nano-stm32. что не так уж и обидно для запуска Doom. значительно мощнее, чем, скажем, Amiga 500, на которой люди запускали Doom.

    • Adam Октябрь 9, 2023 в 10:45 дп

      Да, ссылка была указана неверно. Извините за ошибку!

  3. Tim Сентябрь 15, 2023 в 7:42 пп

    это версия для nano-esp32. Я думал, что для
    момент, когда вы запустили его на AVR nano.

    • Adam Октябрь 9, 2023 в 10:46 дп

      Нет, извините. Я не достаточно ясно выразился по поводу ESP32! Я исправил текст.

  4. Alex Сентябрь 15, 2023 в 8:32 пп

    Это минимальный разрыв между Arduino Nano (8 МГц, 2 кБ ОЗУ) и ESP32 (240 МГц, гораздо больше ОЗУ)! Все это имеет совершенно неожиданную формулировку.

    • Adam Октябрь 9, 2023 в 10:47 дп

      Du hast voll recht! Ich habe den Text korrigiert. Спасибо за комментарий!

      • Albert Ноябрь 8, 2023 в 2:05 пп

        Aber Du sprichst sehr gut Deutsch. Куда вы приехали?

  5. Алексей Сентябрь 15, 2023 в 10:42 пп

    Это не просто Arduino Nano, а ардуино с контроллером esp32. А ссылка отправляет нас в магазин, где просто arduino nano, а не esp32

    • Adam Октябрь 9, 2023 в 10:48 дп

      Да, ссылка была неверной - спасибо за комментарий!

  6. Александр Сентябрь 16, 2023 в 6:12 дп

    Что бы писать такие статьи, нужно хоть немного разбираться в этом. Создатель молодец, а автор статьи написал полную ахинею.

    • Adam Октябрь 9, 2023 в 10:50 дп

      Хаха извини за ахинею!

  7. Проходящий мимо пользователь Сентябрь 16, 2023 в 6:16 дп

    просьба поменять заголовок, так как используется Arduino Nano ESP32

  8. Brak wiedzy autora Сентябрь 18, 2023 в 4:57 дп

    to nie jest Arduino nano !
    nano jest na atmedze a nie na esp

    • Adam Октябрь 9, 2023 в 10:51 дп

      Masz rację, przepraszam za pomyłkę! To jest Arduino Nano ESP32

  9. Brak wiedzy autora Сентябрь 18, 2023 в 4:59 дп

    wifi na karcie SD ???

    • Adam Октябрь 9, 2023 в 10:55 дп

      Myślę, że w tłumaczeniu brakowało jednego słowa. Teraz lepiej?

  10. robbert Декабрь 4, 2023 в 8:33 пп

    Застрял на прогрессе в esp idf. (код не такой, как в ваших документах) Есть ли готовая скомпилированная версия, которую нужно только загрузить?
    Это было бы здорово 😀

  11. robbert Декабрь 4, 2023 в 8:38 пп

    Похоже, мой последний комментарий не дошел до конца.

    Я сильно застрял на прогрессе esp-idf. Похоже, код изменился со временем.
    хотел построить такой для своих детей на Рождество.
    Есть ли возможность получить предварительно скомпилированный бин для загрузки в esp32?

    С наилучшими пожеланиями и большой благодарностью
    Робберт

Комментировать