Paragon Project: DOOM op een Arduino Nano ESP32

Doom op Arduino Titelafbeelding

Er is een klassieke vraag in het universum van computerspellen - maar kan Crysis draaien? In de wereld van microcomputerspellen en microcontrollers hebben we echter een iets andere vraag - maar kan het DOOM draaien?

We hebben eindelijk het antwoord voor de Arduino Nano. En het antwoord is: ja!

Je kunt DOOM inderdaad spelen op een Arduino Nano ESP32, zij het met de nodige aanpassingen.

Maar aan het einde van dit kleine project heb je een volledig draagbare DOOM-console.

Een groot applaus voor Naveen, die dit heeft gemaakt en vervolgens de details heeft geüpload naar hackster.io om te laten zien hoe je het zelf kunt maken!

Krediet: Naveen.

En echt, dit is ongelooflijk eenvoudig. Het enige wat je hoeft te doen is de componenten met elkaar verbinden en dan de firmware configureren en flashen om DOOM aan de gang te krijgen.

Op de hacker.io pagina wordt geschat dat dit project je 5 uur zal kosten. Maar ik zou zeggen dat je het waarschijnlijk veel sneller zou kunnen doen met de fantastische instructies van Naveen.

Hardware

Zoals gezegd draait dit project om een Arduino Nano ESP32. Naveen heeft gekozen voor een Adafruit 2,8″ TFT capacitief aanraakscherm als scherm, maar als je nog een ander scherm hebt liggen, is dat ook prima.

Daarnaast heeft Naveen een breadboard gebruikt om alles bij elkaar te houden. Voor de proof of concept, zoals je misschien hebt gemerkt, is deze console ook gemaakt met wat restplastic. Natuurlijk is zoiets slechts een tijdelijke oplossing.

Als je dit permanent wilt aansluiten, zul je creatief moeten zijn met een 3D-geprinte behuizing en een soldeerbout.

Afgezien daarvan, als je naar de afbeelding hieronder kijkt, zie je dat Naveen ook een M5Stack Joystick en een Seeed Studio Grove dubbele knop heeft gebruikt. Nogmaals, als je nog een joystick of andere knoppen hebt liggen, zijn die voldoende.

Krediet: Naveen.

Tot slot heb je natuurlijk nog een paar jumper draden nodig om alles met elkaar te verbinden via het breadboard.

Zoals Naveen uitlegt, is de verbinding tussen de Nano en het TFT-scherm gebaseerd op de seriële perifere interface (SPI). Ondertussen worden de joystick en knoppen aangesloten via de Inter-Integrated Circuit Bus (I2C).

Software

Naveen verduidelijkt dat om DOOM te porten, het spel enige aanpassing vereist, omdat het originele spel meer RAM en schijfruimte vereist dan de Arduino Nano biedt.

Daarom is de opstelling gebaseerd op Ducalex's zeer coole Retro-Go opslagplaats op GitHub, wat firmware is die klassieke spellen aanpast voor ESP32-apparaten.

Specifiek voor dit project heeft Naveen het geconfigureerd om te werken met de joysticks, knoppen en het beeldscherm. Hierdoor ontstaat een DOOM-configuratie die je zeker zult waarderen.

Dan hoef je alleen maar de firmware te flashen. En dan heb je een configuratiebestand nodig om WiFi automatisch in te schakelen op de ESP32.

Zet dat op de SD-kaart en plaats die in je Arduino Nano.

Krediet: Naveen.

Het spel heeft een gemiddelde framerate van 34 FPS met een resolutie van 320×240 pixels.

Nu kun je DOOM onderweg gebruiken met een Arduino Nano!

Conclusie

Je kunt het volledige schema, de code en meer details vinden op de hacker.io pagina.

Je kunt ook meer Paragon-projecten bekijken die we hebben uitgelicht door te klikken op hier.

We hebben al eerder aandacht besteed aan een van Naveens projecten, de microcontrollercomputer.

Laat ik eindigen met een bekentenis. Om eerlijk te zijn heb ik de klassieke, volledige DOOM nog nooit uitgespeeld - jij wel?

21 Opmerkingen

  1. Виталий op september 15, 2023 op 12:49 pm

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

    • Adam op oktober 9, 2023 op 10:45 am

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

  2. motosega op september 15, 2023 op 1:03 pm

    dat is geen Arduino nano met een atmega 328 (zoals degene die je hebt gelinkt).

    Het is een Arduino nano-stm32. Dat is niet zo schokkend om doom op te draaien. Het is aanzienlijk krachtiger dan bijvoorbeeld een Amiga 500, waar mensen doom op hebben draaien.

    • Adam op oktober 9, 2023 op 10:45 am

      Ja, de link stond verkeerd vermeld. Sorry voor de fout!

  3. Tim op september 15, 2023 op 7:42 pm

    dat is een nano-esp32 versie. Ik dacht voor een
    moment dat je dit op een AVR nano had draaien.

    • Adam op oktober 9, 2023 op 10:46 am

      Nee, sorry. Ik heb het ESP32-gedeelte niet duidelijk genoeg gemaakt! Ik heb de tekst gecorrigeerd.

  4. Alex op september 15, 2023 op 8:32 pm

    Het is een "minimaler" verschil tussen een Arduino Nano (8 MHz, 2 kB RAM) en een ESP32 (240 MHz, veel meer RAM)! Het is volledig onberispelijk geformatteerd.

    • Adam op oktober 9, 2023 op 10:47 am

      Je bent helemaal recht! Ik heb de tekst verbeterd. Bedankt voor je commentaar!

      • Albert op november 8, 2023 op 2:05 pm

        Aber Du sprichst sehr gut Deutsch. Waar kom je vandaan?

  5. Алексей op september 15, 2023 op 10:42 pm

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

    • Adam op oktober 9, 2023 op 10:48 am

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

  6. Александр op september 16, 2023 op 6:12 am

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

    • Adam op oktober 9, 2023 op 10:50 am

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

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

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

    • Adam op oktober 9, 2023 op 10:52 am

      Все в порядке?

  8. Brak wiedzy autora op september 18, 2023 op 4:57 am

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

    • Adam op oktober 9, 2023 op 10:51 am

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

  9. Brak wiedzy autora op september 18, 2023 op 4:59 am

    wifi na karcie SD?

    • Adam op oktober 9, 2023 op 10:55 am

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

  10. robbert op december 4, 2023 op 8:33 pm

    behoorlijk vastgelopen in de esp idf voortgang. (code is niet hetzelfde als in jullie documenten) een voorgecompileerde versie beschikbaar die alleen geüpload hoeft te worden?
    dat zou leuk zijn 😀

  11. robbert op december 4, 2023 op 8:38 pm

    Het lijkt erop dat mijn laatste opmerking het niet heeft gehaald haha

    Ik zit behoorlijk vast bij de esp-idf voortgang. de code lijkt in de loop van de tijd te zijn veranderd.
    wilde er een bouwen voor mijn kinderen deze kerst haha
    Is er een optie om een voorgecompileerde bin te uploaden naar de esp32?

    Met vriendelijke groeten en veel dank
    Robbert

Laat een reactie achter