This is an old revision of the document!


TimeLock Box

Introducere

Proiectul constă într-o cutie inteligentă cu închidere mecanică, destinată depozitării telefonului sau a altor obiecte în timpul unei sesiuni de lucru. Utilizatorul selectează o durată de blocare, iar dispozitivul blochează capacul folosind un servomotor. Deblocarea se poate face doar după expirarea timpului setat sau prin introducerea unei combinații rotative.

Proiectul este gândit ca un sistem fizic de limitare a accesului la obiecte care pot distrage atenția, în special telefonul. Spre deosebire de o aplicație software de productivitate, TimeLock Box obligă utilizatorul să își respecte intervalul de lucru printr-o blocare mecanică reală. Sistemul afișează starea curentă pe un LCD și semnalizează vizual sau acustic evenimentele importante.

Descriere generală

Componentele principale ale proiectului sunt vizibile în schema bloc de mai jos. Placa ATmega328P Xplained Mini este blocul central al sistemului: citește intrările utilizatorului, actualizează afișajul și comandă mecanismul de blocare.

Encoderul de timp este folosit pentru alegerea duratei de blocare, iar encoderul de cod este folosit pentru introducerea combinației de deblocare. LCD-ul comunică prin I2C și afișează starea sistemului. Servomotorul SG90 este comandat prin PWM și acționează zăvorul mecanic. Microswitch-ul detectează ridicarea capacului, iar buzzerul și LED-urile oferă feedback acustic și vizual. Servo-ul este alimentat separat la 5V, cu masă comună cu restul sistemului.

Hardware Design

Schema electrică a proiectului este realizată în KiCad și este atașată mai jos. Pentru lizibilitate, conexiunile sunt grupate prin etichete de semnal, iar alimentarea servo-ului este separată de alimentarea logică.

Listă de componente

Componentă Cantitate Rol în proiect
ATmega328P Xplained Mini 1 control principal
Encoder rotativ KY-040 pentru timp 1 setare durată
Encoder rotativ KY-040 pentru cod 1 introducere cod
LCD 1602 cu interfață I2C 1 afișare status
Servomotor SG90 1 acționare zăvor
Buzzer pasiv 5V 1 alarmă acustică
Microswitch cu levier 1 detecție capac
LED roșu 1 indicator alarmă
LED verde 1 indicator OK
Rezistențe 330Ω 2 limitare curent LED
Condensator electrolitic 470uF / 16V 1 stabilizare servo
Breadboard 830 puncte 1 prototipare
Fire jumper tată-tată și mamă-tată mai multe conexiuni
Sursă externă 5V pentru servo 1 alimentare servo

Conexiuni și justificarea pinilor

Modul Conexiuni Motiv
Encoder timp KY-040 CLK - PD2 / INT0; DT - PD4; SW - PB0 / PCINT0; VCC → +5V; GND → GND PD2 oferă întrerupere externă pentru citirea rapidă a rotației
Encoder cod KY-040 CLK - PD5 / PCINT21; DT - PD6; SW - PC2 / PCINT10; VCC → +5V; GND → GND PC2 evită conflictul cu PB3/MOSI, folosit posibil de SPI
LCD 1602 I2C SDA - PC4; SCL - PC5; VCC → +5V; GND → GND PC4 și PC5 sunt pinii hardware I2C/TWI
Servomotor SG90 Semnal - PB1 / OC1A; VCC → +5V servo; GND → GND comun PB1/OC1A permite generarea PWM cu Timer1
Buzzer pasiv + → PD3 / OC2B; - → GND PD3/OC2B permite generarea unui ton prin PWM
Microswitch capac NO - PB2; C - GND PB2 este citit cu pull-up intern pentru detecția capacului
LED roșu anod - PC0; catod → rezistență 330Ω → GND PC0 comandă indicatorul de alarmă/eroare
LED verde anod - PC1; catod → rezistență 330Ω → GND PC1 comandă indicatorul de stare OK/deblocat

Alimentare

Linie alimentare Componente alimentate Observații
+5V logică ATmega328P Xplained Mini, LCD 1602 I2C, encodere KY-040 Alimentarea logică este folosită pentru modulele cu consum redus.
+5V servo Servomotor SG90 Servo-ul este alimentat separat deoarece poate avea vârfuri de curent în timpul mișcării.
GND comun Toate modulele Masa sursei externe pentru servo este conectată la masa plăcii, astfel încât semnalul PWM să aibă aceeași referință electrică.
Condensator 470uF / 16V Între +5V servo și GND Ajută la stabilizarea tensiunii când servo-ul pornește sau schimbă poziția.

Sumar pini

Pin ATmega328P Funcție în proiect
PD2 / INT0 CLK encoder timp
PD4 DT encoder timp
PB0 / PCINT0 SW encoder timp
PD5 / PCINT21 CLK encoder cod
PD6 DT encoder cod
PC2 / PCINT10 SW encoder cod
PC4 / SDA Date I2C pentru LCD
PC5 / SCL Ceas I2C pentru LCD
PB1 / OC1A PWM servomotor SG90
PD3 / OC2B PWM buzzer pasiv
PB2 Intrare microswitch capac
PC0 LED roșu
PC1 LED verde
PD0 / PD1 UART pentru debug, lăsați liberi

Dovezi de funcționare

În această secțiune voi încărca pozele realizate în laborator:

  • montajul general pe breadboard;
  • testul pentru encoder și servomotor;
  • testul pentru microswitch, buzzer și LED roșu;
  • testul pentru LCD și LED-ul verde.

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

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

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/prj2026/alexandru.jipa2803/costin.spataru.1778959079.txt.gz · Last modified: 2026/05/16 22:17 by costin.spataru
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