Table of Contents

Automat de gustari

Introducere

Proiectul constă într-un automat de gustări interactiv, care permite utilizatorului să aleagă una dintre cele trei gustări disponibile, folosind un sistem cu butoane, LED-uri, servomotoare și un buzzer. Utilizatorul poate naviga manual prin opțiuni cu ajutorul unui buton de selecție, iar LED-urile indică vizual poziția curentă (albastru, verde sau roșu). La confirmarea comenzii, se declanșează o animație luminoasă, un semnal sonor din buzzer, iar servomotorul corespunzător deschide trapa pentru livrarea gustării.

Pe lângă selecția manuală, dispozitivul include și un al treilea buton pentru selecție aleatorie, care adaugă o componentă ludică sistemului. La apăsarea acestuia, una dintre gustări este aleasă în mod aleator și livrată instant, oferind un element de surpriză și amuzament.

Scopul proiectului este de a crea un sistem simplu, funcțional și intuitiv, care să ofere o experiență interactivă și plăcută în distribuirea gustărilor. Automatizarea parțială prin servomotoare adaugă un element practic și vizual, transformând un proces banal într-o activitate distractivă.

Proiectul poate fi utilizat în mediul casnic, la birou sau la evenimente, oferind o metodă inedită și simpatică de servire a gustărilor. Alegerea gustării devine astfel nu doar o acțiune utilitară, ci și un moment de interacțiune și divertisment.

Descriere generală

Dispozitivul este alcătuit din următoarele componente principale:

📊 Schema bloc a fost realizată în: Draw.io.

Hardware Design

Lista de piese:

Diagrama:

🛠️ Schema circuitului a fost realizată folosind Tinkercad.

Schemă electrică:

Conexiuni pini:

Pin Arduino Tip Conectat la Descriere
D2 Digital / INT0 Buton dreapta Confirmare selecție gustare. Folosește întrerupere externă INT0 cu debounce software.
D3 PWM software Servomotor 3 (SG90) PWM software generat manual. Deschide trapa pentru gustarea 3.
D5 Digital LED albastru Aprins când selecția este pe gustarea 1.
D6 Digital Buton stânga Navighează între cele 3 selecții (gustări). Folosește `INPUT_PULLUP` și polling.
D7 Digital Buzzer activ Bipuri scurte sau lungi în funcție de acțiune (confirmare sau schimbare selecție).
D8 Digital LED roșu Aprins când selecția este pe gustarea 3.
D9 (OC1A) PWM hardware Servomotor 1 (SG90) PWM generat de Timer1. Controlează trapa pentru gustarea 1.
D10 (OC1B) PWM hardware Servomotor 2 (SG90) PWM generat de Timer1. Controlează trapa pentru gustarea 2.
D12 Digital LED verde Aprins când selecția este pe gustarea 2.
D13 Digital Buton random Alege aleator o gustare și activează servomotorul corespunzător.
A0 Analog input Zgomot random (ADC) Valoare citită pentru seed-ul generatorului aleator (`srand(ADC)`).
GND Power Masă comună Conexiune de masă pentru toate componentele.
5V Power Servomotoare, LED-uri, buzzer Tensiune de alimentare distribuită prin breadboard pentru toate componentele de control.

Software Design

Laboratoare folosite

Implementarea logicii

Dispozitivul este alcătuit din următoarele componente principale:

Arduino UNO (ATmega328P): Reprezintă unitatea centrală de control. Gestionează stările de selecție, controlează LED-urile și buzzerul, și acționează cele 3 servomotoare pentru eliberarea gustărilor.

Servomotoare (SG90):

LED-uri: Trei LED-uri semnalizează vizual selecția curentă. Fiecare LED corespunde unei gustări:

Doar un LED este activ la un moment dat, în funcție de selecție.

Buzzer: Emite semnale sonore pentru a confirma interacțiunile:

Butonul de selecție (D6): Permite navigarea ciclică prin cele trei gustări. La fiecare apăsare, starea curentă este incrementată, iar LED-ul activ se actualizează în consecință.

Butonul de confirmare (D2): Activează procesul de livrare. Este tratat printr-o întrerupere externă (INT0) cu debounce software. La apăsare, se declanșează:

Butonul de selecție aleatorie (D13): Permite alegerea aleatorie a unei gustări. La apăsare, se generează un număr aleator între 0 și 2 și se acționează servomotorul corespunzător, fără a modifica selecția curentă sau LED-ul activ.

Funcții auxiliare:

Securitate software: Pentru a preveni declanșarea multiplă accidentală:

https://github.com/TeodorLav94/Automat_de_gustari

https://youtube.com/shorts/-x6w_4wNkdw?feature=share

Rezultate Obţinute

• Sistemul permite selecția clară a uneia dintre cele 3 gustări, semnalizată prin LED-uri colorate.

• Confirmarea comenzii declanșează animația LED, bipuri din buzzer și acționarea servomotorului.

• Selecția aleatorie funcționează corect, fără a afecta selecția curentă.

• Servomotoarele sunt controlate eficient: 2 prin PWM hardware, 1 prin PWM software.

• Interacțiunile sunt însoțite de feedback sonor și vizual.

• Sistemul este stabil și responsiv, cu debounce software și mesaje UART de debug.

Concluzii

Proiectul a reușit să integreze cu succes conceptele studiate în cadrul laboratoarelor, precum GPIO, PWM, întreruperi, UART și ADC, într-un sistem embedded funcțional, intuitiv și bine structurat. Programarea low-level, realizată fără librării externe, mi-a oferit control total asupra componentelor hardware și o înțelegere clară a modului în care acestea colaborează în timp real.

Sunt mulțumit că am reușit să implementez de la zero un automat de gustări complet funcțional, parcurgând toate etapele dezvoltării — de la schițarea logicii și testarea componentelor pe breadboard, până la integrarea finală, debugging și realizarea unei interfețe simple și prietenoase pentru utilizator.

A fost o experiență practică și formativă, care m-a ajutat să înțeleg mai profund modul în care se proiectează și se implementează un sistem embedded complet, cu aplicabilitate reală.

Bibliografie/Resurse

Software Related

Arduino Documentation

Export to PDF