This is an old revision of the document!
Partea principala a proiectul consta in preluarea frecventelor audio din jur si afisarea lor pe o matrice de led-uri, oferind si alte moduri de afisare precum temperatura din mediul ambiental, umiditatea, ora curenta, dar si anumite jocuri de lumini predefinite.
Interschimbarea se face prin apasarea singurul buton de pe carcasa.
De asemenea luminozitatea matricii este setata automat in functie de mediu in care functioneaza proiectul, in zone mai intunecate aceasta fiind mult redusa pentru a nu deveni deranjanta.
Conceptul pentru acest proiect a plecat de la dorinta mea de a adauga un feature nou televizorului, initial folosind o banda de LED-uri ambientala de unde a pornit si ideea de a amplasa sub acesta pe perete (langa difuzoare) dispozitivul, avand astfel un input cat mai bun pentru microfon.
Doua moduri de functionare:
1. Idle - sunt afisate anumite modele / informatii (PacMan, Mesaje, Tmeperatura, Umiditate, Ora)
2. Receptionare frecvente - se afiseaza pe matrice frecventele captate de microfon sub forma de armonice
Exista un singur buton de modificare al modului care cicleaza prin acestea.
Lista componente:
MAX7219 Matrice LED-uri 32×8:
capabile sa ofere posibilitatea de a afisa diverse imagini pe acesta.
biblioteca “MD_MAX72xx” care imi permite controlarea individuala a coloanelor, avand astfel posibilitatea de a seta fiecare coloana a matricei pe verticala in functie de frecventele captate de microfon. De asemenea pentru a avea un rezultat cat mai placut vizual am folosit “arduinoFFT” care preia semnalele si stabileste armonicele corespunzatoare.
functii mult mai potrivite si mai usor de folosit pentru jocuri de lumini decat biblioteca mentionata anterior, dar nu este de o flexibilitate foarte mare de aceea nu am folosit-o si la modul de la punctul anterior.
fiecare amplitudine posibila.
Luminozitate reglata automat:
folosind un fotorezistor asupra caruia am aplicat un factor de “smoothing”.
Schimbare moduri afisare:
am facut un debouncer in software.
Moduri secundare de afisare:
bibliotecile corespondente (ex. sezonr tmeperatura → “DHT”), iar pentru jocurile de lumini am folosit conceptul de “SpriteData” dat in MD_Parola.
Optimizari:
fost o problema din start.
destula memorie de aceea am folosit keyword-ul “PROGMEM” care indruma compilatorul sa puna aceste date pe memoria flash, nu pe SRAM unde ar fii fost puse.
dar MD_Parola este dependenta de MD_MAX72xx ceea mi-a ingreuna procesul de implementare.
Am reusit sa implementez absolut tot ce mi-am propus, inclus o carcasa functionala pentru acesta. Pe langa conceptul initial am adaugat si feature-ul de reglare automata al luminozitatii.
A fost un proiect care in primul rand chiar mi-a placut sa-l realizez, desi a fost destul de multa munca, dorind sa aiba si atat o utilitate cat si un aspect decent. Cu siguranta se pot face imbunatatiri la acesta (un RTC mai precis precum DS3231, o carcasa printata 3D etc.).
Ca si timp de implementare majoritatea a fost ocupat de research pentru a nu strica anumite piese *din nou* si pentru a nu pierde timpul cu incercari inutile, in sine asamblarea hardware + design nefiind atat de costisitoare ca timp.
In schimb pentru carcasa/lipit/asezat fire timpul alocat a fost destul de mult incat sa fie ceva cat de cat rezistent.
Sincer nu ma asteptam sa-mi placa sa lucrez atat de multe ore la proiectul acesta, dar tot am ajuns la concluzia ca imi place sa dorm noaptea in loc sa dezizolez/lipesc fire.
Link repository github:
Mai jos se afla link-uri catre cele mai frecventate site-uri pentru acest proiect.
https://www.instructables.com/
https://lastminuteengineers.com/
https://projecthub.arduino.cc/abhilashpatel121/f1b6ba36-bd96-4f7f-9a83-85c4925ff545
Download: Export to PDF