Differences

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

Link to this comparison view

pm:prj2025:fstancu:laurentiu.racovcen [2025/05/19 17:01]
laurentiu.racovcen
pm:prj2025:fstancu:laurentiu.racovcen [2025/05/28 15:04] (current)
laurentiu.racovcen
Line 29: Line 29:
 **Bateria**:​ **Bateria**:​
  
-Bateria alimentează ​întregul sistem. Pentru a adapta tensiunea la nivelul necesar funcționării mașinuței,​ ieșirea bateriei este conectată la modulul de coborâre a tensiunii **LM2596**.+  * Bateria ​de 5V (5000mAh) ​alimentează ​toate componentele. Pentru a adapta tensiunea la nivelul necesar funcționării mașinuței,​ ieșirea bateriei este conectată la modulul de coborâre a tensiunii **LM2596**.
  
 **ESP32**: **ESP32**:
  
   * Primește alimentare prin pinul **VN** de la sursa de tensiune (5V) a driver-ului **L298N**.   * Primește alimentare prin pinul **VN** de la sursa de tensiune (5V) a driver-ului **L298N**.
-  * Controlează driverul de motoare **L298N** prin pinii digitali, trimițând semnale PWM și de direcție pentru a controla cele patru motoare DC conectate la **L298N**.+  * Controlează driverul de motoare **L298N** prin pinii digitali, trimițând semnale ​**PWM** și de direcție pentru a controla cele **patru motoare DC** conectate la **L298N**.
   * Primește date de la senzorul **MPU6050** (accelerometru și giroscop) prin interfața **I2C** (SCL și SDA).   * Primește date de la senzorul **MPU6050** (accelerometru și giroscop) prin interfața **I2C** (SCL și SDA).
-  * Controlează două servomotoare ​**SG90** prin pini digitali separați, oferind semnalul de control **PWM** necesar pentru poziționarea acestora+  * Controlează ​**două servomotoare SG90** prin pini digitali separați, oferind semnalul de control **PWM** necesar pentru poziționarea acestora.
-  * Controlează patru motoare DC, fiecare conectat la una dintre ieșirile **OUT1–OUT4** ale modulului **L298N**.+
  
 **Driverul L298N**: **Driverul L298N**:
Line 47: Line 46:
  
   * Primește tensiunea de la baterie.   * Primește tensiunea de la baterie.
-  * Scade tensiunea la un nivel sigur pentru driver.+  * Scade tensiunea la un nivel sigur.
  
 **Senzorul MPU6050**: **Senzorul MPU6050**:
Line 58: Line 57:
   * Sunt alimentate de la sursa de tensiune a driver-ului **(5V)**.   * Sunt alimentate de la sursa de tensiune a driver-ului **(5V)**.
   * Primesc semnale de control de la **ESP32** pentru a efectua mișcări (de până la 90°).   * Primesc semnale de control de la **ESP32** pentru a efectua mișcări (de până la 90°).
 +
 +{{ :​pm:​prj2025:​fstancu:​circuit.jpeg?​500 |}}
  
 ===== Software Design ===== ===== Software Design =====
  
  
-<note tip> +**Mediu ​de dezvoltare**: PlatformIO ​(placă ESP32 – ESP32-WROOM).
-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 =====+**Biblioteci folosite:**
  
-<note tip> +  * **WiFi.h** – conectivitate WiFi pentru control de la distanță 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+  * **ESPAsyncWebServer.h** – server web asincron pentru interfața de control și API 
-</​note>​+  * **AsyncTCP.h** – suport TCP asincron necesar pentru serverul web 
 +  * **Servo.h** – controlul servomotoarelor pentru manipularea coletului 
 +  * **Adafruit_MPU6050.h** – comunicare cu accelerometrul și giroscopul MPU6050 prin I²C 
 +  * **LittleFS.h** – sistem de fișiere pentru stocarea paginilor web și a resurselor statice
  
-===== Concluzii =====+**Funcționalități implementate:​**
  
-===== Download =====+  * Control de la distanță printr-o pagină web: Mașinuța poate fi controlată manual (direcții, oprire, lăsare colet) sau automat (traseu definit de utilizator) printr-o interfață web intuitivă. 
 +  * Parcurgere traseu programat: Utilizatorul poate configura un traseu cu acțiuni (mers înainte/​înapoi,​ rotiri stânga/​dreapta) și distanțe, iar mașinuța îl va executa pas cu pas. 
 +  * Livrare automată colet: Servomotoarele acționează pentru a lăsa coletul la destinație,​ controlat din interfața web. 
 +  * Monitorizare stare MPU6050: Accelerometrul și giroscopul monitorizează accelerația,​ rotația și temperatura,​ datele fiind afișate în timp real pe pagina web. 
 +  * Feedback vizual și stare conexiune: LED-uri pentru starea conexiunii WiFi și funcționarea sistemului. 
 +  * Actualizare firmware OTA: Suport pentru actualizare software Over-The-Air,​ fără conectare fizică la dispozitiv.
  
