Table of Contents

Mini Game Console

Introduction

This project consists of building a retro mini game console capable of running classic arcade games (such as Snake and Breakout).

General Description

The console is structured into three main blocks: input, processing, and output.

System Block Diagram:

Hardware Design

List of components used for the project (Bill of Materials):

Electrical Scheme:

 Mini Console Electrical Schematic

Connection Table

Component Component Pin ATmega328P Pin Details / Functionality
RGB LED Red Anode PD6 (D6) PWM controlled (Timer0 OC0A)
Green Anode PD5 (D5) PWM controlled (Timer0 OC0B)
Blue Anode PB3 (D11) PWM controlled (Timer2 OC2A)
Cathode GND Common Ground
Joystick VRx PC0 (ADC0) Analog read (X-axis)
VRy PC1 (ADC1) Analog read (Y-axis)
SW PD2 (D2) Hardware Interrupt (INT0, Internal Pull-up)
VCC 5V Power Supply
GND GND Ground
OLED Display SDA PC4 (A4) I2C Data line (TWI)
SCL / SCK PC5 (A5) I2C Clock line (Fast Mode 400kHz)
VCC 5V Power Supply
GND GND Ground
Buzzer Pin (+) PB1 (D9) Through 220Ω resistor (Timer1 OC1A)
Pin (-) GND Ground
Buttons START PD3 (D3) Hardware Interrupt (INT1, Internal Pull-up)
PAUSE PB0 (D8) Pin Change Int (PCINT0, Internal Pull-up)

Communication Protocols and Hardware Peripherals

To seamlessly manage the display, analog input, and visual/audio effects concurrently without blocking the main loop, the system heavily utilizes the microcontroller's hardware peripherals:

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

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