Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:agmocanu:money_counter [2022/05/27 20:43]
silvia.dragan [Jurnal]
pm:prj2022:agmocanu:money_counter [2022/06/02 15:28] (current)
silvia.dragan [Concluzii]
Line 21: Line 21:
   * Arduino UNO   * Arduino UNO
   * Display OLED 128x32 - I2C    * Display OLED 128x32 - I2C 
-  * Senzor culoare+  * Senzor culoare ​TCS3200
   * Senzor IR   * Senzor IR
   * Buton   * Buton
Line 27: Line 27:
  
 Schema bloc: Schema bloc:
-{{:​pm:​prj2022:​agmocanu:​dragan_silvia_schema_bloc.png?​200|}}+{{:​pm:​prj2022:​agmocanu:​dragan_silvia_schema_bloc.png?​600|}}
  
 +{{:​pm:​prj2022:​agmocanu:​circuit-tinker.png?​600|}}
  
  
 +Nota: nu am gasit piesele exacte in tinkercad, am folosit piese asemanatoare
 ===== Software Design ===== ===== Software Design =====
-<note tip+ 
-Descrierea codului aplicaţiei ​(firmware): +Pentru dezvoltare am folosit IDE-ul Arduino si bibliotecile:​ 
-  ​* mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR+  * <SPI.h
-  ​* librării şi surse 3rd-party (e.gProcyon AVRlib+  * <​Wire.h>​ 
-  ​* algoritmi şi structuri ​pe care plănuiţi să le implementaţi +  * <​Adafruit_GFX.h>​ 
-  * (etapa 3surse şi funcţii implementate +  * <​Adafruit_SSD1306.h>​ 
-</​note>​+ 
 +=== Functiile implementate sunt: === 
 + 
 +  - setup() - setare pini 
 +  ​- loop() - apel celelalte functii 
 +  - checkProximitySensor() - preia valoarea citita ​de senzorul de proximitate 
 +  - writeOnDisplayStart() - scrie pe display textul de inceput 
 +  - readColorsFromSensor() - detecteaza valorile frecventelor culorilor RGB ale obiectului scanat 
 +  - detectBill() - determina valoarea bancnotei in functie de culoarea sa 
 +  - printColors() - afiseara pe serial monitor valorile frecventelor RGB detectate de senzorfolosit pentru debug si incadrare bancnote in intervale de culori. 
 +  - reset(- reseteaza procesul de numarare 
 +  ​- writeOnDisplayTotal() - scrie pe display valoarea toala numarata ​ -   Ordered List Item 
 +   
 + 
 +=== Implementare Generala: === 
 + 
 +Cat timp senzorul de proximitate nu transmite ca ar avea in apropiere vreun obstacol, pe ecran se afiseaza 
 +un mesaj de start. 
 +Cand senzorul de proximitate detecteaza prezenta unui obstacol ​(o bancnota este introdusa), se calculeaza  
 +valorile frecventelor culorilor RGB detectate de senzorul de culoare. 
 +Am scanat anterior in ce range de valori se afla fiecare bancnota si am stabilit criteriile de determinare a 
 +valorii bancnotei dupa aceste valori. 
 +Valoarea determinata se aduna la suma totala ce este afisata pe ecran. 
 +Daca vrem sa restam suma si sa reincepem numaratoarea,​ apasam pe butonul galben. 
 + 
 + 
 + 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +{{:​pm:​prj2022:​agmocanu:​sdd1.jpeg?​400|}} 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+{{:​pm:​prj2022:​agmocanu:​sdd2.jpeg?400|}} 
-</​note>​+{{:​pm:​prj2022:​agmocanu:​sdd3.jpeg?​400|}} 
 +{{:​pm:​prj2022:​agmocanu:​sdd4.jpeg?​400|}} 
 +{{:​pm:​prj2022:​agmocanu:​sdd5.jpeg?​400|}}
  
 +<note important>​**Video functionare:​**
 +https://​www.youtube.com/​watch?​v=vZWu6h1S5ME&​ab_channel=SilviaDaniela</​note>​
 +
 +
 +=== Observatii: ​ ===
 +
 +
 +
 +Initial am incercat sa detectez si sa numar banconte de tip RON, dar prin testare
 +am ajuns la concluzia ca senzorul acesta de culoare nu detecta bine culorile.
 +Nu am descoperit exact cauza, dar presupun ca are de a face cu materialul, de plastic.
 +Bancnotele de tip EURO sunt detectate mult mai bine, fiind de hartie.
 +
 +O dificultate a implementarii a fost faptul ca lumina din incapere afecteaza valorile returnate
 +de senzorul de culoare. Am incercat sa folosesc intervale flexibile pentru frecventele culorilor,
 +dar suficient de restranse pentru a nu fi confundate. De exemplu, bancnotele de 10E si de 50E sunt
 +asemanatoare in culoare (rosu/​portocaliu),​ asa ca un interval prea permisiv poate produce confuzie intre
 +acestea.
 +
 +De asemenea, am descoperit ca senzorul IR are un comportament cam imprevizibil in lumina solara puternica.
 +
 +<note tip>​Pentru o functionare optima, proiectul trebuie plasat intr-o camera cu lumina artificiala buna.</​note>​
 ===== Concluzii ===== ===== Concluzii =====
 +Am reusit sa implementez numaratorul de bancnote, acesta recunoaste bancnote de 10, 20, si 50 euro.
 +Proiectul poate fi extins si pentru alte banconte dar acestea sunt cele pe care le aveam la dispozitie.
 +Pe viitor, ar putea fi imbunatatit prin adaugarea unui senzor optic
 +pentru a detecta si bancnote de tip RON.
  
 +Prin realizarea acestui proiect am invatat sa folosesc senzorii de culoare si proximitate,​
 +sa tratez intreruperi si sa folosesc un ecran OLED cu protocolul I2C.
 +
 +Experienta de a conecta toate piesele, asambla cutiile si a crea tot felul de improvizatii ​
 +a fost foarte faina.
 ===== Download ===== ===== Download =====
 Link Github: https://​github.com/​SilviaDragan/​MoneyCounter-Arduino.git Link Github: https://​github.com/​SilviaDragan/​MoneyCounter-Arduino.git
Line 59: Line 121:
   * 26.05.2022: Program software   * 26.05.2022: Program software
   * 27.05.2022: Pagina wiki   * 27.05.2022: Pagina wiki
-  * +  * 30.05.2022: Adaugare buton si imbunatatire software
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 **Resurse Software** **Resurse Software**
 +
 +  * https://​randomnerdtutorials.com/​guide-for-oled-display-with-arduino/​
 +  * https://​create.arduino.cc/​projecthub/​Raushancpr/​arduino-with-ir-sensor-1579b6
 +  * https://​create.arduino.cc/​projecthub/​SurtrTech/​color-detection-using-tcs3200-230-84a663
 +
 +Pentru a scrie pe ecranul OLED am folosit librariile ​ adafruit_SSD1306.h si  adafruit_GFX.h
  
 **Resurse Hardware** **Resurse Hardware**
 +  * https://​www.youtube.com/​watch?​v=MwdANEcTiPY&​ab_channel=DroneBotWorkshop
  
 <​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>​
  
pm/prj2022/agmocanu/money_counter.1653673405.txt.gz · Last modified: 2022/05/27 20:43 by silvia.dragan
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