HbA: HID based Alarm

Introducere

Proiectul pe care doresc să îl realizez reprezintă un sistem de alarmă care va fi montat într-o locaţie în miniatură şi care va comunica cu PC-ul prin USB, folosind HID. Pe PC va exista o aplicaţie care va reprezenta interfaţa alarmei şi care va afişa harta locaţiei pe care o protejează alarma, iar în cazul in care aceasta din urmă se va declaşa, alături de un sunet specific unei alarme, pe ecranul PC-ului vom putea vedea şi zona, din locaţia protejată, în care s-a produs alarma.

Ideea de la care am plecat a fost dorinţa de a implementa un sistem de alarmă mai eficient, în sensul că majoritatea alarmelor doar produc un sunet specific atunci când sunt declanşate şi m-am gândit ca ar fi foarte util să vedem exact şi zona din perimetru unde s-a produs alarma, pentru a putea interveni mai rapid şi mai eficient.

Acest tip de alarmă este foarte util în orice locaţie, de la un apartament sau un magazin până la perimetre mari, cu multe zone, acolo unde consider că utilitatea proiectului iese cel mai bine în evidenţă.

Descriere generală

Schema bloc a sistemului de alarmă este următoarea:

Intreg sistemul este format din următoarele module:

  • Perimetru: locaţia în miniatură, impărţită pe două zone, fiecare având câte doi senzori(S1, S2, resp. S3, S4)
  • ATMEGA16: va avea patru funcţii principale:
    • citeşte starea senzorilor din perimetru
    • analizează informaţiile primite de la senzori
    • trimite către aplicaţia de pe PC prin USB, folosind HID, informaţiile primite de la senzori
    • în caz de alarmă comandă buzzer-ul
  • Aplicaţie: va îndeplini funcţiile:
    • va afişa în permanenţă harta locaţiei
    • atunci când se va declanşa alarma, va indica grafic zona din locaţie în care s-a produs alarma

Hardware Design

Sistemul de alarmă este format din următoarele componente:

  • doi senzori de mişcare construiţi manual, din următoarele componente:
    • două rezistenţe de 330 OHM
    • două leduri infraroşu (emitori)
    • doi fototranzistori (receptori)
    • două semireglabile de 100 K
  • două switch-uri prin care să simulăm un alt tip de senzor
  • buzzer
  • placuţă perforată
  • barete pini mamă
  • conexiunile le-am realizat din fire, cu următoarele menţiuni:
    • firele de culoare alb-portocaliu conectează switch-urile la porturile PA5, PA6
    • firele de culoare portocaliu conectează switch-urile la AGND, CGND
    • firele de culoare alb-verde conectează senzorii de mişcare la AVCC, CVCC
    • firele de culoare verde conectează senzorii de mişscare la AGND, CGND
    • firele de culoare albastru conectează senzorii la porturile PA0, PA2
  • plăcuţa de la etapa I de proiect

Schema în Eagle a alarmei:

Software Design

Compilator: avr-gcc

Mediu de dezvoltare: Notepad++

Din punct de vedere software am reuşit să scriu codul doar pentru partea de comunicaţie cu senzorii şi comandă buzzer. Pentru partea de hid nu am găsit un program de la care să plec si pe care să-l modific astfel încăt să pot trimite date computerului, pe care acesta să le interpreteze. Codul pe care l-am scris realizează următoarele: initializează ADC-ul şi PWM-ul(astfel încât buzzer-ul să emită sunete diferite), după care verifică în fiecare moment de timp starea senzorilor, iar în caz de alarmă comandă buzzerul.

Funcţii implementate:

void initBuzz();

void stopBuzz();

void doDelay(unsigned int delay);

void buzz();

void ADC_get(unint8_t channel);

void ADC_init(void);

Codul efectiv se găseşte în arhiva ce poate fi descărcată din secţiunea Download.

Rezultate Obţinute

Sistemul de alarmă:

Unul dintre senzorii de prezentă(emitorul de IR în acţiune):


----

Locaţia [1]:

Locaţia [2]:

Download

De aici puteţi descărca arhiva proiectului: proiect.zip

Continut arhivă:

  • fişierul sursă (lab1.c)
  • makefile
  • schema în Eagle

Jurnal

13 Martie ⇒ Sesiunea de corodat/găurit/imprimat PCB

15 - 23 Martie ⇒ Procurare piese placuţa de bază

24 - 25 Martie ⇒ Realizare plăcuţa de bază

27 Marie ⇒ Pus bootloaderul pe placuţă şi testarea ei folosind programul de bază

19 - 26 Aprilie ⇒ Alegere proiect etapa 2

5 Mai ⇒ Realizare locaţie în miniatură

10 - 11 Mai ⇒ Realizare hardware design in Eagle şi documentare despre piese

21 - 24 Mai ⇒ Procurare piese necesare în etapa 2

26 - 27 Mai ⇒ Lipire componente pe placuţa de extensie

29 ⇒ Realizare wiki (partea I)

31 Mai - 1 Iunie ⇒ Implementare şi testare diverse variante de cod. Probleme cu bootloaderul.

2 Iunie ⇒ Pus pe placuţă altă variantă de bootloader. Testare cod.

2 Iunie ⇒ Realizare wiki (partea II)

Bibliografie/Resurse

pm/prj2010/amocanu/hba.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0