PROIECTE 2011
Proiectele realizate in cadrul Laboratorului de SMP, 2011, le gasiti mai jos, Fiecare echipa are de completat in pagina WIKI corespunzatoare proiectului sau capitolele existente.
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 . Mi-a fost recomandat si mie de ceilalti laboranti.
-
Pentru conectarea la porturile de I/O trebuie sa izolati galvanic folosind optocuploare, ex LTV817 - puteti sa cautati pe site, si rezistente sa limiteze curentul maxim la 5mA U=R*I si trebuie avut in vedere ca rezistentele sa reziste la puterea la care e proiectat circuitul P=U*I...
-
Pentru alte elemente elecronice puteti folosi diode 1N4007, tranzistori BD139/140 de putere mare. Binenteles ca nu sunteti limitati la folosirea acestora, e doar o propunere.
-
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.
2011_P7
PROJECT NAME: Controlul semafoarelor intr-o intersectie
Project Description
Tema : Sa se proiecteze circuitul de control al semafoarelor dintr-o intersectie si sa se implementeze fizic placuta de control.
Pentru acest proiect am ales sa controlam semafoarele din intersectia a doua strazi cu doua sensuri de mers pentru fiecare strada. Fiecare semafor are doar doua culori: verde (acces liber in intersectie) si rosu (acces blocat in intersectie)=> in total 4 semafoare pentru fiecare intrare in intersectie a celor doua strazi.
Am folosit simulatorul PROTEUS pentru a modela circuitul nostru folosind de asemena picZ3.DSN.
Lista componente:
Cod Schema |
Cod Piesa (de cumparat) |
R1-R3 |
3x RW25CF 4.7K (250 mW) |
R4 |
1x RW25CF 100R (250 mW) |
R5-R6 |
2x RW25CF 100K (250 mW) |
C1-C2 |
2x CML 22pF 50V C0G |
C3-C7 |
5x CE 1.0uF 63V 105C Fujicon |
C8-C9 |
2x CML 47nF 50V Y5V P2.5 |
B1 |
1x TS-06E (TS-3) (tact switch) |
X1 |
1x Q20.000 MHz HC-49S |
PIC16F628A |
1x PIC16F628A-I/P |
MAX232 |
1x MAX232N |
LM7805 |
1x 7805 |
soclu 18 pini pt PIC+MAX |
2x LC18 |
placa test 50x100 pastile, sau mai mica |
1x placa test 50x100 |
2 mufe DB9(corect e DE9) TATA |
2x DB9PF |
Componente de asamblare fizica (conform specificatiilor)
- 1 letcon 40W-60W
- fludor 1-1.5mm
- multimetru
-cablu UTP 1m - o sa folositi firele din cablu pentru cablaj la placa de test. Pentru conexiuni nu e nevoie decat sa lipiti doar capetele.
Project Requirements
In cazul in care nu se transmit date pe seriala, exista o succesiune de doua stari in care se schimba culorile semaforului ( ledurile ).Din cele doua porturi ale uC, PORTA si PORTB, am ales pinii 0-4 din PORTA si 3-5 din PORTB pentru a controla aprinderea celor 8 leduri.succesiunea normala este:
- 01100110 - becurile V1, R2, V3 si R4 aprinse, restul stinse
- 10011001 - becurile R1,V2,R3 si V4 aprinse, restul stinse
In acel sir de 8 biti primii 5 cei mai semnificativi sunt asociati bitilor 0-4 din PORTA, iar ultimii trei bitilor 3-5 din PORTB.
Programul implementat pe EV/Z3 va putea trasnmite direct succesiunea de biti catre uC, atasand secventei de 8 biti un caracter final care sa indice incheierea starii.
Daca transmiterea noii stari a ledurilor nu este continua, dupa un ciclu de schimbare a culorii becului, programul revine la succesiunea initiala.
User Flow
Programul de pe placuta EV/Z3 asteapta ca utilizatorul sa apese o tasta predefinita care duce la afisarea pe displayul de pe placuta EV/Z3 a unui mesaj care sa specifice introducerea succesiunii de biti corespunzatoare noii stari dorite.
Required components
Schema in PROTEUS IDE
Poza initiala
Poza finala
Software Design
Scurta introducere despre …
Limbaj de asamblare. Un pas in fata de la limbajul in cod masina este limbajul de asamblare care utilizeaza abreviatiile numite mnemonici. Mnemonicile sunt mai usor de retinut decat codul masina pe care il inlocuiesc. Deorece codul masina este limbajul pe care CPU il intelege este nevoie de o cale de a traduce din limbaj de asamblare in cod masina. Pentru a realiza acesta se utilizeaza un asamblor care este un soft ce ruleaza pe calculatorul de birou si traduce in cod masina.
Software
Codul in C a fost scris in mikroC prin care s-a obtinut si fisierul .hex.
Codul este dupa cum urmeaza :
void main() {
char stare[10];
unsigned short int ok,i;
TRISA = 0x00; // set direction to be output
TRISB = 0x00;
UART1_Init(9600);
do {
ok=0;
while (UART1_Data_Ready() == 1) { // if data is received
UART1_Read_Text(stare, "t", 10); // reads text until 't' is found
ok=1;}
if(ok==0){
PORTA = 0x6; // Turn ON LEDs on PORTA: 00000110
PORTB = 0x18; // Turn ON LEDs on PORTB: 00011000
Delay_ms(1000); // 1 second delay
PORTA = 0x29; // Turn ON LEDs on PORTA: 00011001
PORTB = 0x32; // Turn OFF LEDs on PORTB: 00100000
Delay_ms(1000); // 1 second delay
}
else{
for(i=1;i<9;i++){
if(i<6){
if(stare[i]==1)
PORTA |=(1<<i-1);
else
PORTA |=(0<<i-1);
}
else{
if(stare[i]==1)
PORTB |=(1<<i-3);
else
PORTB |=(0<<i-3);
}
}
while (UART1_Data_Ready() == 1) { // if data is received
UART1_Read_Text(stare, "t", 10); // reads text until 't' is found
}
Delay_ms(1000);
for(i=1;i<9;i++){
if(i<6){
if(stare[i]==1)
PORTA |=(1<<i-1);
else
PORTA |=(0<<i-1);
}
else{
if(stare[i]==1)
PORTB |=(1<<i-3);
else
PORTB |=(0<<i-3);
}
}
Delay_ms(1000);
}
} while(1);
}
Download
Arhiva cu schema hardware + cod microcontroller + tot proiectul OpenWatcom.
Arhiva va contine 2 directoare (1 singur pentru proiecte doar software)
Hardware design - schema uC + codul folosit pentru a genera fisierul .HEX
Software design - template-ul Open Watcom folosit
Status
14.04.2011 – Ora : 18:00 Intalnire echipa, intocmire plan de lucru
21.04.2011 – Ora 16:00 - Documentare asupra proiectului
26.04.2011 – Ora 17:00 - Documentare asupra proiectului
28.04.2011 – Ora 10:00 - Mers pe Maica Domnului sa luam componentele necesare
03.05.2011 – Ora 16:00 – Sedinta stadiu proiect
05.05.2011 – Ora 17:00 - Lipit componente placuta si brainstorming asupra proiectului
10.05.2011 – Ora 16:00 – Finisat placuta, incepere scriere cod
14.05.2011 - Ora 10:00 - Observatie majora : in loc de 2 mufe DB9 TATA trebuiau 2 mufe MAMA
18.05.2011 - Ora 21:00 - 19.05.2011 - ora 4:00 - Finalizare ( Partea 1 )
19.05.2011 - Ora 13:00 - Finalizare ( Partea 2 )