Introduction: Ori and the Blind Forest: Shrouded Lantern With RBG LEDs and Bluetooth Control

About: Very soft ⭐ Trash ⭐ Chicken nugget vore ⭐ Annoyingly happy ⭐ Pokemon hhh ⭐ Flowers u feel

Welcome to my instructable on how to create a simple ornament with RGB LEDs and an Arduino board!

In my case I have built a clay-modelled take on Ori and the Blind Forest's Shrouded Lantern because I'm a huge fan and thought this would fit the means perfectly. What we will be going over is controlling LED light values using an Arduino board, some process on the clay sculpting I did and programming your Arduino to power/color RGB LEDs to your liking, as well as fading them between colors and using a bluetooth module to regulate this by phone.

Aside from the bluetooth functionality, this should be a very easy project to do and can really make for a sweet desktop must-have with just a few 90 cents LEDs. (and an Arduino board if you don't have one, though)

Now then, without further ado, let's get started!

Step 1: What You Will Need:

1. An Arduino board. [NOTE: It needs to have at least 3 PWM pins for the 3 color anodes!]

Go with a HC-06 one if you can, these should be available in nearly all Arduino module selling stores out there. Search around online a bit, it shouldn't be not hard to find them.

2. RGB LEDs.

Order as many as you need, doesn't matter which type.

3. 220 ohm resistors.

Technically you need these to properly power your LEDs, but I was lazy and did it without resistors. It works perfectly fine, but I do not condone doing this if you're not as lazy as me.

4. [Optional] A HC-06 bluetooth module.

5. Enough wires.

Every LED will require 4 wires since it has 4 pins to connect. If you don't have alot of wire at hand, be sure to estimate how much you will need.

6. A breadboard.

7. Soldering gear.

8. Tools and materials to make your lamp of choice.

You can literally use anything to make your lamp, but if you want to create a statue like me go with simple modelling clay. Unless you're experienced in sculpting you won't need much more than store-brand quality.

Step 2: Prototyping Your LEDs [Part 1]

For this you will need your LEDs and breadboard, along with some wires to hook up to your Arduino. Just connect the ground pin of your board to your breadboard and connect wires to 3 of your PWM pins. These are the pin numbers that have a ~ mark before the number, like ~3, ~5 and ~6.

These 3 wires will supply your LEDs with power and can, through PWM, be alterable in how much power they let through (It actually works different, but you can look it up if you're interested). Connect the 3 wires to your breadboard in seperate lanes, and connect a resistor to each end. After each resistor you can place your LED.

Now, I used default red green and blue LEDs because my RGB LEDs didn't arrive in the mail yet, but it's the exact same principle: RGB LEDs are just a red, green and blue LED merged into one. If you use default LEDs, just connect a resistor to the positive pin and connect the negative one to the ground wire. Do this for all 3 LEDs, check out the picture above as example.

If you DO have your RGB LEDs already, connect a wire to each of the LED's pins. One is for red, one for green, one for blue and one is for the ground. Check the picture above to identify which is which.

Now we're going to do some coding!

Step 3: Prototyping Your LEDs [Part 2]

Now it's time to do some coding! Yay!

If you're a total beginner, refer to Arduino's official tutorials on making a LED light up. You can find this here:

https://www.arduino.cc/en/Tutorial/Blink

For this instructable we'll be going for fading LEDs which cycle over the color spectrum. This is fairly easy achievable with for loops and delays. If you don't know what those are, don't worry! You can either search them up or copy my code below. It's good to know what for loops do though, so I advise checking it out.

int redLEDport = 3;
int blueLEDport = 6; int greenLEDport = 5;

int redLEDvalue = 1; int blueLEDvalue = 1; int greenLEDvalue = 1;

int fadeSpeed = 30;

void setup() { pinMode(redLEDport, OUTPUT); pinMode(blueLEDport, OUTPUT); pinMode(greenLEDport, OUTPUT); }

void loop(){ for(int i = 0; i <= 200; i++){ redLEDvalue++; blueLEDvalue--; greenLEDvalue--; analogWrite(redLEDport, redLEDvalue); analogWrite(blueLEDport, blueLEDvalue); analogWrite(greenLEDport, greenLEDvalue); if(redLEDvalue <= 0){ redLEDvalue++; } if(blueLEDvalue <= 0){ blueLEDvalue++; } if(greenLEDvalue <= 0){ greenLEDvalue++; } delay(fadeSpeed); } blueLEDvalue = 1; greenLEDvalue = 1; for(int i = 0; i <= 200; i++){ redLEDvalue--; blueLEDvalue++; greenLEDvalue--; analogWrite(redLEDport, redLEDvalue); analogWrite(blueLEDport, blueLEDvalue); if(redLEDvalue <= 0){ redLEDvalue++; } if(blueLEDvalue <= 0){ blueLEDvalue++; } if(greenLEDvalue <= 0){ greenLEDvalue++; } delay(fadeSpeed); } redLEDvalue = 1; greenLEDvalue = 1; for(int i = 0; i <= 200; i++){ redLEDvalue--; blueLEDvalue--; greenLEDvalue++; analogWrite(redLEDport, redLEDvalue); analogWrite(blueLEDport, blueLEDvalue); analogWrite(greenLEDport, greenLEDvalue); if(redLEDvalue <= 0){ redLEDvalue++; } if(blueLEDvalue <= 0){ blueLEDvalue++; } if(greenLEDvalue <= 0){ greenLEDvalue++; } delay(fadeSpeed); } redLEDvalue = 1; blueLEDvalue = 1; }

I set the Arduino pins for the LED to pin 9, 10 and 11, but you can use any of the PWM pins. If you run your Arduino now, either the 3 LEDs or the RGB LED's color will shift over the spectrum! It does this by constantly increasing the power written to the LED anodes through a for loop. If you want to change the fade speed, you can easily adjust the fadeSpeed variable.

Step 4: Making Your Lamp!

This step is really up to you and I can't help you much with it, but if you seek make a Shrouded Lantern yourself you can check out my WIP pictures above here. Do make sure to plan ahead well of where you are going to put the LEDs and their wires! In my case I had to keep the top of the head loose untill the very end, so I could still pull the wires through the holes I made in the body.

If you're going to work with clay and don't know where to start, you can ofcourse check out some tutorials on getting you started with clay modelling!

Step 5: Finishing Your Lamp

Once you attached your LEDs (after soldering your wires to the LED pins) you can start soldering the wires to the resistors we used earlier, and recreate the same setting we made during the prototyping. If you use multiple LEDs like I did, you can just combine all the wires of the same color. This way you only need one pin to control all red wires.

After doing this, everything should work! If you're fine with having it just cycle on the color spectrum when it's turned on, you're all done. If you want to connect a bluetooth module like I did, continue to the last step.

Step 6: Making Your Lamp Bluetooth-controllable

Hooking up your bluetooth module is the simple part.

The HC-06 has 4 pins: 5V, GND, TX and RX. 5V is the power input, GND the ground and TX/RX are the transmit and receive nodes. Now, connect the TX node to the RX pin on your Arduino (they are before the digital pins) and the RX node to the TX pin. Do make sure that you connect the opposites, not the TX to the TX pin!

The next part is a bit trickier and includes high-level programming, but luckely there are people out there who have ready-to-use mobile apps with their needed arduino code. If you fancy learning how to write the needed code yourself, and youtube are your friends. I used a sample and studied how it works, then adjusted it to my likings.

Below are some of the available samples:

In the descriptions of these apps you can find the required code for them to work.

After all is done, you now should be able to control your LEDs with your phone! :D

That's it for this instructable, I hope it's been of any help to you!

~ Cheers, Nikki

Make it Glow Contest 2016

Participated in the
Make it Glow Contest 2016