This is an old revision of the document!
Smart Piggy Bank
Introducere
Ce face?
Proiectul consta intr-o pusculita inteligenta care functioneaza ca un automat de depunere si numarare a bancnotelor. Utilizatorul introduce o bancnota, apasa pe butonul de start, iar aceasta este recunoscuta cu ajutorul unui senzor de culoare, apoi depozitata cu ajutorul servomotorului. Pentru a indica ca bancnota a fost depozitata cu succes si ca se poate aduga urmatoarea, pe display se va afisa un mesaj corespunzator si se va activa buzzer-ul. Dupa adaugarea fiecarei bancnote, suma totala se va actualiza si se va afisa pe ecran. Daca utilizatorul doreste sa-si extraga bancnotele, va actiona butonul corespunzator acestui proces, iar suma totala afisata pe display se va reseta.
Scop:
Scopul proiectului este de a intelege mai bine mecanismele de functionare a unui bancomat, aplicand conceptele invatate la laborator.
Ideea de la care s-a pornit:
Ideea a pornit de la dorinta de a realiza un sistem functional si interactiv care sa simuleze modul de functionare a unui bancomat real, concentrandu-se pe partea de depunere automata a bancnotelor.
Utilitatea:
Proiectul are un rol educativ, fiind util atat pentru intelegerea fluxului de procesare dintr-un ATM real, cat si pentru consolidarea cunostintelor invatate la laborator. Puscuita inteigenta poate fi folosita pentru depozitarea propriilor bani sau poate fi extins pentru a simula un ATM real.
Descriere generală
Puusculita inteligenta are ca scop sa automatizeze procesul de depunere, recunoastere si contorizare a bancnotelor. Aceasta functioneaza pe principiul unui mini-bancomat de depunere.
Procesul incepe prin aduagrea bancnotei in locul specific (un sertar). Odata ajunsa in interior, prin apasarea butonului de start, bancnota este analizata cu ajutorul unui senzor de culoare TCS34725, care recunoaste valoarea acesteia.
Dupa identificare, un servomotor controleaza miscarea sertarului pentru a permite depozitarea bancnotei. in paralel, un LCD I2C afiseaza diferite mesaje corespunzatoare actiunii (ex. „Introduceti bancnota”, „Bancnota scanata”, „Bancnota depozitata”), precum si suma totala acumulata in timp real. La fiecare depozitare, un buzzer emite un semnal sonor scurt pentru a confirma succesul operatiei si disponibilitatea sistemului pentru o noua bancnota.
De asemenea, un buton de reset permite utilizatorului sa stearga suma curenta stocata, simuland retragerea sau golirea pusculitei.
Functionalitati:
Depunere si recunoastere a bancnotelor
Afisare in timp real a statusului si a sumei totale
Confirmare sonora a finalizarii fiecarei actiuni
Resetare manuala a totalului cu un buton dedicat
Schema bloc:
Hardware Design
Schema Electrica:
Schema Componente:
Bill Of Materials (BOM):
Software Design
Mediu de dezvoltare:
Arduino IDE - realizare sofware
Autodesk Fusion 360 - schema electrica
CirKit - schema pe componente
Librarii:
Servo.h – pentru controlul precis al unui servomotor
Wire.h – pentru comunicatia I2C cu componentele externe
LiquidCrystal_I2C.h – pentru controlul afișajului LCD I2C
Adafruit_TCS34725.h – pentru senzorul de culoare TCS34725
Functii implementate:
setup() – initializeaza pinii, ataseaza intreruperile, configureaza servomotorul-ul, senzorul de culoare, buzzer-ul si LCD-ul
loop() – verifica flagurile setate de intreruperi si executa logica principala a programului
afiseazaStandby() – actualizeaza LCD-ul cu mesajele specifice actiunii utilizatorului si suma curenta
startProcess() – ISR pentru butonul de start (declanseaza procesul de recunoastere)
resetProcess() – ISR pentru butonul de reset (reseteaza suma totala)
detecteazaBancnota() – functie de identificare a valorii bancnotei pe baza culorii medii scanate
Algoritmi implenetati:
Codul implementeaza logica de functionare a unei pusculite inteligente care recunoastere si depoziteaza bancnote. Programul implementeaza:
folosirea intreruperilor pentru declansarea actiunii la apasarea butoanelor (butonul de start si cel de reset).
debounce software cu millis() in interiorul handlerelor de intrerupere pentru a evita activarile multiple nedorite.
logica de interpretare a culorii bazata pentru identificarea bancnotelor de 1 RON, 5 RON, 10 RON, 50 RON, 100 RON.
gestionarea starii aplicatiei prin variabile de tip flag (startFlag, resetFlag) pentru separarea ISR-urilor de logica principala din loop().
afisare pe LCD a mesajelor corespunzatoare si a sumei adunate.
controlul componentelor (servo, buzzer, display) pe baza evenimentelor.
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
28.04.2025 - Alegere Tema
03.05.2025 - Creare pagina OCW
11.05.2025 - Completarea unei scurte descrieri si lista componente
14.05.2025 - Realizare Scheme Electrice
15.05.2025 - Realizare schema bloc si descriere
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF