SNAKE LED

Introducere

Joc de snake pe matrice de LED-uri 8×8. Miscarea este controlata prin intermediul a 4 butoane (sus, jos, dreapta, stanga).

Descriere generală

Microprocesorul va primi comenzi de la butoane. In functie de butonul activat, se vor seta pinii care controleaza matricea de leduri. Rezultatul este aprinderea ledurilor pe matrice. Nu este necesara apasarea butoanelor pentru ca microprocesorul sa comande matricea. In cazul in care nu se apasa nici un buton, atunci se va calcula noua pozitie fara modificare directie snake.

Hardware Design

Componente utilizate:

  • matrice LED 8×8
  • 4 butoane
  • 2 condensatoare de decuplare
  • panglica cu 16 fire
  • conectori mama/tata
  • CAT5e

Software Design

Detalii de implementare:

  • mediu de dezvoltare = notepad++
  • am folosit un programator ISP deoarece avrusbboot nu a mers pe windows 7 x64
  • structuri folosite:
  • * structura point cu 2 campuri x,y; retin coordonatele unui punct
  • functii folosite:
  • * void init() = functia de initializare a starii jocului
  • * void print_pixel(int i, int j) = functie de aprindere a oricarui pixel
  • * point rand_point(int seed) = genereaza un punct pseudo-random pe baza seed-ului
  • * void setare_matrice() = setez porturile A si C pentru a controla matricea
  • * void setare_butoane() = activez rezistentele de pull-up pentru portul B
  • * void adjust() = trateaza cazul de trecere a sarpelui prin perete
  • * void print_snake() = printeaza tot sarpele
  • * int ciocnire() = verifica conditia de ciocnire a sarpelui cu propria coada
  • * void get_food() = seteaza un punct random la care va fi generata mancarea
  • * void move_snake(int directie) = misca sarpele in functie de directia data ca parametru
  • * int main() = functia principala a programului

Rezultate Obţinute

Am reusit sa obtin un joc snake functional. Sarpele se misca controlat de cele 4 butoane, poate trece prin perete (iesind in pareta opusa a matricii) si poate manca “mere” astfel crescandu-si dimensiunea cu 1.

In cazul unei ciocniri cu propria coada ecranul se va reseta (dupa o scurta animatie) si jocul va incepe din nou.

Pentru a nu face dificila navigarea, am limitat dimensiunea maxima la 16.

Just have fun.

Concluzii

Lucrul pe o matrice de LED-uri a fost destul de anevoios mai ales din cauza maparii software a relatei dintre legaturile fizice microcontroller-matrice de LED-uri

In rest totul a mers destul de bine.

Download

pm/prj2011/dloghin/snake_led.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