Table of Contents

Claudiu-Mihăiță ILIE (67476) - Labyrinth Escape

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Labyrinth Escape este un joculet pe LCD ce presupune parcurgerea unui labirint de catre un personaj ce va trebui sa aleaga calea castigatoare catre final, trecand peste toate obstacolele intalnite pe parcurs.

Descriere generală

Descriere generala

Jocul pe LCD Labyrinth Escape este alcatuit din diverse labirinturi de diferite dificultati. Jucatorul va trebui sa aleaga calea spre iesire intr-un numar cat mai mic de pasi, trebuiind sa fie atent mai ales la rutele gresite pe care le poate urma. Totodata, se vor contoriza si numarul de coliziui avute cu peretii labirintului. Pentru a gasi iesirea, jucatorul are nevioe de un nivel ridicat de orientare, utilizand cele 4 butoane pentru deplasarea inainte, inapoi, la stanga si la dreapta ce vor fi monatate pe placa, si totodata atentie asupra traseului ce il urmeaza.

Hardware Design

Listă de piese:

  1. display LCD
  2. 4 butoane
  3. Piese de baza
  4. Placa de baza
  5. Placa pentru butoane si pentru buzzer
  6. 30 de conectori mama-mama
  7. 1 buzzer
  8. Condensatori
  9. Rezistente de diferite marimi
  10. Berete de pini

Shema electrica:

Software Design

Penru implementarea software-ului am folosit ca mediu de dezvoltare AVR Studio, cu ajutorul caruia am compilat sursa labirint.c, obtinand fisierul cu extensia .hex. Ca si editor am utilizat programmers notepad. La partea de librarii am folosit biblioteca u8glib de la arduino, ce a fost de mare ajutor pentru LCD-ul ce l-am folosit.

In principal jocul are o interfata agrebila de catre utilizator.Pentru a incepe un nou joc utilizator este rugat sa apese unul din cele 4 butoane disponibile. Jocul are doua nivele, dintre care primul este mai usor, iar al doilea este putin mai complicat.

Algoritmul implementat contine functii ce au diferite roluri, ca verificarea daca jucatorul se afla in aria plansei, ce este utilizata pentru a contoriza numarul de coliziuni. Totodata, numarul de pasi efectuati de catre jucatori sunt contorizati, pentru a vedea care a fost cel mai scurt drum. Pentru atentionarea jucatorului ca directia urmata este gresita, adica s-a efectuat o coliziune, buzzerul va face un sunet. Odata ce plansa a fost terminata, jucatorul este anuntat ca a trecut mai departe tot printr-un sunet al buzzerului. Se verifica constant pozitia jucatorului in funtie de directiile alese. Pentru a iesi din labirint, am initializat un interval pe axa x, prin care se efectuaza iesirea.

Rezultate Obţinute

Rezultatele obtinute in urma realizaii proiectului au fost urmatoarele:

Componentele Hardware:

Ecranul de start:

Primul level al jocului:

Al doilea level al jocului:

Revenirea la ecranul de start dupa incheierea ultimului nivel:

Concluzii

Acest proiect mi s-a parut unul interesant, din care am reusit sa acumulez noi cunostiinte si mai ales am invatat cum are loc interactiunea dintre software si hardware.

Download

Proiect_PM_Labyrinth_Escape.zip

Jurnal

- Stabilirea componentelor necesare pentru proiect

- Realizarea placutei de baza

- Schema electrica aferenta proiectului

- Incheierea partii hardware

- Implementarea partii software

Bibliografie/Resurse

https://bintray.com/olikraus/u8glib/Arduino

http://www.buydisplay.com/download/ic/ST7920.pdf

http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf

https://www.optimusdigital.ro/fire-fire-mufate/90-fire-colorate-mama-mama-40p.html

* Documentația în format PDF