Differences

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

Link to this comparison view

pm:prj2025:fstancu:alexandru.bologan [2025/05/24 00:01]
alexandru.bologan [Utilizarea Funcționalităților din Laborator]
pm:prj2025:fstancu:alexandru.bologan [2025/05/24 13:13] (current)
alexandru.bologan [Bibliografie/Resurse]
Line 41: Line 41:
 - Toate componentele sunt montate pe un breadboard, iar alimentarea este comună între componentele de 5V. - Toate componentele sunt montate pe un breadboard, iar alimentarea este comună între componentele de 5V.
  
 +
 +  * poza proiect (fara carcasa)
 +{{ :​pm:​prj2025:​fstancu:​whatsapp_image_2025-05-24_at_12.28.21.jpeg?​500 |}}
  
 ===== Software Design ===== ===== Software Design =====
Line 91: Line 94:
 === Arduino Libraries === === Arduino Libraries ===
  
-    ​#include <​avr/​io.h> ​       // Control direct registri AVR pentru performanță ​  +  ​#include <​avr/​io.h> ​       // Control direct registri AVR pentru performanță ​  
-    #include <​avr/​interrupt.h>​ // Gestionare întreruperi hardware eficientă ​  +  #include <​avr/​interrupt.h>​ // Gestionare întreruperi hardware eficientă ​  
-    #include <​util/​delay.h> ​   // Delay-uri precise pentru timing critic  ​+  #include <​util/​delay.h> ​   // Delay-uri precise pentru timing critic  ​
  
 Justificare:​ Am ales programarea directă a registrilor AVR pentru control precis al timer-elor și întreruperilor,​ esențial pentru măsurători de timp precise (microsecunde). Justificare:​ Am ales programarea directă a registrilor AVR pentru control precis al timer-elor și întreruperilor,​ esențial pentru măsurători de timp precise (microsecunde).
Line 99: Line 102:
 === ESP32-CAM Libraries === === ESP32-CAM Libraries ===
  
-    ​#include "​esp_camera.h" ​       // API nativ ESP32 pentru control cameră ​  +  ​#include "​esp_camera.h" ​       // API nativ ESP32 pentru control cameră ​  
-    #include <​WiFiClientSecure.h> ​ // HTTPS sigur pentru upload cloud   +  #include <​WiFiClientSecure.h> ​ // HTTPS sigur pentru upload cloud   
-    #include <​HTTPClient.h> ​       // HTTP client optimizat pentru ESP32  ​+  #include <​HTTPClient.h> ​       // HTTP client optimizat pentru ESP32  ​
  
 Justificare:​ Biblioteca esp_camera oferă control granular asupra parametrilor camerei (rezoluție,​ calitate JPEG, frame rate), în timp ce WiFiClientSecure asigură securitatea transmisiei. Justificare:​ Biblioteca esp_camera oferă control granular asupra parametrilor camerei (rezoluție,​ calitate JPEG, frame rate), în timp ce WiFiClientSecure asigură securitatea transmisiei.
Line 107: Line 110:
 === Server Libraries === === Server Libraries ===
  
-    ​const multer = require('​multer'​); ​  // Gestionare multipart/​form-data ​  +  ​const multer = require('​multer'​); ​  // Gestionare multipart/​form-data ​  
-    const express = require('​express'​);​ // Framework web rapid și flexibil  ​+  const express = require('​express'​);​ // Framework web rapid și flexibil  ​
  
 Justificare:​ Multer este specializat pentru upload-ul fișierelor și gestionează eficient memoria pentru imagini mari, în timp ce Express oferă routing și middleware pentru API RESTful. Justificare:​ Multer este specializat pentru upload-ul fișierelor și gestionează eficient memoria pentru imagini mari, în timp ce Express oferă routing și middleware pentru API RESTful.
Line 138: Line 141:
 | Întreruperi (PCINT) | | Întreruperi (PCINT) |
  
