Atari Breakout
A clone of the classic video game
Author: Dumitru Silvia-Alexandra
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-silviaalex
Description
The project implements the arcade video game Breakout developed by Atari and released in 1976. This game consists of a sideways-moving paddle used to control the direction of a bouncing ball in order to eliminate all the bricks in the level and avoid missing to hit the ball when it comes back to the paddle. In this project, the video game is displayed on an LCD, played with a joystick and having responsive sound coming from a buzzer.
Motivation
I have a deep passion for retro video games and wanted to build one for the project.
Architecture
The main components are:
- the input, for controlling the paddle and other types of movement outside of gameplay
- the video output, for showing the state of the game, main menu, and maybe a leaderboard
- the audio output, for the SFX and, potentially, the music
These components are connected to the microcontroller, which is processing the inputs and updating the outputs.
Log
Week 5 - 11 May
Week 12 - 18 May
Week 19 - 25 May
Hardware
Hardware used:
- Raspberry Pi Pico 2 W, the microcontroller
- TFT LCD with ST7735R driver, the display
- Biaxial Joystick, the joystick with 2 analog outputs for movement and 1 digital output for pressing it down
- Buzzer, for sound
- Breadboard, for placing all the components on
- Pin headers, soldered to the microcontroller
- Jumper wires, for interconnecting components
- Resistors, for pull up
Schematics
Bill of Materials
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico 2 W | The microcontroller | 39.66 lei |
Pin Header | For connecting the microcontroller to the breadboard | 0,99 lei |
TFT LCD with ST7735R driver | The display | 28,99 lei |
Biaxial Joystick | The input | 5,35 lei |
Female Header | For connecting the joystick to the breadboard | 0,49 lei |
Plusivo Wireless Kit | For the buzzer, the breadboard, the jumper wires and the resistors included in the kit | 79,99 lei |
Software
Library | Description | Usage |
---|---|---|
embassy-rp | RP2350 HAL | Used for embedded programming |
embedded-graphics | Graphics crate | Used for drawing |
embedded-graphics-framebuf | Framebuffer with DMA support | Used to eliminate the flickering of the display |
mipidsi | Generic display driver to connect to TFT displays | Used for the display |
heapless | Heapless allocator | Used for creating formatted text |
Links
- Breakout (Video Game)
- Godot port of Breakout
- Tutorial to be able to program the microcontroller in WSL
- Finding out that the current version of elf2uf2-rs doesn't work with pico2w and eventually deciding to install picotool
- Tutorial about installing picotool to finally be able to upload valid uf2 to the microcontroller