Smart Mirror

Autor

Cristin Sirbu

Introducere

Nu te-ai intrebat niciodata daca in locul oglinzii de pe hol parca ar fi stat mai bine un peisaj placut? Daca da, ai zis sa o lasi acolo ca te mai priveti/verifici 5 secunde inainte sa fugi la munca de dimineata si ai lasat-o asa. Eu zic ca este loc de amandoua.

Descriere generala

Proiectul incepe de la o oglinda, pe care instalam un senzor de miscare, un senzor de lumina si bec. De asemenea, se adauga un motor ce va actiona un sistem de rola (asemenator unui antisolar la o fereastra) ce ridica sau coboara o imagine/ un poster deasupra oglinzii.

In stanby, oglinda este acoperita de imagine pentru a fi un pur elemnt decorativ. Daca senzorul detecteaza miscare, microcontrollerul actioneaza motorul, care va ridica imaginea de pe oglinda. Daca senzorul de lumina ambientala considera ca nu este suficienta lumina cand se ridica imaginea, va aprinde becul.

Schema Bloc

Hardware Design

Schema electrica EAGLE

Placa de baza

sirbu_pcb.jpg

Lista de piese

Lista de piese
Microcontroller ATmega324 + componente de baza
Modul Senzor Analogic de Lumina Adafruit ALS-PT19 DataSheet
Modul Senzor Infraroșu PIR HC-SR505 Datasheet
Leduri in paralel
Rezistente 470(leduri)/ 1k(BL pin LCD)/ 10k(PIR sensor) + Fire aditionale
Modul Driver Dual L298N
Motor 3-6V
LCD Nokia 5110
2 x baterie 9V

Full-project

sirbu_full.jpg

LCD + Sensors

sirbu_lcd.jpg

Driver + Motor

sirbu_motor.jpg

Software Design

Din punct de vedere al software-urului mediul de dezvoltare a fost Sublime3 Bootloaderul pus la laborator Codul este scris in test.c compilat si rulat(linux) cu:

  1. avr-g++ -mmcu=atmega324p -Os -Wall -o test.elf test.c
  2. avr-objcopy -j .text -j .data -O ihex test.elf test.hex
  3. sudo ../bootloadHID -r ./test.hex (executabilul din arhiva de pe wiki)

Folosesc in principal:

  1. biblioteca pentru nokia5110 pentru scrierea textului si a numerelor tip int/double pentru a vedea valoarea exactaprimita de la conversia semnalului dat de senzorul de lumina in V
  2. conversia asemenator cu laboratorul. Este initializat un ADC cu configurarile necesare pe pinul PA1 (PA0 - PA7 pini de ADC)
  3. modalitatea de tratare a intreruperilor, in cazul meu initializate observand PIN change pe portB, pinii PB2 Si PB7.
Elementul principal este rutina de tratare a intreruperii pentru cei doi pini:
  PB2 Semnaleaza Blocarea sau Deblocarea capacitatii microcontrollerului de a interpreta inputul senzorilor
  PB7 PIN ul de OUT al senzorului de miscare, semnaland binar prezenta miscarii
  In cazul detectarii miscarii, se porneste motorul, se porneste conversia, se seteaza PIN pentru a lumina

Rezultate Obţinute

Rezultatul obtinut este un proiect semi-functional ce in cazul detectarii miscarii

  1. afiseaza pe LCD valoarea obtinuta din conversie
  2. porneste motorul/ ledurile

Concluzii

Proiectul nu este complet functional, nereusind sa transmit curentul potrivit de mare motorului pentru a fi capabil sa se roteasca suficient de incet si totusi trecand peste multa opunere de rezistenta din partea axului. M-am distrat lucrand la acest proiect si invatand sa fac o proiectare minima a unui microprocesor

Jurnal

  1. 21.04 Stabilirea temei proiectului
  2. 21.04 Scrierea paginii wiki
  3. 2-4.05 Adaugare Schema EAGLE + Placa de baza
  4. 17 - 20 Implementare hardware a fiecarui senzor/element a cicuitului pe rand urmat de implementarea lui software pentru testare apoi trece la urmatorul senzor
  5. 22-23 - Modificare Schema eagle dupa noile adaugiri la ideea initiala
  6. 23 - Documentatie
  7. 24 PMfair :)

Bibliografie/Resurse

Codul sursa : Coding

Download

pm/prj2019/dionita/smart-mirror.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