This is an old revision of the document!
https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/alchemy_lights
Autor: Alecu Silviu-Marian
Grupa: 331CB
Joc de lumini controlate de o aplicatie Android si de un microfon.
Alchemy Lights este un proiect bazat pe pasiunea mea pentru led-uri. Proiectul se foloseste de un modul Bluetooth si un modul de microfon pentru a seta o banda de led-uri in diferite moduri si culori.
Ma folosesc de modulul bluetooth pentru a trimite date de la o aplicatie android catre arduino. Ma conenctez la bluetooth si trimit date astfel:
Lista piese:
- Arduino Uno
- Modul Bluetooth HC-05 FC 114
- Modul Microfon Electret cu Amplificator MAX9814
- Leduri RGB la banda (Neopixels) WS2812B
Schema electrica:
Arduino
M-am folosit de libraria de FastLED si FHT pentru a seta banda de led-rui.
In setup() initializez banda de led-uri, setez adc pentru datele primite de la microfon, setez modulul bluetooth ca SoftwareSerial(2,3) (RX, TX) si atasez intreruperile pe pe porturile 2, 3 pentru a fi pregatit tot timpul sa primeasca date de la bluetooth.
In pin_ISR() primesc datele de la bluetooth, iar, in functie de ce date primesc pregatesc valorile pentru loop().
Functia play() o apelez in loop(), iar aceasta seteaza banda de led-uri in functie de ce date am primit de la bluetooth: - playLeds() - functia de animatie atunci cand microfonul este pornit. Ma folosesc de FHT pentru a aplica transformata Fourier pe inputul primit
de la microfon, setez octavele si noise level, apoi calculez RGB pentru fiecare bucata de 11 led-uri.
- playEffect() - alege animatia in functie de ce a primit de la bluetooth() (Animatiile le-am gasit pe net);
Aplicatia Android - Alchemy Lights
Ma conectez la bleutooth(HC-05) si trimit date catre arduino.
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.