Snake

Autor: Ciurea Robert-Mihai 333CB

Introducere

  • Scopul proiectului îl constituie crearea jocului Snake pe o matrice RGB LED și afișarea scorului pe un display LED de 4×7. De asemenea, se va genera sunet la atingerea marginilor ecranului sau în momentul în care șarpele prinde un obiect de pe ecran.
  • Am ajuns la această idee de proiect după ce am realizat ca aparatul etilotest nu era o idee suficient de complicata pentru proiect si eram sigur ca nu mi-ar fi fost aprobat, așa că aici mi-am propus sa-mi complic viața cât mai mult cu putință astfel încât să învăț chestii noi și să mă și distrez nițel.

Descriere generală

  • Un jucător va controla șarpele folosind 4 butoane, afișarea jocului propriu-zis se va face pe o matrice de LED-uri roșii 8×8, în momentul în care jucătorul obține un punct, pe un display led de 8 cifre o să se incrementeze un contor ce va reprezenta scorul curent.
  • În momentul în care jucătorul pierde jocul, se va aprinde un LED roșu și se va auzi o sonorizare din buzzer pentru a marca finalul jocului, respectiv va putea vizualiza scorul final pe display led-ul de 8 cifre.
  • Display LED-ul prezinta 8 butoane ce vor fi utilizate pentru a se putea selecta și gradul de dificultate al jocului, acesta default va avea nivelul de dificultate cel mai mic. Dificultatea va fi marcată de viteza de mișcare a șarpelui

screenshot_from_2023-05-06_18-40-32.jpg

Hardware Design

  • Display LED cu 8 Cifre și Butoane Bazat pe TM1638
  • Placa de Dezvoltare Compatibila cu Arduino UNO R3 (ATmega328p + ATmega16u2)
  • 4 x butoane
  • breadboard
  • buzzer activ de 3 V
  • LED RGB cu catod comun
  • Matrice de LED-uri Bicoloră Roșie și Verde 8×8 3.75 mm
  • fire tată - tată
  • fire mama - mama

Structura TinkerCad pentru planificarea modului de utilizare al buzzerului ce anunta terminarea jocului. Aici iau in calcul si un buton intrucat am ales sa fac testarea simultana a celor doua componente pentru procesul de invatare si asigurare a functionalitatii componentelor.

Buzzer-ul are drept scop marcarea finalizarii joculiu. Am ales sa utilizez un buzzer activ astfel incat sa nu fiu nevoit sa adaug o sura externa de curent, tinand cont ca buzzerul pasiv functioneaza prin aparitia unor variatii de tensiune ce duc la generarea sunetului. In cadrul modului de test configurat, buzzer-ul este activat in momentul in care se apasa butonul de pe breadboard.

Diagrama de circuit pentru configurarea conectarii matricii de LED-uri la arduino uno

Scopul matricii de led-uri il constituie afisarea jocului propriu-zis de snake, jucatorul putand vizualiza sarpele, impreuna cu obiectul ce trebuie sa fie consumat de sarpe pentru a obtine puncte, jocul se opreste in momentul in care sarpele se atinge pe el insusi in orice punct al acestuia.

Am utilizat un TM1638 LED and Key Display intrucat pe langa functionalitatea basic de a arata pe un ecran LED mai multe informatii in functie de necesitati, acesta vine incorporat si cu o serie de 8 butoane si 8 led-uri in functie de ceea ce se apasa.

Scopul aecstui device il constituie contabilizarea numarului de puncte acumulate in timpul unui joc impreuna cu stabilirea nivelului de dificultate al jocului. Nivelul de dificultate insemnand viteza de miscare a sarpelui.

Software Design

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

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

În etapele următoare… stay tuned!

Concluzii

În etapele următoare… stay tuned!

Download

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.

Jurnal

  • 6 mai 2023 - creeare ocw, determinare a componentelor principale ce se doresc a fi utilizate în vederea realizării proiectuliu, ideea de ansamblu a proiectului

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2023/drtranca/snake.txt · Last modified: 2023/05/31 21:39 by robert_mihai.ciurea
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