This is an old revision of the document!


Master Vault - Boraciu Ionut-Sorin 335CA

Introducere

Funcționarea proiectului poate fi urmarită pe youtube: https://www.youtube.com/watch?v=uhSNb7-Z3uo

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:

boraciu_breadboard.jpg

Probleme în implementare + soluția pentru ele:

  • Conflict de timere între buzzer și senzor infraroșu
    • Problemă: Funcția tone() folosea același timer ca senzorul infraroșu, cauzând conflicte și comportament imprevizibil.
    • Soluție: Am înlocuit tone() cu o funcție personalizată care generează semnal PWM fără a utiliza timere hardware, eliminând astfel conflictul.
  • Servo afectat de zgomot electric la pornirea motorului
    • Problemă: La pornirea motorului DC alimentat separat (9V), servo-ul efectua o rotație bruscă de ~90°, cauzată de interferență electrică.
    • Soluție: Servo-ul este atașat în cod doar când este utilizat și deatașat imediat după. Deoarece motoarele nu sunt pornite simultan, interferența este evitată complet.
  • Instabilitate în interpretarea semnalului de la telecomanda IR
    • Problemă: Senzorul IR necesită întreruperi precise pentru decodificarea semnalului, însă conflictul cu alte întreruperi hardware ducea la rezultate instabile.
    • Soluție: Am înlocuit senzorul IR și codul de decodificare cu un buton fizic conectat la o întrerupere simplă, care a oferit un control mai fiabil și mai previzibil.

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

Fișiere fusion360 ( schema electrică + PCB): boraciu_fusion360.zip

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

pm/prj2025/fstancu/ionut_sorin.boraciu.1747812815.txt.gz · Last modified: 2025/05/21 10:33 by ionut_sorin.boraciu
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