Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:cezar.zlatea:madalin.militaru [2026/05/09 21:43]
madalin.militaru
pm:prj2026:cezar.zlatea:madalin.militaru [2026/05/09 22:02] (current)
madalin.militaru [Algoritmi și structuri de date]
Line 1: Line 1:
 ====== Smart Lock ====== ====== Smart Lock ======
 +
  
 ===== Introducere ===== ===== Introducere =====
Line 19: Line 20:
   * Pentru utilizatori:​ înlocuiește cheile fizice cu un cod ușor de reținut și schimbat   * Pentru utilizatori:​ înlocuiește cheile fizice cu un cod ușor de reținut și schimbat
   * Pentru mine: integrează multiple concepte din electronică digitală - GPIO, PWM, comunicație I2C, timere, într-un singur proiect coerent   * Pentru mine: integrează multiple concepte din electronică digitală - GPIO, PWM, comunicație I2C, timere, într-un singur proiect coerent
 +
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 44: Line 46:
  
 **Interacțiune între module:** Butoanele generează evenimente care sunt procesate de mașina de stări, care la rândul ei actualizează LCD-ul, controlează servo-ul prin PWM, schimbă culoarea LED-ului RGB și citește/​scrie din EEPROM. **Interacțiune între module:** Butoanele generează evenimente care sunt procesate de mașina de stări, care la rândul ei actualizează LCD-ul, controlează servo-ul prin PWM, schimbă culoarea LED-ului RGB și citește/​scrie din EEPROM.
 +
  
 ===== Hardware Design ===== ===== Hardware Design =====
 +
  
 ==== Listă de componente ==== ==== Listă de componente ====
Line 61: Line 65:
 | Rezistor 220Ω                            | 3         | Limitare curent canale R/G/B LED        | | Rezistor 220Ω                            | 3         | Limitare curent canale R/G/B LED        |
 | Condensator electrolitic 470µF / 35V     | 1         | Filtrare alimentare servo               | | Condensator electrolitic 470µF / 35V     | 1         | Filtrare alimentare servo               |
-| Fire jumper M-M și M-F                   | ~20       | Conexiuni între componente ​             |+
  
 ==== Schema electrică ==== ==== Schema electrică ====
  
-//TO DO: Schema electrică va fi realizată în Fusion 360 Electronics și adăugată aici la etapa 2.//+**TO DO:** Schema electrică va fi realizată în Fusion 360 Electronics și adăugată aici la etapa 2. 
  
 ==== Diagrame de semnal ==== ==== Diagrame de semnal ====
  
-//TO DO: Diagramele PWM (servo) și I2C (LCD) vor fi adăugate la etapa 2.//+**TO DO:** Diagramele PWM (servo) și I2C (LCD) vor fi adăugate la etapa 2. 
  
 ===== Software Design ===== ===== Software Design =====
 +
  
 ==== Mediu de dezvoltare ==== ==== Mediu de dezvoltare ====
 +
   * **PlatformIO** (extensie pentru VSCode) - build system și upload pe placă   * **PlatformIO** (extensie pentru VSCode) - build system și upload pe placă
   * **avr-gcc** - compilator pentru AVR   * **avr-gcc** - compilator pentru AVR
   * **avrdude** - utilitar de programare prin debugger-ul mEDBG integrat în XMINI   * **avrdude** - utilitar de programare prin debugger-ul mEDBG integrat în XMINI
   * **Limbaj:** C99 (bare-metal,​ fără framework Arduino)   * **Limbaj:** C99 (bare-metal,​ fără framework Arduino)
 +
  
 ==== Biblioteci 3rd-party folosite ==== ==== Biblioteci 3rd-party folosite ====
 +
   * **avr-libc** - biblioteca standard AVR (avr/io.h, avr/​interrupt.h,​ avr/​eeprom.h,​ util/​delay.h)   * **avr-libc** - biblioteca standard AVR (avr/io.h, avr/​interrupt.h,​ avr/​eeprom.h,​ util/​delay.h)
   * **lcd_i2c** - driver minimal I2C pentru LCD (modificat și integrat în proiect)   * **lcd_i2c** - driver minimal I2C pentru LCD (modificat și integrat în proiect)
 +
  
 ==== Algoritmi și structuri de date ==== ==== Algoritmi și structuri de date ====
Line 95: Line 106:
     STATE_SET_OLD_PIN, ​     // Verifica PIN-ul vechi inainte de schimbare     STATE_SET_OLD_PIN, ​     // Verifica PIN-ul vechi inainte de schimbare
     STATE_SET_NEW_PIN, ​     // Introducere PIN nou + salvare in EEPROM     STATE_SET_NEW_PIN, ​     // Introducere PIN nou + salvare in EEPROM
