This is an old revision of the document!
Ti-a fost vreodata lene sa deschizi cosul de gunoi si ai vrut sa se deschida singur? Nu? Minti, cu totii vrem asta. De aceea am venit cu ideea sa fac un cos de gunoi inteligent ce se deschide automat atunci cand te apropii cu mana de el si contorizeaza cate lucruri ai aruncat in el, perfect pentru a stii cat de plin este cosul.
Ideea a pornit de la faptul ca in baie am un cos de gunoi ce normal ar trebui sa se deschida prin apasarea cu piciorul pe o placa de presiune, dar mecanismul nu mai functioneaza.
Cum functioneaza exact? Folosind un senzor ultrasonic si un servo motor, capacul cosului s-ar deschide automat, iar folosind un display LCD am contoriza cate obiecte au fost aruncate in cos. Scopul este de a crea un dispozitiv practic si igienic, ce ar fi util pentru oricine.
Sistemul este compus din urmatoarele:
Module hardware:
Module software: (prone to changes)
Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html
| Componenta | Model / Specificatii | Cantitate |
|---|---|---|
| Microcontroller | ATmega328P-XMINI | 1 |
| Breadboard | 400 puncte | 1 |
| Fire tata-tata | 20cm, dupont | ~8 |
| Fire mama-tata | 20cm, dupont | ~8 |
| Rezistenta | 220Ω | 4 |
| Senzor ultrasonic | HC-SR04P | 1 |
| LED rosu | 5mm, 3.5V | 2 |
| LED verde | 5mm, 3.5V | 2 |
| Servo motor | SG90, 5V | 1 |
| Buzzer activ | 5V, 2300Hz | 1 |
| Display LCD + modul I2C | LCD 1602, interfata I2C | 1 |
Componente folosite si Rolul lor
| Componenta | Rol in proiect |
|---|---|
| Microcontroller ATmega328P-XMINI | Creierul sistemului. Ruleaza codul in C pur, citeste senzorul prin pooling si controleaza actuatorii (timere, registre). |
| Senzor ultrasonic HC-SR04P | Modulul de input. Masoara distanta pana la mana utilizatorului prin emiterea si receptia de unde sonore. |
| Servo motor SG90 | Actuatorul principal. Actioneaza mecanic tija (push-rod) pentru a ridica si cobori capacul cosului. |
| Display LCD 1602 + modul I2C | Interfata vizuala. Afiseaza mesaje de stare (“Apropie mana”, “Capac Deschis!”) si contorul de utilizari. |
| Buzzer activ | Feedback sonor. Emite un semnal acustic scurt (un “beep”) in momentul in care capacul se deschide. |
| LED-uri rosii (x2 in paralel) | Indicator vizual de stare activa. Sunt aprinse doar cand capacul este deschis. |
| LED-uri verzi (x2 in paralel) | Indicator vizual de stare de veghe. Sunt aprinse cand cosul este inchis si gata de utilizare. |
| Rezistente 220 Ohm / 1kOhm | Protectie. Limiteaza curentul care trece prin LED-uri pentru a preveni arderea lor sau a pinilor MCU. |
| Breadboard si Fire Dupont | Infrastructura hardware. Permit interconectarea rapida si sigura a componentelor fara lipire. |
Pinii folositi
| Pin ATmega328P | Eticheta | Componenta | Rol |
|---|---|---|---|
| PD2 | BUZZER | Buzzer Activ | Iesire digitala - Controlul on/off al semnalului sonor |
| PD3 | LED_ROSU | LED-uri Rosii | Iesire digitala - Activarea indicatorului de capac deschis |
| PD4 | LED_VERDE | LED-uri Verzi | Iesire digitala - Activarea indicatorului de stare de veghe |
| PD5 | US_ECHO | Senzor HC-SR04 | Intrare digitala - Masurarea duratei pulsului de ecou reflectat |
| PD6 | US_TRIG | Senzor HC-SR04 | Iesire digitala - Generarea pulsului de declansare de 10us |
| PB1 | SERVO_PWM | Servo SG90 | Iesire PWM - Generat de Timer 1 (OC1A) la 50Hz pentru unghi |
| PC4 | SDA | Modul LCD I2C | Linie de date bidirectionala (interfata hardware TWI) |
| PC5 | SCL | Modul LCD I2C | Linie de ceas/sincronizare (interfata hardware TWI) |
| VCC / +5V | VCC | Toate | Magistrala pozitiva de alimentare (5V din USB-ul placii) |
| GND | GND | Toate | Masa comuna a circuitului (intoarcerea curentului la sursa) |
Schema electrica
Schema electrica a fost proiectata in KiCad si respecta arhitectura modulara a unui sistem embedded, fiind impartita in blocul de control, blocul de senzori (intrare) si blocul de actuatori (iesire):
Blocul de control: Centralizat in jurul microcontrollerului ATmega328P. Pinii de alimentare VCC (7) si AVCC (20) sunt conectati la magistrala de +5V, iar pinul GND (8) este legat la masa generala.
Blocul de input (Senzorul): Modulul HC-SR04 este conectat direct la pinii de control ai Portului D (PD5 si PD6). Alimentarea lui se face direct din liniile principale de pe breadboard.
Blocul de afisare si actionare:
Ecranul LCD comunica prin pinii dedicati de TWI (PC4 pentru date si PC5 pentru ceas).
Servomotorul primeste semnalul PWM direct de pe pinul PB1, capabil de modulare hardware prin Timer 1.
Buzzerul si cele doua grupuri de LED-uri sunt comandate digital prin pinii PD2, PD3 si PD4.
Nota de proiectare importanta: Cele doua perechi de LED-uri (Rosu si Verde) sunt configurate in paralel, fiecare ramura avand propria rezistenta de limitare conectata la Anod (+), in timp ce Catozii (-) sunt adunati intr-un nod comun legat direct la GND-ul general al circuitului pentru a asigura inchiderea corecta a buclei electrice.
Principiu de functionare
Sistemul functioneaza pe baza unei bucle infinite de citire si reactie, impartita in trei stadii:
Starea de Veghe (Repaus): Senzorul ultrasonic emite unde in permanenta. Cat timp distanta masurata este mai mare de 15 cm, capacul ramane inchis (Servo la 0 grade), LED-urile verzi sunt aprinse (indicand starea de veghe), iar ecranul LCD afiseaza textul stabil “Apropie mana” alaturi de numarul curent de utilizari.
Starea Activa (Detectie): Cand o mana se apropie la sub 15 cm, microcontrollerul comuta starea: LED-urile verzi se sting, cele rosii se aprind, buzzerul emite un semnal sonor scurt (150ms) ca feedback, iar ecranul isi schimba textul in “Capac Deschis!”. In acelasi timp, contorul de utilizari creste cu +1, iar Timerul 1 modifica factorul de umplere (Duty Cycle) pe pinul PB1, determinand servomotorul sa roteasca axul rapid la 90 de grade, ridicand capacul prin intermediul tijei mecanice.
Temporizare si Revenire: Sistemul mentine capacul deschis timp de 4 secunde pentru a permite aruncarea deseurilor. Dupa expirarea timpului, motorul revine lin la 0 grade, LED-urile rosii se sting, cele verzi se reaprind, iar ecranul revine la mesajul de veghe, actualizat cu noul numar de utilizari.
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.