Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:fstancu:albertina.enache [2025/05/20 20:05]
florin.stancu
pm:prj2025:fstancu:albertina.enache [2025/05/28 12:44] (current)
albertina.enache [Descriere generală]
Line 1: Line 1:
-====== SmartPark: Simulare Embedded a unei Parcări Inteligente - Enache Albertina ====== 
  
 +====== Aspirator Inteligent ======
 +===== Introducere =====
  
-====== Introducere ====== 
 <note tip> <note tip>
-Prezentarea pe scurt proiectului: +Totul început cu o întrebare simplă: **„Cum ar fi dacă un robot ar putea curăța singur ​cameră?​”** ​  
-  ​Sistem miniatural care simulează o parcare automatizată pe etaje, capabilă să detecteze locuri libere ​și să mute o platformă cu o mașinuță la un loc disponibil. +Această ideeinspirată din viața de zi cu zi, a stat la baza conceperii unui *aspirator autonom inteligent*,​ un dispozitiv ​capabil să se miște printr-un spațiu necunoscutsă detecteze obstacolele ​și să aleagă în timp real calea optimă de ocolire.
-  * Scopul este familiarizarea cu tehnologii embedded ​printr-o aplicație practică ce combină detecțiemișcare controlată și interfață om-mașină+
-  * Ideea a pornit de la parcările aglomerate din mediul urban și interesul pentru automatizarea acestui proces la scară redusă. +
-  * Este util pentru ​înțelegerea practică a controlului cu microcontroler,​ ideal pentru testare, demonstrații educaționale și prototipare. +
-</​note>​+
  
-====== Descriere generală ====== +Am dorit să creăm nu doar un robot care se mișcă, ci un sistem ​**autonom**, capabil să *„înțeleagămediul înconjurător și să reacționeze fără intervenția utilizatorului. ​Scopul proiectului a fost să îmbinăm teoria învățată despre microcontrolere,​ senzori, actuatori și algoritmi de decizie, într-un ​prototip funcțional ​și util.
-<note tip> +
-Proiectul conține următoarele module: +
-- **Modul Control (ATmega328P):​** gestionează logica aplicațieicontrolul motoarelor și citirea senzorilor. +
-**Modul Mișcare (Motoare DC și servo):** controlează liftul vertical și mutarea platformei ​în locul liber. +
-- **Modul Detecție (Senzori IR):** verifică dacă un loc este liber sau ocupat. +
-**Modul Feedback (LED-uri RGB + Buzzer):** indică starea sistemului ​și oferă alerte sonore. +
-- **Interfață Serială (USART):** permite interacțiunea utilizatorului ​cu sistemul pentru comenzi precum PARK, RESET, STATUS. +
-Aceste componente interacționează secvențial, într-un ​flux controlat de temporizări ​și întreruperi,​ fiind gestionate software în Arduino IDE. +
-</​note>​+
  
-====== Schema bloc proiectului ====== +Ideea nu fost inspirată doar de curiozitate tehnică, ci și de dorința de a crea ceva cu aplicabilitate realăun model redus al unor sisteme moderne de curățenie folosite ​în casebirouri sau spații industriale.
-{{:pm:​prj2025:​fstancu:​schemabloc-alberta.png?​300|}} +
-<note tip> +
-Proiectul este organizat ​în mai multe moduleconectate logic astfel:+
  
