2012_332AC_P5

Wiki error: Section name cannot be repeated ' '

Table of contents

1. Project Name [edit]

2.   [edit]

2.1. I. Project Description 

2.2. 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.

2.3. II. Project Requirements

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.3.4. - Soft: modalitate de a configura intersectia cu ajutorul tastaturii. = sensul de mers. Sa dea eroare in caz de configurare gresit. Sa dati run.

2.4. III. User Flow

2.5. IV. Required components

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:Schema Proteus. Pe placa de test am inlocuit Led-urile cu Led-uri bi-colore..

Evolutia placii de test este ilustrata mai jos:

Placuta de test, dupa montarea fiecarui soclu, sursei de alimentare, butoanelor si a condensatoarelor pentru debouncing

 Verso Placa de test, etapa incipienta

 Verso placa de test, etapa incipienta

Verso placa de test 

Placa de test, finala

Placa de test, prima proba: aprinde un led in culoare verde

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

Power on

 

Selectam pozitia in care ne aflam cu masina

Push first button

Selectam pozitia in care dorim sa ne deplasam

Push the second button

 

Placuta lumineaza semafoarele in concordanta cu directia de mers selectata

Receive answer

 

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.

Another sample

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.