This shows you the differences between two versions of the page.
pm:prj2025:fstancu:laurentiu.racovcen [2025/05/28 10:36] laurentiu.racovcen |
pm:prj2025:fstancu:laurentiu.racovcen [2025/05/28 15:04] (current) laurentiu.racovcen |
||
---|---|---|---|
Line 29: | Line 29: | ||
**Bateria**: | **Bateria**: | ||
- | * Bateria 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**. | + | * 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**: | ||
Line 65: | Line 65: | ||
**Mediu de dezvoltare**: PlatformIO (placă ESP32 – ESP32-WROOM). | **Mediu de dezvoltare**: PlatformIO (placă ESP32 – ESP32-WROOM). | ||
- | + | **Biblioteci folosite:** | |
- | **Librării folosite:** | + | |
* **WiFi.h** – conectivitate WiFi pentru control de la distanță | * **WiFi.h** – conectivitate WiFi pentru control de la distanță | ||
Line 73: | Line 72: | ||
* **Servo.h** – controlul servomotoarelor pentru manipularea coletului | * **Servo.h** – controlul servomotoarelor pentru manipularea coletului | ||
* **Adafruit_MPU6050.h** – comunicare cu accelerometrul și giroscopul MPU6050 prin I²C | * **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 | |
- | LittleFS.h – sistem de fișiere pentru stocarea paginilor web și a resurselor statice | + | |
**Funcționalități implementate:** | **Funcționalități implementate:** | ||
- | * Control de la distanță prin 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ă. | + | * 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. | * 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. | * 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 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. | * 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. | * Actualizare firmware OTA: Suport pentru actualizare software Over-The-Air, fără conectare fizică la dispozitiv. | ||
Line 89: | Line 87: | ||
* **WiFi.h** – standard pentru conectivitate wireless pe ESP32 | * **WiFi.h** – standard pentru conectivitate wireless pe ESP32 | ||
* **ESPAsyncWebServer.h & AsyncTCP.h** – server web rapid și eficient, ideal pentru interacțiuni web în timp real | * **ESPAsyncWebServer.h & AsyncTCP.h** – server web rapid și eficient, ideal pentru interacțiuni web în timp real | ||
- | * **Servo.h** – interfață simplă pentru controlul precis al servomotoarelor | + | * **Servo.h** – interfață simplă pentru controlul servomotoarelor |
- | * **Adafruit_MPU6050.h** – bibliotecă robustă pentru citirea datelor de la MPU6050 (accelerometru + giroscop) | + | * **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) | * **LittleFS.h** – permite stocarea și servirea rapidă a fișierelor web direct din memoria ESP32 (pentru fișierele HTML, CSS, JavaScript) | ||
Line 102: | Line 100: | ||
**Justificarea utilizării funcționalităților din laborator:** | **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. | + | * **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. | + | * **I²C**: interfață pentru citirea datelor de la senzorul MPU6050. |
- | * Timere și delay-uri: gestionarea duratei acțiunilor (mers, rotiri, pauze între pași). | + | * **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. | + | * **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ă. | + | * **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 | + | * **Actualizare software OTA** și stocare fișiere web direct pe dispozitiv |
**Structura proiectului și interacțiunea funcționalităților:** | **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. | + | * 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 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ță. | * 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ță. | ||
Line 117: | Line 115: | ||
* Monitorizare senzorială: Datele de la MPU6050 (accelerație, rotație, temperatură) sunt preluate periodic și afișate pe interfața web. | * 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. | * 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, pentru mentenanță facilă | + | * Actualizare OTA: Firmware-ul poate fi actualizat de la distanță, fără conectare USB. |
**Calibrarea senzorilor:** | **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. | + | * 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 | * 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 ===== | ===== Rezultate Obţinute ===== | ||
Line 131: | Line 131: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | |||
- | ===== Download ===== | ||
- | |||
- | <note warning> | ||
- | 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**. | ||
- | </note> | ||
- | |||
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |