Intro: Dusty Wall Arduino Animated Led Lamp With Light Effect
I just had a baby and after doing his bedroom, I needed a light on a wall. As I love very much LED I decided to create something.
I like also plane in general, so why no putting a plane from a cartoon on the wall, here as it starts and how I did.
Hope you will like it as much as I do :)
The specs I imagine were to have a form illuminated from behind, with 4 potentiometers:
- 1 for setting RED brightness,
- 1 for the GREEN,
- 1 for the BLUE,
- and the last one to be able to set the general brightness. Of course you can change brightness with each of the 3 others potars, but it is more practical to have a general one.
Then I like round LED button's switch, so I put 3 of it
- 1 (blue with power logo) for switching ON/OFF the light,
- the second one (orange) for switching ON/OFF effect (and we will see later that we can change effect),
- and the last one (white) is for switching ON/OFF sound (yes I wanted to add a sound module too, for engine effect ;) ).
Then a little OLED will display temperature and humidity plus some messages.
Step 1: List of Materials
List of material I use
- sticker https://www.ebay.fr/itm/Autocollant-mural-Sticker...
- Dibond 176*65 local store
- Power button 5v https://fr.aliexpress.com/item/Metal-push-button-...
- Power alim 5v 5Ah https://fr.aliexpress.com/item/Metal-push-button-...
- oled display https://fr.aliexpress.com/item/Metal-push-button-... but it is not a standard SSD1306 driver, so I think it is better to put a standard one instead (but you need to change a little the Arduino code)
- Button *3 https://fr.aliexpress.com/item/Metal-push-button-...
- 5 potar https://fr.aliexpress.com/item/Metal-push-button-...
- Mega 2560 https://fr.aliexpress.com/item/Metal-push-button-...
- MP3 speaker https://fr.aliexpress.com/item/Metal-push-button-...
- DHT22 https://fr.aliexpress.com/item/Metal-push-button-...
Total around 115€ (the most expensive is the Dibond 54€. It can probably be replaced by formica or other things, but it needs to be rigid and not deform in time. Particularly for the wings which are thin.
Step 2: The Drawing
I am now a drawer so I searched for a sticker of Dusty Crophopper that I can use for that. Hopefully you can find a lot of different size and model over internet, and I found a nice one on eBay, with dimension (or at leats if was what is written in the spec) 102*46cm.
When I received it I had the surprise that it is cut in several parts, and after assembling together, the final dimension were 174 * 61 cm, quite big but it was ok on my wall, so let's go for it.
Originally I wanted to stick it on wood, like medium, but with that size, I finally bought some Dibond, witch is some very thin aluminium and plastic arround 3mm thickness. It is very rigid, will not deform in time I guess but it is not cheap.
I sticker on it and cut around with a circular saw and jigsaw.. I wanted to go very close to the stick, but finally I keep some margin because the tools was badly scratching the stickers and it was too difficult to get something clean.
Some sending on the edge after, result is not bad.
The bad surprise was the upper blade of the propeller that didn't get into the size written, I had to add a piece of material :( (you can see that the position of the propeller is not on the user guide and on the sticker itself in the same position)
Step 3: Adding Light
The LED strip is NOT a standard RGB but an addressable RGB ws2812 type. Each LED can be piloted individually.
The idea was to have a circular light behind, and to make a propeller rotating effect, so I cut a piece of wood that I glued (with strong glue), I added 2 screw because the bed of my son will be below and I don't want it fall on it if the glue failed in time.
And then I just glued the LED strip around, with hot glue, because the glue from LED strip is not enough.
After some testing I decided to add LED strip behind each wing.
On the 2 wings of Dusty, you have the 2 landing light, and I made a hole to have some light passing through that holes, plus one on each tips for the position light (red/green)
Step 4: Little OLED Display
I wonder to add a temperature display, so I added a little OLED screen, and decide to put it inside one of the wheel.
Making a nice hole is not simple, and I protected the sticker with some adhesive. Hopefully I own a Dremel, with a specific tool than help me a lot. The OLED is simply hot glue behind. The result is not perfect but it will be enough.
Step 5: Control Panel
The control panel is just a piece of Dibond, glued perpendicularly and at the bottom behind the lamp.
It is glued with 2 little reinforcement, and the potar is just passing a little when looking front the front side..
The 2 buttons for sound and effect are put between the potar. The colors of the LED switch are different. White for effect, orange for sound. When the function is ON, the LED is ON, and LED is OFF when function is OFF. When it is ON there is a little breath effect (LED brightness varies)
The general switch is in the second wheel. The LED is ON (with breath effect too) when the POWER is OFF to find the button in the dark. When power is ON the LED is OFF. The temperature is displayed even when Power is OFF. In the bedroom there is a general switch for the light, so I can completely switch it OFF. Note that it is a logical button managed by Arduino code. It is not physical switch that powers ON/OFF electricity.
Note that the potar are directly soldered on the Arduino' shield, but for switch I use a connector (R/C model type) to be able to mount/unmount then. Indeed, potar are mounted from behind, but switch from the front, so they need to be disconnected.
The DHT22 (temperature/humidity) sensor, is put on the bottom, behind a wheel, this position is to be far from the power adaptor and LED which can generate lot of heat. It is attached with scratch.
You can see on the last video that I have a problem of lag, effect is frozing regularly and I think it is when Arduino retrieve temperature and humidity values.
Step 6: Arduino Shield
There is lot of cable to connect to the arduino, I used a prototype shield, but the one with line and not the dot. It is very much practicable, even if it is less easy to find.
You solder 2.54mm standard pin, and only where needed. Arduino pin that are not used are not connected.
Then you solder every cable to the right pin. You create your own shield easily.
To get cable, I used an old scart socket (not sur of traduction "péritel" in french)
The shield is scratched behind in the middle of the lamp.
Step 7: Connexion
Sorry I didn't make the schema, but I think it is as simple to connect cable following the pin attribution.
After soldering all, there is lot of cables.
Step 8: Power
LED strip are very greedy, and you need a 5v 10 Ah at least to power them.
At the beginning there was only the central LED and I use a 5ah, when I added the 2 LED strip on the wing I changed to 10 Ah.
What is fine, is the addressable LED are 5v, same as Arduino, so it is easy to connect to same source.
Step 9: Sound Module
I found this little module, which is very simple to connect and is delivered with a speaker.
Something rare and good, is that they send you a link where you can download sample code plus documentation, and after uploaded the test code, plus some MP3 test sound, it worked at first try, which was a good surprise :)
You need a micro SD card to put your MP3 files. The smallest you'll find will be much larger that needed, My 4 files are only 12mb, yes mega ;)
So what for? I found it funny to add propeller sound to the propeller effect. So I added this module. In the code when you change effect you'll have different sound (MP3).
There is 4 effect, so 4 mp3 files name 001 to 004 in folder 01.
The speaker is hot glued on a piece of Dibond, which is screwed on the wood ring.
Hopefully, a sound switch make it possible to cut off the sound.
I wonder to be able to add a potentiometer to set the sound level, but I didn't do. I think I will re-use one of the potentiometer to set the sound during a few second after switching on the sound (no more connection to add, just some line of code) but I don't do yet.
The more attentive of you have probably notice that the sound is a Piston's engine and not a turbo prop, it is because the turbo prop is really awful on the small speaker and what better than a WW2 engine sound ;)
For the France effect, it is obvious to put the Marseillaise.
For the wave, some zen sound with ocean wave sound, and for the rainbow, a very dynamic sound (Pulp fiction).
For legal matter I cannot give the MP3 files, sorry for that.
Step 10: Coding and Adding Function
After connected everything together and made some test, I wonder to be able to change brightness of the LED button, so I changed LED cable to PWM input on Arduino, and then I made a little breath effect. Not really needed but just funny to do.
Originally, I planed to have only 1 effect, which simulate propeller rotation. Finally I added a few more effects, I then used the effect switch (originally just ON/OFF) to a click to select effect, and a long push to switch effect OFF.
With more effect, and as I got a little screen, why not displaying on the screen, when a button is pushed, and what effect is selected.
Step 11: Evolution?
It took me time to do, and during the building, I added some function, but there is always lot of room for improvement.
I like the propeller effect, but the other effect are too simple, I really need to make something better and nicer.
I need to fix the frozen issue if possible.
The sound module is not really needed, finally it is a lamp...
The USB cable is let in place and easily accessible, so it is easy to make any update needed.
- A light sensor could be interesting to adjust automatically brightness to the brightness of the room.
- A PIR sensor to switch ON/OFF automatically when someone arrives.
- Adding a clock
- position reactive (see video), I like the effect but didn't find how to adapt to Dusty lamp
- sound level setting
- Show the RGB level each color on the OLED (Edit 2017-12-07: idea was good, I did it yesterday, I will update the code after testing during a few days)
Thank you for reading.