This shows you the differences between two versions of the page.
|
pm:prj2026:vlad.radulescu2901:vlad.ungureanu1808 [2026/05/13 15:56] vlad.ungureanu1808 [Hardware Design] |
pm:prj2026:vlad.radulescu2901:vlad.ungureanu1808 [2026/05/21 17:07] (current) vlad.ungureanu1808 [Bibliografie/Resurse] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== 2048 ====== | + | ====== Log 2048 ====== |
| ===== Introducere ===== | ===== Introducere ===== | ||
| Line 21: | Line 21: | ||
| Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | ||
| </note> | </note> | ||
| - | {{:pm:prj2026:vlad.radulescu2901:schema_bloc_ungureanu_vlad-marin_335ca.png?780|Schema bloc 2048}} | + | {{:pm:prj2026:vlad.radulescu2901:schema_bloc_ungureanu_vlad-marin_335ca.png?770|Schema bloc 2048}} |
| Line 51: | Line 51: | ||
| * Card de memorie MediaRange micro SDHC 8Gb clasa 10 | * Card de memorie MediaRange micro SDHC 8Gb clasa 10 | ||
| * Modulul cititor de carduri microSD, Elektroweb | * Modulul cititor de carduri microSD, Elektroweb | ||
| - | * Potentiometru rotativ, 10kΩ, mono, SR PASSIVES, R16148-1A-2-B10K, T201743 | ||
| Schema electrică: | Schema electrică: | ||
| - | {{:pm:prj2026:vlad.radulescu2901:uvm335ca_schemaelectrica.png?770|Schema Electrică}} | + | {{::pm:prj2026:vlad.radulescu2901:uvm335ca_schemaelectrica.png?770|Schema Electrică}} |
| + | Am folosit culori diferite pentru fire pentru a fi ușor de urmărit. | ||
| + | |||
| + | Am folosit următorii pini: | ||
| + | |||
| + | * ATmega328P Xplained Mini: | ||
| + | * 5V și GND - pentru a asigura energie electrică celorlalte componente | ||
| + | * PC0 și PC1 - ADC-uri pentru inut-ul de la joystick | ||
| + | * MOSI, MISO, SCLK - comunicarea prin SPI | ||
| + | * PB0 și PB1 - slave select pentru display, respectiv SD card | ||
| + | * PD2 - butonul joystick-ului | ||
| + | * [[https://www.waveshare.com/datasheet/LCD_en_PDF/ST7920.pdf|Display LCD 128X64 ST7920]]: | ||
| + | * VCC și GND - pentru a asigra energie electică | ||
| + | * RS, R/W și E - echivalentele SS, MOSI și SCLK, folosite pentru comunicarea peste SPI | ||
| + | * PSB - setează display-ul în modul de SPI | ||
| + | * BLA și BLK - setează gradul de luminozitate al ecranului | ||
| + | * Controler joystick KY-023: | ||
| + | * VCC și 5V - pentru a asigra energie electică | ||
| + | * VRx și VRy - output-uri pentru direcția joystick-ului | ||
| + | * SW - buton | ||
| + | * Modulul cititor de carduri microSD, Elektroweb: | ||
| + | * VCC și GND - pentru a asigra energie electică | ||
| + | * CS, MOSI, MISO și SCLK - folosite pentru comunicarea peste SPI | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 70: | Line 91: | ||
| Ca mediu de dezvoltare, am folosit extensia PlatformIO pentru VS Code. | Ca mediu de dezvoltare, am folosit extensia PlatformIO pentru VS Code. | ||
| - | Am folosit librăria [[https://registry.platformio.org/libraries/olikraus/U8glib|U8glib]] pentru afișajul pe display. | + | Am folosit librăria [[https://elm-chan.org/fsw/ff/00index_p.html|Petit FAT File]] pentru interfațarea cu cardul microSD și scheletul din laboratorul 5 pentru comunicarea peste SPI cu display-ul și cardul microSD și pentru comunicarea prin USART. |
| + | |||
| + | Scheletul de bază (până acum): | ||
| + | - main - Se ocupă de inițializarea modulelor folosite (joystick, USART, timer, SPI, LCD, microSD) și cu bucla principală a jocului. Aici se stabilește în ce stare ne aflăm (joc propriu-zis, meniu etc) și se apelează funcțiile necesare. De asemenea, se citește și interpretează input-urile. | ||
| + | - timers - Inițializează timer 1 pentru a număra milisecundele care trec de la începutul jocului. Este implementarea mea pentru laboratorul 3 și nu a fost modificat încă. | ||
| + | - usart - Se ocupă de comunicarea cu laptop-ul prin USART. Luat din laboratorul 5. | ||
| + | - lcd - Inițializază și trimite comenzi către display prin SPI. Inispirat din laboratorul 5. De asemenea, asigură funcții pentru desenarea fiecărui eran necesar în joc. | ||
| + | - nameinput - Prezintă utilizatorului o modalitate de a-și salva numele. | ||
| + | - menu - Are variabile necesare printării ecranului principal. | ||
| + | - g2048 - Se ocupă de funcționalitatea jocului propriu-zis. | ||
| + | - spi - Inițializază SPI și asigură funcții pentru selectarea dispozitivelor prin SS. | ||
| + | - adc - Inițializază și citește ADC 0 și 1. | ||
| + | - memory - Asigură funcții de deschidere a fișierului de configurații pentru joc și pentru scrierea și citirea din el. | ||
| + | - pff - Petit FAT Filesystem | ||
| + | - sd - Asigură funcții folosie de pff pentru manipularea cardului microSD. Luat din laboratorul 5. | ||
| + | |||
| + | Pentru a asigura funcționalitatea corespunzătoare și pentru a determina valorile pentru parametrii joystick-ului, am testat manual. | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| Line 76: | Line 113: | ||
| Care au fost rezultatele obţinute în urma realizării proiectului vostru. | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
| </note> | </note> | ||
| + | |||
| + | [[https://www.youtube.com/shorts/rtlZVtM2Lys|Demo]] | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| Line 89: | Line 128: | ||
| [[https://github.com/V1ad8/PM-Fair|Link github]] | [[https://github.com/V1ad8/PM-Fair|Link github]] | ||
| + | {{:pm:prj2026:vlad.radulescu2901:uvm335ca_pm_fair.zip|Arhivă cu proiectul}} | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| Line 97: | Line 137: | ||
| {{:pm:prj2026:vlad.radulescu2901:uvm335ca_photo.png?770|Poză cu proiectul}} | {{:pm:prj2026:vlad.radulescu2901:uvm335ca_photo.png?770|Poză cu proiectul}} | ||
| + | |||
| + | <note> | ||
| Proiectul la data de 13 mai. | Proiectul la data de 13 mai. | ||
| + | |||
| + | Din această poză se poate observa funcționalitatea ecranului și cum arată jocul. | ||
| + | |||
| + | În plus, se pot combina blocuri folosind input direcțional de la joystick și la un interval regulat, va apărea un nou bloc în joc, însă aceste funcționalități sunt greu de surprins. | ||
| + | </note> | ||
| + | |||
| + | {{:pm:prj2026:vlad.radulescu2901:uvm335ca_photo2.png?770|Poză cu proiectul 2}} | ||
| + | |||
| + | <note> | ||
| + | Proiectul la data de 21 mai. | ||
| + | |||
| + | Am adăugat cardul microSD, meniu prinipal și meniu pentru introdus un nume. | ||
| + | </note> | ||
| + | |||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| Line 104: | Line 160: | ||
| </note> | </note> | ||
| - | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | [[https://www.waveshare.com/datasheet/LCD_en_PDF/ST7920.pdf|Display LCD 128X64 ST7920]] |
| + | |||
| + | |||
| + | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||