Abstract Snake

Tatu Diana, 334CA

Introducere

Proiectul consta in realizarea unei aplicatii ce se inspira din jocul Snake, utilizand un display grafic Raystar Optronix (RG12864A-YHY-X) de 128×64.

Descriere generală

Proiectul a presupus interconectarea intre 3 componente hardware:

  1. placuta de test (interfata seriala de programare, portul USB pentru alimentare, microcontroller-ul ATMega16)
  2. placuta periferica cu 4 butoane
  3. display-ul grafic LCD

Hardware Design

Aplicatia interactioneaza cu utilizatorul prin intermediul a 4 butoane, ce imprima o directie a ansamblului afisat (pentru simplicare - un patrat 8×8). Detectia starilor butoanelor se realizeaza printr-un algoritm de polling asupra portului C, configurat ca port de intrare.

Diagrama schematica a display-ului :

Structura logica a display-ului :

Magistrala de control intre microcontroller si ecran este legata la portul D, iar magistrala de date la portul A. Protocolul de comunicatie presupune trimiterea unor comenzi predefinite pentru pozitionarea cursorului, urmat de un bloc de date ce contine informatii despre starea pixelilor.

Din nefericire, ecranul LCD nu a avut integrat un invertor de tensiune, contrar informatiilor din datasheet. Astfel, se folosesc 3 baterii alcaline, conectate in serie pentru furnizarea voltajului negativ necesar.

Pentru ajustarea contrastului se foloseste un potentiometru.

Lista piese

  • placuta de test
  • display LCD grafic RG12864A-YHY-X
  • 4 butoane push-buttons
  • un potentiometru 10K - 20K
  • 3 baterii alcaline

Software Design

  • mediu de dezvoltare : AVRStudio 4.17
  • aplicatie programare (metoda ISP) : PonyProg 1.17h
  • limbaj de programare: Assembler

Programul contine o etapa de initializare, ce consta in configurarea display-ului si stergerea datelor afisate anterior, urmata de pozitionarea elementului grafic.

Rutina principala presupune scanarea starilor butoanelor. In functie de butonul apasat, sunt apelate rutine care vor sterge pozitia curenta, vor actualiza parametrii pozitiei (cadranul 0-1, pagina 0-7, coordonata abscisei 0-63) si vor redesena corespunzator elementul grafic.

Rezultate Obţinute

  • Prima imagine (de test) de pe display:

  • Rezultat final :

Concluzii

Am vrut sa incerc un display generos, dar am intampinat nenumarate dificultati datorate si unui datasheet eronat.

In concluzie, proiectul s-a dovedit a fi mai time-consuming decat am anticipat. In schimb, am obtinut o mare satisfactie prin prisma faptului ca am reusit sa controlez un obiect ce parea a fi initial un black-box.

Download

Arhiva cu fişierul obţinut în urma compilarii proiectului (.hex) si sursa programului (.asm)

dianatatu_abstractsnake.zip

Bibliografie/Resurse

pm/prj2011/rtataroiu/abstractsnake.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