Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:amocanu:gaming_console_with_one_game [2023/05/30 03:52]
mihnea.virlan
pm:prj2023:amocanu:gaming_console_with_one_game [2023/05/30 06:15] (current)
mihnea.virlan
Line 4: Line 4:
 ===== Introducere ===== ===== Introducere =====
  
-Proiectul constă în asigurarea mediului pentru a juca un joc relativ simplu: se dau 3 pahare ​și o bilă. La întâmplare, ​un +Proiectul constă în asigurarea mediului pentru a juca un joc relativ simplu: se dau 3 căni și o bilă. La întâmplare, ​o cană acoperă mingiuța și se amestecă toate cănile. Prin amestecare, se înțelege schimbarea pozițiilor tuturor ​cănilor
-pahar acoperă mingiuța și se amestecă toate paharele. Prin amestecare, se înțelege schimbarea pozițiilor tuturor ​paharelor+După un timp, se oprește shuffle-ul și jucătorul trebuie să aleagă ​cana care acoperă 
-După un timp relativ mic (aproximativ 10 secunde), se oprește shuffle-ul și jucătorul trebuie să aleagă ​paharul ​care acoperă +bila. Ideea de la care am pornit pleacă de la faptul că la cursul elemente de grafică pe calculator am căpătat un insight
-bila. Pentru fiecare tip de alegere va fi difuzat un sunet corespunzător. Ideea de la care am pornit pleacă de la faptul că la cursul elemente de grafică pe calculator am căpătat un insight+
 legat de munca din spatele unui joc și pentru că îmi este mai convenabil să codez un joc simplu decât să lucrez cu senzori. legat de munca din spatele unui joc și pentru că îmi este mai convenabil să codez un joc simplu decât să lucrez cu senzori.
 Consider că proiectul va fi util, deoarece voi învăța cum să îmbin noțiuni din câteva laboaratoare:​ timere, întreruperi,​ I2C, comunicarea Consider că proiectul va fi util, deoarece voi învăța cum să îmbin noțiuni din câteva laboaratoare:​ timere, întreruperi,​ I2C, comunicarea
Line 42: Line 41:
   -<​del>​Buzzer</​del>​   -<​del>​Buzzer</​del>​
   -Rezistențe   -Rezistențe
-{{:​pm:​prj2023:​amocanu:​poza_alcatuire_hardware_virlan_mihnea-alexandru.v1.jpg?​200|}}+{{:​pm:​prj2023:​amocanu:​poza_alcatuire_hardware_virlan_mihnea-alexandru.v1.jpg?​700|}}
 ===== Software Design ===== ===== Software Design =====
  
Line 48: Line 47:
 <note tip> <note tip>
 Descrierea codului aplicaţiei (firmware): Descrierea codului aplicaţiei (firmware):
-  * mediu de dezvoltare (if any) (e.gAVR Studio, CodeVisionAVR) +  * Am scris codul în ARDUINO IDE, versiunea 2.1.0 
-  * librării ​şsurse 3rd-party (e.g. Procyon AVRlib) +  * Pe post de librării ​ADAFRUIT_GFX.h șADAFRUIT_SSD1306.h
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
 +Programul este împărțit în mai multe faze:
 +  - folosind interfața serială primim ca parametru viteza cu care cănile se mișcă pe orizontală. Motivul pentru care am recurs la acest lucru se datorează dorinței ca jucătorii să-și poată încerca reflexele, variind viteza jocului.
 +  - se alege aleator cana care va acoperi bila.
 +  - apoi, folosind permutări, amestecăm cănile, ținându-se cont de viteza primită.
 +  - După 4 runde de amestec, acestea încetează,​ iar jucătorul alege cana în care se află bila
 +  - Dacă nimerește răspunsul corect, se dezvăluie bila și se ridică cana, altfel mai încearcă
 +Pentru a alege cana, se utilizează 3 butoane: două pentru alegere stânga dreapta, iar unul de mijloc pentru confirmare. Pentru asta,
 +am folosit întreruperi hardware.
 +
 +În timpul alegerii paharului, la interval de 2 secunde se afișează mesajul ”Succes” pentru a încuraja astfel jucătorul.
 +Observația fundamentală este: se poate da oricând prin interfața serială, de la tastaură o viteză, dar aceasta își va face efectul după
 +ce a fost găsită bila. Dacă la finalul găsirii bilei nu s-a dat vreun input, viteza va deveni cea default.
 +
 +
 +Ca o notă importantă:​ pentru cod am avut nevoie de imaginea unei căni proprii, imagine pe care am transformat-o în cod
 +folosind un site ce va fi menționat la resurse/​bibliografie.
 +
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Jocul funcționează foarte bine. Fiindcă nu am folosit debounce, e posibil ca o apăsare mai lungă să arunce cursorul din ecran.
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
 +Era ok dacă aveam curajul să fac un proiect poate chiar mai complex, dar frica de electronică m-a restrâns. Pe lângă asta, am 
 +profitat de faptul că am căpătat experiență în scrierea unui joculeț în C.
 ===== Download ===== ===== Download =====
  
Line 70: Line 85:
 </​note>​ </​note>​
  
 +{{:​pm:​prj2023:​amocanu:​proiectpm_virlan_mihnea-alexandru.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
  
Line 86: Line 102:
 Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.
 https://​app.diagrams.net/​ pentru ajutorul la schema bloc https://​app.diagrams.net/​ pentru ajutorul la schema bloc
 +
 https://​ardushop.ro/​ro/​ pentru piese https://​ardushop.ro/​ro/​ pentru piese
 +
 +https://​github.com/​adafruit/​Adafruit_SSD1306 și https://​github.com/​adafruit/​Adafruit_SSD1306 pentru interacțiunea cu LCD-ul OLED
 +
 +https://​randomnerdtutorials.com/​guide-for-oled-display-with-arduino/​ m-a ajutat pentru a învăța cum să interacționez cu LCD-ul
 +
 +https://​javl.github.io/​image2cpp/​ pentru codificare de imagini
 +
 </​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>​
  
pm/prj2023/amocanu/gaming_console_with_one_game.1685407950.txt.gz · Last modified: 2023/05/30 03:52 by mihnea.virlan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0