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_P20
Joc de Lumini
I. Descrierea proiectului
Se cere realizarea unui circuit care sa primeasca prin port serial un caracter si, in functie de aceasta intrare, sa aprinda dupa anumite tipare (ordine de aprindere, frecventa, tensiune) o serie de LED-uri.
Pentru aceasta s-a utilizat schema de integrare standard a PIC 16F 628 A cu placa EV/Z3.
II. Cerintele proiectului
LED-urile folosite accepta intrari de 5V (alimentare cu tensiune stabilizata la 5.6V, 660 mA, curent continuu) si se aprind in Galben, Rosu si Albastru.
Caracterele trimise de placa EV/Z3 prin port serial sunt in intervalul 0-5. Acestea se citesc de la tastatura placii.
III. Informatii de utilizare
Pentru utilizarea placii trebuie intai programat pe EV/Z3 modul de transmitere prin port serial a caracterelor 0-5;
Pentru aceasta:
- Se compileaza proiectul care transmite placii EV/Z3 sa aplice un event listener pe apasarile de tasta de pe consola.
- Se stabileste o conexiune Seriala intre Computerul pe care a fost compilat proiectul si placa EV/Z3
- Se incarca programul pe EV/Z3 si se ruleaza
- Pentru testare, se observa faptul ca display-ul placii EV/Z3 afiseaza cate un mesaj pentru fiecare joc de lumini ales spre a fi transmis prin portul serial
- Se deconecteaza computerul de la EV/Z3
- Se conecteaza PIC16F628A la EV/Z3 printr-un cablu serial MAMA-MAMA
La fiecare apasare de tasta pe consola ev/z3 se incarca un nou joc de lumini pe placa realizata.
IV. Componente folosite
Componentele folosite sunt:
- 3 rezistente RW25CF 4.7K (250 mW)
- 1 rezistenta RW25CF 100R (250 mW)
- 2 rezistente RW25CF 100K (250 mW)
- 2 condensatori CML 22pF 50V C0G
- 5 condensatori CE 1.0uF 63V 105C Fujicon
- 2 condensatori CML 47nF 50V Y5V P2.5
- 1 buton TS-06E (TS-3) (tact switch)
- 1 quartz Q20.000 MHz HC-49S
- 1 microcontroller PIC16F628A-I/P
- 1 microcontroller MAX232N
- 1 tranzistor LM7805
- 2 socluri de 18 pini
- 2 mufe TATA seriale de 18 pini DE9PF
- 3 LED-uri de culori diferite
V. Design Hardware [edit]
S-a folosit urmatoarea schema de adaptare EV/Z3:
VI. Design software
1. |
#include "platform_io.h" |
2. |
#include "runtime\z3ev_io.c" |
3. |
|
4. |
const char *welcome = "Joc de lumini..........."; |
5. |
|
6. |
const char *serialStart = "Alege jocul............."; |
7. |
|
8. |
static SerialConfig serialConf; |
9. |
|
10. |
unsigned char buffer[32]; |
11. |
|
12. |
unsigned char getch() |
13. |
{ |
14. |
//citeste codul de la tastatura |
15. |
int code; |
16. |
code=kIo.ReadKey(); |
17. |
//testeaza ce cod era |
18. |
switch(code) |
19. |
{ |
20. |
case 0x00: |
21. |
return '0'; |
22. |
case 0x0A: |
23. |
return '1'; |
24. |
case 0x01: |
25. |
return '2'; |
26. |
case 0x0B: |
27. |
return '3'; |
28. |
case 0x02: |
29. |
return '4'; |
30. |
case 0x0C: |
31. |
return '5'; |
32. |
default: |
33. |
return '0'; |
34. |
|
35. |
} |
36. |
} |
37. |
|
38. |
char coduri[6]={0,1,2,3,4,5}; |
39. |
|
40. |
int readkey() |
41. |
{ |
42. |
int key; |
43. |
while (1) |
44. |
{ |
45. |
key=kIo.ReadKey(); |
46. |
kIo.DisplayBuffer((const unsigned char *)(&key),2); |
47. |
} |
48. |
return key; |
49. |
} |
50. |
|
51. |
int operand_citit = 1; |
52. |
char semn; |
53. |
int a=0,b=0,c=0; |
54. |
int cod_reset_b=0; |
55. |
char tasta; |
56. |
|
57. |
int main() |
58. |
{ |
59. |
int key = 0; |
60. |
kIo.DisplayString("Joc de lumini "); |
61. |
|
62. |
/* Serial Initialization */ |
63. |
serialConf.baudRate = b9600; |
64. |
serialConf.parity = none; |
65. |
serialConf.stopBits = one; |
66. |
serialConf.wordLength = eight; |
67. |
|
68. |
|
69. |
kIo.SerialInit(&serialConf); |
70. |
|
71. |
// Citire de la tastatura (ciclare infinita) |
72. |
while(1) |
73. |
{ |
74. |
// read the key |
75. |
key = kIo.ReadKey(); |
76. |
// Display the code of each individual key |
77. |
// kIo.DisplayBuffer((const unsigned char*)&key, 2); |
78. |
|
79. |
/** |
80. |
0 - 0000 (0) |
81. |
1 - 0A00 (10) |
82. |
2 - 0100 (1) |
83. |
3 - 0B00 (11) |
84. |
4 - 0200 (2) |
85. |
5 - 0C00 (12) |
86. |
*/ |
87. |
if (key == 0) { // 0 |
88. |
kIo.DisplayString("Alege jocul nr 0"); |
89. |
// TODO send through serial |
90. |
kIo.SerialWrite(80,0,1); // port, buffer, size |
91. |
} |
92. |
else if (key == 10) {// 1 |
93. |
kIo.DisplayString("Alege jocul nr 1"); |
94. |
} |
95. |
else if (key == 1) {// 2 |
96. |
kIo.DisplayString("Alege jocul nr 2"); |
97. |
} |
98. |
else if (key == 11) {// 3 |
99. |
kIo.DisplayString("Alege jocul nr 3"); |
100. |
} |
101. |
else if (key == 2) {// 4 |
102. |
kIo.DisplayString("Alege jocul nr 4"); |
103. |
|
104. |
else if (key == 12) {// 5 |
105. |
kIo.DisplayString("Alege jocul nr 5"); |
106. |
} |
107. |
} |
108. |
return 0; |
109. |
} |
VII. Rezultate [edit]
Evolutia proiectului:





VIII. Descarcare [edit]
IX. Status
- 4 Mai - piese achizitionate
- 6 Mai - terminarea schemei #1
- 13 Mai - revizia schemei de adaptare pentru EV/Z3
- 18 Mai - program EV/Z3
- 19 Mai - terminarea schemei #2 (pin 10 PIC la masa)
X. Contributii [edit]
Valentino-Jivko Radosavlevici:
- Achizitionare piese
- Implementare schema electrica
- Testare tensiuni/amperaje pe placa
- Achizitionare LED-uri
- Conectare LED-uri la iesirile programabile RA0, RA1, RA2
- Corectare schema electrica dupa ultimele actualizari
- Programare EV/Z3 pentru transmisia seriala a caracterelor
- Intocmire pagina Wiki
Silvian Ionete: