Differences

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

Link to this comparison view

pm:prj2022:sgherman:coin-counter [2022/05/31 19:52]
bianca.baceanu [Descriere generală]
pm:prj2022:sgherman:coin-counter [2022/05/31 21:10] (current)
bianca.baceanu [Download]
Line 38: Line 38:
  
 ===== Software Design ===== ===== Software Design =====
 +Pentru dezvoltarea partii software am folosit Arduino IDE. Bibliotecile integrate in cod au un rol pentru doua componente si anume: LCD cu modul I2C integrat si modul RFID.
  
 +Pentru LCD:
 +  * ''#​include <​Wire.h>''​
 +  * ''#​include <​LiquidCrystal_I2C.h>''​
 +Pentru RFID:
 +  * ''#​include <​SPI.h>'' ​
 +  * ''#​include <​RFID.h>'' ​
 +Codul este structurat in parti logice. ​
 +
 +Prima parte:
 +In functia setup() se fac initializarile pentru modulele RFID si LCD. Se afiseaza pe ecran mesajele de inceput (primul "Bine ati venit!/n ECO POWER" + niste emoticoane desenate de mine la nivel de pixel, al doilea la cateva secunde "​Apropiati /n CARDUL"​). Pentru desenarea emoticoanelor m-am folosit de faptul ca un "​dreptunghi"​ din cele 16*2 ale LCD-ului este reprezentat de fapt ca o matrice de dimensiune 8*5 (cu valori de 1/0, vizual este o matrice, in cod este un vector de Byte). Mi-am ales doua modele, o inima si o masina, realizarea lor constand in plasarea valorilor de 1 de-a lungul formelor.
 +
 +A doua parte:
 +A doua parte logica va consta in identificarea cardului. In functia loop() voi face aceasta verificare. In primul rand trebuie sa ne asiguram ca se poate realiza o conexiune cu acel card(functia isCard()). Dupa acest pas, se testeaza daca se poate citi codul serial al cardului (format din 4 numere). Daca da, atunci se extrag aceste valori si se compara cu cele de referinta setate de noi. Pentru exemplicare,​ kit-ul ce continea modulul RFID a venit atat cu un card, cat si cu un tag. Am decis sa folosesc doar cardul. Prin urmare, daca apropiem cardul, pe ecran se va afisa un mesaj de aprobare plus taxa parcarii ("card ACCEPTAT /n PARCARE: 2 lei"). Pentru tag, accesul va fi refuzat, afisandu-se "Card INVALID!"​.
 +
 +A treia parte:
 +A treia parte logica presupune implementarea software a coin counter-ului. Se citesc valorile transmise de catre senzorii IR, output HIGH (de pe pinii A0, A1, A2) timp in care LCD-ul va afisa pe doua randuri statusul introducerii monedelor: "M50 M10 M5 /n x y z"), unde x, y, z sunt numere intregi. Codul este gandit astfel incat sa se evite numararea multipla (accidentala) a aceleiasi monede (in variabilele c1, c2, c3 voi tine evidenta monedelor 5, 10, 50 de bani iar flag-urile f1, f2, f3 sunt pentru a evita ceea ce am precizat anterior). Clientul trebuie sa introduca monede in ce varianta doreste pana se implineste suma de 2 lei (stocata intr-o variabila sum ce se va incrementa cu valorile introduse respectiv 0.05, 0.1 sau 0.5). Am pus conditia ca suma sa fie >= 2 intrucat exista posibilitatea ca persoana respectiva sa aiba la un moment dat introdusa valoarea 1.7 lei de exemplu si sa mai aiba doar o moneda de 50 de bani, suma de 2 lei fiind depasita (dat fiind faptul ca aparatul nu da rest).
 +
 +A patra parte:
 +Dupa ce suma dorita a fost introdusa, pe ecran se va afisa "​Incarcare activa",​ timp in care clientul poate incepe incarcarea masinii. Dupa un timp (un delay stabilit la 6000 de milisecunde,​ didactic), procesul de incarcare se va termina pe ecran afisandu-se "Timp exprirat /n Va multumim"​.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 +In aceasta sectiune voi afisa cateva poze din cadrul realizarii proiectului.
 +{{:​pm:​prj2022:​sgherman:​baceanu1.jpeg??​650x500 |}}
 +
 +{{:​pm:​prj2022:​sgherman:​baceanu3.jpeg??​650x500 |}}
 +
 +{{:​pm:​prj2022:​sgherman:​baceanu4.jpeg??​650x500 |}}
 +
 +{{:​pm:​prj2022:​sgherman:​baceanu2.jpeg??​650x800 |}}
 ===== Concluzii ===== ===== Concluzii =====
  Mi s-a parut un proiect destul de interesant mai ales ca a fost practic. Nu am intampinat dificultati cu exceptia "​fabricarii"​ rampei pentru monede. Am stat foarte mult pe acest element intrucat erau multi factori care trebuiau luati in considerare la fabricarea ei: masuratori exacte pentru monede (daca greaseam diametrul exista posibilitatea ca unele monede sa alunece in spatiul nedestinat lor), inclinatia rampei, materialul folosit (cu un anumit tip de carton monedele se "​agatau"​),​ viteza cu care aluneca monedele.  Mi s-a parut un proiect destul de interesant mai ales ca a fost practic. Nu am intampinat dificultati cu exceptia "​fabricarii"​ rampei pentru monede. Am stat foarte mult pe acest element intrucat erau multi factori care trebuiau luati in considerare la fabricarea ei: masuratori exacte pentru monede (daca greaseam diametrul exista posibilitatea ca unele monede sa alunece in spatiul nedestinat lor), inclinatia rampei, materialul folosit (cu un anumit tip de carton monedele se "​agatau"​),​ viteza cu care aluneca monedele.
 ===== Download ===== ===== Download =====
 +{{:​pm:​prj2022:​sgherman:​cod_coincounter.zip|}}
  
 ===== Jurnal ===== ===== Jurnal =====
Line 59: Line 88:
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 [[https://​www.instructables.com/​Coin-Sorter-Counter-Arduino-Uno/​|Tutorial Coin Counter]] [[https://​www.instructables.com/​Coin-Sorter-Counter-Arduino-Uno/​|Tutorial Coin Counter]]
 +
 [[https://​www.youtube.com/​watch?​v=Y6sGoqSujlQ|Tutorial senzor IR obstacole]] [[https://​www.youtube.com/​watch?​v=Y6sGoqSujlQ|Tutorial senzor IR obstacole]]
 +
 [[https://​www.optimusdigital.ro/​ro/​wireless-rfid/​67-modul-cititor-rfid-mfrc522.html?​search_query=rfid&​results=42/​|Tutorial RFID 1]] [[https://​www.optimusdigital.ro/​ro/​wireless-rfid/​67-modul-cititor-rfid-mfrc522.html?​search_query=rfid&​results=42/​|Tutorial RFID 1]]
 +
 [[https://​www.youtube.com/​watch?​v=vJfbF5VyEhc|Tutorial RFID 2]] [[https://​www.youtube.com/​watch?​v=vJfbF5VyEhc|Tutorial RFID 2]]
  
 <​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/sgherman/coin-counter.1654015950.txt.gz · Last modified: 2022/05/31 19:52 by bianca.baceanu
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