This is an old revision of the document!
Cos de gunoi inteligent
Introducere
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.
Prezentarea pe scurt a proiectului vostru:
Descriere generală
Sistemul este compus din urmatoarele:
Module hardware:
ATmega328P-XMINI - microcontrollerul principal, creierul intregii operatiuni, cel care primeste datele de la senzor si decide ce se intampla mai departe
HC-SR04P - senzorul ultrasonic care detecteaza daca te-ai apropiat cu mana de cos
SG90 - servo motorul care deschide si inchide capacul cosului
LCD 1602 + modul I2C - display-ul care iti arata cate obiecte ai aruncat in cos
Buzzer activ 5V - emite un sunet atunci cand capacul se deschide
LED rosu + verde - indica starea cosului, deschis sau inchis
Rezistente 1kΩ - protejeaza LED-urile de la a se arde
Module software: (prone to changes)
Driver TWI/I2C - se ocupa de comunicatia dintre microcontroller si LCD
Modul HC-SR04 - gestioneaza intreruperile externe de pe pinul ECHO si calculeaza distanta pana la mana
Control servo PWM - foloseste Timer1 in modul Fast PWM pentru a controla unghiul capacului
Logica principala - decide cand sa deschida capacul, cand sa il inchida, incrementeaza contorul si actualizeaza display-ul
Hardware Design
Lista Componente
| 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. |
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.
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 8 cm, capacul ramane inchis, 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 8 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.
Aici puneţi tot ce ţine de hardware design:
listă de piese
-
diagrame de semnal
rezultatele simulării
Software Design
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
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
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
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF