This is an old revision of the document!
Surveillance System
Autor: Bivolaru Victor-Alexandru
Introducere
Acest proiect va incerca sa simuleze un sistem de securitate minimalist format dintr-un senzor de miscare si o camera, care sa surprinda cat mai aproape de “real-time” si cat mai clar un obiect in miscare.
Proiectul este unul care m-a atras in mod deosebit deoarece graviteaza in proximitatea ariei “Home Automation”, care este o zona in plina dezvoltare ce ma pasioneaza.
Descriere generala
Un senzor infrarosu recepteaza miscarea si actioneaza o camera ce fotografiaza “intrusul”, imagine care se poate salva local pe calculator sau poate fi trimisa mai departe. Multumita formatului imaginii (bitmap) care este o matrice de biti, informatia poate fi trimisa foarte rapid catre un server, de exemplu, cu care sa poata comunica utilizatorii. Sistemul este prevazut cu un switch on/ off si cu un “flag: de detectie a prezentei care se aprinde atunci cand senzorul detecteaza miscare, pentru atentionare.
Diagrama Bloc
Hardware Design
Schema Electrica
Software Design
In dezvoltarea proiectului am folosit:
Arduino IDE pentru a scrie codul si a comunica cu Arduino pe seriala
Un program pentru a putea afisa bitmap-ul intors de camera in timp real si unul pentru a putea stoca imaginile pe calculator, fara a le afisa.
Programul este unul destul de usor de inteles : am transformat push button-ul intr-un switch, retinand starea anterioara (asa cum am procedat si la un laborator) pentru a putea porni/ opri camera si senzorul. Daca butonul este pornit, in loop se face citirea valorii pin ului de output al senzorului PIR. Cand se simte un impuls inseamna ca senzorul a detectat miscare, astfel camera face o poza, prin functia captureImg. Aceasta functie este putin mai complexa, deoarece primeste “rezolutie” impulsuri pentru a colora sau nu bitii imaginii (care este alb-negru). Un led RGB este pornit inainte de captureImg si este stins la final, pentru a sti cand incepe si cand se termina procesul (spre a nu fi oprita camera in acel moment, deoarece apare o imagine incompleta).
Rezultate
In cele 2 imagini anterioare se pot observa componentele utilizate si modul in care aceasta sunt conectate la breadboard, respectiv placuta Arduino.
Acesta este unul dintre modurile de afisare al rezultatelor: un applet care porneste un listener pe COM4 si transforma bitmap ul primit pe seriala intr-o imagine.
Concluzii
Acest proiect s-a complicat foarte tare de la modelul initial care urmarea un serviciu de securitate de tip client server. Din cauza shieldului de ethernet de proasta calitate s-au ars atat el cat si placuta. Nu am reusit sa gasesc un modul ethernet asemanator asa ca am schimbat directia proiectului spre ceva Wi-Fi, insa apareau niste conflicte la pinii folositi de OV7670 si modulul Wi-Fi. Am incercat apoi sa comand tot sistemul printr-un modul infrarosu cu telecomanda. Din nou probleme : pentru start-up ul moduluilui infrarosu se produceau niste intreruperi la nivelul Timer0, care bloca programul (camera avea se conecta la pin11, care este direct afectat de Timer0). Intr-un final am renuntat la a mai complica proiectul suplimentar si am ajuns la varianta finala, prezentata mai sus.
Cu toate piedicile si ghinionul avut, a fost un proiect foarte simpatic, am invatat extrem de mult (cel mai mult din esec) si m-a facut sa mi doresc sa dezvolt in continuare proiecte de acest tip.
Download
Jurnal
12 Martie - au venit toate piesele si am reusit sa calibrez senzorul PIR sa recepteze miscarile si sa aprind un led.
20 Martie - am terminat aplicatia server in C# care porneste un server de tip TCP si asculta
25 Martie - am reusit sa comunic intre server si arduino prin seriala
26 Martie - trimit in caz de detectie mesaj la server
27 Martie - “pornesc si opresc” senzorul PIR din server (in sensul in care nu mai trimit mesaje pe seriala in cazul unei detectii)
12 Aprilie - am conectat camera OV7670
13 Aprilie - am gasit un mod de vizualizare a bitmap-urilor facute de camera
24 Aprilie - am finalizat proiectul, trimitand mesaje catre server in cazul detectiei si salvand local imaginile.
17 Mai - am incercat sa testez din nou proiectul dar cumva am ars si placuta si shieldul de ethernet
18 Mai - mi am cumparat alte piese si am luat de la capat proiectul
19 Mai - am descoperit probleme cu modulul Wi-Fi
22 Mai - conflict intre modulul IR si Timer0
24 Mai - conflict intre tune() si Timer0 (am incercat sa emulez o sirena de politie printr-un buzzer).
27 Mai - ultimele retusuri
Bibliografie/Resurse