Differences

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

Link to this comparison view

pm:prj2025:iotelea:elena.maholea [2025/05/26 20:22]
elena.maholea [Smart Vacuum cleaner]
pm:prj2025:iotelea:elena.maholea [2025/05/28 03:11] (current)
elena.maholea
Line 4: Line 4:
 Autor: **Maholea Elena-Alexia** ​ \\ Autor: **Maholea Elena-Alexia** ​ \\
 Grupa: **333CD** \\ Grupa: **333CD** \\
-Github: https://​github.com/​alexia-maholea/​Smart-Vacuum/​tree/​main ​\\+Github: https://​github.com/​alexia-maholea/​Smart-Vacuum \\
 ===== Introducere ==== ===== Introducere ====
  
Line 20: Line 20:
  
  
-{{ :​pm:​prj2025:​iotelea:​diagrama_alexiam.png?400 | Diagrama Smart Vacuum Cleaner }}+{{ :​pm:​prj2025:​iotelea:​diagrama_alexiamah.png?400 | Diagrama Smart Vacuum Cleaner }}
  
  
Line 37: Line 37:
 | Ventilator ​         | 5V DC Fan                                          | 1         | | Ventilator ​         | 5V DC Fan                                          | 1         |
 | Motor pentru mișcare ​        | Motor DC 3V-6V cu ax de 6mm                         | 2         | | Motor pentru mișcare ​        | Motor DC 3V-6V cu ax de 6mm                         | 2         |
-Baterii ​          | Baterie ​Li-Ion 18650 3.7V                          ​        | +Baterie ​          | Baterie ​9V         | 
-| Suport pentru ​baterii ​| -                    | 1         |+| Suport pentru ​baterie ​| -                    | 1         |
 | Fire jumper ​        | -   | -         | | Fire jumper ​        | -   | -         |
-| Senzor de vibrații ​    ​| ​SW-420 ​                          | 1         | +| Senzor de vibrații ​    ​| ​Senzor de vibratii ceramic ​                          | 1         | 
-| LED                    | LED 5mm alb (pentru semnalizare) ​                  | 1         |+| LED                    | LED 5mm albastru ​(pentru semnalizare) ​                  | 1         |
  
