This is an old revision of the document!


Smart Vacuum cleaner

Autor: Maholea Elena-Alexia
Grupa: 333CD
Github: https://github.com/alexia-maholea/Smart-Vacuum

Introducere

Proiectul intitulat „Vacuum Cleaner” reprezintă realizarea unui robot autonom de curățenie, construit cu ajutorul unui microcontroler Arduino Uno și mai mulți senzori. Robotul este capabil să se deplaseze pe o suprafață plană, să evite obstacolele cu ajutorul unui senzor ultrasonic și să aspire particule mici de pe jos printr-un ventilator alimentat separat.

Scopul principal al proiectului este dezvoltarea unui sistem funcțional, accesibil ca preț și ușor de reprodus, care să automatizeze procesul de curățenie pentru spații mici sau greu accesibile. Alegerea acestui proiect a fost motivată de dorința de a crea un dispozitiv util, care să combine mai multe concepte și tehnologii pentru a rezolva o problemă reală.

Ideea a pornit de la observația că majoritatea proiectelor cu roboți mobili se limitează la evitarea obstacolelor sau la linii de urmărire, fără o funcționalitate concretă care să simuleze o sarcină reală. Prin adăugarea unui ventilator și a unui senzor de vibrații, proiectul devine mai mult decât un simplu robot de test – devine un prototip de dispozitiv util, care simulează un aspirator portabil și inteligent.

Acest robot poate fi util pentru oricine vrea să înțeleagă cum funcționează dispozitivele care fac viața mai ușoară, cum ar fi aspiratoarele robotizate sau alte gadgeturi inteligente. Pentru mine, proiectul a fost o oportunitate de a pune în practică ce am învățat la curs, să înțeleg mai bine cum se integrează diverse piese și cum pot să creez un dispozitiv care să îndeplinească o sarcină reală. Cred că experiența aceasta mă va ajuta în viitor, mai ales dacă voi dori să lucrez la proiecte care îmbunătățesc viața de zi cu zi sau în domeniul tehnologiilor inovative.

Descriere generală

Acest sistem permite construirea unui robot de curățat autonom, care utilizează un Arduino UNO pentru a controla mai multe componente, inclusiv motoare, senzori și un ventilator pentru a aspira particulele de pe suprafețe. Robotul este echipat cu senzori de distanță pentru a detecta obstacolele și a naviga eficient prin încăpere, iar un senzor de vibrații și un LED sunt folosite pentru a semnaliza atunci când robotul trage obiecte mai mari sau mai solide de pe podea.

 Diagrama Smart Vacuum Cleaner

  • Arduino UNO reprezintă unitatea centrală de control, gestionând interacțiunea între senzorii de distanță, motorul pentru mișcare, ventilatorul pentru aspirație și senzorul de vibrații. Senzorul ultrasonic măsoară distanța până la obiecte și ajută robotul să evite coliziunile, în timp ce motorul DC cu ajutorul driverului L298N permite mișcarea acestuia în toate direcțiile.
  • Ventilatorul acționează pentru a colecta praful și resturile de mici dimensiuni, iar senzorul de vibrații, în combinație cu un LED de semnalizare, indică atunci când robotul a început să aspire un obiect mai mare sau mai greu, precum un obiect solid sau o piesă de mobilier mică.

Acest robot de curățat autonom este util pentru a explora concepte de automatizare și control al motoarelor, interacțiunea cu senzori și gestionarea unui sistem de operare autonom, fiind o metodă practică și interesantă de a învăța cum funcționează aceste tehnologii.

Hardware Design

Componente Model/Cod Cantitate
Microcontroller Arduino UNO Rev3 1
Senzor Ultrasonic HC-SR04 1
Driver pentru control motoare L298N Motor Driver Module 1
Ventilator 5V DC Fan 1
Motor pentru mișcare Motor DC 3V-6V cu ax de 6mm 2
Baterii Baterie Li-Ion 18650 3.7V 2
Suport pentru baterii - 1
Fire jumper - -
Senzor de vibrații SW-420 1
LED LED 5mm alb (pentru semnalizare) 1

 Diagrama Smart Vacuum Cleaner

• Descriere detaliată a componentelor hardware

Microcontroller – Arduino UNO Rev3

Placa Arduino UNO este centrul de control al întregului sistem. Ea gestionează senzorii, motoarele și activarea ventilatorului și LED-ului.

Ventilator 12V (cu control prin MOSFET)

Ventilatorul este alimentat la 12V și este activat printr-un MOSFET conectat la un pin digital al Arduino-ului.

