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_332AC_P5
Wiki error: Section name cannot be repeated ' '
Table of contents
2. [edit]
2.3.1. Theacher Proposal
2.3.2. - placa cu ATMega32 - legati 8 leduri - 4 rosii 4 verzi.
2.3.3. - Placa de Z3 trimtie prin seriala starea intersectiei.
2.4. III. User Flow
2.6. V. Hardware Design
2.7. VI. Software Design
2.8. VII. Results
2.9. IX. Status
Project Name [edit]
[edit]
I. Project Description
In 1918 a fost inaugurat la New York primul semafor electric cu trei culori: rosu – stop, portocaliu – atentie, verde – cale libera. Comenzile erau date manual de catre o persoana cu atributii in dirijarea circulatiei.In decembrie 1920, politistul William Potts din Detroit a construit un semafor electric cu trei culori si care a fost montat suspendat ca in zilele noastre .Primul semafor din Franta a fost instalat la data de 5 mai 1923, la intersectia bulevardelor Saint-Denis siSébastopol din Paris. Avea doar culoarea rosie insotita de un semnal sonor. Abia dupa 10 ani s-au introdus sicelelalte doua culori: verde si galben.Semaforul automat, asa cum este cunoscut astazi, a fost introdus in 1926. Evolutia acestuia este remarcabila,ajungandu-se astazi la semafoare inteligente. De fapt, acestea primesc informatii de la camere video si senzori de prezenta incastrati in carosabil, respectiv de la senzori de gaze poluante si, pe baza unui program, dirijeaza traficul auto in mod automat.
Tema de proiect a echipei noastre este programarea unei intersectii semaforizate in cruce, cu o banda de mers pe sens. Se considera ca fiecare semafor are 2 stari: Verde: acces intersectie Rosu: acces interzis. Acest proiect propune un microcontroler care sa comunice selectia benzilor de circulatie (banda actuala, banda viitoare) catre EV/Z3 prin portul serial, iar acesta sa comande semafoarele amplasate in intersectie cu parametrii specificati. Byte-ul rezultat este format din succesiunea culorilor pentru semafoarele destinate masinilor este rosu, verde, rosu etc. si este comunicat tot prin seriala.
II. Project Requirements
What does the project require to be implemented (both hardware and software). Expected behavior.
Theacher Proposal
- placa cu ATMega32 - legati 8 leduri - 4 rosii 4 verzi.
- Placa de Z3 trimtie prin seriala starea intersectiei.
- Soft: modalitate de a configura intersectia cu ajutorul tastaturii. = sensul de mers. Sa dea eroare in caz de configurare gresit. Sa dati run.
III. User Flow
Semaforizarea intersectiilor cu trafic intens a devenit o necesitate pentru a se asigura fluidizarea traficului si pentru a se evita ambuteliajele si alte evenimente rutiere nedorite. Pentru a rezolva aceasta problema, placuta noastra afiseaza succesiunea de semafoare, fiecare semafor avand starea sa: rosu sau verde. Pentru a determina aceasta succesiune, utilizatorul are la dispozitie 4 butoane prin care specifica banda pe care se afla si banda pe care doreste sa o ocupe. Proiectul si-a dovedit utilitatea prin exemplificarea etapelor necesare rezolvarii unei probleme reale prin intermediul automatizat, realizarea atat a hardware-ului, cat si a software-ului.
IV. Required components
Pentru realizarea placii, am avut nevoie de urmatoarele componente:
- 1 x Microcontroller ATMega32 16PU
- 1 x Soclu 40 pini
- 1 x circuit integrat Max232
- 1 x Soclu 16 pini
- 5 x Condensator 1uF
- 4 x Led Bi-Color Rosu-Verde
- 4 x Rezistenta 330Ohmi
- 4 x Buton Push cu 4 pini
- 4 x Condensator 10pF
- 6 x Pin Conector, grupati
- 1 x Port Serial cu suport (am gasit doar Mama asa)
- 1 x Port Alimentare USB
V. Hardware Design
Schema din Proteus pentru placa de test este:.
Evolutia placii de test este ilustrata mai jos:
VI. Software Design
Functionalitatea proiectului se imparte in 2 parti: prima parte reprezinta algoritmul de pe placuta, pe care il vom denumi generic "ATMega", iar cea de-a doua reprezinta functionaliteatea propriu-zisa asigurata de catre placuta EV/Z3.
Placuta si EV/Z3 sunt legate prin intermediul serialei. Initial placuta porneste, isi seteaza toate semafoarele rosii, marcand astfel inceput de executie si asteapta apasarea butoanelor. Apasarile de butoane vor fi grupate 2 cate 2: primul reprezinta unde se afla masina, iar cel de-al doilea unde vrea sa ajunga. Pentru a micsora timpul de testare, placuta, dupa prima pereche de pozitii, leaga ultima pozitie (unde voia sa ajunga) cu urmatoarea pozitie marcata prin apasarea butonului respectiv. Daca ne dorim, totusi functionarea in modul pereche "unde sunt-unde vreau sa ajung", putem apasa 2 butoane, iar placuta ne afiseaza solutia primita de la EV/Z3. Practic, placuta salveaza pozitiile si le encripteaza intr-un byte de date asftel:
- sunt grupati primii 4 biti si urmatorii 4 biti care simbolizeaza pozitia de inceput, respectiv pozitia de ocupat
- in interiorul gruparilor, cei 4 biti reprezinta cele 4 pozitii posibile. Un bit 0 semnifica pozitia libera, iar bit-ul de 1 semnifica pozitia ocupata de catre masina (sau cea care va fi ocupata). Prin implementarea algoritmului, nu vor putea fi grupuri de 4 biti cu mai mult de un singur bit pozitie. Un exemplu de byte este "10000001" care semnifica "sunt pe strada 1 si vreau sa ajung pe strada 4". Acesti biti sunt luati de pe portul C al microcontroller-ului, care este legat la butoane. Fiecare pin este setat activ (1), avand o tensiune de 5V nominali. In momentul in care un buton este apsat, el face legatura intre pin si GND. Astfel, pin-ul inregistreaza o tensiune de 0V (GND) si in asa fel ne putem da seama ce buton este apasat. Toate acestea sunt specificate prin comentarii in cadrul codului sursa.
Prima apasare este salvata in variabila first, iar cea de-a doua apasare in variabila second. Cele doua variabile unite printr-o operatie de logica binara SAU dau byte-ul de mai sus. Acest byte este salvat in variabila path si trimis pe seriala. Apoi se asteapta raspunsul din partea EV/Z3-ului. Raspunsul vine tot sub forma unui byte, insa de data aceasta byte-ul este grupa in perechi de cate 2 biti. Prima pereche este pentru soseaua 1, cea de-a doua pentru soseaua 2 si asa mai departe. Perechea contine 0 pentru culoarea stinsa, iar 1 pentru cea aprinsa. De exemplu, prima pereche fiind 10 se traduce in culoarea rosu a primului semafor, iar 01 prin culoarea verde. Datorita unui led cu eroare de fabricatie, ultima pereche este implementata invers. Verificarea ca eroarea este una de fabricatie si nu una de lipire este foarte simpla, deoarece led-urile prezinta o tesitura pe pinul anod pentru culoarea rosie. Led-ul in cauza are tesitura pe culoarea verde, spre deosebire de celelalte 3.
Byte-ul primit de la placa EV/Z3 este pus direct pe portul A al microcontroller-ului, portul pe care sunt legate led-urile. In aceasta maniera se seteaza culorile semafoarelor din intersectie.
Algoritmul de pe EV/Z3 este mult mai simplis. EV/Z3 doar trebuie sa primeasca codificarea pozitiilor prin intermediul byte-ului transmis si sa timita inapoi pe seriala codificarea semafoarelor. Cea mai simpla abordare posibila este utilizarea unui SWTICH CASE prin care se seteaza byte-ul trimis in functie de byte-ul primit. In mod default sau in cazuri de eorare (de exemplu in momentul in care se specifica aceiasi strada si pentru plecare si pentru sosire) EV/Z3 returneaza byte-ul "10101001" care seteaza toate semafoarele pe culoarea rosie (Nota: se observa ultimul semafor cu eroarea de fabricatie!).
La primirea byte-ului, placuta aplica valoarea respectiva portului si aprinde semafoarele in concordanta cu decizia stabilita de catre EV/Z3. Aceasta este functionalitatea software a proiectului nostru.
VII. Results
Deoarece nu am apucat sa facem poze din timpul laboratorului final, am programat placuta sa functioneze in totalitate. Practic, am inclus SWTICH CASE-ul, in loc sa trimitem prin seriala si sa asteptam raspunsul.
In momentul alimentariii placutei, toate semafoarele sunt rosii, simbolizand starea initiala
Selectam pozitia in care ne aflam cu masina
Selectam pozitia in care dorim sa ne deplasam
Placuta lumineaza semafoarele in concordanta cu directia de mers selectata
Alt exemplu, in cazul in care suntem jos si dorim sa mergem inainte, se aprind ambele semafoare verzi, deoarece directia celor care au verde nu ne deranjeaza directia de mers dorita.
VIII. Download
Pentru a descarca toate fisierele sursa, inclusiv schema in proteus, click pe link-ul urmator:
http://www.filehost.ro/3518164/Proiect_SMP_SEREA_STOICA_332AC_zip/
IX. Status
Saptamana 12:
- elaborare cod ATMega32 si EV/Z3.
Saptamana 13:
- elaborare lista componentelor electrice necesare
- procurare piese necesare, plus materiale (fludor, letcon, multimetru)
- elaborare schema circuitului electric in Proteus
Saptamana 14:
- executarea si lipirea placutei de test conform circuitului din saptamana 13
- programarea placutei ATMega32 prin intermediul programatorului
- testarea functionalitatii cu placa EV/Z3
X. Personal Contribution
Proiectul a fost bazat pe lucrul in echipa si am incercat sa contribuim in mod egal pe toata dezvoltarea lui. In majoritatea timpului am lucrat impreuna la ce a fost nevoie sa facem. Partea de schema in Proteus a fost facuta de Alexandra, dezvoltarea codului software a fost realizata de catre George, iar procurarea de piese si lipirea lor pe placa a fost facuta de amandoi, in functie de posibilitate. Consideram ca ne-am impartit atributile de adus proiectului in mod echilibrat.