Little Snake

Nume: Laura-Mihaela Vasilescu

Grupa: 335CA

E-mail: vasilescu.laura@gmail.com

Descriere generală

Proiectul are ca scop implementarea celebrului joc Snake de pe telefonul 3310.

(from here)

Descriere joc

Sunt urmărite regulile jocului de bază. Jucătorul trebuie să hrănească Snake-ul pentru a acumula puncte.
Merele (hrana șarpelui) apar random pe ecran. Cu fiecare măr mâncat, șarpele crește cu încă o bucată.
Treptat, jocul devine din ce în ce mai dificil și mai greu de manevrat.
Jocul se termină în momentul în care șarpele își intersectează capul de restul corpului.

Observații!
Merele nu pot fi generate pe pozițiile ocupate deja de șarpe.
În momentul în care șarpele ajunge în partea de sus a ecranului, se va continua în partea de jos.

Hardware Design

Realizarea din punct de vedere hardware a fost împărțită în două etape.

Design placa de bază

Placa de bază a fost realizată urmărind tutorialul de aici.

placa_de_baza.jpg

Interfațarea ecranului și a butoanelor

Componente
  • ecran Nokia 3310
  • 6 butoane
  • 2 diode
  • 5 rezistențe 3k3
  • 5 rezistențe 1k8
  • 1 condensator 10uF
  • panglică și fire

Pentru afișare am folosit un ecran Nokia 3310. Interfațarea ecranului cu microcontroller-ul se face pe portul PB.
Pentru comandă, am poziționat 6 butoane pe portul PC al microcontroller-ului.

Schema Eagle

Simulare Proteus

Plăcuța finală

placa_finala.jpg

final_version.jpg

Software Design

Șarpele este reținut sub forma a doi vectori: x și y, care stabilesc poziția fiecărui pixel din el.
Poziția șarpelui se modifică în funcție de direcția de mișcare.
Algoritmul calculează pentru fiecare componentă a șarpelui direcția în care trebuie să se miște.

  • mișcarea se face circular, pe margini
  • la intersecția șarpelui cu un măr:
    • dimensiunea șarpelui crește
    • se regenerează un alt măr
  • în caz de contact cu propriul-corp, programul se termină

Există două butoane speciale:

  • unul de pauză
  • unul de reset

Concluzii

  • În momentul în care am “terminat” proiectul și am încercat să îl testez, am constatat că LCD-ul nu se aprinde. La o privire mai atentă, am realizat că tensiunea de alimentare nu este ~3,6V (cum mă așteptam), ci 4,2V. Fiind deadline-ul aproape, este foarte greu să găsești un LCD de nokia 3310 în magazine. Totuși, am reușit să găsesc unul.
  • Update! LCD-ul nu era ars. Problema era de la faptul că nu este suficient ca pinii să fie lipiți, trebuie și apăsați pentru a face contact :) Am lipit ecranul pe o placă (pentru a se apăsa pinii) și am refăcut conexiunile. It works! :D

Download

Arhiva cu surse, imagini și materiale auxiliare.

Resurse

pm/prj2011/rtataroiu/lieserl.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