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 ===== |