This shows you the differences between two versions of the page.
pm:prj2023:ndrogeanu:carwipers [2023/05/08 14:19] alexandru.maxim2801 created |
pm:prj2023:ndrogeanu:carwipers [2023/05/30 09:57] (current) alexandru.maxim2801 [Concluzii] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nume proiect ====== | + | ====== Car wipers ====== |
===== Introducere ===== | ===== Introducere ===== | ||
<note tip> | <note tip> | ||
- | Prezentarea pe scurt a proiectului vostru: | + | Scopul acestui proiect este acela de a realiza un set de ștergătoare auto care să ajute la menținerea unei vizibilități bune în timpul condițiilor meteorologice nefavorabile, cum ar fi ploaia, zăpada, grindina sau ceața. Acestea îndepărtează rapid apa, zăpada sau alte particule de pe parbriz, permițând șoferului să vadă clar și să conducă în siguranță. |
- | * ce face | + | |
- | * care este scopul lui | + | |
- | * care a fost ideea de la care aţi pornit | + | |
- | * de ce credeţi că este util pentru alţii şi pentru voi | + | |
</note> | </note> | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | Proiectul constă în legarea unui senzor de picături de ploaie la un Arduino UNO. Pe lângă acesta, există legate la placa 2 servomotoare care vor acționa ștergătoarele, frecvența acestora fiind determinată în funcție de valorile citite de senzor. De asemenea, există și un buton care face posibilă acționarea ștergătoarelor și manual. |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
+ | {{:pm:prj2023:ndrogeanu:schema_bloc_carwipers.jpg?450|}} | ||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | ||
- | </note> | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | Componente: |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
- | * diagrame de semnal | + | |
- | * rezultatele simulării | + | |
- | </note> | + | |
+ | *Arduino UNO x1 | ||
+ | *Senzor picaturi de ploaie x1 | ||
+ | *Servo-motor x2 | ||
+ | *Buton x1 | ||
+ | *Breadboard x1 | ||
+ | *Fire de legatura | ||
+ | {{:pm:prj2023:ndrogeanu:schema_tinkercad_wipers.jpg?400|}} | ||
+ | {{:pm:prj2023:ndrogeanu:poza_wipers1.jpg?400|}} | ||
+ | {{:pm:prj2023:ndrogeanu:poza_wipers2.jpg?400|}} | ||
+ | {{:pm:prj2023:ndrogeanu:poza_wipers3.jpg?400|}} | ||
+ | {{:pm:prj2023:ndrogeanu:poza_wipers4.jpg?400|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | <note tip> | + | Partea software a proiectului am realizat-o in Arduino IDE, iar codul este unul destul de straight forward. |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | In functia de setup initializam comunicarea seriala intre placuta Arduino si calculator, atasam cele 2 servomotoare la pinurile digitale 9 si 10, configuram pinul 3 digital ca si input si de asemenea, activam rezistenta interna pull-up, iar in final, pentru a nu avea probleme cand numaram de cate ori a fost apasat butonul, cand se detecteaza o tranzitie de la semnal HIGH la semnal low, se efectueaza o intrerupere si se apeleaza functia countPress(). |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
+ | In functia countPress() folosim un debounce pentru a ne asigura ca butonul nu contorizeaza mai multe apasari din greseala. Daca butonul se afla la a 5-a apasare, acesta se reseteaza la 0 si se trece la modul automat, in caz contrat, se aduna 1 la valoarea din counterButton. | ||
+ | |||
+ | In loop(), bucla principala de executie a programului se citeste starea butonului si de asemenea valoarea analogica a senzorului de ploaie. Se verifica cu ajutorul counterButton-ului daca manualMode este ON sau OFF. Daca manualMode este OFF, se selecteaza treapta de viteza a stergatoarelor in functie de valoarea lui sensorValue. La o singura apasare a butonul manualMode devine ON. In momentul in care am ajuns in modul manual, se verifica de cate ori a fost apasat butonul si se efectuaza actiuni in functie de valoarea variabilei counterButton. Astfel, la prima apasare se trece in modul manual si de asemenea la treapa 1 de viteza, la a 2-a apasare se face tranzitia catre a 2-a treapta de viteza, similar si la a 3-a apasare catre treapta a 3-a. La a 4-a apasare stergatoarele sunt oprite in mod manual, iar la a 5-a apasare se trece in modul automat. | ||
+ | |||
+ | {{:pm:prj2023:ndrogeanu:carwipersmaximalexandru.zip|}} | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | O demonstratie a proiectului se poate vedea in filmarea ce se afla in zip-ul de mai jos. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
+ | {{:pm:prj2023:ndrogeanu:video_proiect_final.zip|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Mi s-a parut un proiect interesant mai ales ca am putut sa imi aleg tema singur si am reusit sa imbin hobby-urile personale cu informatiile dobandite la laborator. | ||
===== Download ===== | ===== Download ===== |