This shows you the differences between two versions of the page.
pm:prj2025:ccristi:andrei.briceag1001 [2025/05/27 22:34] andrei.briceag1001 |
pm:prj2025:ccristi:andrei.briceag1001 [2025/05/28 00:17] (current) andrei.briceag1001 |
||
---|---|---|---|
Line 3: | Line 3: | ||
<note tip> | <note tip> | ||
- | Am ales sa creez un dozator de cocktail-uri pe baza mai multor retete la alegere. | + | Am ales să creez un dozator de cocktail-uri controlat electronic, ce permite prepararea rapidă și precisă a unor rețete diverse, la alegere, dintr-un meniu. Acest dispozitiv este util pentru oricine dorește să organizeze un eveniment sau să impresioneze invitații cu băuturi servite automatizat, fără efort. |
- | Acesta este util pentru orice persoana ce doreste sa sustina un eveniment | + | |
</note> | </note> | ||
+ | |||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
{{:pm:prj2025:ccristi:schema_bloc_briceag_andrei.png?300|}} | {{:pm:prj2025:ccristi:schema_bloc_briceag_andrei.png?300|}} | ||
+ | |||
+ | Sistemul proiectat este un dozator automat de cocktail-uri, capabil să gestioneze mai multe rețete stocate pe un card microSD. Utilizatorul interacționează cu dispozitivul prin intermediul unui encoder rotativ și al unui ecran OLED. După selecția rețetei dorite, sistemul controlează deschiderea și închiderea electrovalvelor pentru a distribui cantitățile corecte de lichid, asigurând reproducerea fidelă a rețetelor selectate. | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
<note tip> | <note tip> | ||
- | Lista componente: | + | Lista de componente și rolul fiecăreia în sistem: |
- | - Arduino R4 | + | * **Arduino R4**: Platformă principală de control, gestionează logica aplicației, interfața cu utilizatorul și controlul hardware. |
- | - Display OLED | + | * **Display OLED**: Oferă interfață vizuală pentru meniuri, selecția rețetelor și feedback privind statusul sistemului. |
- | - Electrovalve | + | * **Electrovalve**: Controlează fluxul diferitelor lichide, permit dozarea precisă a fiecărui ingredient din rețetă. |
- | - Mosfet N-type | + | * **MOSFET N-type**: Acționează ca element de comutare pentru electrovalve, oferind protecție și control eficient asupra circuitelor de putere. |
- | - Encodor Rotativ | + | * **Encoder rotativ**: Permite navigarea intuitivă în meniul sistemului și selectarea opțiunilor dorite. |
- | - Slot card micro SD | + | * **Slot card micro SD**: Stochează rețetele și permite adăugarea/ștergerea acestora fără reprogramarea dispozitivului. |
</note> | </note> | ||
{{:pm:prj2025:ccristi:briceag_andrei_schematic_tinkercad.jpeg?300|}} | {{:pm:prj2025:ccristi:briceag_andrei_schematic_tinkercad.jpeg?300|}} | ||
Line 25: | Line 27: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | |||
<note tip> | <note tip> | ||
Descrierea codului aplicaţiei (firmware): | Descrierea codului aplicaţiei (firmware): | ||
- | * **Mediu de dezvoltare:** PlatformIO (Visual Studio Code) | + | |
+ | * **Mediu de dezvoltare:** PlatformIO (Visual Studio Code) – oferă un mediu modern și flexibil pentru dezvoltare, cu suport extins pentru debugging și gestionarea bibliotecilor. | ||
* **Librării și surse 3rd-party folosite:** | * **Librării și surse 3rd-party folosite:** | ||
- | * Adafruit_GFX.h, Adafruit_SSD1306.h (pentru display OLED) | + | * `Adafruit_GFX.h`, `Adafruit_SSD1306.h`: pentru controlul display-ului OLED și afișarea meniurilor, mesajelor și stărilor sistemului. |
- | * SPI.h, SD.h (pentru card microSD) | + | * `SPI.h`, `SD.h`: pentru comunicarea cu cardul microSD, citirea și scrierea rețetelor. |
- | * avr/io.h pentru interactionarea cu perifericele | + | * `avr/io.h`: permite interacțiunea directă cu perifericele hardware ale microcontrolerului, asigurând timpi mici de reacție și control precis (folosit pentru gestionarea rapidă a pinilor encoderului și a MOSFET-urilor). |
- | * **Algoritm:** Logica aplicației este implementată ca o mașină finitǎ de stări (finite state machine), fiecare stare corespunde unei funcționalități principale (navigare meniu, adăugare rețetă, ștergere rețetă, turnare cocktail etc.). | + | * **Algoritm:** Aplicația folosește o mașină finitǎ de stări (finite state machine), fiecare stare corespunde unei funcționalități principale: |
+ | - Navigare meniu principal și selectare rețetă | ||
+ | - Adăugare de rețetă nouă (inclusiv introducere nume și cantități) | ||
+ | - Ștergere rețetă existentă | ||
+ | - Turnare automată a cocktailului după rețeta selectată | ||
+ | - Feedback vizual și acustic pentru fiecare acțiune (LED-uri, buzzer) | ||
+ | - Salvare și încărcare rețete de pe cardul SD | ||
</note> | </note> | ||
Line 40: | Line 48: | ||
<note tip> | <note tip> | ||
- | După asamblarea hardware-ului și încărcarea firmware-ului, sistemul a funcționat conform așteptărilor, fără probleme de compatibilitate sau conexiuni. Meniul a fost afișat corect pe display, navigarea prin encodor a fost fluentă, iar electrovalvele au reacționat corespunzător la comenzile de preparare a cocktailului. | + | După asamblarea componentelor și încărcarea firmware-ului, dozatorul de cocktail a funcționat conform așteptărilor. Interfața pe display este intuitivă, meniul și navigarea cu encoderul sunt rapide și stabile. Electrovalvele răspund corect la comenzile de turnare, iar rețetele sunt citite și scrise cu succes pe cardul SD. |
- | În urma testelor, am constatat că debitul lichidului era sub așteptări, ceea ce a impus recalibrarea timpilor de deschidere a electrovalvelor pentru a obține cantitățile dorite în fiecare pahar. | + | Testarea sistemului a evidențiat un debit inițial al lichidului mai mic decât cel estimat, ceea ce a necesitat recalibrarea timpilor de deschidere a electrovalvelor. După ajustări, sistemul livrează cantitățile dorite, iar funcțiile de adăugare și ștergere rețete funcționează fără erori. LED-urile și buzzerul oferă utilizatorului feedback suplimentar pentru fiecare operație. Per ansamblu, sistemul este robust și poate fi utilizat cu încredere la evenimente. |
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | Proiectul a fost un succes, dar timpii de livrare a produsului sunt destul de mari. | + | Proiectul a demonstrat viabilitatea dozării automate a cocktailurilor folosind componente accesibile și logica de control embedded. Sistemul este ușor de extins cu noi rețete și poate fi adaptat pentru alte aplicații similare. Singurul aspect ce poate fi îmbunătățit este viteza de turnare a lichidelor, limitată de caracteristicile electrovalvelor folosite. |
===== Download ===== | ===== Download ===== | ||
<note warning> | <note warning> | ||
- | **https://github.com/AndreiB031/Cocktail-Machine** | + | **Cod sursă și documentație:** |
+ | https://github.com/AndreiB031/Cocktail-Machine | ||
+ | |||
+ | **Demonstrație video:** | ||
+ | https://youtu.be/lOJ0Mk1pgU4?si=4Ls7-LpcHqSTD3TS | ||
</note> | </note> | ||
Line 58: | Line 70: | ||
<note tip> | <note tip> | ||
- | **Săptămâna 1:** Alegerea componentelor și documentare (microcontroler, electrovalve, display, SD card, encoder, etc.) | + | **Săptămâna 1:** Analiză cerințe, alegere componente principale (microcontroler, electrovalve, display OLED, SD card, encoder), studiu datasheet-uri și soluții similare. |
- | **Săptămâna 2:** Realizarea schemelor electronice, validarea compatibilității componentelor și comandarea pieselor. | + | **Săptămâna 2:** Realizare și validare scheme electronice, simulare circuit în Tinkercad, verificare compatibilitate și comandare piese. |
- | **Săptămâna 3:** Asamblarea hardware-ului și testarea conexiunilor individuale (alimentare, SD, display, encodor, buzzer, LED-uri, MOSFET-uri). | + | **Săptămâna 3:** Asamblare hardware, lipire și testare conexiuni pentru fiecare subsistem (alimentare, SD, display, encoder, buzzer, LED-uri, MOSFET-uri). |
- | **Săptămâna 4:** Dezvoltarea firmware-ului: meniuri, interfață cu utilizatorul, control electrovalve, scriere/citire pe SD card. | + | **Săptămâna 4:** Dezvoltare firmware: implementare logica meniului, interfață utilizator, comenzi pentru electrovalve, integrare cu SD card pentru salvare/încărcare rețete. |
- | **Săptămâna 5:** Testare sistem complet, calibrare debit, corectare bug-uri, validare funcționalitate completă. | + | **Săptămâna 5:** Testare completă a sistemului, calibrare debit lichid, identificare și remediere bug-uri, validare funcționalitate finală, documentare și pregătire prezentare/demo. |
</note> | </note> | ||
Line 72: | Line 84: | ||
<note> | <note> | ||
- | https://github.com/adafruit/Adafruit-GFX-Library | + | * https://github.com/adafruit/Adafruit-GFX-Library – Control display OLED |
- | https://github.com/arduino-libraries/SD | + | * https://github.com/arduino-libraries/SD – Interfațare card microSD |
+ | * https://platformio.org/ – Mediu dezvoltare firmware | ||
+ | * Datasheet-uri pentru componentele hardware (electrovalve, MOSFET, Arduino R4, display SSD1306 etc.) | ||
+ | * Exemple și tutoriale Adafruit, Arduino, Tinkercad pentru integrarea componentelor | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |