Proiectul consta in implementarea unui joc de x si 0 pe un LCD, iar interactiunea cu jucatorul va fi realizata prin joystick sau telefon cu ajutorul unui modul Bluetooth.
Scopul proiectului este de a realiza un joc interactiv cu ajutorul unor componetente hardware.
Ideea a venit de pe pagina cu idei pentru proiecte. M-am inspirat de acolo si am adaugat cateva imbunatatiri la proiectul initial.
Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html
Pozitionarea aleasa de jucatori in matricea de 3×3 poate fi realizata atat printr-un joystick cat si cu telefonul(butoanele w, a , s, d) care este conectat printr-un modul bluethooth. Cand alegem o poztite se va reda un sunet cu ajutorul buzzer-ului, iar cand castiga unul din jucatori va fi redat un sunet mai vesel. Jocul va fi afisat pe un ecran LCD unde va fi posibila urmarirea evolutiei jocului.
Listă de piese:
LCD Modul Bluetooth Joystik Arduino Fire Buzzer.
Ecranul initial este reprezentat de table pentru x&0. Tabla este construita in functie de lungimea/latimea LCD-ului, iar poztiile sunt alese tot in functe de acestea. Prima pozitie care apare este cea din stanga sus, care va fi selectata prin umplerea patratului cu rosu. Prin miscarea Joystick-ului ne putem muta pe tabla pentru a alege pozitia. Atunci cand apasam butonul joystick-ului selectam o pozitie, iar buzzerul va scoate un sunet scurt.
Pozitiile deja alese vor fi retinute in niste vectori de poztii, iar numarul de miscari va fi incrementat intr-un counter. Daca jocul este castigat pe ecran va fi afisat un mesaj : “X won”/”0 won” si buzzerul va scoate un sunet mai lung. Daca este remiza se va afisa “Draw”.
Mediu de dezvoltare:
Arduino IDE
Biblioteci folosite:
TFT- pentru LCD-ul TFT KMR 1.8 SPI
SPI
AxisJoystick – pentru Joystick.
Am intampinat cateva probleme la implementarea functionalitatii joystick-ului, pana am descoperit biblioteca AxisJoystick.
Nu am reusit sa implementez functionalitatea modului bluethooth, insa in final jocul a iesit destul de bine, am avut o experienta placuta din care am invatat sa lucrez cu Arduino Uno, LCD, Joystick si buzzer.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
https://mschoeffler.com/2019/06/20/arduino-tutorial-making-the-kmr-1-8-spi-tft-display-work/
https://exploreembedded.com/wiki/Analog_JoyStick_with_Arduino
https://www.best-microcontroller-projects.com/arduino-joystick.html
Laboratoare Pm.