This shows you the differences between two versions of the page.
|
pm:prj2026:alexandru.jipa2803:eugen.cantaragiu [2026/05/05 21:31] eugen.cantaragiu [Descriere generală] |
pm:prj2026:alexandru.jipa2803:eugen.cantaragiu [2026/05/12 11:28] (current) eugen.cantaragiu [Jurnal] |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Monedele introduse sunt sortate mecanic în funcție de dimensiune și detectate cu ajutorul unor senzori IR. Sistemul oferă feedback vizual prin LED RGB și feedback sonor prin buzzer. | Monedele introduse sunt sortate mecanic în funcție de dimensiune și detectate cu ajutorul unor senzori IR. Sistemul oferă feedback vizual prin LED RGB și feedback sonor prin buzzer. | ||
| Scopul proiectului este să creez o pușculiță mai practică și mai interactivă decât una obișnuită. Aceasta va putea fi deschisă doar cu parolă, va sorta monedele automat după dimensiune și va oferi feedback utilizatorului prin LCD, LED RGB și buzzer. | Scopul proiectului este să creez o pușculiță mai practică și mai interactivă decât una obișnuită. Aceasta va putea fi deschisă doar cu parolă, va sorta monedele automat după dimensiune și va oferi feedback utilizatorului prin LCD, LED RGB și buzzer. | ||
| - | |||
| - | <note tip> | ||
| - | </note> | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| - | {{:pm:prj2026:alexandru.jipa2803:schema-bloc_piggy_bank.png?300|}} | + | Sistemul este alcătuit din următoarele module: |
| + | |||
| + | * **Modul de control** - placă ATmega | ||
| + | * **Modul de autentificare** - keypad 3x4 | ||
| + | * **Modul de afișare** - LCD1602 | ||
| + | * **Modul de închidere** - servomotor | ||
| + | * **Modul de detecție monede** - senzori IR | ||
| + | * **Modul de feedback** - LED RGB și buzzer | ||
| + | |||
| + | Fluxul principal al aplicației: | ||
| + | * utilizatorul introduce parola pe keypad | ||
| + | * microcontrollerul verifică parola | ||
| + | * LCD-ul afișează starea sistemului | ||
| + | * dacă parola este corectă, servomotorul deblochează mecanismul | ||
| + | * monedele sunt sortate mecanic și detectate cu senzori IR | ||
| + | * sistemul oferă feedback prin LED RGB și buzzer | ||
| + | |||
| + | {{ :pm:prj2026:alexandru.jipa2803:schema-bloc_piggy_bank.png?300 |}} | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| Line 28: | Line 42: | ||
| | Fire Dupont | Conectarea componentelor | | | Fire Dupont | Conectarea componentelor | | ||
| - | <note tip> | + | În cadrul proiectului a fost realizată integrarea mai multor componente hardware folosind placa de dezvoltare ATmega328P Xplained Mini. Până în acest moment au fost implementate și testate următoarele funcționalități: |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | * afișarea informațiilor pe display-ul LCD1602; |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * introducerea unei parole folosind keypad-ul matricial; |
| - | * diagrame de semnal | + | * detectarea monedelor folosind senzori IR; |
| - | * rezultatele simulării | + | * generarea de feedback sonor folosind buzzerul activ; |
| - | </note> | + | * utilizarea Timer2 pentru gestionarea operațiilor dependente de timp; |
| + | * actualizarea și afișarea sumei totale introduse. | ||
| + | |||
| + | ==== Conexiuni hardware ==== | ||
| + | |||
| + | {{ :pm:prj2026:alexandru.jipa2803:sch_el_piggy_b.png |}} | ||
| + | |||
| + | === LCD1602 === | ||
| + | |||
| + | ^ Funcție LCD ^ Pin microcontroller ^ Rol ^ | ||
| + | | RS | PB0 | Selectează dacă se transmite o comandă sau un caracter către LCD | | ||
| + | | EN | PB1 | Semnal de validare; LCD-ul citește datele când acest pin este activat | | ||
| + | | D4 | PD4 | Linie de date pentru modul 4-bit | | ||
| + | | D5 | PD5 | Linie de date pentru modul 4-bit | | ||
| + | | D6 | PD6 | Linie de date pentru modul 4-bit | | ||
| + | | D7 | PD7 | Linie de date pentru modul 4-bit | | ||
| + | | VDD | 5V | Alimentarea LCD-ului | | ||
| + | | VSS | GND | Masă comună | | ||
| + | | RW | GND | LCD-ul este folosit doar pentru scriere | | ||
| + | |||
| + | LCD-ul este utilizat în modul 4-bit pentru reducerea numărului de pini utilizați. Pinii PB0 și PB1 au fost aleși pentru semnalele de control, iar pinii PD4–PD7 pentru liniile de date deoarece sunt grupați pe același port, ceea ce simplifică implementarea software. | ||
| + | |||
| + | Modulul LCD1602 folosit are potențiometru inclus pentru reglarea contrastului, ceea ce permite ajustarea vizibilității caracterelor afișate. | ||
| + | |||
| + | === Keypad 3x4 === | ||
| + | |||
| + | ^ Funcție keypad ^ Pin microcontroller ^ Rol ^ | ||
| + | | ROW1 | PB2 | Linie de scanare pentru primul rând | | ||
| + | | ROW2 | PB3 | Linie de scanare pentru al doilea rând | | ||
| + | | ROW3 | PB4 | Linie de scanare pentru al treilea rând | | ||
| + | | ROW4 | PB5 | Linie de scanare pentru al patrulea rând | | ||
| + | | COL1 | PD0 | Intrare pentru prima coloană | | ||
| + | | COL2 | PD1 | Intrare pentru a doua coloană | | ||
| + | | COL3 | PD2 | Intrare pentru a treia coloană | | ||
| + | |||
| + | Tastatura matricială este scanată secvențial prin activarea liniilor și citirea coloanelor. Liniile au fost conectate pe portul B deoarece sunt folosite ca ieșiri, iar coloanele pe portul D deoarece sunt citite ca intrări cu rezistențe interne pull-up activate. | ||
| + | |||
| + | === Senzori IR === | ||
| + | |||
| + | ^ Senzor ^ Pin microcontroller ^ Rol ^ | ||
| + | | Senzor 5 bani | PC5 | Detectează moneda de 5 bani | | ||
| + | | Senzor 10 bani | PC4 | Detectează moneda de 10 bani | | ||
| + | | Senzor 50 bani | PC3 | Detectează moneda de 50 bani | | ||
| + | |||
| + | Senzorii IR detectează trecerea monedelor prin modificarea stării logice a pinilor de intrare. Pinii PC3–PC5 au fost aleși deoarece erau disponibili și permit citirea simplă a semnalelor digitale. | ||
| + | |||
| + | === Buzzer activ === | ||
| + | |||
| + | ^ Componentă ^ Pin microcontroller ^ Rol ^ | ||
| + | | Buzzer | PC2 | Generează feedback sonor | | ||
| + | |||
| + | Buzzerul activ este controlat printr-un singur pin digital. Pinul PC2 a fost ales deoarece era disponibil și permite pornirea/oprirerea buzzerului prin semnal HIGH/LOW. Fiind un buzzer activ, acesta nu necesită generarea unei frecvențe PWM, ci doar alimentarea printr-un semnal digital. | ||
| + | |||
| + | ==== Mecanismul de sortare al monedelor ==== | ||
| + | |||
| + | Sistemul utilizează un mecanism mecanic de sortare a monedelor în funcție de dimensiunea acestora. Monedele introduse sunt direcționate către compartimente separate dedicate valorilor de 5 bani, 10 bani și 50 bani. | ||
| + | |||
| + | Sortarea este realizată printr-un traseu mecanic proiectat astfel încât monedele să fie separate pe baza diametrului lor. Fiecare compartiment este monitorizat cu ajutorul unui senzor IR care detectează trecerea monedei și transmite informația către microcontroller. | ||
| + | Pentru a îmbunătăți acuratețea detecției, interiorul compartimentelor din zona senzorilor IR a fost vopsit în negru. Această soluție reduce reflexiile luminii infraroșii produse de suprafața peretelui din spate și previne detectările false. | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| Line 49: | Line 121: | ||
| * controlul LED-ului RGB pentru stări diferite | * controlul LED-ului RGB pentru stări diferite | ||
| * controlul buzzerului pentru feedback sonor | * controlul buzzerului pentru feedback sonor | ||
| - | <note tip> | ||
| - | Descrierea codului aplicaţiei (firmware): | ||
| - | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
| - | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
| - | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
| - | * (etapa 3) surse şi funcţii implementate | ||
| - | </note> | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| Line 69: | Line 134: | ||
| Repository GitHub: | Repository GitHub: | ||
| https://github.com/Eugen2613/Smart-Piggy-Bank | https://github.com/Eugen2613/Smart-Piggy-Bank | ||
| - | |||
| - | <note warning> | ||
| - | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | ||
| - | |||
| - | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | ||
| - | </note> | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| - | <note tip> | + | ^ Data ^ Activitate ^ |
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | | 27.04.2026 | Alegerea temei proiectului | |
| - | </note> | + | | 05.05.2026 | Crearea paginii wiki | |
| + | | 7.05.2026 - 10.05.2026| Implementarea hardware - conexiuni + cutie | | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||