Project development¶
SLIDE
PRESENTATION VIDEO
1. Description¶
The objective of my project is to create a system capable of reproducing and interpreting audio, generating a relaxing light and water show.
The hypnotic effect of the combination of music, light and water movement can serve to relax anyone, especially nervous or hyperactive people.
My idea is to make a decorative fountain with mobile jets and lights that synchronize with the music. The device analyzes the audio spectrum, to separate the audio into different frequency bands (tones), managing to synchronize the different lights and water jets with each band.
This device includes speakers to play the music.
The music is sent to this device via:
-
Bluetooth from a mobile phone.
-
Microphone, the music is sent to the device by microphone, so that it would allow to interact with live music.
2. Spiral model diagram¶
The objectives of my project are:
1º Decorative fountain with lights synchronize with music that sound by speakers. Audio input by microphone.
2º Mobile water jets syncronize with music.
3º Communication bluetooth to mobile phone.
4º Musical keyboard.
3. Inspiration¶
This idea is inspired by something wonderful that I saw during a trip through Budapest. In Margarita Island there is a spectacular musical fountain. You can see it in the following video:
I don’t think I do something so spectacular, but I think it’s great to decorate my living room.
4. Animation¶
Watch the video to check the result of the Blender fluid simulation tool !!!
- Animation video:
5. Useful information about similar projects¶
5.1. Spectrum Analyzer Audio¶
5.2. ESP32¶
5.3. Microphone¶
-Video Config ESP32 with I2C microphone
5.4. Speakers¶
5.5. Music via Bluetooh¶
5.6. Water pumps¶
5.7. Leds RGB¶
6. My Project Design¶
The design of my project is divided into the following parts.
-
Design of the fountain (parts that will be in contact with the water):
-
Selection of water pumps (one pump per water jet, in total 5 pumps).
-
Design of the water tank container and the upper surface of the fountain.
-
Design of the water diffusers that will give the direction of the water jet. I will also try to make the diffusers have movement.
-
-
Led lighting design:
- Integration of the LED string in the fountain in a safe way, avoiding contact with water.
-
Outer shell design (no contact with water):
- Distribution of the speakers, microphone, buttons, and wiring.
-
Electronic design:
-
Bluetooht communication.
-
Control of the pumps.
-
Control of the LEDs.
-
Microphone control.
-
Speaker control.
-
-
Programming:
- Analyze the sound and transform it into colors and jets of water.
6.1. Design of the fountain (parts that will be in contact with the water)¶
6.1.1. Water pumps¶
I have chosen these mini water pumps, 5V. One for each jet.
6.1.2. Water container and the upper surface¶
The water tank will be made of composite material. Inside will be the mini pumps.
The development is described in the assignment (17. Wildcard week)
FILES:
The upper surface collects the water and leads it to the water container. It is made of transparent acrylic to allow lighting the jets from the underside, protecting the LEDs from the water.
I will make it using 5mm transparent acrylic by laser cutting.
FILE:
And the adornment that serves to prevent splashes I have made it by 3d printing.
Finally I glue the pieces using hot silicone.
FILES:
Finally, I have made the pieces that hold the acrylic surface on the water tank using 3d printing.
I glue the supports to the water tank using CEYS mounting glue.
FILES:
6.1.3. Water diffusers¶
I have designed 2 types of diffusers.
Four simple diffusers that incorporate interior lighting to illuminate the water jet from within. For it to work I have to achieve a laminar flow.
I designed the central diffuser to rotate moved by the flow of water.
I will make them by 3D printing.
SIMPLE DIFFUSERS
FILES:
ROTARY DIFFUSER
A spiral-shaped inner pipeline conducts water to the rotor.
FILES:
Test 1
You can download scripts here.
6.2. Led lighting design¶
FILES:
6.3. Outer shell design (no contact with water)¶
I have used 5mm plywood sheets.
I have made the circles using the large format milling machine SW1325, because they were too big for the laser cutter. I have used Aspire software to generate the gcode.
FILES:
I have cut the other pieces on the GCC LaserPro Mercury II laser cutter. I have used CorelDRAW software to control it.
Power = 100%
Speed = 1.5%
FILES:
6.4. Electronic design¶
I have to design a board with the following components:
- Bluetooth communication. ESP32 controller, because it has bluetooth communication, it has many pins for inputs and outputs. And it is very powerful.
- Control of the pumps. Output to control 5 pumps by means of A4953 drivers incorporated in the board.
- Control of the LEDs. Output for RGB Chip LED 5V WS2812B .
- Microphone control. Microphone input to a Electret Microphone Amplifier - MAX4466 with Adjustable Gain.
- Speaker control. I2S output to a UDA1334A I2S Stero DAC module connect to 2 speakers (8 OHM, 500 MW).
- Digital Amplifier Board, TPA3116D2.
My board
The development of my board is explained in the following assignments:
Initially I made a board that integrated the bluetooth speaker with the source control.
But finally I had to separate them into 2 boards because I did not know how to integrate the programming.
-
Dancing Jets board.It is the board that controls the microphone, analyzes the audio and controls the pumps and LEDs.
-
BT Speakers board. This is the board that controls the speakers and communicates via bluetooth with a mobile device to play the music.
6.4.1. Dancing Jets board¶
FILES:
6.4.1. BT Speakers board¶
This board connects to a digital audio decoder (DAC). The DAC will process data immediately, and give you a clear, analog, stereo line level output. And the DAC connects to an amplifier that powers the 5W speakers
FILES:
6.5. Programming¶
6.5.1. Dancing Jets board programming¶
The programming of this board is explained in the Assignment: Outputs devices
FILE:
6.5.2. BT Speakers board programming¶
I have programmed this board using the Espressif IoT Development Framework (IDF), you can see how to install and configure it in the Assignment: Embedded programming
In the toolkit there is an example to configure esp32 as bluetooth speakers. So we open the ESP-IDF Command Prompt .
And I follow the “Get Started” website [docs.espressif.com] (https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) to program my esp32.
I type the path where the example is “a2p_sink”:
D:\esp-idf\examples\bluetooth\bluedroid\classic_bt\a2dp_sink
I connect esp32 with the slider in programming position and I see in the device manager the name of the port (COM11).
I open the Project configuration window typing:
idf.py menuconfig
Go to “A2DP Example Configuration”.
Set “A2DP Sink Output (External I2S Codec)”.
I configure the pins that I am using for I2S communication.
Save and exit.
I build the program typing:
idf.py build
Now, I load the program into esp32 by typing:
idf.py -p COM11 flash
Modifying a line in the bt_app_av.c file eliminates volume jitter. Just comment line 327
7. Material list¶
Component | Source | Price |
---|---|---|
Electronic components (Leds & Pumps board) | ||
1 x PROTO BRD COPPER CLAD 5X4” | DigiKey | 1.22 € |
ESP32-WROOM-32D | DigiKey | 4.18 € |
SWITCH SLIDE SPDT 100MA 12 | DigiKey | 0.87 € |
SWITCH TACTILE SPST-NO 0.05A 24V | DigiKey | 0.92 € |
IC REG LINEAR 3.3V 1A SOT223-3 | DigiKey | 0.39 € |
5 x IC Motor driver 8V-40V 8SOIC A4953ELJTR-T | DigiKey | 9.90 € |
1 x CAPACITOR CER 1UF 50V X7R 1206 | DigiKey | 0.19 € |
2 x CAPACITOR CER 0.1UF 250V X7R 1206 | DigiKey | 0.49 € |
2 x CAPACITOR CER 10UF 35V X5R 1206 | DigiKey | 0.50 € |
1 x RESISTOR SMD 10K OHM 1% 1/4W 1206 | DigiKey | 0.05 € |
5 x RESISTOR SMD 1 OHM 1% 1/4W 1206 | DigiKey | 0.22 € |
5 x RESISTOR SMD 0 OHM JUMPER 1/4W 1206 | DigiKey | 0.12 € |
25 pins x CONN HEADER SMD R/A 36POS 2.54MM | DigiKey | 2.38 € |
1 x TERM BLK 2POS SIDE ENT 3.5MM PCB | DigiKey | 0.51 € |
Electronic components (Bluetooth Speakers board) | ||
1 x PROTO BRD COPPER CLAD 5X4” | DigiKey | 1.22 € |
ESP32-WROOM-32D | DigiKey | 4.18 € |
SWITCH SLIDE SPDT 100MA 12 | DigiKey | 0.87 € |
SWITCH TACTILE SPST-NO 0.05A 24V | DigiKey | 0.92 € |
IC REG LINEAR 3.3V 1A SOT223-3 | DigiKey | 0.39 € |
1 x CAPACITOR CER 1UF 50V X7R 1206 | DigiKey | 0.19 € |
1 x CAPACITOR CER 0.1UF 250V X7R 1206 | DigiKey | 0.25 € |
1 x CAPACITOR CER 10UF 35V X5R 1206 | DigiKey | 0.25 € |
1 x RESISTOR SMD 10K OHM 1% 1/4W 1206 | DigiKey | 0.05 € |
14 pins x CONN HEADER SMD R/A 36POS 2.54MM | DigiKey | 1.33 € |
1 x TERM BLK 2POS SIDE ENT 3.5MM PCB | DigiKey | 0.51 € |
Electronic/Electric components (Outputs, inputs,…) | ||
5 x Mini Pumps DC 3-5V 3W | Amazon | 13.99 € |
Adafruit I2S Stereo Decoder - UDA1334A Breakout | Amazon | 13.16 € |
2 x Speakers, 8 Ohm, 5 W | Amazon | 24.80 € |
Electret Microphone Amplifier - MAX4466 | Amazon | 13.99 € |
19 x Digital LED RGB Chip LED 5V WS2812B | Amazon | 2.70 € |
1 x Digital Amplifier Board, TPA3116D2 | Amazon | 6.55€ |
Other materials | ||
3 meters PVC flexible pipe, inner diameter 7mm, outer diameter 9mm | Amazon | 10.99 € |
2 x 5mm plywood sheets (60x120cm) | Leroy Merlin | 15.58€ |
1 x Deep groove ball bearings 608RS 8x22x7mm | Amazon | 1€ |
2 meters x Burlap Fabric 160cm wide | Local shop | 10 € |
3 x Extruded polystyrene plate 125x60x4 cm | LeroyMerlin | 9.27€ |
1 x Epoxilay 102 resin | Feroca | 32€ |
1 x 100x50cm transparent acrylic sheet 5 mm thick | LeroyMerlin | 21.99€ |
Total : | 208.12 € |