Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:bianca.popa1106:mihnea_andrei.cazan [2026/05/10 00:06]
mihnea_andrei.cazan [Hardware Design]
pm:prj2026:bianca.popa1106:mihnea_andrei.cazan [2026/05/10 00:10] (current)
mihnea_andrei.cazan [Descriere generală]
Line 9: Line 9:
   * **The idea** originated from the desire to recreate the experience of 80s/90s arcade games on a minimal hardware platform, demonstrating how limited memory resources (32KB Flash, 2KB RAM) can provide a complete interactive experience.   * **The idea** originated from the desire to recreate the experience of 80s/90s arcade games on a minimal hardware platform, demonstrating how limited memory resources (32KB Flash, 2KB RAM) can provide a complete interactive experience.
   * **This project is highly useful** from an educational standpoint, as it deepens the understanding of fundamental concepts (I2C communication protocols, ADCs, Timers, PWM, and Hardware Interrupts),​ while also resulting in a functional and entertaining gadget.   * **This project is highly useful** from an educational standpoint, as it deepens the understanding of fundamental concepts (I2C communication protocols, ADCs, Timers, PWM, and Hardware Interrupts),​ while also resulting in a functional and entertaining gadget.
-===== Descriere generală ​=====+===== General Description ​=====
  
 The console is structured into three main blocks: input, processing, and output. The console is structured into three main blocks: input, processing, and output.
Line 20: Line 20:
  
 {{ :​pm:​prj2026:​bianca.popa1106:​project_block_diagram.png?​700x500 |}} {{ :​pm:​prj2026:​bianca.popa1106:​project_block_diagram.png?​700x500 |}}
 +
 ===== Hardware Design ===== ===== Hardware Design =====
  
-Lista componentelor folosite pentru proiect ​(BOM - Bill of Materials):+List of components used for the project ​(Bill of Materials):
   * **ATmega328P Xplained Mini** Development Board (8-bit AVR Microcontroller)   * **ATmega328P Xplained Mini** Development Board (8-bit AVR Microcontroller)
   * **0.96"​ OLED Display** (SSD1306 Controller, I2C Interface, 128x64 resolution)   * **0.96"​ OLED Display** (SSD1306 Controller, I2C Interface, 128x64 resolution)
