PROIECT 2012
Proiectele realizate in cadrul Laboratorului de SMP 2012, Fiecare echipa are de completat in pagina WIKI corespunzatoare proiectului in cadrul tabelului de mai jos, in functie de grupa de care apartine La o grupa se poate implementa o singura data un proiect.
Lista cu proiectele disponibile o gasiti AICI.
Punctaj Proiect
-
2p Pagina Wiki in format HTML cu capitolele create - poze(diferite stadii ale proiectului) + schema hardware + listing software (microcontroller + OpenWatcom la Z3)
-
5p Functionalitate proiect - punctaj in functie de cerintele cerute/realizate
-
1p Calitatea proiectului - cat de organizati ati fost in realizarea acestuia, cod format frumos, optimizari etc...
-
2p Nota individuala - participarea voastra in proiect, raspunsul vostru la intrebarile laborantului la presentarea proiectului
Cerinte general valabile:
- Toate proiectele se vor integra software si/sau hardware cu placa EV/Z3. Pentru integrarea hardware se va folosi portul serial al placii EV/Z3
- Logica software de baza se va regasi pe placa EV/Z3 si va fi realizata în C + inline assembly folosind template-ul OpenWatcom de la laborator
- Pagina de wiki trebuie sa contina o descriere a ce a realizat fiecare student in cadrul proiectului
- Daca nu puneti pe site alta schema de proiectare hardware se va folosi cea cu PIC16F628A pusa la dispozitie
- Wiki-ul trebuie updat ca sa vad stadii intermediare ale proiectului
Elemente de electronica
-
Pentru a vedea/comanda un pret estimativ a componentelor va propun www.conexelectronic.ro . Gasiti si alte magazine pe Maica Domnului.
-
Letconul ar trebui sa aiba cam 40W , nu mai mult de 60 oricum , iar fludorul la 1mm-1.5mm. Sa aveti si un voltmetru cu voi.
-
Va recomand inainte sa alegeti proiectul sa cititi cateva elemente de electronica de AICI.
2012_332AB_P8
Table of contents
2. [edit]
2.4. VI. Software Design
2.5. VII. Results
2.6. VIII. Download
2.7. IX. Status
Project Name [edit]
[edit]
I. Project Description
Acest proiect presupune implementarea unui joc de X si 0 cu ajutorul unei placute de test(care realizeaza logica jocului) si a unei matrice de leduri care marcheaza pozitiile celor 9 casute pe care jucatorii le pot completa conform regulilor acestui joc.
Din punct de vedere functional, placa de test comunica serial cu EZ/V3 prin intermediul unui diver de comuicatie seriala(MAX232) primind de la aceasta coordonata casutei ce urmeaza a fii completata. De mentionat, este faptul ca jucatorii
completeaza casutele in mod alternativ acest lucru fiind realizat automat de catre softul implementat pe microcontroller.
Pentru a se putea completa cu X si 0 matricea jocului este utilizata tastatura de pe placa EV/Z3, mai exact cifrele de la 1 la 9. Codurile aferente tastelor care sunt apasate vor fi transmise serial catre placa de test unde vor fi prelucrate de catre programul realizat.
In functie de caracterele primite de la tastatura, programul va aprinde ledul corespunzator. Ledul va ramane aprins sau in mod continuu sau intermitent in functie de litera pe care o utilizaeaza jucatorul curent (pentru primul jucator care completeaza matricea se atribuie litera X iar pentru al doilea jucator litera 0).
In momentul in care un jucator a castigat (a completat o linie, o coloana sau o diagonala) toate cele noua leduri vor afisa litera corespunzatoare jucatorului. De asemena in momentul castigarii pe placa EZ/Z3 va fii afisat un mesaj in care se mentioneaza playerul care a terminat.
II. Project Requirements
Hardware:
Placa de test dezvoltata in jurul microcontrolerului PIC 16F2628A
Placa de test cu 9 leduri (matrice 3x3) pentru afisarea grilei X si 0
Software:
Joc de tip: Player vs Player
Fiecare jucator completeaza alternativ casutele conform regulilor pana in moentul in care unul dintre ei castiga sau nu mai sun casute libere.
Daca un jucator a castigat, atunci cele 9 leduri ii vor afisa litera corespunzatoare iar pe LCD-ul EV/z3 va fi afisat un mesaj corespunzator.
III. User Flow
X si 0 este o placuta de tip test, implementata in cadrul unui proiect. Placuta are rol de amuzament, dar poate avea si rol didactic, intrucat prin reprogramarea microcontrollerului, si a placii EV/Z3 se pot face diferite simulari, jocuri de lumini si nu in ultimul rand comunicatie seriala.
IV. Required components
Hardware (Componente Utilizate):
- 2x 100K/0.25W
- 1x 100R/0.25W
- 5x 1MF/50V 4*7mm
- 2x 47NF/630V NEPOL
- 1x PUSH BUTTON KRS1273
- 1x PIC16F628AI/P
- 1x MAX232 CPE
- 1x LM7805
- 2x soclu 18 pini
- 1x mufa DB9
- 1x placa test 50x100 pastile
- 1x placa test 100x100 pastile
- 9x Led Rosu 3mm
- 9x 470/025W
V. Hardware Design
Schema folosita pentru implementarea din punct de vedere hardware a placii de test, este bazata pe modelul oferit ca exemplu in cadrul laboratorului (Afisaj 7 Segmente).
Pentru realizarea jocului modelul initial a fost modificat astfel: s-a eliminat afisajul 7 segmente acesta fiind inlocuit de 9 leduri conectate la 9 dintre pinii microcontrollerului.
VI. Software Design
Program PIC
Celor nou leduri li se asocaiaza 9 pini de control si un vector de 9 componenete (indexul acestui vector este echivalent cu ledurile de la 1 la 9);
Coponentele vectorului iau valori intre zero si doi semnificatia fiind urmatoarea (0 - ledul nu a fost aprins, 1- ledul a fost aprins de primul jucator, 2 ledul a fost aprins de catre al doilea jucator)
Proceduri utilizate pentru realizarea programului:
- _delay_us - functie de intarziere microsecunde
- _delay_ms - functie de intarziere milisecunde
- genereazap1 - aprinde ledurile asociate jucatorului 1(X).
- genereazap2 - aprinde ledurile asociate jucatorului 2(0) in mod intermitent.
- test - verifica dac un jucator a castigat
In main-ul programului in bucla infinita sunt realizate urmatoarele operatii:
-se asteapta primirea unui caracter prin intermediul comunicatiei seriale. In timpul acestei asteptari se animeaza ledurile asociate jucatorului 2 (se aprind si se sting) in timp ce ledurile jucatorului 1 raman aprinse mereu.
-dupa ce se primeste un caracter se verifica daca acesta este cifra. In cazul in care este cifra , se verifica daca pozitia din vector specificata de caracterul receptionat este 0 sau altceva. Dca este 0 atunci ledul va fii activat in conformitate cu tipul de animatie asociata jucatorului curent. In caz contrar jucatorul trebuie sa apese alta tasta.
-ordinea de completare este alternativa incepand cu jucatorul 1.
-la sfarsit se verifica daca verunul dintre jucatori a csatigat jocul. In caz afirmativ se transmite un mesaj de confirmare catre placa.
Program EV/Z3
Intr-o bucla infintita se asteapta apasarea unui caracter(cifra). Aceasta este prelucrata, preluata intr-un buffer, si apoi codul ASCII al acesteia este trimis prin comunicatia seriala. In cazul in care se primeste un cod de confirmarea a castigarii jocului de catre unul din cei doi jucatori pe LCD va fi afisat un mesaj corespunzator.
VII. Results
VIII. Download
After you have presented your project at the laboratory (week 13-14) you will add all your sources here. Any hardware simulation used, code archive and so on.
IX. Status
- 10.04 - Am cumparat componentele necesare realizarii placutei.
- 25.04:27.04 - Am lipit componentele pe placuta si am testat circuitul ca sa nu existe scurt circuite.
- 29.04 - Am inceput programarea PIC-ului pentru joculet si am testat simularea in Proteus care a functionat.
- 9.05 - Am testat placuta la laborator, insa comunicatia seriala nu a mers. Am verificat placuta si am observat ca pe doua condensatoare de la pinii lui MAX323 nu avem voltajul necesar. Proiectul merge (am realizat un program de test care aprindea ledurile intr-o anumita ordine) insa nu functioneaza comunicatia seriala.
- 10.5 Am incercat sa refacem comunicatia seriala insa fara succes.
X. Personal Contribution
- Implementare program EV/Z3
- Implementare program PIC
- Achizitionare componente
- Implementare hardware a placii de test
- Debug la placa de test
- Simulare si testare (Proteus + placuta)