Autorul poate fi contactat la adresa: Login pentru adresa
Tron este jocul de strategie multiplayer care a fost implementat și la Proiectarea Algoritmilor în anul 2 și presupune blocarea adversarului printr-o coada lăsata în urma jucătorului.
Pe prima placa se pot observa opt butoane pentru cele 4 direcții ale ambilor jucători, iar pe placa a doua butonul de reset și user, folosite pentru recunoaștere device-ului de către PC.
Am ales acest joc deoarece este unul antrenant și am considerat ca m-ar ajuta sa ma familiarizez cu programare embedded.
Componente | Cantitate | Preț | Magazin |
---|---|---|---|
Placa de bază | 1 | ~50 Ron | - |
Push-button | 10 | ~20 Ron | - |
LCD Grafic 128 X 64 | 1 | ~99 Ron | Robofun |
Codul a fost dezvoltat în Programmer's NotePad [WinAVR].
Deoarece jocul va fi 2-player nu trebuie realizat niciun algoritm, ci doar anumite restricții pentru ieșirea din ecran, determinarea câștigării unui player atunci când a avut loc o coliziune cu propria coada, cu al doilea player sau cu unul din pereți.
Ca structura de date voi folosi o matrice de tip bool ce va retine fiecare pixel al ecranului(ocupat = true, liber = false). Pentru mișcarea player-ilor am creat rutine de tratare a întreruperilor pe butoanele de pe PORTD care modifica starea matricei și actualizează imaginea pe LCD.
Arhiva cu codul se găsește aici: proiect-pm.zip
Am testat toate cele 8 butoane și funcționează (testarea s-a făcut aprinzând un led pe baza unei întreruperi pe buton).
Am învățat sa lipesc componente pe placa, am lipit LCD-ul de 2 ori, prima data a durat aproximativ 6 ore, apoi doar 2.
(l-am dezlipit pentru a rearanja toți pinii de date sa fie pe PORTC, iar pinii de comanda pe portul A).
Am aprofundat căutările în datasheet-uri și prin toate bibliotecile pe care le-am găsit pe net, dar în zadar, LCD-ul nu a afișat nici măcar Hello, World!
Cauze posibile:
1. Pini mapați incorect
2. Biblioteci necorespunzătoare
3. LCD ars (slabe șanse, am lucrat cu o colega cu același tip de LCD și niciuna nu a rezolvat problema afișării)
Biblioteca încercata 1: ks0108
Biblioteca încercata 2: ks0108-library
Biblioteca încercata 3: KS0108_Library
Datasheetul LCD-ului: ADM12864H.pdf
Forum pentru răspunsuri la problemele întâmpinate: viewtopic.php