This shows you the differences between two versions of the page.
pm:prj2023:ndrogeanu:boxargb [2023/05/28 14:57] george.tudose2504 [Rezultate Obţinute] |
pm:prj2023:ndrogeanu:boxargb [2023/05/29 19:36] (current) george.tudose2504 [Software Design] |
||
---|---|---|---|
Line 46: | Line 46: | ||
<note tip> | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | + | * **Mediu de dezvoltare** : Arduinno IDE |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * **Librării şi Surse 3rd-party** : |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * //__SoftwareSerial.h__ și __DFRobotDFPlayerMini.h__// pentru comunicarea cu modulul DFPlayer Mini |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * //__U8g2lib.h__ și __Wire.h__// pentru realizarea interfeței pe ecranul OLED |
- | * (etapa 3) surse şi funcţii implementate | + | * //__EEPROM.h__// pentru a salva valorile variabilelor care gestioneaza volumul, EQ și melodia curentă |
</note> | </note> | ||
+ | |||
+ | === Funcții Implementate === | ||
+ | ** Pentru controlul ecranului OLED ** | ||
+ | * **settings()**: Această funcție afișează ecranul de setări. Setările afișate sunt volumul și egalizatorul. Se afișează de asemeana și un side menu pentru navigare. | ||
+ | * **sideMenu()**: Această funcție afișează meniul lateral de navigare pe ecranul OLED. | ||
+ | * **player()**: Această funcție afișează interfața de control al playerului audio pe ecranul OLED. Interfața prezintă opțiuni de nextSong, prevSong si Pause/Resume, alături numărul melodiei curente. | ||
+ | * **flashPage()**: Această funcție afișează un ecran de pornire flash pe ecranul OLED. | ||
+ | * **drawIcon(const uint8_t* iconName, u8g2_uint_t x, u8g2_uint_t y, uint16_t glyph)**: Această funcție afișează un pictogramă/iconiță pe ecranul OLED. | ||
+ | * **refresh()**: Această funcție activează rederesanrea ecranului corect la un interval de 1min. | ||
+ | * Butoanele de next și prev sunt controlate prin întruperile **INT1 și INT2**. | ||
+ | * Butonul de select este controlat în funcția de **loop()**. (SoftwareSerial folosit de DFPlayer Mini nu permite utilizarea întreruperilor PCInt) | ||
+ | |||
+ | ** Pentru controlul benzii LED** | ||
+ | * **RGBVisualizer()**: Această funcție controlează LED-urile RGB în funcție de un senzor de sunet cu microfon conectat la pinul A0. Se bazează pe valoarea citită de senzor pentru a determina culorile afișate de LED-uri. | ||
+ | |||
+ | === Logica Programului === | ||
+ | * Se verifcă dacă ecranul are nevoie de un refresh. | ||
+ | * Se verifică starea butonului de select. În caz de apăsarea, în funcție de meniul curent și starea curentă în interfață se realizeaza ori o modificare în interfață ori/și o comandă către modulul DFPlayer mini. | ||
+ | * În cazul în care s-a apăsat pe butonul select, se actualizează ecranul afișat pe OLED. | ||
+ | * Se dezactivează SoftwareSerial stream, deoarece implementarea sa nu este compatibilă cu analogWrite și analogRead | ||
+ | * Se citește valoarea de pe senzorul conectat la A0, și in funcție de valoare citită se alege o culoarea corespunzătoare. Pinii 9, 10, 11 (PWN) controlează culoarea benzii. | ||
+ | * Se reactivează SoftwareSerial Stream fără a reseta modulul Mini Player. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
**Rezultate obținute după etapa Hardware** | **Rezultate obținute după etapa Hardware** | ||
- | |||
| {{:pm:prj2023:ndrogeanu:hardware_rgb_1_.jpg?350|}} | {{:pm:prj2023:ndrogeanu:hardware_rgb_2_.jpg?350|}} | | | {{:pm:prj2023:ndrogeanu:hardware_rgb_1_.jpg?350|}} | {{:pm:prj2023:ndrogeanu:hardware_rgb_2_.jpg?350|}} | | ||
| {{:pm:prj2023:ndrogeanu:hardware_rgb_3_.jpg?350|}} | {{:pm:prj2023:ndrogeanu:hardware_rgb_4_.jpg?350|}} | | | {{:pm:prj2023:ndrogeanu:hardware_rgb_3_.jpg?350|}} | {{:pm:prj2023:ndrogeanu:hardware_rgb_4_.jpg?350|}} | | ||
- | ===== Concluzii ===== | ||
+ | **Rezultate obținute după etapa Software (Ecranul OLED)** | ||
+ | | {{:pm:prj2023:ndrogeanu:rgb_ecran_oled_mp3_1_.jpg?200|}} | {{:pm:prj2023:ndrogeanu:rgb_ecran_oled_mp3_2_.jpg?200|}} | {{ :pm:prj2023:ndrogeanu:rgb_ecran_oled_mp3_3_.jpg?200|}} | | ||
+ | |||
+ | **Demo Funcționalitate Proiect** | ||
+ | https://www.youtube.com/watch?v=CzFys5a_zP0 | ||
+ | |||
+ | |||
+ | ===== Concluzii ===== | ||
+ | * Codul prezentat demonstrează utilizarea bibliotecilor și funcțiilor specifice Arduino pentru a controla diverse componente hardware, cum ar fi senzorul analogic, ecranul OLED, difuzorul și LED-urile RGB. | ||
+ | * Bibliotecile externe extind capacitățile Arduino, permițând controlul dispozitivelor și senzorilor specializați, precum și redarea fișierelor audio de pe cardul SD. | ||
+ | * Încorporarea unui vizualizator RGB în cod demonstrează modul în care se poate controla culoarea LED-urilor în funcție de valoarea citită de senzorul analogic. Acest exemplu ilustrează modul în care Arduino poate fi folosit pentru a crea efecte de iluminare personalizate și reacții la schimbările de mediu. | ||
+ | * Utilizarea unui ecran OLED și a unui sistem de meniu permite interacțiunea cu utilizatorul, ceea ce lustrează modul în care intefața cu utilizatorul poate fi implementată în proiectele Arduino pentru a oferi control și flexibilitate utilizatorului. | ||
===== Download ===== | ===== Download ===== | ||
<note warning> | <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ă ;-). | + | *Cod Arhivă {{:pm:prj2023:ndrogeanu:cod_rgb_mp3.zip|}} |
- | + | ||
- | 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> | </note> | ||
Line 76: | Line 106: | ||
- 07.05.2023 Realizare pagină OCW Wiki | - 07.05.2023 Realizare pagină OCW Wiki | ||
- 07.05.2023 Completare Milestone 1 | - 07.05.2023 Completare Milestone 1 | ||
- | - 21.05.2023 Compeltare Milestone 2 | + | - 21.05.2023 Completare Milestone 2 |
+ | - 28.05.2023 Completare Milestone 3 | ||
</note> | </note> | ||
Line 85: | Line 116: | ||
* https://www.mouser.com/datasheet/2/115/PAM8403-247318.pdf | * https://www.mouser.com/datasheet/2/115/PAM8403-247318.pdf | ||
- | <note> | + | **Piese** |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://www.emag.ro/adaptor-ugreen-usb-adapter-card-reader-sd-microsd-03822508-6957303822508/pd/D9HDM2MBM/?X-Search-Id=8a1811a411e73ffc0813&X-Product-Id=70467258&X-Search-Page=1&X-Search-Position=0&X-Section=search&X-MB=0&X-Search-Action=view |
- | </note> | + | * https://cleste.ro/microsd-32gb-cl10-sdsqunr-032g-gn3mn.html |
+ | * https://www.sigmanortec.ro/Speaker-40mm-3W-p134573662 | ||
+ | * https://cleste.ro/set-rezistene-100buc-e4-3.html | ||
+ | * https://cleste.ro/modul-mini-mp3-player.html | ||
+ | * https://cleste.ro/modul-mini-amplificator-clasa-d-stereo-pam8403-de-3-w.html | ||
+ | * https://www.sigmanortec.ro/Display-OLED-0-96-I2C-IIC-Albastru-p135055705 | ||
+ | * https://www.sigmanortec.ro/Tranzistor-NPN-TIP31-TIP31C-TO220-p126177176 | ||
+ | * https://www.sigmanortec.ro/modul-microfon-senzor-sunet-5v | ||
+ | * https://cleste.ro/arduino-uno-r3-atmega328p.html | ||
+ | |||
+ | **Resurse Software** | ||
+ | * https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299 | ||
+ | * https://github.com/DFRobot/DFRobotDFPlayerMini | ||
+ | * https://github.com/olikraus/u8g2 | ||
+ | * https://docs.arduino.cc/learn/built-in-libraries/software-serial | ||
+ | * https://github.com/PaulStoffregen/SoftwareSerial/tree/master | ||
<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> | ||