This shows you the differences between two versions of the page.
|
pm:prj2026:alexandru.jipa2803:acondorache [2026/05/06 20:05] acondorache [Descriere generală] |
pm:prj2026:alexandru.jipa2803:acondorache [2026/05/12 17:44] (current) acondorache [Hardware Design] |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| Sistemul este compus din următoarele componente: | Sistemul este compus din următoarele componente: | ||
| - | * Bloc de control pentru movement si sunet: Atmega328P primeste | ||
| - | ---- | + | * Bloc de control pentru mișcare: microcontrolerul ATmega328P primește input de la joystick și keypad și transmite comenzile prin UART către placa principală Arduino Mega. De asemenea, acesta primește mesaje de la Arduino Mega pentru activarea buzzerului atunci când este necesar. |
| - | {{:pm:prj2026:alexandru.jipa2803:acondorache:diagrambloc2.png?500x330|}} | + | * Joystick-ul este utilizat pentru controlul mișcării caracterului din joc. |
| + | * Keypad-ul este folosit pentru atacarea inamicilor și pentru interacțiunea cu diferite elemente din joc. | ||
| + | * Bloc de control pentru display: Arduino Mega se ocupă de afișarea sprite-urilor pe ecran. Acesta primește comenzile prin UART de la cealaltă placă și mută jucătorul sau realizează interacțiuni cu elementele din joc în funcție de acestea. | ||
| + | * TFT Shield v2.2 este utilizat pentru conversia nivelului de tensiune de la 5V la 3.3V, deoarece pinii ecranului funcționează la 3.3V. | ||
| + | * Ecranul TFT LCD de 3.2 inch afișează harta, jucătorul și inamicii. | ||
| + | |||
| + | {{:pm:prj2026:alexandru.jipa2803:acondorache:bloc.png?500|}} | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | {{:pm:prj2026:alexandru.jipa2803:acondorache:proiect.png?800|}} |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | Ecranul ILI9341 TFT LCD Display Module este conectat în modul 16-bit paralel la un Arduino Mega 2560. Pinii de comunicație ai ecranului funcționează la 3.3V, în timp ce plăcuța oferă semnale la 5V. Pentru a realiza conexiunea dintre ecran și microcontroller am utilizat un TFT Shield V2.2, care realizează conversia nivelurilor de tensiune. |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
| - | * diagrame de semnal | + | Shield-ul se conectează la plăcuță astfel: |
| - | * rezultatele simulării | + | |
| - | </note> | + | * Ocupă toți pinii de power; |
| + | * Utilizează pinii digitali 0–7 și 22–53. | ||
| + | |||
| + | Această mapare a pinilor nu a fost realizată manual, deoarece shield-ul permite un singur mod de conectare la Arduino Mega. | ||
| + | |||
| + | Conexiunile dintre shield și ecran sunt următoarele: | ||
| + | |||
| + | * Pinii **DB0–DB15** sunt utilizați pentru comunicația în modul 16-bit paralel; | ||
| + | * Pinii **CS, RD, WR** și **RS** sunt utilizați pentru controlul ecranului și pentru funcționarea bibliotecii grafice; | ||
| + | * Pinii **VDD** și **GND** sunt utilizați pentru alimentare; | ||
| + | * Pinii **CLK, MOSI, MISO** și **SDCS** sunt utilizați pentru comunicarea cu slotul de card SD, necesar salvării datelor persistente. | ||
| + | |||
| + | Pentru conectarea joystick-ului am utilizat: | ||
| + | |||
| + | * **A0** pentru VRx; | ||
| + | * **A1** pentru VRy. | ||
| + | |||
| + | Acești pini au fost aleși deoarece semnalele VRx și VRy sunt citite analogic. | ||
| + | |||
| + | Pentru conectarea keypad-ului am utilizat: | ||
| + | |||
| + | * Pinii **A8–A11**, câte unul pentru fiecare buton (1–4). | ||
| + | |||
| + | Acești pini au fost aleși deoarece suportă întreruperi de tip PCINT, necesare pentru detectarea apăsării butoanelor. | ||
| + | Buzzer-ul a fost conectat la pinul digital 13, deoarece este necesar un pin cu suport PWM pentru controlul acestuia. | ||
| ===== Software Design ===== | ===== Software Design ===== | ||