Maria-Anca BĂLUȚOIU (67003) - Picross

Autorul poate fi contactat la adresa: maria_anca.balutoiu@stud.acs.upb.ro sau Login pentru adresa

Introducere

În creearea acestui proiect, am ales să realizez jocul Picross pe LCD. Jocul va funcționa similar cu jocul original:

  • În funcție de anumite numere prezente în partea stângă și în partea de sus a LCD-ului, jucătorul va trebui să coloreze anumite pătrățele pentru a forma o anumită imagine.
  • Pentru fiecare nivel, jucătorul va avea câte 3 vieți (pe care am ales să le reprezint cu ajutorul a 3 led-uri).
  • La fiecare pătrățel colorat greșit, jucătorul va pierde o viață (am ales să atenționez jucătorul că a pierdut o viață cu ajutorul unui buzzer).

În plus față de funcționalitățile de bază, jucătorul va avea posibilitatea să aleagă modul de deplasare printre pătrățele:

  • Folosind butoane
  • Înclinând placa (folosind un accelorometru)

Jocul Picross este un joc întâlnit în special pe telefoanele mobile. Ideea proiectului a pornit tocmai de la utilitatea și scopul acestui joc: relaxare și amuzament.

Exemple:

Descriere generală

Mod de funcționare:

  • La început, voi implementa controlul jocului, utilizând butoane. Acestea vor funcționa drept input pentru microcontroller.
  • LCD-ul grafic, LED-urile și buzzer-ul vor reprezenta output-ul microcontroller-ului.
  • La final, voi implementa și utilizarea accelorometrului, care va funcționa drept input. Acest modul va putea lua locul butoanelor (în funcție de preferințele utilizatorului).

Hardware Design

Listă Piese Folosite

Piesă Cantitate Distribuitor Preț (lei)
Placa de bază PM + componente de bază 1 - 33
Buton 6x6x6 5 Optimus Digital 0.99
LCD Grafic ILI9163 1 primit -
Accelerometru MMA8452 1 Optimus Digital 19.95
Buzzer pasiv 5V 1 Optimus Digital 1.95
Led verde 3mm cu lentile difuze 3 Optimus Digital 0.49
Rezistențe 2k2 3 primite -
Fire mamă - mamă 20 Optimus Digital 4.25
Placă de test 1 primită -
Total ~70

Componente de bază:

  • Microcontroller ATMega324A-PU
  • Conector USB B Cvilux
  • Quartz 16MHz
  • Diodă Zener x 2
  • Led 3mm Roșu x 2
  • 1×40
  • 2×10
  • Pushbutton x 2
  • Rezistență 100R x 3
  • Rezistență 470R x 3
  • Rezistență 1k5
  • Rezistență 10k
  • Condensator ceramic 100nF x 3
  • Condensator ceramic 15pF x 2
  • Soclu microcontroller
  • Jumper

Schemă Electrică

Software Design

Mediu de Dezvoltare

  • Programmers Notepad
  • BootloaderHID
  • WinAVR

Biblioteci și Surse 3rd-party

  • gfx.h
  • glcdfont.c
  • lcd.h

Surse

  • gfx.h și gfx.c - desenarea de forme pe ecran
  • glcdfont.c - scrierea cu un anumit font
  • lcd.h și lcd.c - conține funcții de bază în lucrul cu LCD-ul
  • picross.c - jocul propriu-zis

Funcții implementate

  • void buzzer_morse(int tip_morse) redă sunete pentru buzzer
  • void init_pins() inițializează pinii folosiți
  • void drawOne(int16_t x, int16t_y), void drawTwo(int16_t x, int16t_y), void drawThree(int16_t x, int16t_y), void drawFour(int16_t x, int16t_y) și void drawFive(int16_t x, int16t_y) desenează cifrele de la 1 la 5 pe LCD
  • void drawTable() desenează grid-ul, pe care se va genera imaginea
  • void init_picture() creează imaginea
  • void init_numbers() inițializează numerelor, care vor fi folosite pentru aflarea imaginii
  • void drawNumbers() desenează numerele pe ecran
  • void lose_life() stinge un led și pornește buzzer-ul să atenționeze jucătorul că a pierdut o viață
  • void drawEnvironment desenează toate detaliile pe LCD
  • int main(void)

Rezultate Obţinute

Concluzii

A fost o experiență foarte interesantă, din care am avut multe de învățat. Deși la început consideram că nu voi reuși să fac proiectul funcțional, am rămas surprinsă cât de repede am reușit să termin partea software (după mult research în datasheet-urile componentelor). Acest proiect a fost primul proiect din facultate, în care am făcut ceva practic la o materie legată de harware. Mi-a dat destul de multe bătăi de cap, mai ales partea de lipire a componentelor electronice, însă per total nu a fost foarte dificil (cel puțin nu așa dificil cum mă așteptam).

Download

Jurnal

PASUL 1 - Achiziționare Componente

PASUL 2 - Lipire Componente

PASUL 3 - Finalizare parte hardware (trasee între componente)

PASUL 4 - Programare

Bibliografie/Resurse

Resurse Hardware

Resurse Software

  • Bibliotecă interfațare LCD

Documentația în format PDF

pm/prj2017/imatesica/maria_anca.balutoiu.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