This is an old revision of the document!


https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/alchemy_lights

Alchemy Lights

Autor: Alecu Silviu-Marian

Grupa: 331CB

Introducere

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.

Descriere generală

Ma folosesc de modulul bluetooth pentru a trimite date de la o aplicatie android catre arduino. Ma conenctez la bluetooth si trimit date astfel:

  1. Mic On: pornesc functia de animatie a led-urilor in functie de ce date primesc de la modul de microfon
  2. Mic Off: opresc functia de animatie corespunzatoare microfonului
  3. In functie de ce culoare selectez din Color Wheel din aplicatie trimit RGB catre arduino si setez banda de led-uri
  4. In functie de ce animatie selectez din pagina de moduri aplic animatia pe led-uri

Hardware Design

Lista piese:

- Arduino Uno

- Modul Bluetooth HC-05 FC 114

- Modul Microfon Electret cu Amplificator MAX9814

- Leduri RGB la banda (Neopixels) WS2812B

Schema electrica:

Software Design

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:

  1. 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.
  2. 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.

Rezultate Obţinute

In urma asamblarii proiectului acesta a fost rezultatul:

Concluzii

Download

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Microfon

Bluetooth

Led Effects

Arduino Interrupts

Export to PDF

pm/prj2021/alazar/alchemy_lights.1622714869.txt.gz · Last modified: 2021/06/03 13:07 by silviu_marian.alecu
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