-    STATE_LOCKOUT ​          // 3 incercari gresite ​-> blocare 30s+    STATE_LOCKOUT ​          // 3 incercari gresite blocare 30s
 } system_state_t;​ } system_state_t;​
 </​code>​ </​code>​
Line 109: Line 120:
 **4. Anti-brute-force:​** **4. Anti-brute-force:​**
   * Contor de încercări greșite consecutive   * Contor de încercări greșite consecutive
-  * La 3 încercări ​→ tranziție în STATE_LOCKOUT pentru 30 secunde+  * La 3 încercări tranziție în STATE_LOCKOUT pentru 30 secunde
   * Pe LCD se afișează countdown în timp real   * Pe LCD se afișează countdown în timp real
   * Toate butoanele ignorate în timpul lockout-ului   * Toate butoanele ignorate în timpul lockout-ului
  
-==== Funcții implementate ==== 
  
-//TO DO: Lista funcțiilor implementate va fi completată la etapa 3, după dezvoltarea firmware-ului.//​ 
  
 ===== Rezultate Obținute ===== ===== Rezultate Obținute =====
  
-//TO DO: Vor fi documentate rezultatele după asamblarea hardware-ului și implementarea software-ului (etapa 3).//+**TO DO:** Vor fi documentate rezultatele după asamblarea hardware-ului și implementarea software-ului (etapa 3). 
  
 ===== Concluzii ===== ===== Concluzii =====
  
-//TO DO: Concluziile vor fi adăugate la finalul proiectului.//+**TO DO:** Concluziile vor fi adăugate la finalul proiectului. 
  
 ===== Download ===== ===== Download =====
 +
  
 ==== Repository GitHub ==== ==== Repository GitHub ====
  
-//TO DO: Link-ul către repository-ul public GitHub va fi adăugat aici. Repository-ul va conține: +**TO DO:** Link-ul către repository-ul public GitHub va fi adăugat aici. 
-  * **//​src///​** - codul sursă al firmware-ului +
-  * **//​hardware///​** - schemele electrice și diagramele +
-  * **//​images///​** - fotografii cu proiectul asamblat +
-  * **//​README.md//​** - descriere proiect, instrucțiuni de utilizare//+
  
 ==== Demo video ==== ==== Demo video ====
  
-//TO DO: Link YouTube cu demo-ul proiectului va fi adăugat la finalizare.//+**TO DO:** Link YouTube cu demo-ul proiectului va fi adăugat la finalizare. 
  
 ===== Jurnal ===== ===== Jurnal =====
Line 143: Line 153:
   * **01.05.2026** - Achiziționarea pieselor   * **01.05.2026** - Achiziționarea pieselor
   * **08.05.2026** - Prima versiune a documentației   * **08.05.2026** - Prima versiune a documentației
-  * //TO DO: Update-uri ulterioare pe măsură ce proiectul progresează//+  * **TO DO:** Update-uri ulterioare pe măsură ce proiectul progresează 
  
 ===== Bibliografie / Resurse ===== ===== Bibliografie / Resurse =====
 +
  
 ==== Resurse Hardware ==== ==== Resurse Hardware ====
  
-  * [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf|Datasheet ATmega328P]] 
-  * [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​ATmega328P-Xplained-Mini-User-Guide-DS50002659B.pdf|User Guide ATmega328P-XMINI]] 
-  * [[http://​www.ee.ic.ac.uk/​pcheung/​teaching/​DE1_EE/​stores/​sg90_datasheet.pdf|Datasheet Servo SG90]] 
-  * [[https://​www.sparkfun.com/​datasheets/​LCD/​HD44780.pdf|Datasheet HD44780 (controller LCD)]] 
-  * [[https://​www.nxp.com/​docs/​en/​data-sheet/​PCF8574.pdf|Datasheet PCF8574 (I2C expander pentru LCD)]] 
  
 ==== Resurse Software ==== ==== Resurse Software ====
- 
-  * [[https://​www.nongnu.org/​avr-libc/​user-manual/​|AVR Libc Reference Manual]] 
-  * [[https://​docs.platformio.org/​en/​latest/​platforms/​atmelavr.html|PlatformIO - Atmel AVR]] 
-  * [[https://​www.i2c-bus.org/​|I2C Bus Specification]] 
pm/prj2026/cezar.zlatea/madalin.militaru.1778352192.txt.gz · Last modified: 2026/05/09 21:43 by madalin.militaru
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