Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul presupune implementarea jocului Pong care va avea un mod player vs player. Afisarea se va face pe o matrice de LED-uri.
Lista de piese:
Nume piesa | Număr unitati | Pret[RON] | Magazin |
---|---|---|---|
ULN2804APG | 1 | 2.00 | Connex Electronics |
Rezistență 330 | 6 | 0.20 x 6 | Connex Electronics |
Pushbutton | 4 | 0.50 x 4 | Connex Electronics |
Matrice LED 8×8 - LM-88G23-CC | 1 | 12.00 | TME |
Pini 1×40 | 1 | 1 | Connex Electronics |
Rezistenta 1k | 6 | 0.20 x 6 | Connex Electronics |
Cabluri conectare | 5 metri | 0.80 x 5 | SYSCOM |
Placa test 160×100 | 1 | 12.00 | Connex Electronics |
LED 3mm | 6 | 0.30 x 6 | SYSCOM |
Conectori mama 5 pini | 4 | 1.50 x 4 | SYSCOM |
Conectori mama 8 pini | 4 | 2.50 x 4 | SYSCOM |
Software folosit:
Eagle WinAvr, Programmer's Notepad bootloadHID
Detalii implementare:
Pentru implementare am organizat ledurile ca o matrice de 8*8 cu valori de 1 si 0, 1 atunci cand ledul de linia x si coloana y este aprins si 0 cand ledul este stins.
Pinii A si D ai microcontroralui sunt retinuti in doi vectori: int pini_linie[8] si int pini_coloana[8]; Coordonatele din matrice ale pozitiei bilei sunt retinute in doua variabile (ball_x si ball_y) pentru a fi mai usoara translatarea acestuia. --void draw_map()-- => afiseaza harta jocului reprezentata de matrice (aprinde leduri de pe pozitiile cu valoarea 1 din matrice); --int update_map()-- => updateaza matricea , modificand pozitia jucatorilor in functie de inputul de la butoane si realizeaza deplasarea bilei.
Rezultatul a fost un joc pong complet functional.
Demo movie: watch
Proiectul a fost unul util deoarece am vazut cum se poate realiza si programa un dispozitiv hardware. Tot proiectul a reprezentat o experienta benefica si interesanta. Realizarea proiectului nu a fost una foarte complicata. Lucrul matricea de leduri este un pic cam greu deoarece anozii si catozii acesteia sunt amestecati.
Schema proiect: ramascanu_catalin_schema_pm.sch
Cod Sursa: ramascanu_catalin_cod_sursa.zip
1. Cumpare componente etapa 1 (placa de baza);
2. Participarea la placutiada;
3. Lipire componente si testare placa de baza;
4. Cumparare componente etapa 2;
5. Lipire componente pe placa de test, alegerea pinilor ce vor fii folositi la microcontroller si crearea legaturii intre placi;
6. Testare placa de baza;
7. Scrierea si debug-area surselor jocului;
8. Completare wiki;
Wiki PM : http://cs.curs.pub.ro/wiki/pm/
Datasheet pentru ATmega324PA: http://www.atmel.com/Images/doc2466.pdf
Datasheet pentru ULN2804APG: http://www.semicon.toshiba.co.jp/info/docget.jsp?pid=ULN2803APG&lang=en&type=datasheet
Datasheet pentru Matrice LED model LM-88G23-CC : http://www.tme.eu/en/Document/a2c7dabbed811375b571c73631668cb9/LM-88x23-Cx.pdf