This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:eugen.munteanu2604 [2026/05/08 19:00] eugen.munteanu2604 |
pm:prj2026:bianca.popa1106:eugen.munteanu2604 [2026/05/11 23:12] (current) eugen.munteanu2604 |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== SnakeC ====== | ====== SnakeC ====== | ||
| + | |||
| + | Munteanu Eugen 343C5 | ||
| + | |||
| ===== Introducere ===== | ===== Introducere ===== | ||
| - | <note tip> | + | **SnakeC** este un sistem de calcul care ruleaza jocul clasic Snake, permitand utilizatorului sa controleze un sarpe prin intermediul unui joystick pentru a colecta fructe si a creste in dimensiune. Aplicatia include un meniu pentru selectarea nivelului de dificultate (fara obstacole sau cu obstacole) si introduce mecanici de tip power-up, precum incetinirea sarpelui sau distrugerea peretilor din nivelele complexe. |
| - | Prezentarea pe scurt a proiectului vostru: | + | |
| - | * ce face | + | |
| - | * care este scopul lui | + | |
| - | * care a fost ideea de la care aţi pornit | + | |
| - | * de ce credeţi că este util pentru alţii şi pentru voi | + | |
| - | </note> | + | |
| - | Proiectul presupune dezvoltarea unui sistem de calcul simplu ce ruleaza jocul clasic Snake; jocul consta in controlul unui sarpe ce mananca fructe pentru a se mari. Nivelele de joc sunt separate, fiind accesate prin meniu (unul este usor, fara obstacole; celalalt are obstacole). Un nivel se termina cand sarpele se loveste sau ajunge sa aiba o anumita lungime. Jucatorul are la dispozitie un joystick pentru controlul sarpelui. In cadrul jocului, pot aparea powerup-uri precum incetinirea miscarii sarpelui sau distrugerea obstacolelor din nivelul complex. | + | Ideea a pornit de la dorinta de a reimplementa un joc retro pe o arhitectura hardware simpla, adaugand elemente de gameplay pentru a creste complexitatea si interactivitatea fata de versiunea originala a jocului. Scopul reprezinta dezvoltarea unui sistem embedded capabil sa gestioneze logica unui joc in timp real, incluzand meniuri interactive, procesarea input-ului de la joystick si gestionarea conditiilor de finalizare a jocului. |
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| - | <note tip> | + | {{ :pm:prj2026:bianca.popa1106:snakec_schemabloc.jpg?200|}} |
| - | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
| - | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | Conform schemei bloc, unitatea centrala este reprezentata de microcontroller, care gestioneaza fluxul de date intre toate componentele sistemului. Controlul jocului este realizat prin intermediul joystick-ului, conectat prin pini GPIO (analogici A0 si A1). Microcontroller-ul citeste pozitia acestuia pentru a determina directia sarpelui, calculeaza noua stare a jocului si transmite datele procesate catre display prin SPI. Aceasta conexiune asigura actualizarea elementelor grafice, precum sarpele, meniurile si hartile de joc. |
| - | </note> | + | |
| + | Pentru feedback audio, sistemul include un buzzer pasiv controlat prin semnal PWM. Comunicarea unidirectionala microcontroller-buzzer are rolul de a emite sunete specifice evenimentelor din joc. | ||
| + | |||
| + | Gestionarea timpului si schimbarea hartii sunt realizate cu ajutorul modulului RTC, conectat prin interfata I2C. Acesta functioneaza ca un furnizor de date independent, trimitand informatii despre ora curenta catre microcontroller, in vederea alegerii hartii corespunzatoare. | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | ==== Componente folosite ==== |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | ^ Componenta ^ Cantitate ^ Link magazin ^ |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | | Microcontroller de tip \\ Arduino Uno R3 | 1 | [[https://www.optimusdigital.ro/ro/placi-avr/1685-uno-r3-atmega328p-atmega16u2-placa-de-dezvoltare-compatibila-cu-arduino.html|Optimus Digital]] | |
| - | * diagrame de semnal | + | | Breadboard 400p| 2 | [[https://www.optimusdigital.ro/ro/breadboards/44-400p-hq-breadboard.html|Optimus Digital]] | |
| - | * rezultatele simulării | + | | Fire mama-tata set 10buc | 2 | [[https://www.optimusdigital.ro/ro/fire-fire-mufate/214-fire-colorate-mama-mama-10p.html|Optimus Digital]] | |
| - | </note> | + | | Fire tata-tata set 40buc | 1 | [[https://www.optimusdigital.ro/ro/fire-fire-mufate/890-set-fire-tata-tata-40p-30-cm.html|Optimus Digital]] | |
| + | | Modul RTC | 1 | [[https://www.optimusdigital.ro/ro/altele/12286-modul-ceas-in-timp-real-rtc-pcf8563.html| Optimus Digital]] | | ||
| + | | Joystick analogic | 1 | [[https://sigmanortec.ro/Modul-joystick-doua-axe-XY-p126458908|Sigmanortec]] | | ||
| + | | Buzzer pasiv | 1 | [[https://www.bitmi.ro/electronica/modul-buzzer-pasiv-ky-006-10678.html|Bitmi]] | | ||
| + | | LCD ILI9341 | 1 | [[https://www.bitmi.ro/ecran-lcd-ili9341-cu-touch-si-slot-pentru-card-sd-2-4-10797-bitmi-ro.html|Bitmi]] | | ||
| + | |||
| + | ==== Laboratoare folosite ==== | ||
| + | * GPIO - citire analogica de la joystick | ||
| + | * SPI - conexiunea cu display-ul | ||
| + | * I2C - conexiunea microcontroller-RTC | ||
| + | * Timere+PWM - emiterea sunetelor specific jocului | ||
| + | |||
| + | ==== Conexiuni si asocieri pini ==== | ||
| + | |||
| + | === Joystick === | ||
| + | ^ Pin Joystick ^ Pin Arduino ^ Tip Semnal ^ | ||
| + | | VRx (HORZ) | A1 (PC1) | Analog In | | ||
| + | | VRy (VERT) | A0 (PC0) | Analog In | | ||
| + | | SW (Buton) | D6 (PD6) | Digital In | | ||
| + | | VCC | 5V | Power | | ||
| + | | GND | GND | Ground | | ||
| + | |||
| + | === Buzzer Pasiv === | ||
| + | ^ Pin Buzzer ^ Pin Arduino ^ Tip Semnal ^ | ||
| + | | S (Signal) | D8 (PB0) | PWM Out | | ||
| + | | GND | GND | Ground | | ||
| + | |||
| + | === Display LCD (interfata SPI) === | ||
| + | ^ Pin Display ^ Pin Arduino ^ Rol Pin ^ | ||
| + | | MOSI | D11 (PB3) | Date SPI | | ||
| + | | MISO | D12 (PB4) | Date SPI | | ||
| + | | SCK | D13 (PB5) | Clock SPI | | ||
| + | | CS | D10 (PB2) | Chip Select | | ||
| + | | DC | D9 (PB1) | Data/Command | | ||
| + | | RST | RESET (PC6)| Reset | | ||
| + | | LED | 3.3V | Backlight | | ||
| + | | VCC | 5V | Power | | ||
| + | | GND | GND | Ground | | ||
| - | Componente folosite: | + | === Modul RTC (interfata I2C) === |
| - | * microcontroller de tip Arduino Uno R3 | + | ^ Pin RTC ^ Pin Arduino ^ Rol Pin ^ |
| - | * 1 buzzer pasiv | + | | SCL | A5 (PC5) | I2C Clock | |
| - | * 1 modul RTC | + | | SDA | A4 (PC4) | I2C Data | |
| - | * 1 display ILI9341 | + | | VCC | 5V | Power | |
| - | * 1 joystick analogic | + | | GND | GND | Ground | |
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 67: | Line 103: | ||
| <note tip> | <note tip> | ||
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
| + | 2026-05-08 - Pagina OCW creata \\ | ||
| + | 2026-05-08 - Introducere + Hardware Design \\ | ||
| + | 2026-05-09 - Actualizare Introducere + Hardware Design \\ | ||
| + | 2026-05-09 - Adaugare Descriere generală, schema-bloc, link-uri datasheet \\ | ||
| + | 2026-05-11 - Completare hardware design, adaugarea conexiunilor si asocierilor de pini \\ | ||
| </note> | </note> | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| - | <note> | + | Datasheet-uri: |
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf|LCD ILI9341 Datasheet]] |
| - | </note> | + | * [[https://www.nxp.com/docs/en/data-sheet/PCF8563.pdf|RTC PCF8563 Datasheet]] |
| + | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|ATmega328P Datasheet]] | ||
| <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||