-  * **Biaxial Analog Joystick Module** (KY-023 type) cu buton de push integrat ​(SW) +  * **Biaxial Analog Joystick Module** (KY-023 type) with integrated ​push button ​(SW) 
-  * **Passive Buzzer 3.3V** (pentru generarea de efecte sonore+  * **Passive Buzzer 3.3V** (for generating sound effects
-  * **5mm RGB LED** (Common Cathode, ​pentru indicarea stării consolei+  * **5mm RGB LED** (Common Cathode, ​for visual state indication
-  * **2 x Tact Switch Buttons 6x6mm** (Pentru funcțiile ​START și PAUSE) +  * **2 x Tact Switch Buttons 6x6mm** (For START and PAUSE functions
-  * **4 x 220Ω Resistors** (3 pentru limitarea curentului pe LED-ul RGB, 1 pentru protecția ​buzzer-ului+  * **4 x 220Ω Resistors** (3 for RGB LED current limiting, 1 for buzzer ​protection
-  * **830 Tie-Points Breadboard** (pentru asamblare fără lipire+  * **830 Tie-Points Breadboard** (for solderless assembly
-  * **Dupont Wire Set** (Tată-Tată și Mamă-Tată)+  * **Dupont Wire Set** (Male-to-Male and Female-to-Male) 
 + 
 +**Electrical Scheme:**
  
-**Schema Electrică:**+{{:pm:​prj2026:​bianca.popa1106:​mihnea-andrei_cazan_schema_electrica.png?​700x500 | Mini Console Electrical Schematic}}
  
-{{:​pm:​prj2026:​bianca.popa1106:​mihnea-andrei_cazan_schema_electrica.png?​700x500 | Schema electrică a consolei}}+==== Connection Table ====
  
-==== Tabel de Conexiuni ====+^ 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) |
  
-^ Componentă ^ Pin Componentă ^ Pin ATmega328P ^ Detalii / Funcționalitate ^ +==== Communication Protocols and Hardware Peripherals ====
-| **LED RGB** | Anod Roșu | PD6 (D6) | PWM (Timer0 OC0A) | +
-| ::: | Anod Verde | PD5 (D5) | PWM (Timer0 OC0B) | +
-| ::: | Anod Albastru | PB3 (D11) | PWM (Timer2 OC2A) | +
-| ::: | Catod | GND | Masă comună | +
-| **Joystick** | VRx | PC0 (ADC0) | Citire analogică (axa X) | +
-| ::: | VRy | PC1 (ADC1) | Citire analogică (axa Y) | +
-| ::: | SW | PD2 (D2) | Întrerupere (INT0, Pull-up intern activat) | +
-| ::: | VCC | 5V | Alimentare | +
-| ::: | GND | GND | Masă | +
-| **OLED Display**| SDA | PC4 (A4) | Date I2C (TWI) | +
-| ::: | SCL / SCK | PC5 (A5) | Clock I2C (Fast Mode 400kHz) | +
-| ::: | VCC | 5V | Alimentare | +
-| ::: | GND | GND | Masă | +
-| **Buzzer** | Pin (+) | PB1 (D9) | Trecut prin rezistență 220Ω (Timer1 OC1A) | +
-| ::: | Pin (-) | GND | Masă | +
-| **Butoane** | START | PD3 (D3) | Întrerupere (INT1, Pull-up intern activat) | +
-| ::: | PAUSE | PB0 (D8) | Pin Change Int (PCINT0, Pull-up intern activat) |+
  
-==== Protocoale de Comunicație și Periferice Hardware ====+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:​ 
 +  * **I2C (TWI):** Enabled on pins PC4/PC5. Configured in **Fast Mode (400 kHz)** to ensure rapid transfer of the frame buffer to the OLED display (maintaining ~30 FPS). 
 +  * **ADC:** ADC0 and ADC1 channels are used for smooth joystick reading, utilizing a 128 prescaler for signal stability. 
 +  * **PWM Signals:** Timers 0 and 2 generate hardware PWM signals on 3 independent pins to finely control the brightness and color mixing of the RGB LED. 
 +  * **Timer1 (CTC Mode):** Generates precise hardware frequencies for musical notes sent to the buzzer, offloading the CPU from using blocking delay functions.
  
-Pentru a gestiona simultan display-ul, input-ul analogic și efectele vizuale/​sonore fără să se blocheze, sistemul folosește intens perifericele hardware ale microcontroller-ului:​ 
-  * **I2C (TWI):** Activat pe pinii PC4/PC5. Este configurat în **Fast Mode (400 kHz)** pentru a asigura transferul rapid al frame-buffer-ului către display-ul OLED (menținând ~30 FPS). 
-  * **ADC:** Canalele ADC0 și ADC1 sunt folosite pentru citirea fluidă a joystick-ului,​ utilizând un prescaler de 128 pentru stabilitate. 
-  * **Semnale PWM:** Timerele 0 și 2 generează semnale PWM hardware pe 3 pini independenți pentru a controla intensitatea și mixarea culorilor pe LED-ul RGB. 
-  * **Timer1 (CTC Mode):** Generare de frecvențe hardware precise pentru notele muzicale transmise către buzzer, degrevând procesorul de folosirea funcțiilor blocante de tip delay. 
  
 ===== Software Design ===== ===== Software Design =====
pm/prj2026/bianca.popa1106/mihnea_andrei.cazan.1778360785.txt.gz · Last modified: 2026/05/10 00:06 by mihnea_andrei.cazan
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