This shows you the differences between two versions of the page.
pm:prj2021:dbrigalda:cctv [2021/06/01 23:15] stela.josan [Bibliografie/Resurse] |
pm:prj2021:dbrigalda:cctv [2021/06/04 13:31] (current) ion_radu.patrascoiu [Demo] |
||
---|---|---|---|
Line 3: | Line 3: | ||
Josan-Gulica Stela, 336CC | Josan-Gulica Stela, 336CC | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Proiectul consta din înregistrarea video a ceea ce se intampla in camera. Camera video va fi miscata cu ajutorul PWM, care va fi controlat de arduino. | + | ==== Ce face proiectul ==== |
+ | Proiectul consta din înregistrarea video a ceea ce se întâmpla în camera. Camera video va fi mișcata cu ajutorul unui servo-motor, care va fi controlat de arduino. Senzorii, PIR și ultrasonic, vor transmite date către arduino, care, în dependenta de datele primite, | ||
+ | va poziționa camera la unghiul potrivit. | ||
+ | ==== Scopul proiectului ==== | ||
+ | Scopul proiectului consta în construirea unui CCTV, ce poate fi folosit de oricine și poate înregistra dacă a intrat cineva în camera și unde s-a mișcat. | ||
+ | ==== Ideea de la care am pornit === | ||
+ | Mereu am considerat o extravaganta de a avea CCTV în camera, dar poate fi de folos atunci când lași calculatorul deschis sau sa vezi dacă cineva a intrat în camera fără permisiune. | ||
+ | |||
===== Descriere generala ===== | ===== Descriere generala ===== | ||
- | Senzorul ultrasonic va detecta cel mai apropiat obiect și va directiona camera spre el, dacă senzorul de mișcare va detecta o mișcare, senzorul ultrasonic își va actualiza căutarea. Camera Video va comunica cu calculatorul, este conectata la calculator, unde vor fi stocate toate înregistrările. Este posibilă înregistrarea doar dacă va fi apăsat butonul de start, în urma se va aprinde led-ul de înregistrare. | + | Senzorul ultrasonic va detecta cel mai apropiat obiect și va direcționa camera spre el, dacă senzorul de mișcare va detecta o mișcare, senzorul ultrasonic își va actualiza căutarea. Camera Video va comunica cu calculatorul, este conectata la calculator, unde vor fi stocate toate înregistrările. Este posibilă înregistrarea doar dacă va fi apăsat butonul de start, în urma se va aprinde led-ul de înregistrare. |
==== Schema bloc ==== | ==== Schema bloc ==== | ||
Line 26: | Line 33: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | Implementarea se începe prin așteptarea apăsării butonului de start, după aceea se va aprinde led-ul, astfel se identifica începutul înregistrării. Cu ajutorul bibliotecii "Servo.h", în funcția servoMove, se misca servo motorul, de la 0 la 180 de grade, cate 30 de grade și într-un vector se inregistreaza distanța până la cel mai apropiat obiect la fiecare unghi. După aceea în funcția findMinPosition se identifica la care unghi a fost cel mai apropiat obiect. Apoi, camera este îndreptat către acel unghi. După aceea, se repeta aceleași comenzi doar dacă senzorul de mișcare a detectat o mișcare în camera, deci se încearca sa se gaseasca un obiect mai apropiat. | + | Implementarea se începe prin așteptarea apăsării butonului de start, după aceea se va aprinde led-ul, astfel se identifica începutul înregistrării, se folosește un script python ce executa comanda de înregistrare când este apăsat butonul de start. Cu ajutorul bibliotecii "Servo.h", în funcția servoMove(), se mișca servo motorul, de la 0 la 180 de grade, cate 30 de grade și într-un vector se înregistrează distanța până la cel mai apropiat obiect la fiecare unghi, apelând funcția distanceFind(). După aceea, în funcția findMinPosition() se identifica la care unghi a fost cel mai apropiat obiect. Apoi, camera este îndreptat către acel unghi. După aceea, se repeta aceleași comenzi doar dacă senzorul de mișcare a detectat o mișcare în camera, deci se încearcă sa se găsească un obiect mai apropiat. Folosesc variabila app pentru a determina dacă a fost apăsat butonul de pornire, iar pentru identificare stării curente a butonului folosesc variabilele currentState și prevState. In variabila distance se memorează distanta pana la cel mai apropiat obiect în cm. Funcția setColorRGB() setează culorile pentru led. |
Cod-ul software se poate gasi la acest link: [[https://github.com/stelajg/pm_project.git]] | Cod-ul software se poate gasi la acest link: [[https://github.com/stelajg/pm_project.git]] | ||
Line 35: | Line 42: | ||
{{ :pm:prj2021:dbrigalda:20210601_224639.jpg?direct&600 |}} | {{ :pm:prj2021:dbrigalda:20210601_224639.jpg?direct&600 |}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | În urma acestui proiect am invatat cat de usor este de folosit un arduino Uno și senzorii. Cat de simplu poți face un proiect destul de complex cu ajutorul IDE-ul arduino și a tuturor informațiilor /tutorialelor ampla de pe internet. | + | În urma acestui proiect am învățat cat de ușor este de folosit un arduino Uno, senzorii și faptul ca poți face un proiect destul de complex cu ajutorul IDE-ul arduino și a tuturor informațiilor /tutorialelor ample de pe internet. Pana sa fac acest proiect, toate obiectele care erau construite pe baza de microprocesoare îmi păreau foarte complicate, dar acum, consider ca pot face acasă orice obiect de genul dat, doar cumpărând câțiva senzori/ motoare în plus. |
+ | ===== Jurnal ===== | ||
+ | * 02.05.2021: Alegerea proiectului | ||
+ | * 12.05.2021: Cumpărarea tuturor componentelor | ||
+ | * 14.05.2021 - 16.05.2021: Testarea tuturor componentelor individual | ||
+ | * 20.05.2021: Testarea tuturor componentelor împreuna și determinarea cod-ului de implementare | ||
+ | * 31.05.2021 - 1.06.2021: Scrierea cod-ului de implementare complet și poziționarea potrivita (în forma de turn) a componentelor pe stativ (un jurnal cu 2 creioane lipite) | ||
===== Download ===== | ===== Download ===== | ||
Documentația în format <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | Documentația în format <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | ||
===== Demo ===== | ===== Demo ===== | ||
- | [[https://youtu.be/xZh2lkjQQ-U]] | + | [[https://youtu.be/xZh2lkjQQ-U|{{:pm:prj2021:dbrigalda:cctv_youtube.jpeg?600|}}]] |
+ | |||
+ | |||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | [[https://ocw.cs.pub.ro/courses/pm/prj2021/dbrigalda/cctv]] | + | * [[https://ocw.cs.pub.ro/courses/pm/prj2021/dbrigalda/cctv]] |
- | [[https://www.instructables.com/PIR-Motion-Sensor-Tutorial/]] | + | * [[https://www.instructables.com/PIR-Motion-Sensor-Tutorial/]] |
- | [[https://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/]] | + | * [[https://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/]] |
+ | * [[https://github.com/PBahner/Serial-Monitor.git]] |