Autorul poate fi contactat la adresa: Login pentru adresa
Scopul acestui proiect este de a implementa binecunoscutul joc Snake pe un LCD similar unui ecran de telefon. Structura jocului o urmeaza pe cea clasica: se asteapta apasarea butonului de start, timp in care se va reda o melodie si un mesaj de bun venit jucatorului, la apasarea butonului va incepe jocul, sarpele avand o dimensiune mica(4 unitati de reprezentare pe LCD) care creste cu o unitate de fiecare data cand sarpele reuseste sa manance un fruct, reprezentat printr-o unitate pe o pozitie random pe LCD. Daca sarpele mananca din propriul corp sau se loveste se marginile campului de joc, jocul se termina si se va afisa un mesaj de Game Over impreuna cu o melodie de final, care va continua pana la apasarea butonului de start.
Schimbarea directiei de mers a sarpelui este controlata prin intermediul a 4 butoane aferete celor 4 directii: sus, jos, stanga, dreapta. In momentul in care sarpele reuseste sa acumuleze un punct, jucatorul este anuntat prin intermediul unui sunet scurt.
Prin intermediul acestui proiect se doreste aprofundarea si acumularea de noi cunostinte despre microcontrollere, utilizand la baza placuta Atmega324, precum si realizarea unuia dintre cele mai cunoscute jocuri cu ajutorul tehnologiilor hardware.
Prin intermediul programului software este controlat output-ul aplicatiei (reactia LCD-ului) in momentul in care apare un eveniment de input(apasarea unuia din cele 4 butoane sau butonul de start). Scopul microcontroller-ului este de a reprezenta pe LCD modificarile de pozitie ale sarpelui pe parcursul jocului si de a reda sunet prin intermediul difuzorul in momentul pornirii/opririi jocului si in momentul in care sarpele mananca.
Index | Denumire | Cantitate |
---|---|---|
1 | Componente de baza | 1 |
2 | LCD Nokia 5510 | 1 |
3 | Modul Buzzer | 1 |
4 | Buton | 5 |
5 | Fire mama-mama | 30 |
6 | Placa de test | 1 |
7 | Fire conductoare de legatura | 20 |
Am incercat initial proiectul pe un LCD ST7735(https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/3552-modul-lcd-de-144-cu-spi-i-controller-st7735-128x128-px.html) si nu am reusit sa-l fac sa functioneze. [3000 de ani mai tarziu tot nu va functiona, hint pentru cine citeste acest proiect: alegeti cu atentie LCD-ul, astfel incat sa fie compatibil cu placuta :) ]
Schema electrica:
Schema electrica prezinta modul de legare a pinilor de pe placa ATMEGA cu componentele folosite: buzzer(la PORTC), LCD(PORTB) si butoane de comanda(PORTD).
Codul aferent aplicatiei a fost dezvoltat in AtmelStudio si incarcat in placa prin aplicatia HIDBootFlash. Programul a necesitat adaugarea bibliotecii specifice LCD-ului NOKIA5110(in fisiere se regaseste in lcd.h si lcd.c). Pe langa aceste fisiere, mai este main.c in care se gaseste implementarea jocului.
La inceputul proiectului nu ma asteptam sa reusesc sa fac partea de cod si sa si functioneze, dar am reusit aproape tot ce mi-am propus. Intentionez sa adaug noi feature-uri jocului pe viitor.
Am inceput acest proiect putin sceptica, nefiind foarte familiarizata cu acest gen de proiecte care pun accent si pe partea hardware. Sincer chiar a meritat efortul depus, este un sentiment foarte interesant cand vezi ca dupa multe lipituri si munca, componentele chiar functioneaza si jocul prinde contur. Pe parcurs au aparut multe probleme tehnice, buzzer-e arse, LCD nefunctional, fire dezlipite, insa in momentul in care incepi sa scrii codul si merge si chiar arata poate mai bine decat te astepti, satisfactia e mare. Prin acest proiect am petrecut si momente frumoase si amuzante alaturi de prieteni, incercand sa ne ajutam la lipirea componentelor, ceea ce este un plus :).
Arhiva contine codul sursa, biblioteca aferenta si fisier README cu descrierea realizarii partii software.
Milestone 1: S-a adaugat descrierea proiectului, schema bloc si componentele necesare
Milestone 2: S-a terminat placuta de baza si s-a testat la laborator (yay, it works!)
Milestone 3: S-a adaugat schema electrica a proiectului (5 mai)
10-15 mai: S-au cumparat componentele necesare implementarii dincolo de placa de baza
17 mai: S-a schimbat lcd-ul cu nokia5110
20 mai: S-au lipit componentele pe placa de test
21-23 mai: S-a inceput partea software a proiectului