This is an old revision of the document!
Master Vault - Boraciu Ionut-Sorin 335CA
Introducere
Seiful are urmatoarele caracteristici:
Tastatură capacitativă cu 16 butoane(TTP229): Folosită pentru a introduce parola de 5 cifre.
Ușă controlată de un servo motor: Ușa este deschisă cand parola este introdusă corect, sau introdusă în mod invers ( securitate).
Buton: Generează o întrerupere externă la apăsare, care declanșează afișarea temperaturii pe ecran.
Senzor de temperatură: Afișează temperatura din seif.
DC Motor: Activează evacuarea aerului din seif după două încercări greșite consecutive de introducere a parolei
Buzzer: pentru a imita un sunet de poliție ( sirenă)
Senzor de lumină: verifică starea banilor din seif
Oled I2C: afișează pe ecran diferite mesaje
Led-uri: care afișeaza diferite stări
Masuri de securitate: Daca o parolă a fost introdusă greșit de 2 ori, poliția va fi anunțată (2 led-uri albastru și rosu sunt pornite, alături de un buzzer, plus motorul va porni pentru a scoate aerul din seif), dacă parola este introdusă invers ca și la card-uri, poliția va fi anunțată, dar silențios fară buzzer, pentru a nu alerta atacatorul.
Descriere generală
Concepte folosite din laboratoare:
I2C: Între Master-ul Arduino și Ecran Oled
SPI: Între cele 2 Arduino Uno
PWM: Folosite pentru controlul servo-ului și motorului
Intreruperi: Întreruperea externă generată de apăsarea butonului ( pentru afișarea temperaturii) + înterupere la slave când primește date prin SPI
Timere: semnalele PWM folosesc timere ( pin-ul 3 pentru servo foloseste Timer 2, pin-ul 9 pentru motor foloseste Timer 1), ( problemă: buzzer-ul folosea același timer ca un senzor infraroșu pe care încercam să îl folosesc, a trebuit să folosesc o implementare a funcției tone() fără timere pentru a evita conflictul)
Hardware Design
Schemă electrică realizată în Fusion360:
PCB-ul realizat tot în Fusion360:
Fișierele din fusion360 pot să fie descarcăte din zona de Download
Componente hardware folosite:
2 Arduino Uno R3 conectate prin SPI
sensor shield pentru Master, folosit pentru a conecta senzorii din kit
Grove 4 pin I2C Oled
Grove Button: generează o întrerupere externa pentru a afișa temperatura pe ecran - digital
Grove Light Sensor: detectează starea banilor din seif - analogic
Modul Senzor de Atingere Capacitiv TTP229: similar cu protocolul I2C, dar este un protocol 2 wire custom
Grove Buzzer: foloseste o funcție tone() custom pentru a evita folosirea de timere ( conflicte) - digital
3 LED-uri: afișează diferite stări - digitale
SM-S2309S: operează ușa - digital
6/9V brushed DC motor: folosit pentru a scoate aerul din încăpere
Tranzistor: folosit pentru a opera motorul de la Arduino
Diodă flyback: blochează curentul generat de motorul DC
Baterie 9V: folosită pentru a alimenta motorul DC
3 * Rezistente de 220 ohm pentru led-uri
Poză cu implementarea proiectului:
Probleme în implementare + soluția pentru ele:
Software Design
Ca mediu de dezvoltare am folosit Arduino IDE
Librarii:
Arduino_SensorKit ( pentru senzorii din kit-ul arduino)
Arduino_SensorKit_BMP280 ( pentru senzorul de temperatura)
TTP229 ( pentru tastatura cu 16 butoane)
SPI ( comunicarea intre placute)
-
Implementare efectiva:
Comunicarea SPI, este realizata prin intreruperi pentru slave: SPCR = (1 « SPE) | (1 « SPIE) ( pentru a activa interuperea generata de SPI)
Apoi, pe Master, am folosit si intreruperi create prin functia attachInterrupt(digitalPinToInterrupt(BUTTON), IR_ISR, FALLING), pentru butonul care o data apasat, va seta un flag, pentru a afisa pe ecran si temperatura
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF