Gianina-Mihaela CARP (66907) - SnakeIT

Adresa de contact: gianina.m.carp@gmail.com

Introducere

SnakeIT

  • jocul snake pe Graphic LCD 84×48 - Nokia
  • input folosind un joystick (miscarile)
  • jocul prezinta mai multe nivele de dificultate de pot fi modificate dintr-un comutator
  • output → difuzor ce va reda diferite sunete in functie de activitatile din joc (ex: game over, la atingerea hranii)

Descriere generală

Hardware Design

Lista de componente(pe langa cele de baza):

  • Graphic LCD 84×48 - Nokia
  • Joystick
  • Difuzor
  • Comutatoare(x2 si x4)

Pini utilizati:

1. LCD Nokia5110:PORTB → PB0 - PB4

  1. > PB → Backlight
  2. > Vcc(+) si GND (-)

2. Buzzer: PORTD

  1. > PD0
  2. > GND (-)

3. Joystick: PORTA → PA5 → coordonata Y

  1. > PA6 → coordonata X
  2. > PA4 → buton joystick → utilizat pentru pauza
  3. > Vcc(+) si GND(-)

4. Comutatoare: PORTC → GND(-)

          X2:(1)-> PC1 -> Pauza
             (2)-> PC0 -> Backlight LCD
                
          X4: 
               (1)-> PC6 -> Level EASY
               (2)-> PC5 -> Level MEDIUM 
               (3)-> PC4 -> Level HARD
               (4)-> PC3 -> Redimensionare margini

Software Design

Am folosit libraria nokia5110 pentru interfatarea cu ecranul LCD.

Mediul de dezvoltare folosit:

Programmer's Notepad

Implementare SnakeIT

Pentru a retine snake-ul efectiv si bucati de hrana am folosit structura coord_t ce are doua componente de tip int, x si y.

struct coord_t {

int x;
int y;

}coord_t;

Functii implementate

  1. void ADC_init()
  2. int ADC_get()
  3. int check_food_pos() ⇒ verificare intersectie snake & food
  4. void generate_food() ⇒ generare food
  5. void initSnake() ⇒ initializare snake
  6. int checkSnake() ⇒ verifica daca sarpele s-a lovit de margini sau de el insusi
  7. void clearSnake() ⇒ sterge snake
  8. void showSnake() ⇒ afisare snake pe LCD
  9. void moveSnake(int) ⇒ miscare snake
  10. int checkDirection(int, int) ⇒ verificare corectitudine directie primita
  11. int getDir(int x, int y, int snake_dir) ⇒ trecerea datelor primite de la joystick din analog in digital si returnarea directiei corespunzatoare
  12. void initIO()⇒ initializare porturi ca intrare/iesire
  13. void drawBorder() ⇒ desenare bordura
  14. void checkBacklight() ⇒ verificare si aprindere backlight LCD
  15. void buzzer_morse(int tip_morse) ⇒ generare sunete de la buzzer
  16. void makeSound(int tip_morse) ⇒ generarea unui anumit tip de sunet
  17. int checkDifficulty() ⇒ verificare dificultate aleasa
  18. int checkBorder() ⇒ verificare tip de margine aleasa
  19. void snake_main()

Rezultate Obţinute

Am realizat cu succes atat partea hardware, cat jocul in sine.

Concluzii

Download

Jurnal

Placa de baza 8-)

Testare 8-O

Final ^_^

Bibliografie/Resurse

Resuse Software

Librarie LCD Nokia5110

  • Documentația în format PDF
pm/prj2017/astratulat/66694.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