-- **Unitate de control (Arduino Uno):** coordonează întregul sistem, primește informații de la senzori și transmite comenzi către actuatori. +Prin realizarea acestui proiect am avut ocazia să înțelegem complexitatea interacțiunii dintre componentele hardware ​(precum senzorii ​de distanță sau motoarele) și controlul software ​care le coordonează. În același timp, am învățat cum să comunicăm cu utilizatorul printr-un afișaj, și cum să semnalizăm acțiunile robotului cu LED-uri și sunete.
-- **Modul de recunoaștere ​(ESP32-CAM):​** detectează numărul ​de înmatriculare al mașinii care urmează să fie parcată. +
-- **Modul de detecție (Senzor ultrasonic HC-SR04):** detectează prezența unei mașini în zona de intrare și trimite semnale către Arduino pentru inițierea procesului de parcare. +
-- **Modul de afișare (LCD 1602 + I2C):** afișează în timp real informații despre starea sistemului ​și locurile disponibile. +
-- **Modul de mișcare:** +
-  - **Servomotor:​** controlează bariera automată pentru accesul în sistemul de parcare. +
-  - **Motoare DC:** deplasează platforma mobilă care transportă mașinuța spre locul liber. +
-  - **Motor pas cu pas:** controlează mișcarea pe verticală a platformei, în cazul în care parcarea are mai multe nivele. +
-- **Modul de siguranță (Limitatori de cursă):** oferă feedback privind pozițiile extreme ale platformei și ale barierei pentru a preveni coliziunile. +
-**Modul de conectivitate (ESP-01):** permite comunicarea între Arduino ​și ESP32-CAM ​și poate transmite datele către o interfață web. +
-**Interfață web:** utilizatorul poate accesa statistici ​și informații despre starea sistemului și parcările efectuate.+
  
-Fiecare modul este alimentat și sincronizat software prin Arduino IDE, iar întregul sistem funcționează autonom, fără intervenție umană directă.+Mai mult decât un simplu proiect, **aspiratorul nostru inteligent** ​este o reflecție a ceea ce înseamnă gândirea sistemică, colaborarea și pasiunea pentru tehnologie.
 </​note>​ </​note>​
  
 +===== Descriere generală =====
  
 +{{:​pm:​prj2025:​fstancu:​imagine_pm_componente.jpg?​500|}}
 +<note tip> După definirea ideii și stabilirea scopului, am trecut la proiectarea efectivă a sistemului. Aspiratorul inteligent este construit pe baza unei structuri modulare, în care fiecare componentă are un rol bine definit și contribuie la comportamentul general al robotului.
 +În centrul sistemului se află placa Arduino UNO, care acționează ca un „creier” al robotului, preluând informații de la senzori și luând decizii în funcție de acestea. Pentru a detecta obstacolele,​ am utilizat un senzor ultrasonic HC-SR04, amplasat frontal, iar pentru a analiza spațiul din stânga și din dreapta, am montat acest senzor pe un servomotor SG90 care permite rotirea sa în unghiuri precise.
  
-====== Hardware Design ======+Mișcarea robotului este realizată prin două motoare DC, controlate de un driver L298N, ce permite reglarea direcției și vitezei fiecărei roți. Astfel, robotul poate merge înainte, se poate opri, sau poate vira stânga și dreapta în funcție de obstacolele întâlnite.
  
 +Pentru a oferi feedback vizual și auditiv, am inclus un LED care se aprinde în timpul evitării obstacolelor și un buzzer care semnalizează pornirea sistemului. În plus, un ecran LCD I2C 16x2 afișează informații utile, precum distanța măsurată sau starea curentă a robotului („Mergem înainte”,​ „Ocolim obstacolul”,​ etc).
  
----- +Interacțiunea dintre aceste module este una continuăsenzorul detectează,​ Arduino analizează,​ motoarele execută, iar utilizatorul este informat prin ecran și LED/buzzerAceastă comunicare între hardware și software transformă un set de componente simple într-un sistem inteligent, capabil să se adapteze mediului său.
-{{:pm:​prj2025:​fstancu:​imagine.hard-pm.jpg?​300|}} +
-<note tip> +
-**Listă de piese:** +
-ATmega328P / Arduino Uno  +
-https://www.emag.ro/​placa-dezvoltare-compatibila-arduino-uno-r3-ch340g-cu-cablu-usb-emg356/​pd/​D82QYSYBM/​+
  
--Modul Releu 1 canal 5V +</note>
-https://​www.emag.ro/​modul-releu-1-canal-5v-cl388/​pd/​DPPQ6GBBM/+
  
 +===== Hardware Design =====
  
