This shows you the differences between two versions of the page.
|
pm:prj2025:fstancu:laurentiu.racovcen [2025/05/28 10:35] 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ță |
| - | + | * **ESPAsyncWebServer.h** – server web asincron pentru interfața de control și API | |
| - | * **WiFi.h** – conectivitate WiFi pentru control de la distanță | + | * **AsyncTCP.h** – suport TCP asincron necesar pentru serverul web |
| - | * **ESPAsyncWebServer.h** – server web asincron pentru interfața de control și API | + | * **Servo.h** – controlul servomotoarelor pentru manipularea coletului |
| - | * **AsyncTCP.h** – suport TCP asincron necesar pentru serverul web | + | * **Adafruit_MPU6050.h** – comunicare cu accelerometrul și giroscopul MPU6050 prin I²C |
| - | * **Servo.h** – controlul servomotoarelor pentru manipularea coletului | + | * **LittleFS.h** – sistem de fișiere pentru stocarea paginilor web și a resurselor statice |
| - | * **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 | + | |
| **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. |
| - | + | * Monitorizare stare MPU6050: Accelerometrul și giroscopul monitorizează accelerația, rotația și temperatura, datele fiind afișate în timp real pe pagina web. | |
| - | * Livrare automată colet: Servomotoarele acționează pentru a lăsa coletul la destinație, controlat din interfața 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. | |
| - | * Monitorizare stare MPU6050: Accelerometrul și giroscopul monitorizează accelerația, rotația și temperatura, datele fiind afișate în timp real pe 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. | + | |
| **Motivația alegerii bibliotecilor:** | **Motivația alegerii bibliotecilor:** | ||
| - | * **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) |
| **Elemente de noutate:** | **Elemente de noutate:** | ||
| - | * Control web modern, atât manual cât și automat, cu feedback în timp real | + | * 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 | + | * 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ă | + | * 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 | + | * Monitorizare senzorială (accelerație, rotație, temperatură) și afișare live pe pagina web |
| **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ță. |
| - | * Livrare colet: La comanda utilizatorului, servomotoarele acționează pentru a lăsa coletul la destinație. | + | * 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. | + | * 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 136: | 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 ===== | ||