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_P4
Table of contents
2. [edit]
2.2.1. Theacher Proposal
2.2.2. - placa cu PIC, 50*100, placa de test fludor. LCD - 2 linii 8 caractere.
2.3. III. User Flow
2.5. V. Hardware Design
2.6. VI. Software Design
2.7. VII. Results
2.8. VIII. Download
2.9. IX. Status
2.10. X. Personal Contribution
Project Name [edit]
[edit]
I. Project Description
Tema proiectului consta in adaugarea unui afisaj placii EV/Z3.
Vom atasa placutei Z3 un afisaj grafic extern diferit de cel prezent pe ea, de o dimensiune mai mare. Folosim pe post de display un ecran de nokia 1100 care se va conecta la PIC prin 4 pini. Placuta va primi date pe seriala de la EV/Z3 dupa care v-a afisa pe ecran un mesaj corespunzator datelor trimise. LCD-ul poate functiona in 2 moduri fie va anima un mesaj care cicleaza predefinit de utilizator fie se vor scrie caractere introduse de la tastura EV/Z3-ului.
Pentru alimentarea placutei am facut 2 tipuri de alimentari una pe miniusb si una pe baza de incarcator.
II. Project Requirements
Pentru implementarea hardware am folosit schema in Proteus , cea recomandata.Pe langa aceasta am adauga un afisaj LCD de Nokia 1100 care comunica cu PIC-ul , trebuie mentionat ca PIC-ul folosit nu este 16F628A ci 16F628 dar functionarea lui este aceeasi si nu ar trebui sa fie probleme.Pentru conectarea LCDului de Nokia la PIC a trebuit sa adaugam cateva rezistente deoarece acesta functioneaza la 3.3V la fel si pentru alimentarea lui a trebuit sa adaugam un divizor de tensiune.Pinii folositi pentru conectarea la LCD sunt RB4-RB7(voi introduce o schema in care voi detalia exact ce si cum).Teoretic la final dispozitivul va fi capabil sa afiseze ciclic un text pe care l-am introdus anterior in programul ev/z3 si pe care acesta il v-a transmite serial , sau alt mod in care e programat PICul sa functioneze e sa afiseze caracterele trimise de la tastatura Ev/z3.
Theacher Proposal
- placa cu PIC, 50*100, placa de test fludor. LCD - 2 linii 8 caractere.
Soft: Placa Z3 va anima ceva pe LCD folosind un protocol de comunicatie.
set linie coloana cod_ascii - astra trimiteti prin serial
Sa animati un text care cicleaza.
Sau un joculet (omulet care se misca cu tastatura Z3)
III. User Flow
Aceasta gen de aplicatie este foarte raspandita in ziua de astazi in care vedem nenumarate reclame , animand texte care cicleaza , chiar si in autobuz sau la metrou primim informatii intr-un astfel de mod despre statia care urmeaza sau data sau orice fel de informatii.Iar faptul ca se pot introduce si mesaje aleatoare de la tastatura reprezinta un plus fiindca orice isi poate afisa mesajul dorit , chiar daca acesta nu va fi animat.
IV. Required components
The hardware components used. List them and take a screenshot of them.
PIC16F628A
MAX232
mufa DB9
rezistente
condensatori
display nokia 1100
mufa mini usb
led verde
La care se adauga LCDul de Nokia 1100 , rezistenele si respectiv cablurile.
V. Hardware Design
Aceasta este schema proteus dupa care a fost proiectata placuta.Se poate observa si modul in care functioneaza LCD-ul in simulare . Mentionez ca pentru a functiona aceasta schema este necesar fisierul PCF8814.dll care reprezinta driverul pentru Proteus de LCD Nokia 1100.
Pentru adaugarea LCD-ului in urma verificarii datashetului pentru acesta am folosit urmatoarea schema in ceea ce priveste rezistenele (divizorii de tensiune) pentru a fi siguri ca acesta primeste tensiuni in conformitate cu modul in care a fost gandit.
Modul de conectare a pinilor pe LCD :
Si respectiv tensiunile aferente :
Si in final poze cu placuta completa :
VI. Software Design
Programul de pe uC are mai multe functii legate de intializarea lcdului , clear lcd , mutarea cursorului si respectiv scrierea unui caracter folosind codul ASCII , toate acestea au fost scrise folosind datasheetul LCDului pentru a vedea modul in care functioneaza acesta.
Partea principala a programului este primirea de carcatere pe serial in registru RXREG si folosind functiile pentru scriere de caracter respectiv pentru a muta cursorul adecvat si astfel sa poata fi afisat un mesaj coerent pe ecran.
El are 2 moduri de functionare care sunt selectate prin variabila mode , unul pentru afisarea unui text ciclic , cealalta pentru afisat caractere primite prin modul serial.
Modul in care au fost definiti pini :
#define SetBit(x,y) (x|=(1<<y))
#define ClrBit(x,y) (x&=~(1<<y))
#define SCLK_on SetBit(PORTB,7)
#define SDA_on SetBit(PORTB,6)
#define CS_on SetBit(PORTB,5)
#define RST_on SetBit(PORTB,4)
#define SCLK_off ClrBit(PORTB,7)
#define SDA_off ClrBit(PORTB,6)
#define CS_off ClrBit(PORTB,5)
#define RST_off ClrBit(PORTB,4)
#define lcd_CMD 0
#define lcd_DATA 1
#define TX_PORT 2
#define RX_PORT 1
#define TX_BIT (1<<TX_PORT)
#define RX_BIT (1<<RX_PORT)
Modul in care functioneaza partea de recive - transmit :
while(1==1)
{
while(!RCIF ); // Wait until data recieved on the serial port
rcv = RCREG; // Get the received character
lcd_init();
if(j==16)
if(i==3)
{
lcd_gotoxy(i=3,j=0);
}
else
{
lcd_gotoxy(++i,j=0);
}
else
lcd_gotoxy(i, j);
j++;
lcd_putch(rcv);
// while(!TRMT); // Wait until we're free to transmit
// TXREG = rcv; // Transmit
}
}
Partea de trimite a fost folosita doar pentru debugging in simulari.Codul a fost scris cu ajutorul softwareului MPLAB si compliat cu HI-TECH C Compiler.
Pentru partea de EV/Z3 implementata in OpenWatcom si scrisa in limbaj C folosind functiile deja predefinite am implementat partea de text ciclc atunci cand textul este inserat anterior si apoi transmis pe serial caracter cu caracter folosind functia SerialWrite , pentru debugging a fost facut un afisaj si pe displayul EV/Z3ului folosind functia DisplayString care ar trebui sa functioneze la fel cu cel atasat de noi.
VII. Results
Data about the final project implementation. Includes screenshots, movies, comments about your project in action.
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
You will have to update this every 2 weeks to include details of what you have done on your project. E.g.: aquired componets, made board, written code for EV/Z3
27.03 - Am cumparat componentele necesare realizarii placutei.
05.04 - Am lipit componentele pe placuta.
12.04 - Am inceput programarea PIC-ului pentru afisajul LCD.
18.04 - Am prezentat placuta la laborator si am facut primele teste.
20.04 - Am scris codul complet pentru PIC , atat pentru partea de comunicare seriala cat si pentru partea de afisaj LCD si l-am verificat in simulatorul Proteus cu succes.
02.05 - In urma primelor teste , placuta s-a prezentat defecta asa ca am reverificat conexiunile facute
05.05 - Am facut codul pentru EV/Z3 care trebuie testat cu placuta
09.05 - Am retestat placuta dar fara succes , in urma inlocuirii uC si a unor teste cu multimetrul am ajuns la concluzia ca trebuie refacute niste lipituri la conexiunea seriala
X. Personal Contribution
Oancea Dumitru :
Contributia mea la acest proiect a constat in faptul ca am cumparat piesele, am realizat montajul, am lipit piesele pe placuta de test conform cerintelor impuse in proiect si am adaugat si facut conexiunea display-ului cu pic-ul.Am facut debugging pe partea de hardware in laboratorul de electronica si am rezolvat probleme care erau.
Cazacu Daniel :
M-am ocupat de partea software si anume scrierea softului pentru PIC (initializarea LCDului , afisarea pe LCD si comunicarea seriala cu EV/Z3) , am realizat programul pentru EV/Z3 de comunicare intre placuta noastra si EV/Z3.Am realizat schema de simulare in Proteus si schema electrica pentru adaugarea LCDului(unde trebuie monatete rezistenele si de cat sa fie acestea).
Comun :
Am lucrat impreuna la testarea partilor hardware si software in cadrul laboratorului.