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:54]
silvia.dragan [Software Design]
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 =====
  
Line 40: Line 42:
  
 === Functiile implementate sunt: === === Functiile implementate sunt: ===
- 
  
   - setup() - setare pini   - setup() - setare pini
Line 48: Line 49:
   - readColorsFromSensor() - detecteaza valorile frecventelor culorilor RGB ale obiectului scanat   - readColorsFromSensor() - detecteaza valorile frecventelor culorilor RGB ale obiectului scanat
   - detectBill() - determina valoarea bancnotei in functie de culoarea sa   - detectBill() - determina valoarea bancnotei in functie de culoarea sa
 +  - printColors() - afiseara pe serial monitor valorile frecventelor RGB detectate de senzor. folosit pentru debug si incadrare bancnote in intervale de culori.
 +  - reset() - reseteaza procesul de numarare
   - writeOnDisplayTotal() - scrie pe display valoarea toala numarata ​ -   * Ordered List Item   - 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.
 +
  
-Implementare Generala: 
  
  
Line 56: Line 71:
 ===== 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 73: 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.1653674084.txt.gz · Last modified: 2022/05/27 20:54 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