This shows you the differences between two versions of the page.
pm:prj2024:fstancu:dragos.enachescu [2024/05/19 22:33] dragos.enachescu [Hardware Design] |
pm:prj2024:fstancu:dragos.enachescu [2024/05/27 00:40] (current) dragos.enachescu [Rezultate Obţinute] |
||
---|---|---|---|
Line 37: | Line 37: | ||
=== Schemă componente === | === Schemă componente === | ||
- | {{:pm:prj2024:fstancu:x_si_0_schema.png?800|}} | + | {{:pm:prj2024:fstancu:schema_finala.png?600|}} |
- | ===== Software Design ===== | + | 1. Conectarea LCD-ului: \\ |
+ | - LED-, GND la GND de pe Arduino. \\ | ||
+ | - LED+, VCC la 5V de pe Arduino. \\ | ||
+ | - RESET la PIN8 de pe Arduino. \\ | ||
+ | - A0 la PIN9 de pe Arduino. \\ | ||
+ | - SDA la PIN11 de pe Arduino. \\ | ||
+ | - SCL la PIN13 de pe Arduino. \\ | ||
+ | - CS la PIN10 de pe Arduino. \\ | ||
- | <note tip> | + | 2. Conectarea Joystick-ului: \\ |
- | Descrierea codului aplicaţiei (firmware): | + | - GND la GND de pe Arduino. \\ |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | - 5V la 5V de pe Arduino. \\ |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | - VRx la A0 de pe Arduino. \\ |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | - VRy la A1 de pe Arduino. \\ |
- | * (etapa 3) surse şi funcţii implementate | + | - SW la A2 de pe Arduino. \\ |
- | </note> | + | |
- | ===== Rezultate Obţinute ===== | + | 3. Conectarea Buzzer-ului: \\ |
+ | - GND la GND de pe Arduino. \\ | ||
+ | - I/O la PIN12 de pe Arduino. \\ | ||
+ | - VCC la 5V de pe Arduino. \\ | ||
+ | 4. Conectarea LED-urilor: \\ | ||
+ | - roșu la PIN12. \\ | ||
+ | - albastru la PIN4. \\ | ||
+ | |||
+ | |||
+ | ===== Software Design ===== | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Mediu de dezvoltare: PlatformIO |
+ | |||
+ | Biblioteca utilizata: st7735.h | ||
</note> | </note> | ||
- | ===== Concluzii ===== | + | ===== Descriere implementare ===== |
- | ===== Download ===== | + | Mediul de dezvoltare folosit pentru realizarea acestui proiect a fost PlatformIO. În ceea ce privește componenta de bază a proiectului, și anume LCD-ul pe care este afișat tabla de joc, am folosit o librărie 3rd-party (st7735.h), dar și programare pentru setarea regiștrilor pentru jocul propriu-zis de X și 0 ca în laboratoare. |
- | <note warning> | + | Pentru gestionarea mutărilor jucătorilor am folosit modulul Joystick, pentru care am avut nevoie de modulul ADC, adica transformarea semnalului analog în digital, ca în laboratorul 4. |
- | 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**. | + | Pentru sunetul buzzer-ului am folosit timer-ul 0, care se declanșează la momentul plasării în căsuță a piesei corespunzătoare jucătorului. |
- | </note> | + | |
- | {{:pm:prj2024:fstancu:x_si_0_v2.zip|}} | + | Pentru a determina tabla, m-am folosit de o matrice de dimensiune 3 x 3, în care se stochează mutările, afișându-le în LCD prin intermediul unor coordonate, și folosindu-mă de funcțiile date de librărie pentru desenarea X-ului și 0-ului în căsuță, la finalul jocului afișându-se care jucător a câștigat și scorul final, cu rundele căștigate de jucătorul 1, jucătorul 2, respectiv egalitate. |
- | ===== Jurnal ===== | + | ===== Rezultate Obţinute ===== |
- | <note tip> | + | Rezultatele au fost cele așteptate de la început. Toate componentele funcționează, fiecare jucător are o culoare a led-ului specifică, iar la finalul fiecărui joc se afișează și scorul per total. |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | {{:pm:prj2024:fstancu:demo_gameplay.jpg?200|}} |
+ | |||
+ | |||
+ | {{:pm:prj2024:fstancu:demo_win1.jpg?200|}} | ||
+ | |||
+ | |||
+ | {{:pm:prj2024:fstancu:demo_draw.jpg?200|}} | ||
+ | ===== Concluzii ===== | ||
+ | |||
+ | În concluzie, a fost un proiect interesant în care am reușit să îmbin mai multe noțiuni legate de acest curs, și totodată să creez ceva fizic. Am învățat cum să leg aceste componente și să funcționeze simultan, iar rezultatul a fost unul plăcut și satisfăcător. | ||
+ | ===== Download ===== | ||
+ | |||
+ | {{:pm:prj2024:fstancu:x_si_0_final.zip|}} | ||
+ | |||
+ | ===== Jurnal ===== | ||
+ | * 22.04.2024: Alegerea temei de proiect. | ||
+ | * 01.05.2024: A ajuns comanda cu piesele. | ||
+ | * 05.05.2024: Crearea paginii proiectului și realizarea introducerii și a descrierii generale. | ||
+ | * 08.05.2024 - 15.05.2024: Implementare hardware. | ||
+ | * 22.05.2024 - 26.05.2024: Implementare software. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | ATmega PWM: https://avr-guide.github.io/pwm-on-the-atmega328/ \\ |
+ | ATmega 328 pinout: https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf?fbclid=IwZXh0bgNhZW0CMTAAAR14O3QysF1owaUfevH9bi4aS1jhYxSaT7JwjQQZV5SsGNGcppWdgsPBBPA_aem_AeMVmZAQ4 \\ | ||
+ | Laboratoare PM 2024 | ||
</note> | </note> | ||
<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> | ||