Welcome to the Button Freak Instructable! In this guide, we'll walk through the process of creating a DIY game console using the ESP32 FireBeetle. This console features two classic games: Snake and Bouncing Ball. We'll also cover how to use a single button for navigation and gameplay, and how to include custom icons in your project.
Development Environment: Arduino IDE.
Libraries:DFRobot_GDL - For display handling.Icons
Icons: Downloaded as 32x32 pixel images, converted into byte arrays using the image2array online tool. Convert the images to byte array and paste them in your code.Connect the Display:
Follow the display’s wiring instructions to connect it to the ESP32. Ensure all connections are correct and secure.Connect the Button:
Wire the single button to the ESP32. This button will be used for navigating the menu and controlling gameplay.Connect the Buzzer:
Connect the buzzer to the ESP32 to enable sound effects.Assemble the Components:
Attach the display, button, and buzzer to the ESP32. If needed, use a breadboard or solder the components onto a PCB.Enclosure (Optional):
Design and build an enclosure for your game console if desired. You can use materials like acrylic or 3D-print a custom case.Clone the Repository:
git clone https://github.com/hackhobby-lab/button_freak.git
cd button-freak
Open the Project:
Open the project in your Arduino IDE.Install Required Libraries:
Install the DFRobot_GDL library and any other necessary libraries.Upload the Code:
Select the correct board and port in your IDE.Upload the code to the ESP32.Icons are included as byte arrays in the code. You can replace or add new icons by converting images into byte arrays using the
image2cpp tool and updating the code.
Single Button Navigation:
The single button is used to navigate through the menu and interact with the games. Here’s a simplified example of how the button is handled in the code:
Snake Game:
Use the single button to control the snake’s direction. The game will display on the screen, and you need to avoid collisions to score high.
Bouncing Ball Game:
Control the paddle with the single button to keep the ball bouncing and score points. The game mechanics are similar to classic arcade games.
Display Issues: Check all wiring connections and ensure the display library is correctly installed.
Button Response: Ensure the button is connected properly and debounce logic is implemented.
Sound Problems: Verify buzzer connections and test the sound functions in the code.
The Button Freak project combines retro gaming with modern microcontroller technology. It’s a fun and educational way to build your own game console. I hope this guide helps you in creating your own Button Freak console and customizing it to your liking.