Differences

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

Link to this comparison view

pm:prj2021:alazar:snake [2021/06/02 21:32]
ccristescu
pm:prj2021:alazar:snake [2021/06/03 15:56] (current)
ccristescu [Bibliografie/Resurse]
Line 8: Line 8:
 până la lovirea unui perete sub forma de obstacol. Am ales acest joc deoarece este printe primele jocuri încercate \\ până la lovirea unui perete sub forma de obstacol. Am ales acest joc deoarece este printe primele jocuri încercate \\
 de mine, iar cerințele sale corespund acestui tip de proiect. Utilitatea acestuia în prezent nu este una sugestivă, \\ de mine, iar cerințele sale corespund acestui tip de proiect. Utilitatea acestuia în prezent nu este una sugestivă, \\
-dar consider că ,în funcție de dificultate,​ te obligă ca utilizator să inveti ​să menții un nivel de concentrare ridicat \\ +dar consider că ,în funcție de dificultate,​ te obligă ca utilizator să inveți ​să menții un nivel de concentrare ridicat \\ 
-si iți antrenează anumite reflexe.+și iți antrenează anumite reflexe.
  
 ==== Descriere Generală ==== ==== Descriere Generală ====
-Pentru realizarea funcționalității,​ se va folosi un modul analog joystick care are rolul de a muta sarpele ​\\ +Pentru realizarea funcționalității,​ se va folosi un modul analog joystick care are rolul de a muta șarpele ​\\ 
-în toate directiile, sus-jos, ​stanga-dreapta în timp ce segmentul corpului ​sau este în continua ​translație \\+în toate directiile, sus-jos, ​stânga-dreapta în timp ce segmentul corpului ​său este în continuă ​translație \\
 într-un sens. Display-ul care va afișa simularea va fi un modul cu matrice de LED-uri bazat pe un driver \\ într-un sens. Display-ul care va afișa simularea va fi un modul cu matrice de LED-uri bazat pe un driver \\
-max7219 conectat la alte cateva ​componente cum ar fi rezistenta, condensatoare,​ pin headers. \\+max7219 conectat la alte câteva ​componente cum ar fi o rezistență, condensatoare,​ pin headers. \\
  
 {{:​pm:​prj2021:​alazar:​cristi_cristescu:​schema_boc_snake.png?​600|}} {{:​pm:​prj2021:​alazar:​cristi_cristescu:​schema_boc_snake.png?​600|}}
Line 22: Line 22:
   * Arduino UNO R3   * Arduino UNO R3
   * Breadboard   * Breadboard
-  * Fire: Mama-MamaTata-TataMama-Tata+  * Fire: Mamă-MamăTată-TatăMamă-Tată
   * Modul Buzzer Activ   * Modul Buzzer Activ
-  * Potentiometru+  * Potențiometru
   * Analog Joystick   * Analog Joystick
   * Matrice de LED-uri 8x8   * Matrice de LED-uri 8x8
Line 36: Line 36:
 {{:​pm:​prj2021:​alazar:​cristi_cristescu:​snake_brd.png?​600|}} {{:​pm:​prj2021:​alazar:​cristi_cristescu:​snake_brd.png?​600|}}
  
-Acestea doua din urma au fost realizate in utilitarul EAGLE.+Acestea doua din urmă au fost realizate in utilitarul EAGLE.
 ==== Software Design ==== ==== Software Design ====
  
-Implementarea am realizat-o ​in VSCode cu ajutorul extensiei PlatformIO, ce permite lucrul cu module \\+Implementarea am realizat-o ​în VSCode cu ajutorul extensiei PlatformIO, ce permite lucrul cu module \\
 si biblioteci pentru Arduino. Bibliotecile utilizate sunt: \\ si biblioteci pentru Arduino. Bibliotecile utilizate sunt: \\
     *Arduino.h     *Arduino.h
     *LedControl.h     *LedControl.h
  
-Simularea jocului se desfasoara in functiile ​**setup()** ​si **loop()**: \\+Simularea jocului se desfașoară în funcțiile ​**setup()** ​și **loop()**: \\
  
 === Setup() === === Setup() ===
-Realizeaza initializarile ​pinilor, ledurilor de pe matrice ​si de a recalibra pozitia ​de pornire \\ +Realizează inițializările ​pinilor, ledurilor de pe matrice, recalibrează poziția ​de pornire \\ 
-a Analog Joystickului ​si de stabili pozitia sarpelui ​pe ecran. \\+a Analog Joystickului ​și stabilește poziția șarpelui ​pe ecran. \\
  
 === Loop() === === Loop() ===
  
