SNAKE 2010

Nume: Berteanu Vlad

Grupa: 331CC

logo-snake.jpg

Descriere generala

Proiectul de fata isi propune realizarea suportului hardware si software pentru jocul traditional Snake. Acest joc video a fost lansat prima data in anul 1970 si a reusit sa-si mentina popularitatea pana in zilele noastre intrand astfel in categoria de jocuri clasice. Nokia este una din companiile de telefonie mobila care furnizeaza o implementare a jocului Snake aprope pe fiecare device vandut, de aceea am si ales pentru suportul vizual un ecran LCD 3310 oferit de compania in discutie.

Hardware Design

.

Modul Atmel ATMega16

S-a utilizat acest tutorial pentru construirea modulului ATMega16.

Placa de baza - perspectiva frontala

Placa de baza - perspectiva anterioara

LCD Nokia 3310

Lista piese:

  • 6 rezistente 3k3
  • 6 rezistente 1k8
  • 1 condensator 10uF
  • 2 diode
  • 1 display LCD Nokia 3310 - pret 18 RON

Rezistentele au fost folosite pentru construirea divizorului de tensiune pentru input-ul LCD-ului.

LCD - perspectiva frontala

LCD - perspectiva anterioara

Butoane Control

Lista piese:

  • 4 butoane Push

Nu am mai utilizat rezistente de pull-up externe deoarece acestea exista deja in microcontroller si am avut grija ca in software sa le activez de fiecare data.

Atentie ! Ignorarea activarii rezistentelor interne poate duce la arderea microcontroller-ului.

void initButtons() {
	DDRD  &= ~(1 << LEFT_BUTTON);
	PORTD |= 1 << LEFT_BUTTON;
	DDRD  &= ~(1 << UP_BUTTON);
	PORTD |= 1 << UP_BUTTON;
	DDRD  &= ~(1 << RIGHT_BUTTON);
	PORTD |= 1 << RIGHT_BUTTON;
	DDRD  &= ~(1 << DOWN_BUTTON);
	PORTD |= 1 << DOWN_BUTTON;
}

Software Design

  • Limbaj de programare : C
  • Mediu dezvoltare : Notepad++

Biblioteci utilizate

Pentru afisare pe ecranul LCD Nokia 3310 am utilizat driver-ul PCD8544 bazat pe un cod scris de Sylvain Bissonette. Pentru mai multe detalii accesati acest link.

Fisierele utilizate sunt :

  • pcd8544.h
  • pcd8544.c

Desenare imagini

Pentru afisarea logo-ului de inceput al jocului am utilizat o imagine in format bmp 48×84 care ulterior a fost convertita intr-un format hexazecimal ce a favorizat afisarea acesteia cu usurinta pe ecarnul LCD. Utilitarul folosit in acest procedeu este FastLCD Designer 1.20 by Bojan I of Microdesign. In mod similar am lucrat pentru afisarea imaginii de Game Over atunci cand jocul s-a terminat.

Logica Jocului

Initial lungimea sarpelui este de 4 pixeli, iar scorul jucatorului este de 0 puncte. Pe masura trecerii timpului pe ecran apar o serie de puncte reprezentand hrana pentru sarpe. In momentul in care capul acestuia trece prin acel punct lungimea sa creste cu o unitate, iar scorul este incrementat la randul lui, dupa care este afisat pentru o scurta perioada de timp. In timpul deplasarii sarpelui acesta nu are voie sa atinga marginile ecranului sau capul acestuia sa treaca printr-unul din punctele corpului sau. In cazul in care acest lucru se intampla jocul se termina, utilizatorul pierzand toate punctele castigate.

Dupa terminarea jocului se va afisa logo-ul GameOver, iar prin apasarea oricarei taste utilizatorul poate relua jocul.

Rezultate obtinute

Proiect final - perspectiva frontala

Proiect final - perspectiva anterioara

Concluzii

  1. S-a realizat cu succes modulul software Snake
  2. Aplicatia Snake a fost testata cu succes in simulatorul Proteus, nefiind remarcate buguri.
  3. Montajul hardware a fost realizat in totalitate, verificat din punct de vedere al tensiunilor, scurt-circuitelor, contactelor, dar din pacate ecranul LCD nu se aprinde.

Downloads

Bibliografie/Resurse

pm/prj2010/dtudose/snake2010.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