This shows you the differences between two versions of the page.
pm:prj2025:fstancu:laurentiu.racovcen [2025/05/22 21:50] 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 58: | Line 58: | ||
* 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 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**. | + | * **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 ===== |