Projeto Paragon: DOOM num Arduino Nano ESP32

Doom no Arduino Imagem de título

Há uma pergunta clássica no universo dos jogos de computador - mas será que consegue correr o Crysis? No entanto, no mundo dos jogos de microcomputador e dos microcontroladores, temos uma pergunta ligeiramente diferente - mas será que consegue correr o DOOM?

Bem, finalmente temos a resposta para o Arduino Nano. E a resposta é: sim!

De facto, é possível jogar DOOM num Arduino Nano ESP32, embora com alguns ajustes necessários.

Mas no final deste pequeno projeto, terás uma consola DOOM totalmente portátil.

Um grande aplauso para Naveen, que criou isto e depois carregou os detalhes no hackster.io para mostrar como se pode fazer isto sozinho!

Crédito: Naveen.

E, na verdade, isto é incrivelmente simples. Tudo o que precisa de fazer é ligar os componentes e depois configurar e atualizar o firmware para que o DOOM funcione.

Na página hacker.io, estima-se que este projeto demorará 5 horas. Mas eu diria que, com as fantásticas instruções de Naveen, poderias fazê-lo muito mais depressa do que isso.

Hardware

Portanto, como já foi referido, este projeto gira em torno de um Arduino Nano ESP32. O Naveen optou por um Ecrã tátil capacitivo TFT de 2,8″ da Adafruit como ecrã, mas se tiver outro ecrã à mão, este serve certamente.

Além disso, Naveen optou por uma placa de ensaio para manter tudo unido. Para a prova de conceito, como devem ter reparado, esta consola também foi feita com restos de plástico. Claro que uma coisa destas só servirá como solução temporária.

Se quiser ligá-lo permanentemente, poderá ter de ser criativo com uma caixa impressa em 3D e um ferro de soldar.

De qualquer forma, para além disso, se olharem para a imagem abaixo, verão que Naveen também utilizou um Joystick M5Stack e um botão duplo Seeed Studio Grove. Mais uma vez, se tiveres outro joystick ou outros botões por aí, eles serão suficientes.

Crédito: Naveen.

Por fim, como é óbvio, vai precisar de alguns fios de ligação para ligar tudo através da placa de ensaio.

Como explica Naveen, a ligação entre o Nano e o ecrã TFT baseia-se em a interface periférica de série (SPI). Entretanto, o joystick e os botões são ligados através de o barramento de circuitos integrados (I2C).

Software

Naveen esclarece que, para portar DOOM, o jogo requer algumas modificações, porque o jogo original exige mais RAM e espaço em disco do que o Arduino Nano oferece.

Por conseguinte, a configuração baseia-se em O repositório Retro-Go muito fixe da Ducalex no GitHub, que é um firmware que modifica jogos clássicos para dispositivos ESP32.

Especificamente para este projeto, Naveen configurou-o para funcionar com os joysticks, os botões e o ecrã, criando uma configuração DOOM que irá certamente apreciar.

Depois é só fazer o flash do firmware. E depois é preciso um ficheiro de configuração para ativar automaticamente o WiFi no ESP32.

Coloque isso no cartão SD e insira-o no seu Arduino Nano.

Crédito: Naveen.

O jogo tem uma taxa de fotogramas média de 34 FPS com uma resolução de 320×240 pixéis.

Agora podes ter o DOOM em movimento com um Arduino Nano!

Conclusão

Pode encontrar os esquemas completos, o código e mais pormenores em a página hacker.io.

Também pode consultar mais projectos da Paragon que já apresentámos clicando em aqui.

Já falámos de um dos projectos do Naveen, o computador microcontrolador.

Deixem-me terminar isto com uma confissão. Para ser sincero, nunca completei o clássico DOOM completo - e tu?

21 comentários

  1. Виталий em Setembro 15, 2023 às 12:49 pm

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

    • Adam em Outubro 9, 2023 às 10:45 am

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

  2. motosega em Setembro 15, 2023 às 1:03 pm

    não é um Arduino nano com um atmega 328 (como o que ligaste).

    é um Arduino nano-stm32. que não é assim tão chocante para correr o doom. significativamente mais poderoso do que, digamos, um Amiga 500, no qual as pessoas puseram o doom a funcionar.

    • Adam em Outubro 9, 2023 às 10:45 am

      Sim, a hiperligação foi indicada incorretamente. Peço desculpa pelo erro!

  3. Tim em Setembro 15, 2023 às 7:42 pm

    é uma versão nano-esp32. Pensei que por um
    no momento em que o fez correr num AVR nano.

    • Adam em Outubro 9, 2023 às 10:46 am

      Não, desculpe. Não deixei a parte do ESP32 suficientemente clara! Já corrigi o texto.

  4. Alex em Setembro 15, 2023 às 8:32 pm

    Trata-se de uma diferença "mínima" entre um Arduino Nano (8 MHz, 2kB RAM) e um ESP32 (240MHz, muito mais RAM)! Esta é uma fórmula completamente irrefutável.

    • Adam em Outubro 9, 2023 às 10:47 am

      Está muito bem! Eu tenho o texto escrito. Obrigado pelo comentário!

      • Albert em Novembro 8, 2023 às 2:05 pm

        Aber Du sprichst sehr gut Deutsch. Onde é que veio parar?

  5. Алексей em Setembro 15, 2023 às 10:42 pm

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

    • Adam em Outubro 9, 2023 às 10:48 am

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

  6. Александр em Setembro 16, 2023 às 6:12 am

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

    • Adam em Outubro 9, 2023 às 10:50 am

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

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

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

    • Adam em Outubro 9, 2023 às 10:52 am

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

  8. Brak wiedzy autora em Setembro 18, 2023 às 4:57 am

    para não ter de usar o Arduino nano!
    nano jest na atmedze a nie na esp

    • Adam em Outubro 9, 2023 às 10:51 am

      Masz rację, przepraszam za pomyłkę! Para usar o Arduino Nano ESP32

  9. Brak wiedzy autora em Setembro 18, 2023 às 4:59 am

    wifi na karcie SD ???

    • Adam em Outubro 9, 2023 às 10:55 am

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

  10. robbert em Dezembro 4, 2023 às 8:33 pm

    bastante preso no progresso do esp idf. (o código não é o mesmo que nos vossos documentos) existe uma versão pré-compilada disponível que só precise de ser carregada?
    isso seria bom 😀

  11. robbert em Dezembro 4, 2023 às 8:38 pm

    Parece que o meu último comentário não chegou a ser aprovado haha

    O código parece ter mudado ao longo do tempo.
    queria construir um para os meus filhos neste Natal haha
    alguma opção para obter um bin pré-compilado para carregar no esp32?

    Com os melhores cumprimentos e muito obrigado
    Robbert

Deixe um comentário