This is an old revision of the document!


Mini-Game Console

Introduction

  • The project consists of a portable gaming console built around the T-HMI LilyGO ESP32-S3 module with a 2.8” LCD display.
  • The goal of the project is to create a portable, programmable, and extensible gaming console that offers an accessible platform for developing and running simple games. The console allows both playing predefined games and the possibility to create and upload your own games, thus transforming it into an educational tool for programming and electronics.
  • The idea originated from a passion for retro games and the desire to create a portable gaming platform that could simultaneously serve as a learning tool.
  • It is useful as educational material for learning programming and electronics through game creation, as well as an alternative to commercial gaming consoles.

Descriere generală

This portable game console effectively integrates ESP32-S3 technology with physical controls and audio output to create a compact, programmable gaming device. Its simple yet functional design makes it accessible for both gaming enthusiasts and those learning electronics and programming.

Hardware Design

- LilyGO T‑HMI ESP32‑S3 Module with 2.8″ LCD

  1. Microcontroller: ESP32‑S3
  2. Flash: 16 MB
  3. RAM: 8 MB PSRAM
  4. Display: 2.8″, 320 × 240 pixels, touchscreen
  5. Connectivity: Wi‑Fi and Bluetooth
  6. USB‑C port for programming
  7. SD-CARD 32GB

- Joystick Development Board

  1. 4 action buttons
  2. 1 analog joystick

- 5 V Passive Buzzer Module

- SD-Card reader module + 32GB SD-Card

esp32s3l.jpg

The buzzer, buttons, and joystick will be connected to the I/O pins. (IO15, IO16, IO17, IO18, IO43, IO44). The SD-CARD reader uses IO11, IO12, IO13 pins.

Bill of Materials (BOM)

# Part / Module Main Function Qty. Purchase Link Datasheet / Additional Info
—————————–————————————————–
1 Passive Buzzer Module – 5 V Generates audible tones/buzzer alerts when driven by a microcontroller pin. 1 eMAG product page Typical 5 V passive buzzer datasheet (example): <https://cdn-shop.adafruit.com/product-files/160/160_datasheet.pdf>
2 LilyGO T-HMI (ESP32‑S3 + 2.8″ LCD) Core MCU board that provides Wi‑Fi, Bluetooth, and a 2.8‑inch touch LCD for HMI. 1 eMAG product page Official LilyGO GitHub (schematic & datasheet bundle): <https://github.com/Xinyuan-LilyGO/T-HMI>
3 I²C General‑Purpose Joystick Board (4 buttons + 1 joystick) User input module offering a mini‑joystick and push‑buttons over I²C. 1 eMAG product page Example joystick module datasheet: <https://cdn-learn.adafruit.com/assets/assets/000/008/495/original/joystick-datasheet.pdf>
4 ADATA microSDHC 32 GB Class 10 + SD Adapter Provides removable storage for data logging or firmware assets. 1 [eMAG product page](https://www.emag.ro/card-de-memorie-microsdhc-adata-32gb-adaptor-sd-class-10-ausdh32guicl10-ra1/pd/D6Z2S6BBM/)

Software Design

Currently Developing a mini-game Space Defender type.

The player is a pilot of a spaceship through an endless asteroid field.

The joystick is used to move on the oX, oY axis and the button of the joystick is used to start/pause the game. When starting the console the game will initially be paused. (When paused all the objects within the game are grey) After hitting an asteroid the buzzer will produce a 'Game Over' sound.

Software used in developing the game console:

1. Arduino Framework

- Provides hardware abstraction for ESP32

- Handles basic GPIO operations

- Manages timing and delays

- Enables serial communication

2. TFT_eSPI

- Controls TFT LCD display output

- Handles graphics rendering

- Manages display settings

- Optimizes screen updates

3. SD_MMC

- Interfaces with SD card storage

- Reads game asset files

- Handles filesystem operations

- Manages data transfers

4. BSR Framework

- Provides 3D rendering capabilities

- Processes vertex data

- Implements lighting/shading

- Handles texture mapping

- Manages depth buffering

- BSR framework used to render graphics on the ESP32 microcontroller(open source project - GitHub link: https://github.com/Bogdy555/BSR)

Video DEMO - https://youtube.com/shorts/9pJ1GqU9vPw?si=lCSH9MSzvueb4-ZD

The first version of the game! - https://www.youtube.com/watch?v=BtcSVL-yEIg&ab_channel=CartofulAlbastru

Results

A hands-on console featuring a small playable game with graphics!

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2025/avaduva/mihail.eftimie.1748211843.txt.gz · Last modified: 2025/05/26 01:24 by mihail.eftimie
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0