This shows you the differences between two versions of the page.
pm:prj2025:ccristi:andrei.briceag1001 [2025/05/27 22:22] 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> | ||
- | 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ă ;-). | + | **Cod sursă și documentație:** |
+ | https://github.com/AndreiB031/Cocktail-Machine | ||
- | 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**. | + | **Demonstrație video:** |
+ | https://youtu.be/lOJ0Mk1pgU4?si=4Ls7-LpcHqSTD3TS | ||
</note> | </note> | ||
Line 60: | Line 70: | ||
<note tip> | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | **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:** Realizare și validare scheme electronice, simulare circuit în Tinkercad, verificare compatibilitate și comandare piese. | ||
+ | |||
+ | **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:** 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 completă a sistemului, calibrare debit lichid, identificare și remediere bug-uri, validare funcționalitate finală, documentare și pregătire prezentare/demo. | ||
</note> | </note> | ||
Line 66: | 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> |