This shows you the differences between two versions of the page.
pm:prj2022:rtilimpea:garajautomat [2022/05/29 18:38] andrei_leonard.ilie [Hardware Design] |
pm:prj2022:rtilimpea:garajautomat [2022/06/01 14:54] (current) andrei_leonard.ilie [Bibliografie/Resurse] |
||
---|---|---|---|
Line 23: | Line 23: | ||
=== Schema proiectului hardware === | === Schema proiectului hardware === | ||
+ | {{:pm:prj2022:rtilimpea:copy_of_mighty_amberis-waasa.png?750|}} | ||
=== Lista de componente === | === Lista de componente === | ||
- | * 1 x Placuta Arduino Uno | + | * 1 x Placuta Arduino Uno |
- | * 1 x test | + | * 1 x Led RGB |
+ | * fire de legatura | ||
+ | * 1 x LCD Interface I2C 16x2 | ||
+ | * 1 x Senzor ultrasonic distanta HC-SR04 | ||
+ | * 1 x Senzor ultrasonic HY-SRF05 | ||
+ | * 1 x Micro Servo Motor SG90 Arduino | ||
+ | * 2 x Breadboard | ||
+ | * 1 x Rezistenta 220 ohm | ||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Pentru dezvoltarea partii software am folosit: Arduino IDE (1.8.19). | ||
- | <note tip> | + | Biblioteci externe folosite: |
- | Descrierea codului aplicaţiei (firmware): | + | * #include <Wire.h> |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * #include <LiquidCrystal_I2C.h> |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * #include <Servo.h> |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
+ | Am incercat pe cat posibil sa modularizez cat mai tare codul, astfel, acesta a fost impartit pe functii. | ||
+ | |||
+ | In prima parte a fisierului am declarat variabilele global si am inclus bibliotecile de care avem nevoie. | ||
+ | |||
+ | In partea de setup am initializat servomotorul, lcd-ul si restul pinilor de care aveam nevoie. | ||
+ | |||
+ | Ulterior, in partea de loop, apelam functiile de care avem nevoie, in ordine logica. | ||
+ | |||
+ | Functiile impartite sunt: | ||
+ | |||
+ | - calcul_distanta_bariera - care calculeaza daca in fata barierei exista o masina, iar daca exista deschide bariera pentru 10 secunde | ||
+ | - actiune_parcare - care testeaza daca in parcare exista o masina, iar daca exista schimba culoarea ledului si seteaza textul de pe ecran | ||
+ | - RGB_color - care seteaza culoarea ledului | ||
+ | - calculate_distance - care este o functie auxiliara pentru actiune_parcare | ||
+ | |||
+ | Codul integral poate fi regasit pe github: [[https://github.com/sKzRO/proiect-pm|https://github.com/sKzRO/proiect-pm]]. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Proiectul functioneaza fix cum mi-am dorit. Primul senzor are ca scop deschiderea barierei. Deci cand ajungi cu masina peste senzor, se deschide bariera pentru 10 secunde. Ulterior masina inainteaza, si cand ajunge in dreptul senzorului din capat, acela are ca scop sa stie ca in garaj exista o masina si sa aprinda ledul de pe placa in rosu, si sa scrie pe LCD ca este ocupat. Cand o masina se apropie de bariera si incearca sa iasa din garaj, senzorul din garaj isi da seama, si deschide bariera pentru 10 secunde. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | ===== Concluzii ===== | + | <html> |
+ | <iframe width="560" height="315" src="https://www.youtube.com/embed/JyszkYzmp3w" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html> | ||
- | ===== Download ===== | + | {{:pm:prj2022:rtilimpea:whatsapp_image_2022-06-01_at_13.00.42.jpeg?500|}} |
+ | {{:pm:prj2022:rtilimpea:whatsapp_image_2022-06-01_at_13.00.43.jpeg?500|}} | ||
+ | {{:pm:prj2022:rtilimpea:whatsapp_image_2022-06-01_at_14.44.42.jpeg?500|}} | ||
- | <note warning> | + | ===== Concluzii ===== |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | Chiar daca a durat destul de mult sa imi aleg ideea si sa fie si aprobata, consider ca implementarea pe care am facut-o m-a trecut prin toata materia, si a fost foarte interesant pentru mine sa incerc si partea hardware (de care nu sunt foarte incantat in general). |
- | </note> | + | |
- | ===== Jurnal ===== | + | Consider ca acest sistem poate fi replicat si intr-un garaj real, cu mici ajustari, si chiar sa aiba o functionalitate reala. |
- | <note tip> | + | Totodata, a fost foarte interesant sa fac partea din materiale (cutia, pozitionarile, "masina") etc. |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
+ | Per total a fost un proiect foarte interesant. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | https://www.tinkercad.com/ - Schema arduino\\ |
+ | https://create.arduino.cc/ - Pentru informatii despre componente si cod.\\ | ||
+ | https://cleste.ro/ - Achizitia componentelor | ||
</note> | </note> | ||
- | |||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||