Proiectul meu vrea sa implementeze jocul de snake pe un ecran de nokia 3310 folosing micro-controllerul atmega 16. Regulile jocului:
Intentionez sa leg uC la un ecran de Nokia 3310 si la 5 butoane, dupa cum se observa in schema de mai jos.
Componente:
Intentionam sa folosesc un api de Nokia 3310, care are urmatoarele functii:
void LCD_init ( void ); void LCD_clear ( void ); void LCD_update ( void ); void LCD_gotoXY ( unsigned char x, unsigned char y ); void LCD_writeChar ( unsigned char character ); void LCD_writeChar_megaFont ( unsigned char character ); void LCD_writeData ( unsigned char data ); void LCD_writeCommand ( unsigned char command ); void LCD_writeString_megaFont ( char *string ); void LCD_writeString_F ( const char *string); void LCD_setPixel ( unsigned char x, unsigned char y); void LCD_clearPixel ( unsigned char x, unsigned char y); void LCD_drawLine ( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2 ); void LCD_drawBorder (void ); void LCD_drawSplash (void ); void delay_ms ( int millisec ); void spi_init(void);
Sarpele in sine este defapt o lista simplu inlantuita:
typdef struct Sarpe { char x; char y; char directie; struct Sarpe *next; }sarpe;
X, y reprezinta coordonate, directie reprezinta cum ar trebui mutat sarpele,iar *next este un pointer la urmatoarul bloc al sarpelui. Pentru a scuti uC de calcule inutile, la miscarea sarpelui, se va misca doar coada si capul. Am folosit char in loc de int pentru a economisi memorie.
Din pacate nu am putut ajunge la niste rezultate concrete, din cauza problemelor de hardware
Partea de hardware mi s-a parut extrem de dificila, poate si din cauza faptului ca am reusit sa cumpar 2 lcd-uri de nokia 3310 stricate.
Din aceasta cauza m-am dat batut si nu am mai incercat si cu al 3-lea.
Ar fi fost interesant sa reusesc montez toate componentele pe placuta sa vad cum se comporta snake-ul. Sper ca in urmatoarea luna chiar sa reusesc acest lucru.
Nu am download
Jurnal:
*Am resuit sa cumpar si sa montez toate componentele pentru placuta.
*Am reusit sa lipesc placuta si sa instalez bootloader-ul pe ea.
*M-am dat batut la lipitul ecranului din cauza problemelor tehnice aparute.