Aspirator Inteligent

Introducere

Totul a început cu o întrebare simplă: „Cum ar fi dacă un robot ar putea curăța singur o cameră?” Această idee, inspirată 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 necunoscut, să detecteze obstacolele și să aleagă în timp real calea optimă de ocolire.

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.

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.

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.

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.

Descriere generală

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.

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 16×2 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.

Hardware Design

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:

  • 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.

LCD 16×2 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.

Software Design

Software-ul aspiratorului inteligent este responsabil pentru interpretarea informațiilor primite de la senzori, luarea deciziilor și coordonarea acțiunilor hardware.

Codul a fost scris și testat în Arduino IDE, folosind limbajul C++. Am utilizat următoarele librării:

  • 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

Structura codului

Codul este organizat pe mai multe componente logice:

  • 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:
  1. `masurareDistantaLa(unghi)` – rotește senzorul și măsoară distanța
  2. `mergiInainte()`, `vireazaStanga()`, `vireazaDreapta()` – controlează direcția
  3. `opresteMotoare()` – oprește mișcarea

Exemplu de comportament

La pornire:

  • Buzzer-ul emite un sunet scurt.
  • LCD-ul afișează mesajul „Robot pornit”.
  • Robotul verifică distanța și începe deplasarea.

Când apare un obstacol:

  • Robotul se oprește și scanează lateral.
  • Alege direcția cu spațiu mai liber.
  • Afișează pe LCD „Evitam obstacol”.

Mediu de dezvoltare

  • Arduino IDE versiunea 1.8.19 sau 2.x
  • Placă: Arduino UNO
  • Viteza Serial Monitor: 9600 baud

Codul este disponibil aici: https://github.com/enache-albertina/Proiect-PM/tree/main

Rezultate Obținute

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

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ța reală.

pm/prj2025/fstancu/albertina.enache.txt · Last modified: 2025/05/28 12:44 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