Smart Piggy Bank

  • Nume: Grigoreanu Andreea-Georgiana
  • Grupa: 333CB

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):

Componenta Link Datasheet
Arduino Uno R3 Produs Datasheet
Senzor culori TCS34725 Produs Datasheet
Display LCD1602 cu modul I2C Produs Datasheet
Buzzer Produs Datasheet
Butoane (x2) Produs Datasheet
Servomotor SG90 Produs Datasheet
Baterie 9V Produs Datasheet

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.

In realizarea proiectului am folosit intreruperi (Laboratorul 2) pentru cele doua butoane (Start si Reset). Butoanele sunt conectate pe pinii D2 si D3, iar activarea lor declanseaza executia functiilor prin ISR-uri. Pentru controlul sertarului de depozitare am utilizat un servomotor conectat la un pin PWM (Laboratorul 3), iar afisajul este un LCD 1602 cu modul I2C (Laboratorul 6), conectat pe pinii A4 si A5 ai placii Arduino UNO.

Pentru recunoasterea bancnotelor, am creat un program separat in Arduino IDE (recunoastere_culori.ino) prin care am scanat valorile RGB folosind senzorul TCS34725, identificand intervalele corespunzatoare fiecarei bancnote. Aceste date au fost apoi integrate in programul principal pentru clasificarea corecta a valorilor introduse.

Rezultate Obţinute

Demo:

Concluzii

Realizarea acestui proiect a fost o experienta diferita fata de ce am lucrat pana acum la celelalte materii. Desi la inceput parea complicat, pe parcurs am inceput sa inteleg din e in ce mai bine cum se lucreaza cu Arduino si cu diferitele componente pe care le-a folosit. Mi-a placut ideea de a face ceva fizic, mai ales ca mi-a pus creativitatea la incercare. In final mi se pare un proiect util si practic din care am inteles mai bine materia

Download

Jurnal

  • 28.04.2025 - Alegere Tema
  • 03.05.2025 - Creare pagina OCW
  • 11.05.2025 - Completarea unei scurte descrieri si lista componente
  • 13.05.2025 - Realizare Scheme Electrice
  • 14.05.2025 - Realizare schema bloc si descriere
  • 15.05.2025 - Realizare Hardware
  • 18.05.2025 - Incepere realizare program Software
  • 20.05.2025 - Modificari hardware si software
  • 23.05.2025 - Constructie cutie
  • 25.05.2025 - Finalizare proiect
  • 28.05.2025 - Cateva retusuri pagina OCW

Bibliografie/Resurse

pm/prj2025/vradulescu/andreea.grigoreanu.txt · Last modified: 2025/05/28 14:08 by andreea.grigoreanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0