Skip to main content
Version: ACS CC

Atari Breakout

A clone of the classic video game

info

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

Hardware1 Hardware2

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

Schematics

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2 WThe microcontroller39.66 lei
Pin HeaderFor connecting the microcontroller to the breadboard0,99 lei
TFT LCD with ST7735R driverThe display28,99 lei
Biaxial JoystickThe input5,35 lei
Female HeaderFor connecting the joystick to the breadboard0,49 lei
Plusivo Wireless KitFor the buzzer, the breadboard, the jumper wires and the resistors included in the kit79,99 lei

Software

LibraryDescriptionUsage
embassy-rpRP2350 HALUsed for embedded programming
embedded-graphicsGraphics crateUsed for drawing
embedded-graphics-framebufFramebuffer with DMA supportUsed to eliminate the flickering of the display
mipidsiGeneric display driver to connect to TFT displaysUsed for the display
heaplessHeapless allocatorUsed for creating formatted text
  1. Breakout (Video Game)
  2. Godot port of Breakout
  3. Tutorial to be able to program the microcontroller in WSL
  4. Finding out that the current version of elf2uf2-rs doesn't work with pico2w and eventually deciding to install picotool
  5. Tutorial about installing picotool to finally be able to upload valid uf2 to the microcontroller