Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul meu are ca scop implementarea jocului X si O pe led-uri.
Utilizatorii nu vor mai folosi hartie si pix , ci vor interactiona cu jocul intr-un mod mai amuzant prin apasarea unor butoane,
care vor aprinde anumite led-uri colorate. Tabla de joc este formata dintr-o matrice 3×3 de led-uri bicolore. Jocul “X&0” poate fi
jucat de doi jucatori . Primul jucator va avea led-uri rosii , iar cel de-al doilea va avea led-uri verzi. Regulile jocului sunt
cele clasice , adica jocul se va termina cand aceeasi culoare de led se gaseste pe linie,coloana sau diagonala.
O idee asemanatoare am avut de implementat pentru alta materie, de aici pornind ideea de a implementa acest joc intr-un mod mai
interesant.
Acest proiect imi este util deoarece pot intelege mai bine ce este un microcontroller si cum functioneaza acesta .
<fc #008000>1.BUTOANE :</fc>
Un jucator va apasa unul dintre cele 9 butoane. Fiecare buton corespunde unui singur led.
<fc #008000>2.ATMega :</fc>
Microcontroller-ul ATMega324 este legat la placuta de baza. Acesta are rolul de a prelua semnalele corespunzatoare apasarii fiecarui buton in parte si de a aprinde led-ul respectiv , avand una dintre cele 2 culori , rosu pentru X si verde pentru 0.
<fc #008000>3.MATRICE LED-URI :</fc>
Matricea de led-uri este formata din 9 led-uri bicolore, fiecare led reprezinta o casuta din tabla de joc unde se va pune X sau 0.
<fc #008000>LISTA DE PIESE :</fc>
<fc #008000>1. Lista de piese placă de bază:</fc>
- microcontroller ATMega 324pa
- 2 Led-uri
- diode
- jumper
- condensatoare
- barete de pini
- quartz
<fc #008000>2. Lista de piese placă secundară:</fc>
- 9 LED-uri bicolore
- 18 rezistente
- 9 butoane
- placă de test
- 28 fire conectoare mama-mama
- barete de pini
- 54 fire de legatură
* Mediu de dezvoltare : Programmer's Notepad
* Librării şi surse 3rd-party :
- delay.h din util
- io.h din avr
* Algoritm : algoritmul este implementat pornind de la scheletul din laboratorul 0. Acesta consta in aprinderea unui singur led la apasarea unui anumit buton.
* Functii implementate :
→ init() : in aceasta functie setez pinii de intrare si activez rezistenta de pull-up pentru acestia. De asemenea, setez pinii de iesire si sting led-urile.
→ Apasa_buton() : returneaza pozitia butonului apasat.
→ Empty() : verific daca o anumita pozitie din matrice (3×3) este libera.
→ GameOver() : verific daca jocul s-a terminat, adica daca sunt 3 de X sau O pe linie , coloana sau diagonala . Daca aceasta conditie este indeplinita returnez 1, altfel 0 si jocul poate continua.
→ Play() : in aceasta functie daca este apasat un buton care aprinde un led verde pozitia din matrice este egala cu zero , altfel se aprinde un led rosu iar pozitia din matrice este egala cu X. In aceasta functie se apeleaza functiile Apasa_buton, GameOver si Empty.
→ main() : in aceasta functie se apeleaza functia init() si Play().
S-a obtinut jocul clasic de “X si O” dintre doi jucatori.
Dupa ce un jucator castiga sau este egalitate, pentru a incepe un joc nou se apasa butonul de reset de pe placa de baza.
A fost un proiect mult mai interesant decat o tema, deoarece am facut ceva nou si am interactionat si cu partea hardware. De asemenea , este mai placut sa lucrezi la astfel de proiecte pentru ca se obtine si un rezultat fizic.
Arhiva : x_o_constantinescu_maria.zip
Saptamana 8 → Proiect 0 : La laborator am lipit mai multe rezistente pentru a invata cum trebuiesc lipite componentele.
Saptamana 9 → Proiect 1 : Mi-am ales tema pentru proiect si mi-am cumparat pieselor necesare pentru placa de baza si pentru placa secundara.
Saptamana 10 → Proiect 2 : Am lipit piesele pe placa de baza si am testat-o la laborator.
Saptamana 11 → Proiect 3 : Am realizat schema electrica si am prezentat-o la laborator. Am inceput sa lipesc led-urile si rezistentele pe placa secundara.
Saptamana 12 → Proiect 4 : Am finalizat placa secundara lipind firele de legatura, dupa care am cu ajutorul firelor mama-mama am conectat cele doua placute.
Saptamana 13 → Proiect 5 : Am scris cod pentru a aprinde led-urile apasand anumite butoane si am implementat functii care respecta regulile clasice de la X si O.
Saptamana 14 → Proiect 6 : Finalizare pagina wiki si proiect. Prezentare proiect final.
Laboratoare PM
Proiecte PM - Hall of Fame