--10 x Fire Dupont tata-tata 20cm +<note tip> 
-https://​www.emag.ro/​10-x-fire-dupont-tata-tata-20cm-cl55/​pd/​DV8M9WBBM/​+Pentru realizarea aspiratorului inteligent am utilizat componente hardware accesibile și ușor de integrat, fiecare având un rol precis în funcționarea sistemului. Mai jos este descrisă structura hardware:
  
 +  * **Arduino UNO** – unitatea principală de control. Toate modulele sunt conectate la ea, iar deciziile de deplasare și afișare sunt luate pe baza informațiilor primite de la senzori. ​  ​https://​www.bitmi.ro/​placa-de-dezvoltare-compatibila-arduino-uno-r3-atmega328p-10358.html
 +  ​
 +  * **Placa de extensie V5.0** – facilitează conectarea componentelor și distribuția tensiunii. Ne-a ajutat să evităm cablajul haotic. Este disponibilă individual. https://​www.bitmi.ro/​placa-de-dezvoltare-compatibila-arduino-uno-r3-atmega328p-10358.html
 +  ​
 +  * **Senzor ultrasonic HC-SR04** – măsoară distanța față de obstacole și este montat pe un servomotor pentru a detecta atât în față, cât și lateral.
 +https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-distanta/​8152-senzor-de-distana-ultrasonic-ioe-sr05-cu-interfaa-seriala-3-55-v.html?​search_query=senzor+ultrasonic&​results=42
 +  ​
 +  * **Servomotor SG90** – rotește senzorul la unghiuri de 30°, 90° și 150° pentru a oferi robotului o „vedere laterală” și a alege direcția optimă de ocolire.  ​
 +https://​www.optimusdigital.ro/​ro/​motoare-servomotoare/​26-micro-servomotor-sg90.html
 +  ​
 +  * **2x Motoare DC** – asigură mișcarea robotului (înainte/​stânga/​dreapta),​ fiecare fiind conectat la câte un canal al driverului.
 +  https://​www.bitmi.ro/​set-motor-dc-3v-6v-cu-reductor-si-roata-11227.html
 +  * **Driver motoare L298N** – modulează semnalele PWM și logice (IN1–IN4) venite de la Arduino pentru a controla motoarele.
  
--Driver pentru Motoare Pas cu Pas A4988 Verde +   
-https://​www.optimusdigital.ro/ro/drivere-de-motoare-pas-cu-pas/155-driver-pentru-motoare-pas-cu-pas-a4988.html+ **LCD 16x2 I2C** – afișează distanța și mesajele de stare. Este conectat prin SDA (A4) și SCL (A5). 
 +https://​www.emag.ro/modul-de-afisare-lcd-1602-accesorii-pentru-placa-de-extensie-a-ecranului-pentru-portul-serial-raspberry-pi-picoi2c-ds241030530110/​pd/​D2QG7RYBM/?​ref=graph_profiled_similar_fallback_1_18&​provider=rec&​recid=rec_49_d333e6c436ab874c8f3e945bd6c8b373e824df941622125ef07d5738faa83964_1748381582&​scenario_ID=49 
 +   
 + **LED și Buzzer** – oferă feedback vizual și auditiv:  
 +    * LED-ul se aprinde în timpul evitării obstacolelor. 
 +    * Buzzer-ul sună o singură dată la pornire.
  
 +  * **Alimentare** – un pachet de baterii (6–12V) conectat prin placa de extensie și driverul L298N pentru a alimenta sistemul fără a suprasolicita placa Arduino. ​  ​https://​www.bitmi.ro/​modul-driver-l298n-cu-punte-h-dubla-pentru-motoare-dc-stepper-10400.html
  
