This shows you the differences between two versions of the page.
pm:prj2023:drtranca:madalina.frant [2023/05/29 19:06] madalina.frant [Descriere generală] |
pm:prj2023:drtranca:madalina.frant [2023/05/29 22:54] (current) madalina.frant [Software Design] |
||
---|---|---|---|
Line 6: | Line 6: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Desfășurarea jocului este următoarea: se vor afișa cele N (inițial 4) numere și se va folosi joystick-ul pentru a selecta pozițiile corespunzătoare pe ecran. În cazul în care poziția unui număr este selectată corect se va aprinde LED-ul în culoarea verde, iar în cazul unei greșeli în culoarea roșu. Sunt permise 3 greșeli per rundă. Pentru a trece la următoarea rundă, respectiv pentru a relua runda în cazul depășirii numărului maxim de greșeli se va apăsa butonul. Jocul permite 3 runde terminate greșit, după care acesta se încheie. Jocul se consideră câștigat după terminarea corectă a ultimei runde, când N este 9. La finalul jocului se afișează timpul mediu de răspuns al jucătorului. Se poate începe un nou joc prin apăsarea butonului. | + | Desfășurarea jocului este următoarea: se vor afișa cele N (inițial 4) numere și se va folosi joystick-ul pentru a selecta pozițiile corespunzătoare pe ecran. După selectarea poziției numărului 1, numerele vor dispărea (vor fi acoperite). În cazul în care poziția unui număr este selectată corect se va aprinde LED-ul în culoarea verde, iar în cazul unei greșeli în culoarea roșu. Sunt permise 3 greșeli per rundă. Pentru a trece la următoarea rundă, respectiv pentru a relua runda în cazul depășirii numărului maxim de greșeli se va apăsa butonul. Jocul permite 3 runde terminate greșit, după care acesta se încheie. Jocul se consideră câștigat după terminarea corectă a ultimei runde, când N este 9. La finalul jocului se afișează timpul mediu de răspuns al jucătorului. Se poate începe un nou joc prin apăsarea butonului. |
Schema bloc: | Schema bloc: | ||
Line 29: | Line 29: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | A fost folosit mediul de dezvoltare Arduino IDE. | ||
- | <note tip> | + | Pentru interacționarea cu LCD-ul s-a folosit biblioteca LiquidCrystal_I2C. |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
+ | Au fost utilizate următoarele noțiuni din cadrul laboratoarelor: | ||
+ | * întreruperi: pentru detectarea apăsării butoanelor | ||
+ | * timer: pentru măsurarea timpului | ||
+ | * I2C: pentru comunicarea cu LCD-ul | ||
+ | |||
+ | Codul scris este prezentat în cadrul fișierului README. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Începutul unei runde: |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | ===== Concluzii ===== | + | {{:pm:prj2023:drtranca:inceput_runda.jpeg?300|}} |
- | ===== Download ===== | + | După ce se apasă numărul 1: |
- | <note warning> | + | {{:pm:prj2023:drtranca:dupa_apasare_1.jpeg?300|}} |
- | 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**. | + | Finalul rundei dacă s-au selectat toate pozițiile numerelor în ordine: |
- | </note> | + | |
- | ===== Jurnal ===== | + | {{:pm:prj2023:drtranca:runda_corecta.jpeg?300|}} |
- | <note tip> | + | Finalul rundei dacă au fost realizate 3 greșeli: |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | {{:pm:prj2023:drtranca:runda_gresita.jpeg?300|}} |
+ | |||
+ | Finalul jocului dacă s-a realizat corect ultima rundă: | ||
+ | |||
+ | {{:pm:prj2023:drtranca:joc_corect.jpeg?300|}} | ||
+ | |||
+ | Finalul jocului dacă 3 runde au fost realizate în mod greșit: | ||
+ | |||
+ | {{:pm:prj2023:drtranca:joc_gresit.jpeg?300|}} | ||
+ | |||
+ | |||
+ | ===== Concluzii ===== | ||
+ | |||
+ | Realizarea acestui joc a fost o activitate interesantă, care a presupus aplicarea unor concepte învățate în cadrul laboratorului. De exemplu, inițial, timpul nu era măsurat corect deoarece prescaler-ul timer-ului avea setată o valoare prea mică, însă dupa modificarea acestuia, s-au obținut rezultate corecte. De asemenea, în cadrul întreruperii pentru butonul joystick-ului a fost nevoie să se trateze o singură apăsare de buton, printr-o metodă de debouncing. Astfel, proiectul final prezintă toate funcționalitățile propuse. | ||
+ | ===== Download ===== | ||
+ | |||
+ | {{:pm:prj2023:drtranca:memory_test.zip|}} | ||
+ | |||
+ | https://github.com/MadalinaFrant/arduino-memory-test | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | * Conectare componente și interacționarea cu acestea: https://arduinogetstarted.com/tutorials |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * Laboratoare: |
- | </note> | + | * lucrul cu registre: https://ocw.cs.pub.ro/courses/pm/lab/lab0-2022 |
+ | * întreruperi: https://ocw.cs.pub.ro/courses/pm/lab/lab2-2023 | ||
+ | * timere: https://ocw.cs.pub.ro/courses/pm/lab/lab3-2023 | ||
+ | * I2C: https://ocw.cs.pub.ro/courses/pm/lab/lab6-2022 | ||
+ | * Pinout: https://ocw.cs.pub.ro/courses/_media/pm/lab/arduino-uno-pinout-diagram.png?w=600&tok=b3c0e1 | ||
+ | * Datasheet: https://ocw.cs.pub.ro/courses/_media/pm/atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf | ||
+ | |||
+ | * Studiu: https://www.youtube.com/watch?v=zsXP8qeFF6A&ab_channel=BBCEarth | ||
+ | * Idee funcționalitate joc: https://humanbenchmark.com/tests/chimp | ||
<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> | ||