-    ​ISR(PCINT2_vect) { +  ​ISR(PCINT2_vect) { 
-        if (!(PIND & (1 << PD2)) && !first_sensor_triggered) { +    if (!(PIND & (1 << PD2)) && !first_sensor_triggered) { 
-            start_ticks = micros(); +      start_ticks = micros(); 
-            first_sensor_triggered = 1; +      first_sensor_triggered = 1;
-        } +
-        else if (!(PIND & (1 << PD3)) && first_sensor_triggered) { +
-            end_ticks = micros(); +
-            measurement_ready = 1; +
-        }+
     }     }
 +    else if (!(PIND & (1 << PD3)) && first_sensor_triggered) {
 +      end_ticks = micros();
 +      measurement_ready = 1;
 +    }
 +  }
 Utilizare: Întreruperile PCINT pe PD2 și PD3 detectează trecerea obiectului prin fața senzorilor IR. Utilizare: Întreruperile PCINT pe PD2 și PD3 detectează trecerea obiectului prin fața senzorilor IR.
  
 | Timer/​Counter | | Timer/​Counter |
  
-    ​void timer1_init() { +  ​void timer1_init() { 
-        ICR1 = 0xFFFF; +    ICR1 = 0xFFFF; 
-        TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS11) | (1 << CS10); // Prescaler 64 +    TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS11) | (1 << CS10); // Prescaler 64 
-    }+  }
  
 Utilizare: Timer1 în modul CTC pentru măsurători precise de timp. Utilizare: Timer1 în modul CTC pentru măsurători precise de timp.
Line 161: Line 164:
 | I2C (LCD) | | I2C (LCD) |
  
-    ​lcd_set_cursor(0,​ 0); +  ​lcd_set_cursor(0,​ 0); 
-    lcd_print("​Viteza:"​);​ +  lcd_print("​Viteza:"​);​ 
-    lcd_set_cursor(1,​ 1); +  lcd_set_cursor(1,​ 1); 
-    lcd_print(buf);​+  lcd_print(buf);​
  
 Utilizare: Comunicație I2C pentru afișarea rezultatelor pe LCD. Utilizare: Comunicație I2C pentru afișarea rezultatelor pe LCD.
Line 170: Line 173:
 | UART | | UART |
  
-    ​USART0_init(CALC_USART_UBRR(PM_BAUD));​ +  ​USART0_init(CALC_USART_UBRR(PM_BAUD));​ 
-    printf("​Speed:​ %.2f km/​h\n",​ speed);+  printf("​Speed:​ %.2f km/​h\n",​ speed);
  
 Utilizare: UART pentru debugging și monitorizare în timp real. Utilizare: UART pentru debugging și monitorizare în timp real.
Line 201: Line 204:
  
     Rata succes upload: >95%     Rata succes upload: >95%
-===== Rezultate Obţinute ===== 
  
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
- 
-===== Concluzii ===== 
  
 ===== Download ===== ===== Download =====
  
-<note warning>​ +Arhiva ce contine 3 directoare: 
-arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+  * Arduino_nano_code 
 +  * Esp32-cam_code 
 +  * Photo_storage_server 
 +{{:​pm:​prj2025:​fstancu:​proiect_pm.zip|}}
  
-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**. 
-</​note>​ 
  
-===== Jurnal ​=====+===== Bibliografie/​Resurse ​=====
  
-<note tip> +Laboratoare folosite: 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +  * [[pm:​lab:​lab0-2024|]] 
-</​note>​+  * [[pm:​lab:​lab1-2023|]] 
 +  * [[pm:​lab:​lab2-2023]] 
 +  * [[pm:​lab:​lab6-2023-2024]]
  
-===== Bibliografie/Resurse =====+Linkuri externe: 
 +  * [[https://​www.instructables.com/​Getting-Started-With-ESP32-CAM-Streaming-Video-Usi]] 
 +  * [[https://​learn.microsoft.com/​en-us/​azure/​app-service/​quickstart-nodejs?​tabs=linux&​pivots=development-environment-vscode]] 
 + 
 +Linkuri Hardware: 
 +  * [[https://​www.optimusdigital.ro/​ro/​]] 
 +  * [[https://​sigmanortec.ro/​]] 
 +  * [[https://​www.emag.ro/​placa-esp32-cu-camera-wifi-esp32-cam-ble-4-2-programator-dedicat-negru-esp32-cam-mb/​pd/​DW8798MBM/#​opensearch]]
  
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
 <​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/fstancu/alexandru.bologan.1748034071.txt.gz · Last modified: 2025/05/24 00:01 by alexandru.bologan
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