-- Modul driver motor L298N, General, 2 motoare, 40V, 3A, PCB +</note>
-https://​www.emag.ro/​modul-driver-motor-l298n-general-2-motoare-40v-3a-pcb-gd-0165/​pd/​DLPT18YBM/+
  
 +{{:​pm:​prj2025:​fstancu:​schema123pm.jpg?​300|}}
 +{{:​pm:​prj2025:​fstancu:​masinutacurobotelpm.jpg?​200|}}
 +{{:​pm:​prj2025:​fstancu:​masinutapm.jpg?​200|}}
  
-- Motor pas cu pas RASK Nema 17, 42N.cm, 38mm, Negru/​Argintiu +===== Software Design =====
-https://​www.emag.ro/​motor-pas-cu-pas-rask-nema-17-42n-cm-38mm-negru-argintiu-dyj-3dpj/​pd/​DC43H6YBM/​+
  
 +Software-ul aspiratorului inteligent este responsabil pentru interpretarea informațiilor primite de la senzori, luarea deciziilor și coordonarea acțiunilor hardware.
  
-- Senzor ultrasonic HC-SR04  +Codul a fost scris și testat în **Arduino IDE**, folosind limbajul C++. Am utilizat următoarele librării:
-https://​www.emag.ro/​senzor-ultrasonic-hc-sr04-3/​pd/​D3NL48YBM/?​utm_source=mobile%20app&​utm_campaign=share%20product&​utm_medium=ios+
  
 +  * **Servo.h** – pentru controlul servomotorului SG90
 +  * **LiquidCrystal_I2C.h** – pentru interacțiunea cu ecranul LCD
 +  * **Wire.h** – pentru comunicare I2C
 +  * **pulseIn()** – funcție nativă Arduino pentru măsurarea duratei ecoului ultrasonic
  
-- Driver de motor pas cu pas, Stepstick, A4988, Multicolor +==== Structura codului ====
-https://​www.emag.ro/​driver-de-motor-pas-cu-pas-stepstick-a4988-multicolor-stepstick-a4988-mod/​pd/​DNR798MBM/​+
  
 +Codul este organizat pe mai multe componente logice:
  
--Kit platforma sasiu robot cu 4 motoare +  * **Inițializare**:​ Se configurează pinii pentru ​motoare, senzori, servo, buzzer, LED și LCD, și se setează servomotorul în poziția centrală (90°). 
-https://www.emag.ro/kit-platforma-sasiu-robot-cu-4-motoare-40938/​pd/​D4MJTWMBM/​+  ​ 
 +  * **Loop**Se măsoară distanța în fațăDacă este suficient spațiu, robotul merge înainteDacă apare un obstacol, senzorul se rotește în lateral pentru a analiza mediul și a decide direcția de ocolire. 
 +   
 +  * **Funcții auxiliare**:​ 
 +    ​`masurareDistantaLa(unghi)` – rotește senzorul și măsoară distanța 
 +    ​`mergiInainte()`,​ `vireazaStanga()`,​ `vireazaDreapta()` – controlează direcția 
 +    ​`opresteMotoare()` – oprește mișcarea
  
--Placa dezvoltare ESP32-CAM WIFI+Bluetooth,​ cu modul camera OV2640, 2MP +==== Exemplu de comportament ====
-https://​www.emag.ro/​placa-dezvoltare-esp32-cam-wifi-bluetooth-cu-modul-camera-ov2640-2mp-ai934/​pd/​D83Q4HMBM/​+
  
--Limitator de cursa cu lamela arc si rola 10A 250V IP40 +**La pornire:​** 
-https://www.emag.ro/​limitator-de-cursa-cu-lamela-arc-si-rola-10a-250v-ip40-rvk-121/​pd/​DCZK9MMBM/​+  * Buzzer-ul emite un sunet scurt. 
 +  * LCD-ul afișează mesajul „Robot pornit”. 
 +  * Robotul verifică distanța și începe deplasarea.
  
