Differences

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

Link to this comparison view

pm:prj2025:fstancu:albertina.enache [2025/05/04 21:52]
albertina.enache created
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 ====== 
  
 +====== 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 utilizatoruluiScopul 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: +Ideea nu a 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 case, birouri sau spații industriale
-**Modul Control (ATmega328P):​** gestionează logica aplicației, controlul motoarelor ​și citirea senzorilor. + 
-**Modul Mișcare (Motoare DC și servo):** controlează liftul vertical ​și mutarea platformei ​în locul liber+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 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+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.
-**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>​ </​note>​
  
-====== ​Hardware Design ​====== +===== Descriere generală ​=====
-<note tip> +
-**Listă de piese:** +
-- ATmega328P / Arduino Uno +
-- Driver motor L298N +
-- Motor DC sau stepper pentru mișcarea liftului +
-- 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:** +{{:pm:​prj2025:​fstancu:​imagine_pm_componente.jpg?​500|}} 
-- Se vor include conexiunile către pinii digitali (pentru PWMLEDbutoane)analogici (pentru senzori)cât și conexiunile ​de alimentare ​pentru ​motor și LED-uri.+<note tip> După definirea ideii și stabilirea scopuluiam 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 UNOcare acționează ca un „creier” al robotuluipreluâ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.
  
-**Diagrame ​de semnal:** +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. 
-- Semnal PWM pentru controlul motoarelor + 
-UART pentru comunicarea serială+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/buzzer. Această comunicare între hardware și software transformă un set de componente simple într-un sistem inteligent, capabil să se adapteze mediului său.
  
-**Simulări:​** 
-- Se pot face inițial în Tinkercad sau Proteus pentru validarea logicii de bază. 
 </​note>​ </​note>​
  
-====== Software ​Design ======+===== Hardware ​Design ===== 
 <note tip> <note tip>
-**Mediu ​de dezvoltare:** Arduino IDE+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:
  
-**Librării:** +  ​* **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 
-Servo.h (pentru ​controlul servomotoarelor) +   
-SoftwareSerial.h (dacă se folosește USART pe pini ne-standard)+  ​* **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–IN4venite de la Arduino pentru a controla motoarele.
  
-**Structuri și algoritmi:** +   
-- State machine cu stări precum IDLE, CĂUTARE, LIFT_UP, PARCARE, RETURN + **LCD 16x2 I2C** – afișează distanța ​și mesajele de stare. Este conectat prin SDA (A4) și SCL (A5). 
-- Timers pentru întârzieri ​și sincronizări +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 
-ADC pentru ​interpretarea senzorilor analogici +   
-PWM pentru ​controlul precis al motoarelor ​și LED-urilor + ​**LED ​și Buzzer** – oferă feedback vizual și auditiv:  
-ISR pentru tratarea evenimentelor de tip buton reset+    * LED-ul se aprinde în timpul evitării obstacolelor. 
 +    * Buzzer-ul sună o singură dată la pornire.
  