-{{ :​pm:​prj2025:​iotelea:​alexiam_pm2.png?800 | Diagrama ​Smart Vacuum Cleaner }}+{{ :​pm:​prj2025:​iotelea:​schematicfinal2.png?800 | Schematic ​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       | D7          | 
 +| ENA       | D5 | 
 +| ENB       | D6 | 
 +| +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 ==== 
 + 
 +{{ :​pm:​prj2025:​iotelea:​alexiamahpm1.jpeg?​600 | Milestone 1 Hardware Smart Vacuum Cleaner }} 
 + 
 +==== • Implementare hardware - Milestone 2   ​==== 
 + 
 +{{ :​pm:​prj2025:​iotelea:​pm2.jpeg?​600 | Milestone 2 Hardware Smart Vacuum Cleaner }} 
 + 
 +==== • Implementare hardware - Finală ==== 
 + 
 +{{ :​pm:​prj2025:​iotelea:​maholea_finalhw.jpeg?​600 | Final Hardware Smart Vacuum Cleaner }} 
 + 
 + 
 + 
 +===== Software Design ===== 
 + 
 +==== • Descrierea fluxului aplicației ==== 
 + 
 +=== 1. Inițializare === 
 + 
 +  * Se configurează toți pinii: direcție și viteză pentru motoare (IN1–IN4 și ENA/ENB), senzor ultrasonic (Trig/​Echo),​ ventilator (MOSFET), LED de semnalizare,​ senzor de vibrații și comutatorul (switch). 
 + 
 +  * Se afișează un mesaj în consola serială că robotul așteaptă pornirea. 
 + 
 +=== 2. Activare robot === 
 + 
 +Când comutatorul este apăsat (valoare LOW deoarece este configurat cu INPUT_PULLUP),​ robotul intră în modul activ: 
 + 
 +  * 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 
 + 
 +=== 3. Navigare === 
 + 
 +Se trimite un impuls cu Trig (D12) și se citește ecoul cu Echo (D13). Dacă distanța detectată este mai mare de 20 cm: 
 + 
 +  * Robotul merge înainte. 
 + 
 +  * Se controlează ambele motoare în sens înainte. 
 + 
 +  * Se setează o viteză mică (analogWrite pe enA și enB, ex: 100). 
 + 
 +Dacă este detectat un obstacol: 
 + 
 +      * Robotul se rotește pe loc (un motor înainte, unul înapoi). 
 + 
 +      * Viteza de rotație este setată mai mare (analogWrite ~150). 
 + 
 +      * După rotație, revine în bucla principală. 
 + 
 +=== 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 configurarea și controlul părților hardware: motoare, LED, senzor de vibrații, ventilator. 
 + 
 +  * pulseIn() – pentru măsurarea duratei impulsurilor de la senzorul ultrasonic HC-SR04, folosită în calculul distanței față de obstacole. 
 + 
 +  * millis() – pentru temporizarea aprinderii LED-ului fără blocarea execuției (spre deosebire de delay()). 
 + 
 +  * Serial.begin(),​ Serial.print(),​ Serial.println() – pentru inițializarea și trimiterea de mesaje în consola serială, utile pentru debugging și afișarea distanței și vibrațiilor detectate. 
 + 
 +  * delayMicroseconds() – pentru generarea impulsurilor precise necesare funcționării corecte a senzorului ultrasonic. 
 + 
 +  * delay() – folosit în timpul întoarcerii robotului pentru a permite o rotație controlată (ex: delay(1100) în cazul obstacolelor). 
 + 
 + 
 +==== • Mediu de dezvoltare ==== 
 + 
 +  * Arduino IDE 
 +  * Platforma hardware: Arduino UNO R3 
 + 
 +==== • Librării și surse third-party ==== 
 + 
 +  * `millis()`, `delay()` – funcții standard Arduino pentru temporizare fără blocaj 
 +  * `pulseIn()` – pentru măsurarea timpului de ecou de la senzorul ultrasonic HC-SR04 
 +  * `Serial.begin()`,​ `Serial.println()` – pentru mesaje de stare și debugging în consolă 
 +  * `pinMode()`,​ `digitalWrite()`,​ `analogRead()` – pentru configurarea și controlul părților hardware 
 + 
 +===== 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. 
 + 
 +[[https://​drive.google.com/​file/​d/​1Wte0fMdgGPsbugWVTxkHbJ1yJlkrOVbb/​view?​usp=sharing | Smart Vacuum Cleaner DEMO]] 
 + 
 +===== Concluzii ===== 
 + 
 +Proiectul **Smart Vacuum Cleaner** a reprezentat o experiență practică valoroasă în integrarea componentelor electronice și programarea lor cu ajutorul platformei Arduino. Am reușit să construiesc un **robot funcțional** care poate **detecta obstacole**,​ **se deplasează autonom** și **semnalează aspirarea obiectelor** printr-un LED de avertizare. 
 + 
 +Implementarea controlului vitezei motoarelor prin pinii **PWM** a îmbunătățit controlul mișcării, iar integrarea **senzorului de vibrații** a adăugat un plus de funcționalitate practică. Am înțeles mai bine importanța gestionării resurselor hardware și a debug-ului serial în **proiecte embedded**. 
 + 
 +Proiectul poate fi extins în viitor prin adăugarea unui **sistem de mapare a spațiului**,​ **control prin aplicație mobilă** sau chiar utilizarea unor senzori suplimentari pentru o **navigație mai inteligentă**. 
 + 
 +===== Jurnal ===== 
 + 
 +^ Data ^ Activitate desfășurată ^ 
 +| 08.05.2025 | Alegerea temei proiectului – „Smart Vacuum Cleaner” și definirea funcționalităților de bază. | 
 +| 10.05.2025 | Comandarea componentelor electronice:​ Arduino UNO, senzor ultrasonic, motoare, driver L298N, senzor vibrații, ventilator, MOSFET, LED-uri și fire jumper. | 
 +| 13.05.2025 | Schițarea diagramei hardware și testarea separată a senzorului ultrasonic și a senzorului de vibrații. | 
 +| 15.05.2025 | Montarea pe breadboard a componentelor principale și testarea individuală a motoarelor DC cu driverul L298N. | 
 +| 17.05.2025 | Configurarea MOSFET-ului pentru controlul ventilatorului și testarea ventilatorului la 12V. | 
 +| 20.05.2025 | Implementarea funcției de evitare obstacole și a logicii pentru aprinderea LED-ului în caz de vibrații. | 
 +| 22.05.2025 | Integrarea tuturor modulelor într-un singur sketch și optimizarea vitezei motoarelor cu PWM. | 
 +| 25.05.2025 | Realizarea primei versiuni de montaj final – fixarea componentelor pe suport, cablare permanentă (lipire). | 
 +| 26.05.2025 | Testare finală în condiții reale – verificarea comportamentului robotului pe suprafață plană și în jurul obstacolelor. | 
 + 
 +===== Arhivă ===== 
 + 
 +Pentru descărcare:​ {{:​pm:​prj2025:​iotelea:​alexia-maholea_333cd_smart-vacuum2.zip|}} 
 + 
 +===== Bibliografie/​Resurse ===== 
 + 
 +=== Resurse Software === 
 + 
 +  * [[https://​www.arduino.cc/​en/​software|Arduino IDE]] – mediu de dezvoltare utilizat pentru scrierea și încărcarea codului pe placa Arduino. 
 + 
 +  * [[https://​www.arduino.cc/​reference/​en/​|Arduino Reference (Official)]] – documentația completă a funcțiilor și comenzilor din Arduino C++. 
 + 
 +  * [[https://​www.arduino.cc/​reference/​en/​language/​functions/​time/​millis/​|Arduino millis() Function]] – pentru măsurarea timpului fără a bloca execuția cu delay(). 
 + 
 +  * [[https://​www.arduino.cc/​reference/​en/​language/​functions/​advanced-io/​pulsein/​|pulseIn() – Arduino Reference]] – funcție utilizată pentru citirea duratei unui impuls de la senzorul ultrasonic. 
 + 
 +  * [[https://​www.arduino.cc/​reference/​en/​language/​functions/​digital-io/​digitalwrite/​|digitalWrite() – Arduino Reference]] – pentru comenzi logice către pinii digitali. 
 + 
 +=== Resurse Hardware === 
 + 
 +  * [[https://​content.arduino.cc/​assets/​UNO-TH_Rev3e_sch.pdf|Arduino UNO Rev3 Schematic]] – schema oficială a plăcii Arduino UNO. 
 + 
 +  * [[https://​components101.com/​ultrasonic-sensor-working-pinout-datasheet|HC-SR04 Ultrasonic Sensor Datasheet]] – fișa tehnică a senzorului de distanță. 
 + 
 +  * [[https://​components101.com/​motor-driver/​l298n-motor-driver|L298N Motor Driver Datasheet]] – informații despre modulul de control pentru motoare. 
 + 
 +  * [[https://​components101.com/​misc/​switch|Switch Basics – Components101]] – explicații despre comutatoare (DIP switch). 
 + 
 +  * [[https://​components101.com/​transistor/​irf520-mosfet|IRF520 MOSFET Datasheet]] – pentru controlul ventilatorului de 12V. 
 + 
 +  * [[https://​components101.com/​sensors/​piezoelectric-sensor|Piezoelectric Vibration Sensor Datasheet]] – documentație pentru senzorul piezoelectric de vibrații. 
 + 
 +  * [[https://​components101.com/​resistor|Resistor – Components101]] – informații despre utilizarea rezistorilor (ex: cu LED).
  
  
pm/prj2025/iotelea/elena.maholea.1748280179.txt.gz · Last modified: 2025/05/26 20:22 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