--Suport 4 baterii AA, Cu comutator R6, 6V, Negru, Rosu +**Când apare un obstacol:** 
-https://www.emag.ro/​suport-4-baterii-aa-cu-comutator-r6-6v-negru-rosu-2-a-003/​pd/​D4YGKLMBM/​+  * Robotul se oprește și scanează lateral. 
 +  * Alege direcția ​cu spațiu mai liber. 
 +  * Afișează pe LCD „Evitam obstacol”.
  
-- Motor DC sau stepper pentru mișcarea liftului +==== Mediu de dezvoltare ====
-- 2x servomotoare pentru mișcarea platformei +
-- 3x senzori IR sau ultrasonic pentru detecția locurilor +
-- 3x LED-uri RGB +
-- 1x buzzer +
-- 1x modul FTDI pentru comunicare serială +
-- Butoane reset/​manual +
-- Fire, breadboard sau placă prototip, structură fizică printată 3D sau construită manual+
  
-**Scheme electrice:** +  ​* **Arduino IDE** versiunea 1.8.19 sau 2.x 
-- Se vor include conexiunile către pinii digitali (pentru PWM, LED, butoane), analogici (pentru senzori), cât și conexiunile de alimentare pentru motor și LED-uri.+  * **Placă**: Arduino UNO 
 +  * **Viteza Serial Monitor**: 9600 baud
  
-**Diagrame de semnal:** +Codul este disponibil aicihttps://​github.com/​enache-albertina/​Proiect-PM/​tree/​main
-Semnal PWM pentru controlul motoarelor +
-UART pentru comunicarea serială+
  
-**Simulări:​** +===== Rezultate Obținute =====
-- Se pot face inițial în Tinkercad sau Proteus pentru validarea logicii de bază. +
-</​note>​+
  
-====== Software Design ====== 
 <note tip> <note tip>
-**Mediu ​de dezvoltare:** Arduino IDE+După implementarea completă a hardware-ului și software-ului,​ aspiratorul inteligent a fost testat într-un mediu de simulare reală (pe podea, cu obstacole plasate în față). Sistemul a demonstrat o funcționare stabilă, cu următoarele rezultate pozitive:
  
-**Librării:** +  ​Aspiratorul pornește corect, cu feedback sonor (buzzer) și mesaj inițial pe LCD.  
-- Servo.h (pentru controlul servomotoarelor) +  ​ Poate detecta obstacole aflate în fața lui și decide dacă este necesară o evitare.  
-SoftwareSerial.h (dacă se folosește USART pe pini ne-standard)+  ​Servomotorul reușește să rotească senzorul ultrasonic la unghiurile prestabilite (30°, 90°, 150°).  
 +  ​ ​Direcția de ocolire este selectată corect în funcție de distanțele măsurate lateral. ​ 
 +  ​* ​ Mișcarea înainte și virajele sunt controlate precis de către motoare, fără blocaje sau drift.  
 +  ​* ​ LED-ul se aprinde în timpul evitării obstacolelor pentru semnalizare vizuală 
 +  *  LCD-ul afișează în timp real distanța măsurată și mesajele de stare („Mergem înainte”,​ „Evitam obstacol”)
  
-**Structuri ​și algoritmi:​** +Robotul a fost testat pe trasee simple cu cutii și cărți pe podeaiar comportamentul a fost conform așteptărilor.
-- State machine cu stări precum IDLECĂUTARE, LIFT_UP, PARCARE, RETURN +
-- Timers pentru întârzieri ​și sincronizări +
-- ADC pentru interpretarea senzorilor analogici +
-- PWM pentru controlul precis al motoarelor și LED-urilor +
-- ISR pentru tratarea evenimentelor de tip buton reset+
  
