This is an old revision of the document!


Retro Games Console

Autor: Basarâm Ștefan
Grupa: 333CD

Introduction

What?

This project consists of a game console featuring popular retro games such as Snake, Pong and Asteroids. It uses as control inputs a button and a joystick, with an ultra-wide display composed of 2 LED 8×8 matrices and a buzzer for audio feedback.

Why?

The purpose of this device is to facilitate a unique gaming experience in a portable package which aims to capture the golden period of arcade games from the 1980s. This console offers a unique handling to players today who are used to playing games on their phones and desktops/laptops.

How come?

My inspiration comes mainly from my existing passion for graphic and game design. Having limited resources, I decided examples from the first generation of video games are the most suited.

For whom?

The biggest audience for this device are the teens who have an affinity for old-school video games who would thoroughly enjoy a similar gaming experience to the one provided by arcade cabinets, all available in a neat and portable package similar to actual game consoles on the market.

Description

Powering ON

  • When the console is powered on, a little start-up animation plays on the main display, scrolling the console name and then the first game out of three (Snake) automatically starts.

User input

  • The analog joystick is used to move the characters and the dedicated module button is used for firing or adjusting the game difficulty.
  • If a player wishes to skip a game, they can do so by pressing twice on the button integrated in the analog joystick in quick succesion.

Game loop

  • Every frame, the game updates its game state, reads user input and draws the result to the main display formed of two 8×8 LED matrices.
  • If the game detects an entity collision or a decision is being prompted, the buzzer will be triggered to provide an auditory feedback.

Lives system

  • For each of the three games the player has 3 lives. These are represented by the 3 color LEDs arranged in an LED array which are colored red, yellow and green from left to right.
  • When a player loses a life, the rightmost LED flashes and turns off. The current game subsequently restarts, or resumes. When a player consumes all lives they will enter into a gameover.
    The red and green LEDs flash for a moment, followed by one of them being active at a time signifying the player's choice to either retry the current game, represented by the red LED, and moving to the next game represented by the green LED.

Hardware Design

Bill of materials

Pin configuration

For all devices, the VCC pins are connected to 5V and GND to a GND pin on the host (Arduino).
The Host ↔ Device column presents which pins are used, as well as the direction that information flows in.

Name Type Host ↔ Device Reason
Module button Digital D2 ← out Binary press state of button is read via INT0 interruption
LED Matrix (A) D8 → DIN Data input, sets the state of any LEDs on the matrix
D9 → CS Chip select
D10 → CLK Clock signal
LED Matrix (B) D5 → DIN Data input, sets the state of any LEDs on the matrix
D6 → CS Chip select
D7 → CLK Clock signal
Red LED D13 → LED Pins power the LED ON/OFF
Yellow LED D12 → LED
Green LED D11 → LED
Joystick Analog A0 ← VRx Continous input from a potentiometer, representing 2D movement
A1 ← VRy
Digital D4 ← SW Button press state can be read digitally
Passive buzzer Digital (PWM) D3 → Buzzer The use of PWM enables adjusting the volume of the buzzer, along with its tone

Software Design

pm/prj2025/iotelea/stefan.basaram.1748231157.txt.gz · Last modified: 2025/05/26 06:45 by stefan.basaram
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