-<note warning>​ +**Motivația alegerii bibliotecilor:**
-O 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ă ;-).+
  
-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**. +  ​* **WiFi.h** – standard pentru conectivitate wireless pe ESP32 
-</​note>​+  ​* **ESPAsyncWebServer.h & AsyncTCP.h** – server web rapid și eficient, ideal pentru interacțiuni web în timp real 
 +  ​**Servo.h** – interfață simplă pentru controlul servomotoarelor 
 +  ​* **Adafruit_MPU6050.h** – bibliotecă pentru citirea datelor de la MPU6050 (accelerometru + giroscop) 
 +  ​**LittleFS.h** – permite stocarea și servirea rapidă a fișierelor web direct din memoria ESP32 (pentru fișierele HTML, CSS, JavaScript)
  
-===== Jurnal ​=====+**Elemente de noutate:​** 
 + 
 +  * Control web modern, atât manual cât și automat, cu feedback în timp real 
 +  * Definirea și execuția unui traseu compus, configurabil din interfața web 
 +  * Livrare automată de colet cu acționare servo, fără intervenție directă 
 +  * Monitorizare senzorială (accelerație,​ rotație, temperatură) și afișare live pe pagina web 
 + 
 +**Justificarea utilizării funcționalităților din laborator:​** 
 + 
 +  * **PWM (Pulse Width Modulation)**:​ control fin al vitezei motoarelor și al poziției servomotoarelor pentru manevre precise. 
 +  * **I²C**: interfață pentru citirea datelor de la senzorul MPU6050. 
 +  * **Timere și delay-uri**:​ gestionarea duratei acțiunilor (mers, rotiri, pauze între pași). 
 +  * **Web server și API**: comunicare între utilizator și sistem, integrare cu front-end web. 
 +  * **Sisteme de fișiere embedded**: servirea paginilor web și a resurselor statice din memoria internă. 
 +  * **Actualizare software OTA** și stocare fișiere web direct pe dispozitiv 
 + 
 +**Structura proiectului și interacțiunea funcționalităților:​** 
 + 
 +  * Inițializare sistem: Configurare pini, conectare WiFi, pornire server web și încărcare pagini web din **LittleFS**. 
 +  * Control manual: Utilizatorul poate acționa mașinuța în timp real (înainte, înapoi, stânga, dreapta, stop, lăsare colet) din interfața web. 
 +  * Control automat: Utilizatorul definește un traseu (succesiune de acțiuni cu distanțe/​rotiri),​ care este procesat și executat secvențial de mașinuță. 
 +  * Livrare colet: La comanda utilizatorului,​ servomotoarele acționează pentru a lăsa coletul la destinație. 
 +  * Monitorizare senzorială:​ Datele de la MPU6050 (accelerație,​ rotație, temperatură) sunt preluate periodic și afișate pe interfața web. 
 +  * Feedback și siguranță:​ LED-uri indică starea conexiunii și funcționarea sistemului; sistemul poate fi oprit rapid la nevoie. 
 +  * Actualizare OTA: Firmware-ul poate fi actualizat de la distanță, fără conectare USB. 
 + 
 +**Calibrarea senzorilor:​** 
 + 
 +  * MPU6050: setare interval **±8g** pentru accelerometru și **±250°/​s** pentru giroscop, pentru detecția rapidă a mișcărilor bruște și monitorizarea corectă a orientării. 
 +  * Motoare și servo: calibrare poziții de start/stop și viteze PWM pentru mișcări precise și sincronizate 
 + 
 +GitHub repo: https://​github.com/​laurentiu-racovcen/​project-pm 
 + 
 +===== Rezultate Obţinute ​=====
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal ​în care să poată urmări asistentul de proiect progresul ​proiectului.+Care au fost rezultatele obţinute ​în urma realizării proiectului ​vostru.
 </​note>​ </​note>​
 +
 +===== Concluzii =====
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2025/fstancu/laurentiu.racovcen.1747663266.txt.gz · Last modified: 2025/05/19 17:01 by laurentiu.racovcen
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