Andreea GURIȚĂ (66845) - Teeter Ball

Autorul poate fi contactat la adresa: andreea.gurita95@gmail.com

Introducere

Proiectul presupune implementarea unui joc pe un LCD grafic. Jocul, numit Teeter Ball, este unul dintre cele mai renumite jocuri de tip puzzle.
Acesta presupune deplasarea unei bile printr-un labirint prin inclinarea dispozitivului. Scopul este de a ajunge la destinatie si de a evita anumite zone pe unde bila poate sa cada, lucru ce presupune reinceperea din pozitia initiala. Vor exista mai multe nivele in care dificultatea va creste gradual.

Motivul pentru care am ales acest proiect este faptul ca jocul este captivant si pune accentul pe control si precizie in miscari.

accelerometru.jpg Utilitatea proiectului e reprezentata de placerea de a juca, distractia si provocarea pe care o ridica.

Descriere generală

uraa.jpg

Jocul va incepe la apasarea butonului de start, odata apasat se vor astepta date de la accelerometru. Accelerometrul masoara inclinatia dispozitivului si microcontrolerul determina in ce directie se va deplasa bila. Prin intermediul LCD-ului grafic utilizatorul urmari jocul si cum interactioneaza cu acesta. Optional se va mai adauga si un difuzor.

Input:

  • Buton
  • Accelerometru

Ouput:

  • LCD grafic
  • Buzzer(adaugat ulterior)

Hardware Design

Lista de piese

Nume Cantitate Distribuitor
Placa de baza 1 Echipa PM
Buton 1 Optimus Digital
Accelerometru si giroscop MPU6050 1 Optimus Digtal
LCD grafic 128×64 12864b v2.0 1 De pe OLX
Potentiometru 10K 1 Magazin de componente electronice
Buzzer activ 1 Optimus Digital
Placuta de test 1 Magazin de componente electronice
Fire mama-mama, mama-tata >10 Optimus Digital

Schema electrica <imgcaption sch_el|Schema electrica> schema_v2.jpg </imgcaption>

O problema pe care am intampinat-o la partea de hardware a fost punerea in functiune a LCD-ului.
Este obligatorie existenta unui potentiometru cu iesirea legata la pinul de contrast pentru a se vedea ceva pe ecran.
La resurse este atasat un tutorial care m-a ajutat sa leg corect pinii.

Software Design

Pentru dezvoltarea aplicatiei am folosit ca mediu de dezoltare editorul Sublime(pe Linux) si Programmers Notepad, impreuna cu AVR GCC Toolchain.

Am folosit biblioteci 3rd-party pentru lucrul cu LCD-ul si accelerometrul:

Pachetul mpu6050 contine si o biblioteca pentru comunicatia prin protocolul I2C.

Implementarea in sine a codului nu a fost foarte dificila insa o problema majora a fost spatiul de memorie limitat. Folosind biblioteci 3-rd party care nu sunt foarte optimizate, a trebuit sa fac diferse compromisuri si optimizari codului meu pentru a se incadra in spatiul ramas. Pentru a crea bitmap-ul care apare la inceputul jocului am folosit programul Bitmap2LCD.

Sursele şi functiile implementate se pot gasi aici.

Rezultate Obţinute

ASCII���Hisilicon Balong

Concluzii

A fost un proiect foarte interesant, la care chiar mi-a facut placere sa lucrez.
Un lucru foarte frustrant a fost sa fac LCD-ul sa mearga, am pierdut aproape o saptamana. Este foarte importanta folosirea potentiometrului pentru reglarea contrastului si urmarirea diverselor exemple.
Daca folositi un LCD ar fi bine sa cautati din timp cum sa lucrati cu el deoarece poate lua destul de mult timp.
Partea de software nu am facut-o foarte complicata deoarece am avut destul de putin spatiu de memorie la dispozitie. Functiile utilizate, din bibliotecile 3-rd party, ocupa destul de multa memorie.
Pot spune ca sunt multumita de rezultatul final si ca am invatat multe lucruri pe parcursul acestui proiect.

Download

Codul sursa impreuna cu bibliotecile utilizate, schema(in Eagle) si detaliile necesare a proiectului se gasesc aici.

Jurnal

Bibliografie/Resurse

Resurse Hardware

Resurse Software

  • Documentația în format PDF
pm/prj2017/anitu/teeterball2017.txt · Last modified: 2021/04/14 17:07 (external edit)
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