Differences

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

Link to this comparison view

pm:prj2022:imacovei:andreea.nistor2208 [2022/05/23 00:43]
andreea.nistor2208 [Software Design]
pm:prj2022:imacovei:andreea.nistor2208 [2022/05/25 21:18] (current)
andreea.nistor2208 [Rezultate Obţinute]
Line 47: Line 47:
 ===== Software Design ===== ===== Software Design =====
  
- 
-<note tip> 
-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>​ 
  
 Mediul de dezvoltare folosit este Arduino IDE, schema bloc a fost realizata in Lucidchart, iar schema electrica in EAGLE. De asemenea am folosit librăriile LiquidCrystal.h pentru LCD si EEPROM.h pentru memoria EEPROM. ​ Mediul de dezvoltare folosit este Arduino IDE, schema bloc a fost realizata in Lucidchart, iar schema electrica in EAGLE. De asemenea am folosit librăriile LiquidCrystal.h pentru LCD si EEPROM.h pentru memoria EEPROM. ​
Line 139: Line 131:
   }   }
  
-  ​Definesc pinii pentru Led-ul RGB ca OUTPUT (low-impedance state) astfel permințând să treacă curent prin ei. +Definesc
-  ​Definesc ​pinii pentru butoane ca INPUT_PULLUP ​folositi sa steze o valoare ​fixa pentru un pin, in cazul nostru +  * pinii pentru Led-ul RGB ca OUTPUT (low-impedance state) astfel permințând să treacă curent prin ei. 
-daca butonul este apasat ​acesta o sa fie activ pe 0. +  ​pinii pentru butoane ca INPUT_PULLUP ​folosiți să seteze ​o valoare ​fixă pentru un pin, în cazul nostru, dacă butonul este apăsat, ​acesta o să fie activ pe 0. 
-Definim ​intrerupe ​pentru butonul BUTTON_GameState aflat pe pinul 3 atunci cand el este apasat +  ​* ​întrerupe ​pentru butonul BUTTON_GameState aflat pe pinul 3. Atunci când este apasat, ​generează în avans caracterele jocului ​și se apelează funcția ​pentru ​interfața inițiala ​a jocului.
-De asemenease genereaza in avans caracterele jocului ​si se apeleaza functia ​pentru ​interfata initiala ​a jocului.+
  
 ** loop() ** ** loop() **
  
-  if(Interrupt){ ​-> verifica daca aparut ​intrerupere +  if(Interrupt){ ​// verifică dacă apărut ​întrerupere 
-         ​delay(5*DEBOUNCE_DURATION); ​-> un delay cu rol de debounce  +         ​delay(5*DEBOUNCE_DURATION); ​// un delay cu rol de debounce  
-         ​switch(gameState){...} ​-> schimba ​starea ​curenta ​a jocului prematur la apasarea ​butonului GameState +         ​switch(gameState){...} ​// schimbă ​starea ​curentă ​a jocului prematur la apăsarea ​butonului GameState 
- Interrupt = false;​} ​->resteaza valoarea ​setata ​in intrerupere pana la urmatoarea intrerupere+ Interrupt = false;​} ​// resteaza valoarea ​setată ​in întrerupere până ​la următoarea întrerupere
  
-  if(digitalRead(BUTTON_UP) == pressed){ ​-> verifica daca butonul respectiv a fost apelat +  if(digitalRead(BUTTON_UP) == pressed){ ​// verifică dacă butonul respectiv a fost apelat 
-      if(debounce_activate_edge(&​debCountBUTTON_UP)){ ->​verifica ​debounce-ul +      if(debounce_activate_edge(&​debCountBUTTON_UP)){ -// verifică ​debounce-ul 
-        snakeDirection=SNAKE_UP; ​-schimba directia ​snake-ului+        snakeDirection=SNAKE_UP; ​// schimbă direcția ​snake-ului
       }       }
   }else{   }else{
-      debounce_deactivate(&​debCountBUTTON_UP); ​-> in caz butonul nu a fost apasatreseteaza ​timer-ul de debounce+      debounce_deactivate(&​debCountBUTTON_UP); ​// în cazul în care butonul nu a fost apăsatresetează ​timer-ul de debounce
   }   }
  
-Acelasi ​tipar de verificare este apelat pentru restul butoanelor care definesc ​miscarea ​snake-ului+Același ​tipar de verificare este apelat pentru restul butoanelor care definesc ​mișcarea ​snake-ului.
  
-  if(millis()-lastGameUpdateTick>​gameUpdateInterval){+  if(millis()-lastGameUpdateTick > gameUpdateInterval){
     game_calculate_logic();​     game_calculate_logic();​
     game_calculate_display();​     game_calculate_display();​
Line 168: Line 159:
     rgb_color();​     rgb_color();​
     lastGameUpdateTick = millis();     lastGameUpdateTick = millis();
-  } -> verifica constant ​daca jocul trebuie ​sa-si dea refresh ​sa recalculeze starea jocului, culoarea led-ului, +  } // verifica constant ​dacă jocul trebuie ​-ți dea refresh ​să recalculeze starea jocului, culoarea led-ului, dimensiuneapozitia snake-ului ​și mărului
-       dimensiunea ​pozitia snake-ului ​si marului+
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 176: Line 166:
  
 {{:​pm:​prj2022:​imacovei:​snake_lost.jpg?​800|}} {{:​pm:​prj2022:​imacovei:​snake_lost.jpg?​800|}}
- 
-{{:​pm:​prj2022:​imacovei:​snake_name_highscore.jpg?​800|}} 
- 
-{{:​pm:​prj2022:​imacovei:​snake_highscore.jpg?​800|}} 
  
 Demo youtube: https://​www.youtube.com/​watch?​v=DwJfF1_lE9Y Demo youtube: https://​www.youtube.com/​watch?​v=DwJfF1_lE9Y
Line 189: Line 175:
 ===== Download ===== ===== Download =====
  
-{{:​pm:​prj2022:​imacovei:​snake_nistorandreeaiuliana.zip|}}+{{:​pm:​prj2022:​imacovei:​proiect_pm.zip|}} 
 + 
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip>+
   * 13.04.2022 : Alegere proiect   * 13.04.2022 : Alegere proiect
   * 20.04.2022 : Realizare pagină   * 20.04.2022 : Realizare pagină
Line 199: Line 187:
   * 20.05.2022 : Realizare schemă electrică EAGLE   * 20.05.2022 : Realizare schemă electrică EAGLE
   * 23.05.2022 : Finalizare pagină wiki   * 23.05.2022 : Finalizare pagină wiki
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +[[https://​ocw.cs.pub.ro/courses/​pm/​lab/​lab3-2022]]
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +
-</note>+
  
 [[https://​www.arduino.cc/​en/​Tutorial/​BuiltInExamples/​Debounce]] [[https://​www.arduino.cc/​en/​Tutorial/​BuiltInExamples/​Debounce]]
pm/prj2022/imacovei/andreea.nistor2208.1653255829.txt.gz · Last modified: 2022/05/23 00:43 by andreea.nistor2208
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