Descriere generală

Proiectul are ca scop realizarea suportului hardware şi software pentru jocul tradiţional Snake, atât de popular în ultimii ani.Sunt urmărite regulile de bază ale jocului original. Scopul este acumularea cât mai multor puncte prin hrănirea Snake-ului. Merele apar random pe ecran. Cu fiecare măr mâncat, șarpele crește cu o porţiune. Treptat,Lungimea Snake-ului creste şi este tot mai greu de evitat ciocnirea. Jocul se termină în momentul în care șarpele își intersectează capul de restul corpului.

Observații!
Merele sunt generate doar pe poziţiile libere de pe ecran.
În momentul în care șarpele ajunge în partea de sus a ecranului, se va continua în partea de jos.

Hardware Design

Pentru implementarea hardware am decis sa folosesc un afisaj electronic apartinand familiei Nokia, si anume un LCD Nokia 3310.

Modulul Atmel ATMega16

S-a utilizat acest tutorial pentru construirea modulului ATMega16, modul a carui specificatie tehnica se gaseste aici.

Placuta de baza - perspectiva frontala /

LCD Design

Piesele folosite pentru realizarea conexiunii cu LCD-ul Nokia 3310:

  • 5 rezistenţe de 3k3
  • 5 rezistenţe de 1k8
  • 2 diode 1N4148
  • 1 diodă zener 3v3
  • 1 condensator 4,7uF
  • 5 butoane: Sus, Jos, Stanga, Dreapta, OK
  • pini şi fire de legatură între plăcuţe.

Deoarece display-ul funcţionaeză la o tensiune între 2.7-3.3V a fost necesară folosirea unor rezistenţe pentru pinii SCK, SDIN , D/C, SCE, RES. Pinul GND este conectat la GND de pe placuţă şi pinul VOUT este conectat la condensatorul de 4,7uF (care este conectat la masa). Dioda Zener este necesară pentru a proteja display-ul.


Conectarea ecranului cu atmega16:

  • SCK = PC4
  • SDIN = PC3
  • D/C = PC2
  • SCE = PC1
  • RES = PC0

Conectarea butoanelor cu atmega16:

  • UP = PA4
  • RIGHT = PA3
  • OK = PA2
  • DOWN = PA1
  • LEFT = PA0

Schema este urmatoarea, fara detalierea divizoarelor de tensiune:

Proiect Final

Software Design

Șarpele este reținut sub forma a doi vectori: x și y, ce conţin poziția fiecărui pixel din şarpe.
Acest vector se modifică în timpul mişcării şarpelui.
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ă

Rezultate Obţinute

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. Probabil sa ars in timp ce am lipit cu letconul :-(.

Concluzii

A fost un proiect interesant pentru ca este prima dată cand a trebuit să ne ocupam şi de partea hardware nu doar să scriem cod.Consider proiectul unul foarte util in pregătirea noastră de viitori ingineri.

Surse

Bibliografie / Resure

pm/prj2012/amocanu/1.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