Package Delivery Car - Racovcen Laurențiu
Introducere
Proiectul este o mașinuță care poate livra colete singură, fără să fie controlată direct de cineva după specificarea traseului. Mașinuța primește traseul pe care trebuie să meargă printr-o aplicație web care rulează pe o plăcuță ESP32. După ce ajunge la destinație și lasă coletul, mașinuța se întoarce singură la locul de unde a plecat. Scopul proiectului este de a dezvolta o soluție pentru transportul autonom de colete de dimensiuni mici. Cred că acest proiect este util pentru că mă ajută să învăț cum să combin partea de hardware cu cea software, astfel încât să rezolv o problemă reală - livrarea coletelor.
Descriere generală
Hardware Design
Lista de piese:
Nr. crt. | Denumire | Cantitate |
1. | ESP-WROOM-32 | 1 |
2. | L298N Dual Motor Driver | 1 |
3. | Motor | 4 |
4. | Modul coborâre tensiune LM2596 | 1 |
5. | Senzor accelerometru și giroscop MPU6050 | 1 |
6. | Servomotor SG90 | 2 |
7. | Baterie | 1 |
Circuit electric:
Circuitul conține un microcontroller ESP32, destinat să controleze patru motoare DC printr-un driver L298N, două servomotoare SG90 și să citească date de la un senzor MPU6050 (accelerometru și giroscop). Circuitul este alimentat de o baterie conectată la modulul de coborâre a tensiunii LM2596.
Bateria:
ESP32:
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.
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.
Driverul L298N:
Modulul de coborâre a tensiunii LM2596:
Senzorul MPU6050:
Servomotoarele SG90:
Software Design
Mediu de dezvoltare: PlatformIO (placă ESP32 – ESP32-WROOM).
Biblioteci folosite:
WiFi.h – conectivitate WiFi pentru control de la distanță
ESPAsyncWebServer.h – server web asincron pentru interfața de control și
API
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
Funcționalități implementate:
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.
Motivația alegerii bibliotecilor:
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
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)
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
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF