Marian-Alexandru PANTELEON (25006) - X și 0 pe LCD

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul meu reprezintă implementarea jocului X și 0 pe un LCD grafic, interacțiunea cu jocul realizându-se cu ajutorul a 5 butoane (WASD și Enter / Select). Scopul proiectului este a crea un joc interactiv și amuzant între utilizator și AI (sau utlizator - utilizator). Ideea care m-a inspirat provine de la ultimul laborator de PM, unde am avut ocazia să programez pad-ul și să mă joc joculețul care simula Space Blaster / Block Attack / MozPong etc.

Descriere generală

Voi crea o matrice de dimensiune 3×3, în interiorul căreia mișcarea se va realiza cu ajutorul celor 4 butoane (W - sus; S - jos; A - stânga; D - dreapta) și selectarea căsuței cu ajutorul butonului din mijloc (Enter / Select). În momentul în care select-ul se află pe o anumită căsuță, aceasta se va colora diferit față de celelalte pentru a marca faptul că este selectată. În interiorul căsuței se va amplasa fie un X, fie un 0. Jocul se termină prin colorarea a 3 căsuțe completate cu 3 simboluri identice (fie pe orizontală, fie pe verticală sau oblic).

Hardware Design

Software Design

  • Pentru partea de Software Design am utilizat Programmer's Notepad și avr-gcc, avr-g++ drept compilatoare.
  • Librării și surse 3rd-party: aici este o poveste mai lungă. Datorită faptului că piesele necesare au apărut în stocul magazinului mai târziu, implementarea software a fost decalată o perioadă (aproape de final, ~2-3 săptămâni). După finalizarea etapei “Hardware” cu succes, am încercat implementarea jocului, însă problema proiectului a venit din partea LCD-ului. Acesta se aprinde, însă nu afișează nimic, astfel că după căutări îndelungate pe Internet după o simplă librărie care să-mi permită măcar afișarea banalului “Hello World!”, finalizate fără succes, am apelat la ajutorul laborantului, iar împreună cu acesta am petrecut aproape 2h din laborator încercând diverse soluții (ne-am gândit să încercăm chiar încărcarea unui bootloader de arduino pe plăcuță, însă era necesară remaparea piniilor și alte complicații etc.) însă, la fel, am concluzionat faptul că LCD-ul nu este compatibil cu plăcuța de PM (inima proiectului). Timp pentru alegerea altei teme nu mai era și nici posibilitatea de a înlocui piesele.

Astfel, am primit un now task, acela de a încerca să creez eu o bibliotecă dedicată Shield-ului LCD pentru Arduino Mega de 3.2'', una care să poată afișa cel puțin câțiva pixeli. Sarcină destul de complicată având în vedere timpul alocat proiectului rămas.

  • Algoritmi şi structuri pe care plănuiţi să le implementaţi: nu a fost cazul (vezi cele de mai sus).
  • (etapa 3) Surse şi funcţii implementate: am plecat de la următoarea specificație găsită pe site-ul magazinului de unde am achiziționat placa (presupunând că este adevărată): “Bazat pe controllerul ILI9481”, așa că m-am bazat și pe DateSheet-ul acestui controller. Ideea e că în timpul rămas am încercat o reproducere a library-urilor găsite de pe Intenet, în încercarea de a mi-l crea pe al meu. Obiectiv eșuat, pe de-o parte pentru că încă nu funcționează și pe de altă parte pentru că nu am mai făcut vreodată așa ceva.

Rezultate Obţinute

O plăcuță corect montată, legată la o placă de test universală, conectată cu 5 butoane și un LCD care se aprinde, incompatibil (deocamdată) cu software-ul ATMEGA324PA-PU.

Concluzii

Un proiect nefuncțional datorită unei neatenții (și neștiinței) de compatibilitate. Personal, cel puțin pe partea hardware, consider că a fost un proiect interesant, util și distractiv deoarece am învățat foarte multe lucruri. Voi reveni asupra lui în momentul în care voi găsi ceva compatibil :-).

Download

Jurnal

Bibliografie/Resurse

pm/prj2016/anitu/alex.panteleon.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0