-**Funcții implementate (planificate):​** +  ​* **Alimentare** – un pachet de baterii ​(612Vconectat 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
-- `verificaLocuri()` ​– citește starea senzorilor +
-- `alegeLocLiber()` – selectează automat ​un loc disponibil +
-- `mutaLift()` – controlează motorul vertical +
-- `mutaPlatforma()` – poziționează platforma la locul alocat +
-- `comunicareSeriala()` – interpretează comenzile trimise de utilizator +
-</note>+
  
-====== Rezultate Obţinute ====== 
-<note tip> 
-Această secțiune va fi completată ulterior, după finalizarea implementării și testării sistemului. 
 </​note>​ </​note>​
  
-====== Concluzii ====== +{{:​pm:​prj2025:​fstancu:​schema123pm.jpg?​300|}} 
-Această secțiune va fi redactată în etapa finală a proiectului,​ pe baza observațiilor și rezultatelor obținute.+{{:​pm:​prj2025:​fstancu:​masinutacurobotelpm.jpg?​200|}} 
 +{{:​pm:​prj2025:​fstancu:​masinutapm.jpg?200|}}
  
-====== ​Download ​====== +===== Software Design ​=====
-<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 +Software-ul aspiratorului inteligent este responsabil pentru interpretarea informațiilor primite de la senzori, luarea deciziilor și coordonarea acțiunilor hardware.
-</​note>​+
  
-====== Jurnal ====== +Codul a fost scris și testat în **Arduino IDE**, folosind limbajul C++. Am utilizat următoarele librării:
-<note tip> +
-**Etapa 1 – Documentare ​și planificare ​**+
  
-**Etapa 2 – Achiziție componente și testare individuală ​**+  * **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
  
-**Etapa 3 – Implementare module esențiale **+==== Structura codului ====
  
-**Etapa 4 – Integrare și testare finală **+Codul este organizat pe mai multe componente logice:
  
-**Etapa 5 – Documentație și prezentare ​**+  ​* **Inițializare**: Se configurează pinii pentru motoare, senzori, servo, buzzer, LED și LCD, și se setează servomotorul în poziția centrală (90°). 
 +   
 +  ​* **Loop**: Se măsoară distanța în față. Dacă este suficient spațiu, robotul merge înainte. Dacă 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
  
-</​note>​+==== Exemplu de comportament ====
  
-====== Bibliografie/​Resurse ====== +**La pornire:** 
-<​note>​ +  * Buzzer-ul emite un sunet scurt. 
-**Bibliografie:** +  * LCD-ul afișează mesajul „Robot pornit”. 
-ATmega328P Microcontroller Datasheet +  * Robotul verifică distanțși începe deplasarea.
-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:** +**Când apare un obstacol:** 
-- Arduino.cc – Documentație oficială +  * Robotul se oprește și scanează lateral. 
-- OCW PM 2025 – https://​ocw.cs.pub.ro/​courses/​pm +  * Alege direcția cu spațiu mai liber
-- Tutoriale ​și exemple: randomnerdtutorials.com,​ lastminuteengineers.com+  * Afișează pe LCD „Evitam obstacol”.
  
-**Resurse Hardware:** +==== Mediu de dezvoltare ==== 
-Tutoriale senzori IR și ultrasunete + 
-Ghiduri ​de utilizare ​pentru ​servomotoare +  * **Arduino IDE** versiunea 1.8.19 sau 2.x 
-Scheme ​de conectare L298N cu Arduino+  * **Placă**: Arduino UNO 
 +  ​* **Viteza Serial Monitor**: 9600 baud 
 + 
 +Codul este disponibil aici: https://​github.com/​enache-albertina/​Proiect-PM/​tree/​main 
 + 
 +===== Rezultate Obținute ===== 
 + 
 +<note tip> 
 +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: 
 + 
 +  * Aspiratorul pornește corect, cu feedback sonor (buzzer) și mesaj inițial pe LCD.  
 +  *  Poate detecta obstacole aflate în fața lui și decide dacă este necesară o evitare.  
 +  * 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”).  
 + 
 +Robotul a fost testat pe trasee simple ​cu cutii și cărți pe podea, iar comportamentul a fost conform așteptărilor. 
 + 
 +Nu s-au observat erori critice de funcționare,​ iar toate componentele hardware au fost alimentate stabil cu ajutorul plăcii de extensie. 
 + ​https://​youtube.com/​shorts/​8GMhqC1xah8?​si=gH2okfgt58kvYBaDhttps://​youtube.com/​shorts/​8GMhqC1xah8?​si=gH2okfgt58kvYBaD
 </​note>​ </​note>​
  
-<​html><​a class="media mediafile mf_pdf"​ href="?do=export_pdf">​Export to PDF</a></​html>​+===== 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. 
 + 
 +Pe parcursul dezvoltării am învățat:​ 
 + 
 +  * cum să integrăm senzori, servomotoare și actuatori cu o placă de control Arduino; 
 +  * 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. 
 + 
 +Proiectul poate fi extins în viitor cu funcții avansate, precum: 
 +  * cartografiere a spațiului (SLAM), 
 +  * detecție și clasificare a obiectelor cu ESP32-CAM,​ 
 +  * integrare cu aplicații mobile pentru control și monitorizare. 
 + 
 +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țreală. 
 + 
 + 
  
  
pm/prj2025/fstancu/albertina.enache.1746384722.txt.gz · Last modified: 2025/05/04 21:52 by albertina.enache
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