This shows you the differences between two versions of the page.
|
pm:prj2026:farhad_ali.gul:antonia_maria.barbu [2026/05/18 14:42] 127.0.0.1 external edit |
pm:prj2026:farhad_ali.gul:antonia_maria.barbu [2026/05/19 16:25] (current) antonia_maria.barbu |
||
|---|---|---|---|
| Line 9: | Line 9: | ||
| <note tip> | <note tip> | ||
| - | Proiectul constă într-un sistem automat de dozare, conceput pentru a măsura cantități precise de ingrediente solide (precum boabe de cafea) pe baza unor rețete predefinite, selectate în prealabil de către utilizator. Scopul principal al acestui dispozitiv este automatizarea procesului de dozare individuală necesar în prepararea băuturilor de specialitate, sistemul fiind proiectat să asigure o precizie ridicată. Din punct de vedere al utilității, aparatul se adresează direct pasionaților de cafea sau ceai. Astfel, se eficientizează procesul de preparare prin economisirea timpului, se previne risipa de ingrediente și se menține un gramaj consistent la fiecare utilizare. | + | Proiectul constă într-un sistem automat de dozare, conceput pentru a măsura cantități precise de ingrediente solide (precum boabe de cafea) pe baza unor rețete predefinite, selectate în prealabil de către utilizator. Scopul principal al acestui dispozitiv este automatizarea procesului de dozare individuală necesar în prepararea băuturilor de specialitate, sistemul fiind proiectat să asigure o precizie ridicată. Din punct de vedere al utilității, aparatul se adresează direct pasionaților de cafea sau ceai. Astfel, se eficientizează procesul de preparare prin economisirea timpului și se previne risipa de ingrediente. |
| </note> | </note> | ||
| Line 17: | Line 17: | ||
| Sistemul funcționează pe principiul unei bucle de control închis, folosind microcontrolerul ATmega328P Xplained Mini. | Sistemul funcționează pe principiul unei bucle de control închis, folosind microcontrolerul ATmega328P Xplained Mini. | ||
| - | * **Input:** Utilizatorul selectează băutura dorită (ex. Espresso Simplu, Espresso Dublu) folosind butoane fizice. Apăsarea butoanelor este detectată prin întreruperi externe pentru a nu bloca execuția codului principal. | + | * **Input:** Utilizatorul selectează băutura dorită (ex. Espresso Simplu, Espresso Dublu) folosind butoane fizice. |
| * **Procesare și Feedback:** O celulă de sarcină (load cell) conectată la un modul amplificator HX711 monitorizează constant greutatea ingredientului ales. Microcontrolerul citește aceste date prin pini GPIO. | * **Procesare și Feedback:** O celulă de sarcină (load cell) conectată la un modul amplificator HX711 monitorizează constant greutatea ingredientului ales. Microcontrolerul citește aceste date prin pini GPIO. | ||
| * **Output:** Pe baza rețetei, microcontrolerul generează un semnal PWM pentru a controla servomotorul (pentru cafea sau alte ingrediente), deschizând trapa de dozare. | * **Output:** Pe baza rețetei, microcontrolerul generează un semnal PWM pentru a controla servomotorul (pentru cafea sau alte ingrediente), deschizând trapa de dozare. | ||
| Line 35: | Line 35: | ||
| * **Afișaj:** 1x Ecran LCD 16x2 cu modul adaptor I2C integrat | * **Afișaj:** 1x Ecran LCD 16x2 cu modul adaptor I2C integrat | ||
| * **Interacțiune utilizator:** 5x Butoane tip Push | * **Interacțiune utilizator:** 5x Butoane tip Push | ||
| - | * **Componente auxiliare:** Condensator electrolitic, breadboard și fire de conexiune. | + | * **Componente auxiliare:** Breadboard și fire de conexiune. |
| == Schema electrică == | == Schema electrică == | ||
| Line 44: | Line 44: | ||
| * **Ecranul LCD** (Pinii PC4 și PC5): Ecranul comunică prin protocolul I2C, iar pe arhitectura ATmega328P pinii dedicați hardware pentru magistrala I2C sunt PC4 pentru SDA și PC5 pentru SCL. | * **Ecranul LCD** (Pinii PC4 și PC5): Ecranul comunică prin protocolul I2C, iar pe arhitectura ATmega328P pinii dedicați hardware pentru magistrala I2C sunt PC4 pentru SDA și PC5 pentru SCL. | ||
| - | * **Servomotorul** (Pinul Digital 9 / PB1): Servomotoarele sunt controlate prin semnale PWM. Pinul 9 este conectat intern la Timer-ul 1 capabil să genereze semnale PWM precise. | + | * **Servomotorul** (PB1): Servomotoarele sunt controlate prin semnale PWM. Pinul PB1 este conectat intern la Timer-ul 1 capabil să genereze semnale PWM precise. |
| * **Modulul Cântar HX711** (Pinul 4 pentru SCK și Pinul 5 pentru DT): Acestea sunt conexiuni digitale standard (GPIO). Au fost alese pentru a ușura trasarea firelor. Modulul HX711 poate fi conectat la orice pin digital liber. | * **Modulul Cântar HX711** (Pinul 4 pentru SCK și Pinul 5 pentru DT): Acestea sunt conexiuni digitale standard (GPIO). Au fost alese pentru a ușura trasarea firelor. Modulul HX711 poate fi conectat la orice pin digital liber. | ||
| * **Butoanele** (Pinii PD6, PD7, PC0, PC1, PC2, PC3): Au fost folosiți ca intrări digitale generale (GPIO). | * **Butoanele** (Pinii PD6, PD7, PC0, PC1, PC2, PC3): Au fost folosiți ca intrări digitale generale (GPIO). | ||
| - | Pinii PD0 (RX) și PD1 (TX) au fost intenționat lăsați liberi deoarece sunt folosiți de interfața UART a plăcii pentru a comunica cu PC-ul prin cablul USB. Folosirea lor ar fi blocat posibilitatea de a încărca cod nou pe microcontroler. | + | Pinii PD0 (RX) și PD1 (TX) au fost lăsați liberi deoarece sunt folosiți de interfața UART a plăcii pentru a comunica cu PC-ul prin cablul USB. |
| Line 55: | Line 55: | ||
| * **Mediu de dezvoltare:** PlatformIO. | * **Mediu de dezvoltare:** PlatformIO. | ||
| - | * **Biblioteci și resurse folosite:** Configurările Timerelor pentru PWM și comunicatia I2C vor fi scrise prin accesarea directă a regiștrilor AVR. | + | * **Biblioteci și resurse folosite:** Configurările Timerelor pentru PWM și comunicatia I2C sunt scrise prin accesarea directă a regiștrilor AVR. |
| * **Wire.h** și **LiquidCrystal_I2C.h**: Au fost folosite pentru protocolul I2C necesar display-ului LCD. | * **Wire.h** și **LiquidCrystal_I2C.h**: Au fost folosite pentru protocolul I2C necesar display-ului LCD. | ||
| - | * **HX711.h**: Este esențială pentru comunicația sincronă cu convertorul ADC pe 24 de biți. Biblioteca gestionează impulsurile de ceas (SCK) pentru extragerea datelor seriale (DT) de la celula de sarcină și oferă funcții integrate pentru mediere (averaging) și aducere la zero (tare). | + | * **HX711.h**: Este necesară pentru comunicația sincronă cu convertorul ADC pe 24 de biți. Biblioteca gestionează impulsurile de ceas (SCK) pentru extragerea datelor seriale (DT) de la celula de sarcină și oferă funcții integrate pentru mediere (averaging) și aducere la zero (tare). |
| == Dozarea ingredientelor == | == Dozarea ingredientelor == | ||
| Line 66: | Line 66: | ||
| * **Laboratorul 0 (GPIO):** Interfațarea celor 6 butoane a fost realizată prin registre. Am configurat direcția pinilor (''DDRC'', ''DDRD''), am activat rezistențele interne de pull-up (''PORTC'', ''PORTD'') și am citit starea fizică prin mascări pe biți direct pe regiștrii de intrare (''PINC'', ''PIND''). | * **Laboratorul 0 (GPIO):** Interfațarea celor 6 butoane a fost realizată prin registre. Am configurat direcția pinilor (''DDRC'', ''DDRD''), am activat rezistențele interne de pull-up (''PORTC'', ''PORTD'') și am citit starea fizică prin mascări pe biți direct pe regiștrii de intrare (''PINC'', ''PIND''). | ||
| * **Laboratorul 3 (Timere și Hardware PWM):** Am generat pentru servomotor un semnal Fast PWM de 50Hz (perioadă 20ms) direct prin **Timerul 1** pe 16 biți. Lățimea impulsului (între 1000 și 3000 de tick-uri) este controlată scriind direct în registrul de comparare ''OCR1A''. | * **Laboratorul 3 (Timere și Hardware PWM):** Am generat pentru servomotor un semnal Fast PWM de 50Hz (perioadă 20ms) direct prin **Timerul 1** pe 16 biți. Lățimea impulsului (între 1000 și 3000 de tick-uri) este controlată scriind direct în registrul de comparare ''OCR1A''. | ||
| - | * **Laboratorul 6 (I2C):** Funcționalitatea este demonstrată prin controlul display-ului LCD, microcontrolerul transmițând asincron date de interfață pe magistrala cu 2 fire (SDA/SCL). | + | * **Laboratorul 6 (I2C):** Controlul display-ului LCD, microcontrolerul transmițând asincron date de interfață pe magistrala cu 2 fire (SDA/SCL). |
| == Scheletul proiectului == | == Scheletul proiectului == | ||
| Line 72: | Line 72: | ||
| * **Starea 0 (Meniu):** Sistemul așteaptă input de la utilizator via GPIO (setare gramaj, tara). Microcontrolerul procesează cererile și trimite comenzi I2C pentru actualizarea LCD-ului. | * **Starea 0 (Meniu):** Sistemul așteaptă input de la utilizator via GPIO (setare gramaj, tara). Microcontrolerul procesează cererile și trimite comenzi I2C pentru actualizarea LCD-ului. | ||
| * **Starea 1 (Dozare):** FSM-ul intră în bucla de control. Modulul HX711 trimite constant date către procesor, care calculează eroarea (diferența până la țintă) și ajustează dinamic registrul ''OCR1A''. | * **Starea 1 (Dozare):** FSM-ul intră în bucla de control. Modulul HX711 trimite constant date către procesor, care calculează eroarea (diferența până la țintă) și ajustează dinamic registrul ''OCR1A''. | ||
| - | * **Starea 2 (Finalizat):** Servomotorul este forțat în poziția închis. Sistemul preia o ultimă citire. | + | * **Starea 2 (Finalizat):** Servomotorul este forțat în poziția închis. Sistemul face o ultimă citire. |
| == Calibrarea elementelor de senzoristică == | == Calibrarea elementelor de senzoristică == | ||
| Line 87: | Line 87: | ||
| === Rezultate Obţinute === | === Rezultate Obţinute === | ||
| - | În urma implementării, a rezultat un dozator automat funcțional, capabil să cântărească și să porționeze cu precizie boabe de cafea sau alte ingrediente solide cu granulație similară. Sistemul adaptează dinamic deschiderea trapei în timp real, prevenind astfel blocajele mecanice și asigurând o dozare a cantității țintă. | + | În urma implementării, a rezultat un dozator automat funcțional, capabil să cântărească și să porționeze cu precizie boabe de cafea sau alte ingrediente solide cu consistență și dimensiuni similare. Sistemul adaptează dinamic deschiderea trapei în timp real, prevenind astfel blocajele mecanice și asigurând o dozare a cantității țintă. |