This shows you the differences between two versions of the page.
pm:prj2021:abirlica:radar [2021/04/25 16:47] lucian.iliescu [Schema bloc] |
pm:prj2021:abirlica:radar [2021/06/02 01:32] (current) lucian.iliescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Radar ===== | ===== Radar ===== | ||
+ | **Autor**: [[lucian.iliescu@stud.acs.upb.ro|ILIESCU Lucian-Marius]] | ||
Un radar/sonar care va afisa pe un grafic zonele de activitate: | Un radar/sonar care va afisa pe un grafic zonele de activitate: | ||
Line 7: | Line 8: | ||
* Softul va afisa pe ecran graficul cu verde si va arata cu rosu unde s-a gasit ceva (similar unui sonar) | * Softul va afisa pe ecran graficul cu verde si va arata cu rosu unde s-a gasit ceva (similar unui sonar) | ||
* In cazul in care un obiect se afla foarte aproape de senzor, acesta va declansa buzzerul | * In cazul in care un obiect se afla foarte aproape de senzor, acesta va declansa buzzerul | ||
- | ===== Componente necesare ===== | + | |
+ | ===== Schema bloc ===== | ||
+ | {{:pm:prj2021:abirlica:schemabloc.png?600|}} | ||
+ | ===== Proiectare Hardware ===== | ||
+ | ==== Componente necesare ==== | ||
* Placa Arduino UNO | * Placa Arduino UNO | ||
+ | {{:pm:prj2021:abirlica:traffic_arduino.jpeg?200|}} | ||
* Breadboard | * Breadboard | ||
+ | {{:pm:prj2021:abirlica:breadboard_nrk.png?200|}} | ||
* Fire mama-tata | * Fire mama-tata | ||
* Fire tata-tata | * Fire tata-tata | ||
- | * Senzor ultrasonic HC-SR04 | + | * Senzor ultrasonic HC-SR04 - pentru a detecta obiectele |
- | * Servomotor | + | {{:pm:prj2021:abirlica:ultrasonic.jpg?200|}} |
- | * Buzzer | + | * Servomotor - pentru a roti senzorul |
+ | {{:pm:prj2021:abirlica:servo.jpg?200|}} | ||
+ | * Buzzer - pentru a anunta prezenta obiectelor apropiate | ||
+ | {{:pm:prj2021:abirlica:buzzeerr.png?200|}} | ||
+ | ==== Schema Electrica ==== | ||
+ | {{:pm:prj2021:abirlica:hardwarepm.png?400|}} | ||
- | ===== Schema bloc ===== | ||
- | {{:pm:prj2021:abirlica:schemabloc.png?600|}} | ||
- | ===== Proiectare Hardware ===== | ||
- | {{:pm:prj2021:abirlica:hardwarepm.png?400|}} | + | {{:pm:prj2021:abirlica:capture.png?400|}} |
===== Software Design ===== | ===== Software Design ===== | ||
- | TODO | + | {{:pm:prj2021:abirlica:updated_diagram.jpg?600|}} |
+ | |||
+ | Partea de soft este implementata din doua parti: | ||
+ | - Preluarea datelor de la senzori | ||
+ | - Procesarea/Afisarea datelor | ||
+ | |||
+ | 1) Programul Arduino are urmatoarele roluri: | ||
+ | * Roteste servomotorul | ||
+ | * Preia distanta de la senzorul ultrasonic | ||
+ | * Suna alarma cand se afla un obiect foarte aproape | ||
+ | * Trimite datele (unghiul/distanta) spre procesare | ||
+ | |||
+ | Codul este scris folosind C/C++. | ||
+ | |||
+ | Programul va efectua doua bucle care vor reprezenta rotatiile radarului de la 0-180º si invers. La fiecare iteratie programul va primi distanta obtinuta de senzor si o va afisa pe ecran impreuna cu unghiul motorului. Datele afisate pe interfata seriala sunt trimise spre procesare. | ||
+ | |||
+ | 2) Programul Processing are urmatoarele roluri: | ||
+ | * Primeste datele de la Arduino | ||
+ | * Le prelucreaza sub forma unui grafic | ||
+ | |||
+ | Codul este scris folosind Java si biblioteca Processing. | ||
+ | |||
+ | Se porneste comunicatia cu portul serial unde e conectata placuta arduino. | ||
+ | Programul va desena intai scheletul graficului, trasand arcele de cerc si liniile radarului. Primeste datele de pe seriala si daca sunt valide, acesta va adauga obiectul in lista cu obiecte gasite. Se afiseaza toate obiectele gasite folosind functia drawObjects. De asemenea, se va afisa unghiul si distanta ultimului obiect gasit. Fiecare obiect are un camp de timp, care ii determina durata lui in lista de obiecte si la fiecare iteratie scade durata acestuia, cand ajunge la 0 se va scoate obiectul din lista de obiecte. | ||
===== Rezultate ===== | ===== Rezultate ===== | ||
- | TODO | + | Proiectul functioneaza conform asteptarilor, dar sunt cateva aspecte care nu sunt perfecte. |
+ | |||
+ | {{:pm:prj2021:abirlica:montaj_radar.jpeg?400|}} | ||
+ | |||
+ | {{:pm:prj2021:abirlica:radar_gif.gif?400|}} | ||
+ | |||
+ | Un demo video se poate gasi aici: https://www.youtube.com/watch?v=McZXUy0mHV0&ab_channel=lucianiliescu | ||
+ | ==== Observatii ==== | ||
+ | Senzorul nu poate oferi o precizie exacta, putand sa apara mai multe erori | ||
+ | de masurat, cum ar fi reflexia undelor pe suprafete diferite (unele | ||
+ | suprafete gestionand reflexia intr-un mod diferit). | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | Sper sa trec | + | Proiectul mi s-a parut interesant si a fost distractiv sa lucrez la el. M-a invatat cum se lucreaza cu pinii si cum se conecteaza componentele/logica lor de conectare. |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Line 37: | Line 80: | ||
- Idee de proiect: https://www.udemy.com/course/arduino-build-arduino-practical-projects/ | - Idee de proiect: https://www.udemy.com/course/arduino-build-arduino-practical-projects/ | ||
- Resurse ajutatoare: https://howtomechatronics.com/projects/arduino-radar-project/ | - Resurse ajutatoare: https://howtomechatronics.com/projects/arduino-radar-project/ | ||
+ | - Ide pentru procesare: https://processing.org/ | ||
+ | - Cod sursa: https://github.com/lucian606/Radar | ||
+ | - {{:pm:prj2021:abirlica:radar.pdf|}} | ||
<note>Link catre pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/radar </note> | <note>Link catre pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/radar </note> | ||