Snake Powerups

Autor: Hoisan Stefan-Alexandru

Grupa: 333CA

Introducere

O reprezentare a clasicului joc Snake folosind un ecran LCD. In plus fata de varianta standard, aceasta abordare a jocului va avea:
- obstacole
- elemente colectabile cu diferite efecte asupra jucatorului
- diferite tipuri de mancare
- un sistem de vieti pentru jucator

Scopul proiectului este unul pur recreativ, fiind destinat pentru a aduce divertisment in timpul liber.

Descriere generală

Jucatorul va controla sarpele prin interactiunea cu 4 butoane pentru schimbarea directiei. Atat sarpele, elementele colectabile, obstacolele, cat si scorul vor fi redate prin ecranul LCD.

Hardware Design

1. Lista componentelor:

  • Placuta Arduino UNO
  • Ecran LCD ILI9341
  • Rezistente 1kOhm
  • Breadboard
  • Fire de legatura
  • Butoane

2. Schema electrica:

Am realizat schema electrica in Fritzing si am incarcat propriul fisier .fzpz (atat schema, cat si fisierul pentru import sunt disponibile in arhiva) pentru importarea LCD-ului. Intrucat LCD-ul functioneaza la o tensiune de 3.3V, am folosit rezistente de 1kOhm pentru legarea la placa Arduino UNO.

Software Design

  • Ca mediu de dezvoltare am folosit Arduino Software IDE 1.8.15 pentru scrierea de cod si Fritzing pentru schema electrica
  • Pentru interactionarea cu LCD-ul am instalat bibliotecile: Adafruit ILI9341 1.5.8, Adafruit GFX 1.10.7, TFT 1.0.6
  • Pentru implementare, m-am folosit si de biblioteca FreeRTOS
#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
#include "Arduino_FreeRTOS.h"

Rezultate Obţinute

Am obtinut o varianta a jocului Snake in care scopul jucatorului este sa stranga cat mai multe puncte in timp ce incearca sa nu atinga peretii tabelei de joc sau obstacolele. Punctele sunt oferite la fiecare actualizare a frame-ului, dar si la colectarea de mancare. Tipurile de mancare sunt urmatoarele: mancarea verde dubleaza viteza de miscare pentru 2 secunde (timp in care si scorul este dublat), mancarea galbena adauga o viata bonus, iar mancarea maro este cea normala.

Concluzii

Personal, tot proiectul in sine a fost o adevarata provocare, partea cea mai grea fiind asamblarea hardware. Am intampinat probleme la legatura dintre LCD si Arduino printr-un translator de nivel logic si am renuntat ulterior la aceasta abordare pentru a folosi rezistentele.
In final, pot spune ca a meritat. Satisfactia completarii proiectului, dar si experienta unica de a lucra cu o placa Arduino mi-au adus un mare plus.

Download

Jurnal

  • 24.04 - alegerea temei de proiect
  • 25.04 - realizarea paginii proiectului
  • 27.04 - strangerea tuturor componenetelor
  • 15.05 - terminarea asamblarii hardware
  • 18.05 - realizarea unei variante a jocului, dar fara obstacole, powerups, vieti
  • 22.05 - definitivarea jocului
  • 23.05 - definitivarea paginii proiectului

Bibliografie/Resurse

pm/prj2021/cghenea/70.txt · Last modified: 2021/05/26 19:27 by stefan.hoisan
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