Autorul poate fi contactat la adresa: andreea.gurita95@gmail.com
Proiectul presupune implementarea unui joc pe un LCD grafic. Jocul, numit Teeter Ball, este unul dintre cele mai renumite jocuri de tip puzzle.
Acesta presupune deplasarea unei bile printr-un labirint prin inclinarea dispozitivului. Scopul este de a ajunge la destinatie si de a evita anumite zone pe unde bila poate sa cada, lucru ce presupune reinceperea din pozitia initiala. Vor exista mai multe nivele in care dificultatea va creste gradual.
Motivul pentru care am ales acest proiect este faptul ca jocul este captivant si pune accentul pe control si precizie in miscari.
Utilitatea proiectului e reprezentata de placerea de a juca, distractia si provocarea pe care o ridica.
Jocul va incepe la apasarea butonului de start, odata apasat se vor astepta date de la accelerometru. Accelerometrul masoara inclinatia dispozitivului si microcontrolerul determina in ce directie se va deplasa bila. Prin intermediul LCD-ului grafic utilizatorul urmari jocul si cum interactioneaza cu acesta. Optional se va mai adauga si un difuzor.
Input:
Ouput:
Lista de piese
Nume | Cantitate | Distribuitor |
---|---|---|
Placa de baza | 1 | Echipa PM |
Buton | 1 | Optimus Digital |
Accelerometru si giroscop MPU6050 | 1 | Optimus Digtal |
LCD grafic 128×64 12864b v2.0 | 1 | De pe OLX |
Potentiometru 10K | 1 | Magazin de componente electronice |
Buzzer activ | 1 | Optimus Digital |
Placuta de test | 1 | Magazin de componente electronice |
Fire mama-mama, mama-tata | >10 | Optimus Digital |
Schema electrica
<imgcaption sch_el|Schema electrica> </imgcaption>
O problema pe care am intampinat-o la partea de hardware a fost punerea in functiune a LCD-ului.
Este obligatorie existenta unui potentiometru cu iesirea legata la pinul de contrast pentru a se vedea ceva pe ecran.
La resurse este atasat un tutorial care m-a ajutat sa leg corect pinii.
Pentru dezvoltarea aplicatiei am folosit ca mediu de dezoltare editorul Sublime(pe Linux) si Programmers Notepad, impreuna cu AVR GCC Toolchain.
Am folosit biblioteci 3rd-party pentru lucrul cu LCD-ul si accelerometrul:
Pachetul mpu6050 contine si o biblioteca pentru comunicatia prin protocolul I2C.
Implementarea in sine a codului nu a fost foarte dificila insa o problema majora a fost spatiul de memorie limitat. Folosind biblioteci 3-rd party care nu sunt foarte optimizate, a trebuit sa fac diferse compromisuri si optimizari codului meu pentru a se incadra in spatiul ramas. Pentru a crea bitmap-ul care apare la inceputul jocului am folosit programul Bitmap2LCD.
Sursele şi functiile implementate se pot gasi aici.