This shows you the differences between two versions of the page.
pm:prj2022:agmocanu:money_counter [2022/05/27 23:11] silvia.dragan [Hardware 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 30: | Line 30: | ||
{{:pm:prj2022:agmocanu:circuit-tinker.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 46: | 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: === | === Implementare Generala: === | ||
Line 57: | Line 63: | ||
valorii bancnotei dupa aceste valori. | valorii bancnotei dupa aceste valori. | ||
Valoarea determinata se aduna la suma totala ce este afisata pe ecran. | 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. | |
- | TBD: intrerupere folosind buton pentru a putea reseta numaratoarea in orice moment. | + | |
Line 66: | 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 83: | 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://randomnerdtutorials.com/guide-for-oled-display-with-arduino/ |
- | https://create.arduino.cc/projecthub/SurtrTech/color-detection-using-tcs3200-230-84a663 | + | * 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 | + | * 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> | ||