-Scorul va fi afisat secvential ​la serial monitor, ​urmand ​ca apoi sa se genereze ​mancarea in functie ​\\ +Scorul va fi afișat secvențial ​la serial monitor, ​urmând ​ca apoi să se genereze ​mâncarea în funcție ​\\ 
-de pozitiile ​segmentului ​sarpeluiIn continuare, se vor prelua inputurile din stick si se stabileste ​\\ +de pozițiile ​segmentului ​șarpeluiÎn continuare, se vor prelua inputurile din stick și se stabilește ​\\ 
-urmatoarea directieverificand in acelasi ​timp daca sensul ales este la 180 de grade fata de cel \\ +următoarea direcțieverificând în același ​timp dacă sensul ales este la 180 de grade față ​de cel \\ 
-precedent pentru ca respectiva "​coliziune" ​sa fie invalida si jocul sa mearga mai departe. Ulterior, \\ +precedent pentru ca respectiva "​coliziune" ​să fie invalidă și jocul să mearga mai departe. Ulterior, \\ 
-se vor prelucra datele jocului, se actualizeaza ​lungimea ​sarpelui, se va verifica ​daca jocul s-a finalizat, \\ +se vor prelucra datele jocului, se actualizează ​lungimea ​șarpelui, se va verifica ​dacă jocul s-a finalizat, \\ 
-se vor aprinde ​si stinge ledurile ​secventialgenerand miscarea ​pe ecran. Buzzerul se va activa dupa ce marul \\ +se vor aprinde ​și stinge ledurile ​secvențialgenerând mișcarea ​pe ecran. Buzzerul se va activa dupa ce mărul ​\\ 
-a fost mancat si dupa ce translatia sarpelui ​s-a realizat. La finalul unui "​frame"​ din loop, se verifica daca \\ +a fost mâncat și după ce translația șarpelui ​s-a realizat. La finalul unui "​frame"​ din loop, se verifică dacă \\ 
-jocul s-a castigat ​sau pierdut, ​in acest caz, reinitializandu-se toate variabilele din joc, iar ecranul \\ +jocul s-a caștigat ​sau pierdut, ​în acest caz, reinițializându-se toate variabilele din joc, iar ecranul \\ 
-"va clipi" de 5 ori.+"va clipi" de 5 ori ca un efect de resetare a jocului.
  
  
 ==== Rezultate Obtinute ==== ==== Rezultate Obtinute ====
  
 +{{:​pm:​prj2021:​alazar:​cristi_cristescu:​rezultat.jpeg?​600|}}
 +
 +Pot spune că am realizat ce mi-am propus de la început, nefiind ceva ieșit din comun. Dificultățile \\
 +le-am avut lucrând cu piesele, inițial lucram cu un Arduino Nano pe care îl legam direct de breadboard, \\
 +însă, deși am legat toți pinii cum trebuia, unele inputuri, chiar și alimentarea,​ nu funcționau cum trebuie \\
 +și nu îmi dădeam seama câte greșeli sunt în cod sau în schemă. Până la urmă, am scos Nano-ul din breadboard \\
 +și l-am legat direct cu fire, însă mai târziu, problema era că nu mai aveam suficiente fire pentru toate \\
 +componentele ca să le leg de placă, așa că am trecut la Uno (dispuneam de mai multe fire tată-tată). \\
 +
 +Video cu demo-ul: [[https://​www.youtube.com/​watch?​v=-oH9Ae4ZTDY|ProiectSnake]]
 ==== Concluzii ==== ==== Concluzii ====
 +
 +A fost interesant să lucrez cu componente fizice, dincolo de toate temele și proiectele software \\
 +din facultate. Personal, nu sunt mare fan al electronicilor,​ dar cumva proiectul acesta a reaprins \\
 +o speranță pentru sistemele embedded în viziunea mea, ele oferind aplicații interesante,​ \\
 +chiar utilități oamenilor. \\
  
 ==== Download ==== ==== Download ====
 +
 +{{:​pm:​prj2021:​alazar:​cristi_cristescu:​cristescu_cristian_335ca_proiect_pm.zip|}}
  
 ==== Jurnal ==== ==== Jurnal ====
 +
 +25.04.2021 : Alegerea proiectului \\
 +26.05.2021 : Inceperea partii software \\
 +27.05.2021 : Inceperea partii hardware \\
 +1.06.2021 : Finalizarea partilor hardware si software \\
 +2.06.2021 - 3.06.2021 : Realizarea documentatiei \\
  
 ==== Bibliografie/​Resurse ==== ==== Bibliografie/​Resurse ====
-{{:​pm:​prj2021:​alazar:​snake.pdf|}}+ 
 +https://​github.com/​wayoda/​LedControl/​blob/​master/​src/​LedControl.cpp \\ 
 +https://​howtomechatronics.com/​tutorials/​arduino/​8x8-led-matrix-max7219-tutorial-scrolling-text-android-control-via-bluetooth/​ \\ 
 +https://​create.arduino.cc/​projecthub/​rishab8551/​arduino-snake-game-using-arduino-and-martix-6c230c \\ 
 +https://​majicdesigns.github.io/​MD_MAX72XX/​page_parola.html \\ 
 + 
 +{{:​pm:​prj2021:​alazar:​cristi_cristescu:​snake.pdf|}} ​\\
pm/prj2021/alazar/snake.1622658776.txt.gz · Last modified: 2021/06/02 21:32 by ccristescu
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