Differences

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

Link to this comparison view

pm:prj2024:alucaci:diana.stefan0106 [2024/05/23 13:47]
diana.stefan0106 [Hardware Design]
pm:prj2024:alucaci:diana.stefan0106 [2024/05/23 17:37] (current)
diana.stefan0106 [Download]
Line 34: Line 34:
  
 ===== Hardware Design ===== ===== Hardware Design =====
- 
-Aici este ceea ce am reusit sa leg, pana acum (16.05.2024):​ 
- 
-{{:​pm:​prj2024:​alucaci:​whatsapp_image_2024-05-17_at_00.16.30.jpeg?​200|}} 
  
 <note tip> <note tip>
Line 51: Line 47:
 | Rezistenta 330  | 1    | | Rezistenta 330  | 1    |
 | Rezistenta 220  | 2    | | Rezistenta 220  | 2    |
 +| Breadboard 830 puncte ​ | 1    |
  
 </​note>​ </​note>​
Line 56: Line 53:
 === Schema electrica === === Schema electrica ===
  
-=== Design circuit ===+{{ :​pm:​prj2024:​alucaci:​poza.jpeg?​700 |}}
  
 ===== Software Design ===== ===== Software Design =====
- 
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +Mediu de dezvoltare: Arduino IDE \\ 
-  * mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR) +Biblioteci utilizate: TFT.h SPI.h
-  * librării şi surse 3rd-party (e.gProcyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
  
-===== Rezultate Obţinute =====+=== Conexiuni Pin ===
  
-<note tip> +  * Ecran TFT
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+ -> CS (Chip Select): Pin 10 \\ 
 + -> DC (Data/​Command):​ Pin 9 \\ 
 + -> RST (Reset): Pin 12 \\ 
 + -> Joystick 
 + -> VRX (X-axa): A0 \\ 
 + -> VRY (Y-axa): A1 \\ 
 + -> SW (Buton): Pin 7 \\ 
 +  * Butoane 
 + -> Buton roșu: Pin 3 \\ 
 + -> Buton albastru: Pin 2 \\ 
 +  * LED-uri 
 + -> LED roșu: Pin 4 \\ 
 + -> LED albastru: Pin 5 \\
  
-===== Download =====+=== Constante și Variabile ​=== 
 +  * Culori 
 +Diverse culori sunt definite pentru confort. 
 +  * Praguri 
 +Valori analogice pentru detectarea mișcării joystick-ului. 
 +  * Dimensiuni 
 +Lățimea și înălțimea ecranului. 
 +  * Câmp de mine 
 +O grilă de 8x10 cu 10 mine. 
 +  * Poziție 
 +Poziția curentă a cursorului.
  
-<note warning>​ +==== Explicația Codului ====
-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**+=== Setup === 
-</note>+ -> Funcția setup inițializează ecranul TFT, setează modurile pin pentru butoane și LED-uri și afișează meniul ​de start. 
 +=== Loop ===  
 + -> Funcția loop conține logica principală a jocului\\ 
 + -> Verifică condiția de câștig. \\ 
 + -> Citește starea butoanelor și a joystick-ului. \\ 
 + -> Dacă jocul nu a început, verifică ​dacă butonul de start este apăsat\\ 
 + -> Dacă jocul este în desfășurare\\ 
 + -> Gestionează plasarea stegulețelor\\ 
 + -Gestionează dezvăluirea celulelor. \\ 
 + -> Gestionează mișcarea cursorului. \\
  
-===== Jurnal =====+=== Alte funcții ​===  
 +  * initializeminefield() 
 + -> Inițializează câmpul de mine cu celule goale. 
 +  * placeMines() 
 + -> Plasează aleatoriu mine pe câmpul de mine. 
 +  * calculateNumbers() 
 + -> Calculează numerele care indică numărul de mine adiacente. 
 +  * printminefield() 
 + -> Afișează câmpul de mine pe monitorul serial. 
 +  * displayminefield() 
 + -> Afișează câmpul de mine pe ecranul TFT. 
 +  * drawBomb() 
 + -> Desenează o bombă pe ecranul TFT. 
 +  * drawFlag() 
 + -> Desenează un steguleț pe ecranul TFT. 
 +  * emptySpace() 
 + -> Dezvăluie toate spațiile goale conectate. 
 +  * lose() 
 + -> Afișează mesajul de pierdere și aprinde LED-ul roșu. 
 +  * win() 
 + -> Afișează mesajul de câștig și aprinde LED-ul albastru. 
 +  * revealCell() 
 + -> Dezvăluie o celulă și verifică pentru mine. 
 +  * displayGrid() 
 + -> Desenează grila pe ecranul TFT. 
 +  * move() 
 + -> Mișcă cursorul pe baza intrării de la joystick. 
 +  * draw_menu() 
 + -> Afișează meniul de start.
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.+Jocul afișează "YOU LOST" ​și aprinde LED-ul roșu dacă mină este dezvăluită. \\ 
 +Jocul afișează "YOU WON" și aprinde LED-ul albastru dacă toate celulele care nu sunt mine sunt dezvăluite.
 </​note>​ </​note>​
  
 +
 +
 +===== Rezultate Obţinute =====
 +
 +{{:​pm:​prj2024:​alucaci:​minesweeper_3.jpeg?​200|}}{{:​pm:​prj2024:​alucaci:​minesweeper_2.jpeg?​200|}}{{:​pm:​prj2024:​alucaci:​minesweeper_5.jpeg?​200|}} \\
 +{{:​pm:​prj2024:​alucaci:​minesweeper_1.jpeg?​200|}}{{:​pm:​prj2024:​alucaci:​minesweeper_4.jpeg?​200|}}{{:​pm:​prj2024:​alucaci:​minesweeper_6.jpeg?​200|}}
 +
 +===== Concluzii =====
 +Proiectul Minesweeper pe Arduino a fost finalizat cu succes, atingând toate obiectivele propuse și demonstrând viabilitatea și funcționalitatea acestuia. Experiența acumulată în cadrul acestui proiect a fost extrem de valoroasă, oferind o bază solidă pentru proiecte viitoare și dezvoltarea continuă a abilităților tehnice.
 +
 +**Posibile Îmbunătățiri**:​ \\
 +Extinderea Funcționalităților:​ Adăugarea de nivele de dificultate sau opțiuni suplimentare pentru utilizatori ar putea îmbunătăți experiența de joc. \\
 +Optimizări de Performanță:​ Analizarea și optimizarea codului pentru a asigura o performanță mai bună și un răspuns mai rapid al interfeței. \\
 +Design Ergonomic: Îmbunătățirea designului fizic pentru a facilita o interacțiune mai confortabilă și intuitivă. ​
 +===== Download =====
 +
 +Arhiva se poate descarca [[https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​alucaci/​minesweeper.zip|aici]].
 +===== Jurnal =====
 +
 +**05 mai**: Alegerea temei proiectului \\
 +Decizia de a dezvolta jocul Minesweeper pe Arduino. \\
 +Identificarea componentelor necesare. \\
 +**15 mai**: Sosirea componentelor și asamblarea hardware \\ 
 +**16 mai**: Finalizarea asamblarii hardware-ului:​ ecran TFT, joystick, butoane, LED-uri. \\
 +**18 mai**: Implementarea matricei de joc și a logicii de bază \\
 +**20 mai**: Dezvoltarea interfeței de joc și a funcțiilor principale \\
 +**21 mai**: Crearea meniului de start și finalizarea proiectului \\
 +Testarea finală și ajustările finale. \\
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
pm/prj2024/alucaci/diana.stefan0106.1716461258.txt.gz · Last modified: 2024/05/23 13:47 by diana.stefan0106
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