Tower Stack

Autor: Rusu Bianca-Ana-Maria 336CA

Introducere

Proiectul constă într-o adaptare a jocului Tower Stack pe un ecran LCD.

Descriere generală

Scopul jocului este de a construi un turn cât mai înalt din piese.

Piesele vin de sus, iar poziția lor poate fi controlată folosind un accelerometru. Piesele încep să cadă după ce jucătorul apasă pe un buton.

Un buzzer va fi folosit pentru a semnala că piesa curentă nu a fost așezată corespunzător pe turn.

Schemă bloc

Hardware design

Listă de componente:

  • Arduino UNO
  • Ecran LCD
  • Buzzer
  • Buton
  • Accelerometru
  • Breadboard
  • Fire
  • Rezistențe

Schema electrică

Software design

Am folosit Arduino IDE și următoarele biblioteci:

  • Adafruit_MPU6050 pentru accelerometru
  • MCUFRIEND_kbv pentru LCD

Implementarea este bazată pe exemplele din bibliotecile de mai sus și exemplul din Arduino IDE tone digital pentru buzzer. Pentru a folosi butonul ca input am utilizat întrerupere pe PCINT0.

Accelerometrul comunică folosind I2C, însă display-ul folosea pin-ul A4(SDA) pentru LCD_RST. A trebuit să reconfigurez LCD-ul să folosească pin-ul 13 în loc de A4. Pentru a reține blocurile am folosit o structură și mai apoi blocurile construite le-am păstrat într-un vector. Blocurilor li se asociază o culoare random. Am implementat și funcționalitate de scor și de game over.

LCD-ul are un refresh rate destul de mic astfel încât dacă se face clear la ecran la fiecare frame apare un efect de imagine sacadată. De aceea atunci când se mișcă un bloc, practic se colorează cu negru poziția anterioară și apoi se desenează normal la poziția nouă.

Gameplay

Scopul jocului e să se construiască un turn cât mai înalt. Jucătorul are la dispoziție un bloc care apare la o poziție random în partea de sus a scenei și îl poate muta stânga-dreapta cu ajutorul accelerometrului. Pentru a lansa blocul, se apasă butonul. În momentul în care turnul este prea înalt, acesta este deplasat în jos. Jocul se termină în momentul în care jucătorul nu reușește să pună blocul corect deasupra turnului și acesta cade și iese din scenă, moment în care apare un text cu “Game over” și se aude și o melodie de la buzzer. Pentru a se relua jocul se apasă din nou pe buton.

Rezultate obținute

Concluzii

Din punctul meu de vedere a fost un proiect interesant, m-am lovit de câteva dificultăți dar am reușit să le rezolv și am învățat să folosesc un LCD și să lucrez cu Arduino.

Demo

Download

Jurnal

  • alegere proiect
  • creare pagina de wiki
  • realizare proiect
  • schema electrică
  • completare documentație

Bibliografie/Resurse

pm/prj2021/apredescu/tower-stack.txt · Last modified: 2021/06/02 20:39 by bianca_ana.rusu
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