Differences

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

Link to this comparison view

pm:prj2025:vstoica:dragos.dragan1403 [2025/05/30 01:58]
dragos.dragan1403 [Hardware Design]
pm:prj2025:vstoica:dragos.dragan1403 [2025/06/02 12:05] (current)
dragos.dragan1403 [Software Design]
Line 20: Line 20:
   * Senzor laser VL53L0X (comunicare I2C) pentru detectarea obstacolelor   * Senzor laser VL53L0X (comunicare I2C) pentru detectarea obstacolelor
   * Senzor ultrasonic HC-SR04   * Senzor ultrasonic HC-SR04
-  * Buzzer pasiv detectarea obiectelor din jur+  * Buzzer pasiv - navigare
   * Buzzer pasiv - alarma   * Buzzer pasiv - alarma
   * Buton tactil ​   * Buton tactil ​
Line 34: Line 34:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-^ Component ​               Description ​                                                                ^ +^ Componentă                  ​Descriere ​                                                                ^ 
-| Arduino ​                 Microcontroller used to read sensor data and control output ​               ​+| Arduino ​                   Microcontroler folosit pentru citirea datelor de la senzori și controlul ieșirilor ​
-| VL53L0X ​                 | IR Time-of-Flight ​Distance Sensor connected via I2C                        +| VL53L0X ​                   Senzor ​IR Time-of-Flight ​conectat prin I2C pentru măsurarea distanței ​    
-Ultrasonic Sensor ​(HC-SR04) | Detects distance to nearby obstacles using ultrasonic waves               +Senzor ultrasonic ​(HC-SR04) | Detectează distanța până la obstacole folosind unde ultrasonice ​          
-Push Button ​(4-pin     Toggle switch to turn buzzer on or off when pressed ​                       ​+Buton push (4 pini       Comutator pentru activarea/​dezactivarea buzzerului ​                        
-Passive ​Buzzer (Navigation) | Outputs ​PWM-controlled soundvaries pitch based on distance ​(connected to ultrasonic ​sensor) | +| Buzzer ​pasiv (navigare   Emette sunete controlate prin PWM, intensitatea variază în funcție de distanță ​(conectat la senzorul ​ultrasonic) | 
-Passive ​Buzzer (Alarm  ​Emits loud alert sound when IR sensor detects intruder ​                   ​+| Buzzer ​pasiv (alarmă     Emette sunet puternic când senzorul ​IR detectează o prezență ​              
-| IR Sensor ​(PIR or IR Proximity) | Detects nearby presence for theft detection ​                            +Senzor ​IR (PIR sau IR de proximitate) | Detectează prezența persoanelor din jur pentru protecție împotriva furtului  ​
-| Breadboard ​              ​Used for circuit assembly ​                                                 ​+| Breadboard ​(placă de test) Utilizată pentru asamblarea circuitului ​                                  
-Power Source ​            Powers the circuit ​                                                        ​|+Sursă de alimentare ​       ​Alimentează întregul ​circuit ​                                              ​|
  
  
-{{ :​pm:​prj2025:​vstoica:​schematic_baston.png?600 |}}+{{ :​pm:​prj2025:​vstoica:​schema_bloc_borseta.png?600 |}}
  
  
 ===== Software Design ===== ===== Software Design =====
  
 +== Mediu de dezvoltare: Arduino IDE ==
  
-<note tip> +== Librării și surse 3-rd party: ==
-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 +
-</​note>​+
  
-===== Rezultate Obţinute =====+Wire – magistrală I²C pentru senzorul VL53L0X  ​
  
-<note tip> +VL53L0X – bibliotecă Pololu pentru senzorul ToF (Time-of-Flight)  ​
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
 +tone() / noTone() – API Arduino pentru generarea semnalului pe buzzere - (Headere AVR standard folosite pentru control low-level: <​avr/​io.h>,​ <​avr/​interrupt.h>,​ <​util/​delay.h>​).
 +
 +== Algoritmi principali: ==
 +
 +- Inițializare periferice – USART (115 200 baud), I²C, pinii HC-SR04, buzzere, buton și întrerupere externă.  ​
 +- Măsurare distanță VL53L0X – citire la 200 ms, filtrare timeout, interpretare alarmă sub 500 mm.  ​
 +- Măsurare distanță HC-SR04 – puls triggerează senzorul, conversie durată → cm, filtrare timeout.  ​
 +- Gestionare alarme audio  ​
 +  - VL53L0X: sunet ciclic (4 pași) dacă distanța < 500 mm.  ​
 +  - HC-SR04: frecvență buzzer variabilă în funcție de distanță (≤ 20 cm → 3 kHz, … ≤ 100 cm → 800 Hz).  ​
 +- Comutare moduri buzzer prin buton (ISR) cu debounce 300 ms:  ​
 +  1. Dezactivează doar buzzerul HC-SR04.  ​
 +  2. Dezactivează ambele buzzere.  ​
 +  3. Reactivează ambele buzzere.  ​
 +
 +== Funcții implementate:​ ==
 +
 +| Funcție ​                             | Rol                                                                                | Fragmente cheie                                    |
 +| **USART_Init()** ​                    | Configurează USART0 @ 115 200 baud, 8N1, doar TX                                   | setează UBRR0x, UCSRx                              |
 +| **USART_SendChar/​String/​Unsigned/​Int()** | Rutine de transmitere serială ​                                                    | conversie manuală zecimală pentru `unsigned long`  |
 +| **toggleBuzzer()** *(ISR INT0)* ​     | Rulează la apăsarea butonului; comută logica `buzzerEnabled` / `ultrasonicBuzzerEnabled` | verifică `millis()` pentru debounce ​               |
 +| **playAlarmSound()** ​                | Generează secvența de 4 note (2 500 Hz ↔ 1 200 Hz) la 200 ms                       | folosește `tone(BUZZER_PIN1,​ f)`                   |
 +| **readUltrasonicDistance()** ​        | Trimite puls către HC-SR04 și calculează distanța în cm                            | timeout 30 000 µs; conversie `dur*0.034/​2` ​        |
 +| **handleUltrasonicBuzzer(d)** ​       | Selectează frecvența buzzerului 2 în funcție de `d`                                | tabele prag ≤ 20/50/100 cm                         |
 +| **setup()** ​                         | Inițializează toate modulele, setează ISR buton                                    | `attachInterrupt(FALLING)` ​                        |
 +| **loop()** ​                          | Ciclu principal: • citește VL53L0X → alarmă / semnal continuu • citește HC-SR04 → frecvență buzzer variabilă • transmite date prin UART | 100 ms delay |
 +
 +== Diagrame / flux ==
 +
 +            +-----------+ ​          ​+-------------+
 +            |  VL53L0X ​ | I²C  ---> |  Dist(mm) ​  |
 +            +-----------+ ​         /​+-------------+
 +                                   | <​500? ​       |
 +                                   ​| ​  yes -> playAlarmSound()
 +                                   ​| ​  ​no ​ -> freq = f(dist)
 +                                   ​+-------------+
 +
 +== Resurse hardware: ==
 +
 +- **MCU:** ATmega328P (Arduino Uno/​Nano)  ​
 +
 +- **Senzori:​** VL53L0X (ToF), HC-SR04 (ultrasunete)  ​
 +
 +- **Actuatori:​** 2 buzzere pasive (pini 8, 9)  ​
 +
 +- **I/O:** buton push-button (pin 2, pull-up), LED opțional ​
 + 
 +- **Interfață:​** UART-USB pentru monitorizare la 115 200 baud  ​
 +
 +== Timpi critici și performanță:​ ==
 +
 +- Loop la ~10 Hz (100 ms) → suficient pentru feedback acustic. ​
 + 
 +- ISR buton + debounce software de 300 ms.  ​
 +
 +- Timeout citire VL53L0X: 500 ms; budget măsurare: 200 ms.  ​
 +
 +- Timeout puls HC-SR04: 30 ms → acoperă până la ~5 m.  ​
 +
 +== Codul sursa: ==
 +
 +{{:​pm:​prj2025:​vstoica:​proiect_pm.ino.zip|}}
 +
 +===== Rezultate Obţinute =====
 +
 +Senzorul ultrasonic măsoară distanțele cu acuratețe, iar buzzerul reacționează corespunzător în funcție de apropierea unui obiect. De asemenea, senzorul VL53L0X cu infraroșu detectează în mod eficient prezența unui corp străin aflat în apropiere, iar semnalul sonor emis de buzzer oferă un feedback intuitiv, sugerând o posibilă amenințare. Funcționalitatea generală corespunde cerințelor propuse.
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download ===== 
  
-<note warning>​ +Produsul final permite detectarea facilă a obiectelor din proximitate,​ oferind un feedback auditiv clar. Ca direcții de îmbunătățireintenționez să adaug un motor cu vibrațiipentru a oferi un feedback tactil suplimentar în prezența obstacolelor. De asemenea, pot extinde aria de detecție prin integrarea a încă trei senzori de distanță, montați pe celelalte laturi ale dispozitivului,​ obținând astfel ​acoperire de 360° în jurul utilizatorului.
-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 ​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**. +===== Partea hardware ​care este integrată borseta =====
-</​note>​+
  
-===== Jurnal ===== 
  
-<note tip> + 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului+{{ :​pm:​prj2025:​vstoica:​poze_borseta2.png?600 |}} 
-</​note>​+ 
 + 
 +===== Produsul final ===== 
 + 
 + 
 + 
 +{{ :​pm:​prj2025:​vstoica:​poza_borseta1.png?​600 |}}
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +• Arduino – Documentație oficială și exemple de utilizare 
-Listă cu documente, datasheet-uriresurse Internet folosite, eventual grupate pe **Resurse Software** ş**Resurse Hardware**. + 
-</​note>​+• Optimus Digital – Magazin de componente și sursă de informații tehnice 
 + 
 +• Datasheet-urile componentelor – Consultate în special pentru senzorul IRpentru înțelegerea corectă a tensiunii de alimentare șa semnalului de ieșire 
 + 
 +• YouTube – Tutoriale video și demonstrații practice legate de utilizarea senzorilor și a buzzerelor în proiecte embedded
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2025/vstoica/dragos.dragan1403.1748559497.txt.gz · Last modified: 2025/05/30 01:58 by dragos.dragan1403
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