-**Funcții implementate (planificate):​** +Nu s-au observat erori critice de funcționare, iar toate componentele hardware au fost alimentate stabil cu ajutorul plăcii de extensie. 
-`verificaLocuri()` – citește starea senzorilor + https://​youtube.com/​shorts/​8GMhqC1xah8?​si=gH2okfgt58kvYBaDhttps://​youtube.com/​shorts/​8GMhqC1xah8?​si=gH2okfgt58kvYBaD
-- `alegeLocLiber()` – selectează automat un loc disponibil +
-- `mutaLift()` – controlează motorul vertical +
-- `mutaPlatforma()` – poziționează platforma la locul alocat +
-- `comunicareSeriala()` – interpretează comenzile trimise de utilizator+
 </​note>​ </​note>​
  
-====== ​Rezultate Obţinute ​====== +===== Concluzii ​=====
-<note tip> +
-Această secțiune va fi completată ulterior, după finalizarea implementării și testării sistemului. +
-</​note>​+
  
-====== Concluzii ====== +Proiectul *Aspirator Inteligent* ne-a oferit oportunitatea de a aplica cunoștințele teoretice despre sisteme embedded într-un context practic, construit de la zero. Prin combinarea componentelor hardware și programarea logicii de decizie, am reușit să realizăm un sistem funcțional, autonom ​și modular.
-Această secțiune va fi redactată în etapa finală a proiectului,​ pe baza observațiilor și rezultatelor obținute.+
  
-====== Download ====== +Pe parcursul dezvoltării am învățat:
-<note warning>​ +
-Fișierele vor include: +
-- Cod sursă în C/C++ pentru Arduino +
-- Scheme electrice realizate în Fritzing sau alte editoare +
-- Fișier README cu pași de programare și folosire +
-- Script de upload (opțional)+
  
-Namespace: :​pm:​prj2025:​cc:​enache_albertina +  * cum să integrăm senzori, servomotoare și actuatori cu o placă de control Arduino; 
-</​note>​+  * cum să structurăm codul pentru un comportament reactiv în timp real; 
 +  * cum să oferim interacțiune om-mașină prin semnalizare audio-vizuală și afișaj LCD; 
 +  * importanța alimentării corecte și a cablajului curat în sisteme autonome.
  
-====== Jurnal ====== +Proiectul poate fi extins în viitor cu funcții avansate, precum: 
-<note tip> +  * cartografiere a spațiului (SLAM), 
-**Etapa 1 – Documentare ​și planificare **+  detecție ​și clasificare a obiectelor cu ESP32-CAM,​ 
 +  ​integrare cu aplicații mobile pentru control și monitorizare.
  
-**Etapa 2 – Achiziție componente ​și testare individuală **+Realizarea acestui sistem ne-a confirmat faptul că și cu resurse limitate, se pot construi soluții inteligente cu potențial real în domeniul automatizărilor. Aspiratorul nostru reprezintă nu doar un proiect finalizat, ci o bază solidă pentru idei mai complexe ​și aplicabile în viața reală.
  
-**Etapa 3 – Implementare module esențiale ** 
  
-**Etapa 4 – Integrare și testare finală ** 
- 
-**Etapa 5 – Documentație și prezentare ** 
- 
-</​note>​ 
- 
-====== Bibliografie/​Resurse ====== 
-<​note>​ 
-**Bibliografie:​** 
-- ATmega328P Microcontroller Datasheet 
-- L298N Dual H-Bridge Motor Driver Datasheet 
-- Materiale curs/​laborator PM – Universitatea Politehnica București 
-- Articole și publicații privind sisteme embedded și control mecatronic 
- 
-**Resurse Software:** 
-- Arduino.cc – Documentație oficială 
-- OCW PM 2025 – https://​ocw.cs.pub.ro/​courses/​pm 
-- Tutoriale și exemple: randomnerdtutorials.com,​ lastminuteengineers.com 
- 
-**Resurse Hardware:** 
-- Tutoriale senzori IR și ultrasunete 
-- Ghiduri de utilizare pentru servomotoare 
-- Scheme de conectare L298N cu Arduino 
-</​note>​ 
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
  
pm/prj2025/fstancu/albertina.enache.1747760756.txt.gz · Last modified: 2025/05/20 20:05 by florin.stancu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0