Paragon Project: DOOM op een Arduino Nano ESP32
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!
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.
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.
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?
это ложь в некоторой степени. представленная ссылка ведёт на Ардуино нано с атмега 128, а на картинках esp32. это небо и земля
Да, ссылка была неверной - спасибо за коментарий!
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.
Ja, de link stond verkeerd vermeld. Sorry voor de fout!
dat is een nano-esp32 versie. Ik dacht voor een
moment dat je dit op een AVR nano had draaien.
Nee, sorry. Ik heb het ESP32-gedeelte niet duidelijk genoeg gemaakt! Ik heb de tekst gecorrigeerd.
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.
Je bent helemaal recht! Ik heb de tekst verbeterd. Bedankt voor je commentaar!
Aber Du sprichst sehr gut Deutsch. Waar kom je vandaan?
это не просто Arduino Nano, а ардуино с контролером esp32. А ссылка отправляет нас в магазин где просто arduino nano, а не esp32
Да, ссылка была неверной - спасибо за коментарий!
Что бы писать такие статьи, нужно хоть немного разбираться в этом. Создатель молодец, а автор статьи написал полную ахинею.
Хаха извини за ахинею!
просьба поменять заголовок, так как используется Arduino Nano ESP32
Все в порядке?
to nie jest Arduino nano!
nano jest na atmedze a nie na esp
Masz rację, przepraszam za pomyłkę! Naar jest Arduino Nano ESP32
wifi na karcie SD?
Myślę, że w tłumaczeniu brakowało jednego słowa. Teraz lepiej?
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 😀
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