Conectarea pinilor:

Pin Ventilator Conectare
V+ 12V (prin MOSFET)
GND GND comun
Control MOSFET (Gate) D10 Arduino

Senzor ultrasonic HC-SR04

Folosit pentru detecția obstacolelor din față.

Conectarea pinilor:

Pin HC-SR04 Pin Arduino
VCC 5V
GND GND
Trig D12
Echo D13

Driver motoare L298N + motoare DC

Controlează două motoare DC pentru deplasarea robotului.

Conectarea pinilor:

Pin L298N Pin Arduino
IN1 D2
IN2 D3
IN3 D4
IN4 D5
ENA Jumper ON (activ permanent)
ENB Jumper ON (activ permanent)
+12V P+ (de la BMS)
GND P− comun cu Arduino și MOSFET

Senzor piezoelectric de vibrații

Detectează obiecte solide aspirate de ventilator. Ieșirea este analogică.

Conectarea pinilor:

Pin Senzor Piezo Pin Arduino
S (semnal) A2
+ (VCC) 5V
– (GND) GND

LED semnalizare

Se aprinde când senzorul detectează vibrații puternice (ex: hârtie sau obiect).

Conectarea pinilor:

Pin LED Pin Arduino
+ (anod) A1
– (catod) GND (prin rezistor)

Comutator (DIP switch)

Pornește/oprește robotul printr-un pin analogic configurat cu INPUT_PULLUP.

Conectarea pinilor:

Pin Switch Pin Arduino
L1 A0
L2 GND

• Implementare hardware - Milestone 1

 Milestone 1 Hardware Smart Vacuum Cleaner

• Implementare hardware - Milestone 2

 Milestone 2 Hardware Smart Vacuum Cleaner

Software Design

• Descrierea fluxului aplicației

1. Inițializare

Se configurează toți pinii: motoare, senzor ultrasonic, ventilator, LED, senzor de vibrații și comutatorul.

Se afișează un mesaj în consola serială că robotul așteaptă pornirea.

2. Activare robot

Când comutatorul este apăsat (LOW cu INPUT_PULLUP), se activează logica principală:

Pornește ventilatorul (pin D10)

Se citește senzorul de vibrații (A2)

Dacă se detectează o valoare peste prag, LED-ul (A1) se aprinde pentru 1.5 secunde

Se trimite un impuls cu Trig (D12) și se citește ecoul cu Echo (D13)

Dacă nu sunt obstacole (distanța > 25cm): robotul merge înainte (IN1–IN4: D2–D5)

Dacă este obstacol: robotul se rotește pentru a ocoli

4. Dezactivare robot

Când comutatorul este dezactivat (HIGH):

Se opresc motoarele, LED-ul și ventilatorul

Se afișează în consolă „Switch OFF”

• Mediu de dezvoltare

Arduino IDE

Platforma hardware: Arduino UNO R3

• Librării și funcții utilizate

pinMode(), digitalWrite(), analogRead(), analogWrite() – pentru controlul părților hardware

pulseIn() – pentru măsurarea impulsurilor de la senzorul ultrasonic

millis() – pentru temporizarea aprinderii LED-ului

Serial.begin(), Serial.println() – pentru mesaje de debugging în consolă

• Mediu de dezvoltare

  • Arduino IDE
  • Platforma hardware: Arduino UNO R3

• Librării și surse third-party

  • LiquidCrystal_I2C v1.1.2 by Frank de Brabander – bibliotecă pentru controlul LCD-ului 16×2 prin interfață I2C
  • tone() – funcție Arduino standard pentru generarea semnalului PWM pentru buzzer pasiv
  • millis(), delay(), attachInterrupt() – funcții standard Arduino pentru controlul timpului și întreruperilor

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

Rezultate Obţinute

Proiectul demonstrează cu succes integrarea mai multor componente hardware și controlul acestora într-un mod coerent și funcțional. Robotul poate fi extins cu funcționalități suplimentare precum mapare, colectare praf reală sau control prin aplicații mobile.

Pe lângă realizarea unui robot funcțional, proiectul a consolidat cunoștințele despre integrarea componentelor electronice și controlul lor logic. A reprezentat un exemplu practic de aplicare a noțiunilor teoretice studiate la curs.

Smart Vacuum Cleaner DEMO

Concluzii

Download

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Resurse Software

Resurse Hardware

pm/prj2025/iotelea/elena.maholea.1748282619.txt.gz · Last modified: 2025/05/26 21:03 by elena.maholea
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