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
Nu am gasit in KiCad placa ATmega328P Xplained Mini si am folosit echivalentul ATmega328P-P
Schema prezinta:
ATmega328P Xplained Mini in centru, ca unitate de control
HC-SR04 conectat pe pinii TRIG (PD6) si ECHO (PD5) - reprezinta senzorul ultrasonic pentru masurarea distantei
Servo motor SG90 conectat pe pinul PWM (PB1) - reprezinta actuatorul folosit pentru ridicarea capacului
LCD I2C conectat pe magistrala I2C (SDA=PC4, SCL=PC5) cu alimentare de 5V - afiseaza starea si numarul de utilizari
Buzzer conectat pe PD2 pentru activare si semnalizare sonora scurta la deschidere
LED-uri verzi conectate in paralel pe pinul PD4 prin rezistente de 220 Ohm - indicator pentru starea de repaus
LED-uri rosii conectate in paralel pe pinul PD3 prin rezistente de 220 Ohm - indicator pentru starea activa (capac deschis)
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.
Imagini Hardware
In imaginea de mai sus se poate observa cum senzorul a detectat ca m-am apropiat sub threshold-ul de 8cm si trimite semnal la SG90 sa deschida cosul, ca sa aruncam gunoiul in el.
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