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 21:12]
elena.maholea
pm:prj2025:iotelea:elena.maholea [2025/05/28 03:11] (current)
elena.maholea
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 }}
  
  
Line 81: Line 81:
 | IN2       | D3          | | IN2       | D3          |
 | IN3       | D4          | | IN3       | D4          |
-| IN4       ​| ​D5          | +| IN4       ​| ​D7          | 
-| ENA       ​| ​Jumper ON (activ permanent) ​+| ENA       ​| ​D5 
-| ENB       ​| ​Jumper ON (activ permanent) ​|+| ENB       ​| ​D6 |
 | +12V      | P+ (de la BMS) | | +12V      | P+ (de la BMS) |
 | GND       | P− comun cu Arduino și MOSFET | | GND       | P− comun cu Arduino și MOSFET |
Line 123: Line 123:
  
 {{ :​pm:​prj2025:​iotelea:​pm2.jpeg?​600 | Milestone 2 Hardware Smart Vacuum Cleaner }} {{ :​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 }}
 +
  
  
Line 131: Line 136:
 === 1. Inițializare === === 1. Inițializare ===
  
-  * Se configurează toți pinii: motoare, senzor ultrasonic, ventilator, LED, senzor de vibrații și comutatorul.+  * 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.   * Se afișează un mesaj în consola serială că robotul așteaptă pornirea.
Line 137: Line 142:
 === 2. Activare robot === === 2. Activare robot ===
  
-  * Când comutatorul este apăsat (LOW cu INPUT_PULLUP), ​se activează logica principală:+Când comutatorul este apăsat (valoare ​LOW deoarece este configurat ​cu INPUT_PULLUP), ​robotul intră în modul activ:
  
   * Pornește ventilatorul (pin D10)   * Pornește ventilatorul (pin D10)
Line 147: Line 152:
 === 3. Navigare === === 3. Navigare ===
  
-  * Se trimite un impuls cu Trig (D12) și se citește ecoul cu Echo (D13)+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:
  
-  * Dacă nu sunt obstacole (distanța > 25cm): robotul ​merge înainte ​(IN1–IN4: D2–D5)+  * Robotul ​merge înainte.
  
-  * Dacă este obstacol: ​robotul ​se rotește ​pentru a ocoli+  * 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 === === 4. Dezactivare robot ===
  
-  * Când comutatorul este dezactivat (HIGH):+Când comutatorul este dezactivat (HIGH):
  
   * Se opresc motoarele, LED-ul și ventilatorul   * Se opresc motoarele, LED-ul și ventilatorul
Line 169: Line 184:
 ==== • Librării și funcții utilizate ==== ==== • Librării și funcții utilizate ====
  
-  * pinMode(), digitalWrite(),​ analogRead(),​ analogWrite() – pentru controlul părților hardware+  * pinMode(), digitalWrite(),​ analogRead(),​ analogWrite() – pentru ​configurarea și controlul părților hardware: motoare, LED, senzor de vibrații, ventilator.
  
-  * pulseIn() – pentru măsurarea impulsurilor de la senzorul ultrasonic+  * 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+  * 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).
  
-  * Serial.begin(),​ Serial.println() – pentru mesaje de debugging în consolă 
  
 ==== • Mediu de dezvoltare ==== ==== • Mediu de dezvoltare ====
Line 188: Line 208:
   * `Serial.begin()`,​ `Serial.println()` – pentru mesaje de stare și debugging în consolă   * `Serial.begin()`,​ `Serial.println()` – pentru mesaje de stare și debugging în consolă
   * `pinMode()`,​ `digitalWrite()`,​ `analogRead()` – pentru configurarea și controlul părților hardware   * `pinMode()`,​ `digitalWrite()`,​ `analogRead()` – pentru configurarea și controlul părților hardware
- 
- 
-<note tip> 
-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 
-</​note>​ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 204: Line 215:
 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. 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/​drive/u/2/my-drive ​| Smart Vacuum Cleaner DEMO]]+[[https://​drive.google.com/​file/d/1Wte0fMdgGPsbugWVTxkHbJ1yJlkrOVbb/view?​usp=sharing ​| Smart Vacuum Cleaner DEMO]]
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+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.
  
-<note warning>​ +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**.
-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**. +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ă**.
-</​note>​+
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +^ Data ^ Activitate desfășurată ^ 
-Puteți avea și o secțiune de jurnal ​în care să poată urmări asistentul de proiect progresul proiectului+| 08.05.2025 | Alegerea temei proiectului – „Smart Vacuum Cleaner” și definirea funcționalităților de bază. | 
-</​note>​+| 10.05.2025 | Comandarea componentelor electronice:​ Arduino UNO, senzor ultrasonic, motoare, driver L298N, senzor vibrații, ventilator, MOSFET, LED-uri ș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 ===== ===== Bibliografie/​Resurse =====
Line 249: Line 268:
   * [[https://​components101.com/​transistor/​irf520-mosfet|IRF520 MOSFET Datasheet]] – pentru controlul ventilatorului de 12V.   * [[https://​components101.com/​transistor/​irf520-mosfet|IRF520 MOSFET Datasheet]] – pentru controlul ventilatorului de 12V.
  
-  * [[https://​components101.com/​sensors/​sw-420-vibration-sensor-module|SW-420 ​Vibration Sensor Datasheet]] – documentație pentru senzorul piezoelectric de vibrații.+  * [[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).   * [[https://​components101.com/​resistor|Resistor – Components101]] – informații despre utilizarea rezistorilor (ex: cu LED).
  
  
pm/prj2025/iotelea/elena.maholea.1748283127.txt.gz · Last modified: 2025/05/26 21:12 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