Table of Contents

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 WS2812B

Schema electrica:

Software Design

Arduino

Am folosit Arduione IDE pentru programare.

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

Am folosit Android Studio pentru aplicatie.

Ma conectez la bleutooth(HC-05) si trimit date catre arduino.

Rezultate Obţinute

In urma asamblarii proiectului acesta a fost rezultatul:

Link video prezentare functionalitati. Alchemy Lights

Concluzii

Proiectul mi-a placut foarte mult si a fost foarte interesant sa lucrez cu arduino. Pe viitor, as vrea sa mai completez led-uri si sa imbunatatesc proiectul.

Download

Cod sursa

Jurnal

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

Bibliografie/Resurse

Microfon

Bluetooth

Led Effects

Arduino Interrupts

Export to PDF