Picture of Wireless Accelerometer Controlled rgb-LED's
MEMS (Micro-Electro-Mechanical Systems) Accelerometers are in widespread use as tilt-sensors in mobile phones and cameras. Simple accelerometers are available both as ic-chip's and cheap development pcb-boards.
Wireless chips are also affordable and available in assembled circuits, with matched antenna-network and decoupling-caps onboard.

Hook both wireless board and accelerometer up to a microcontroller via serial interface and you have a wireless controller with nintendo-wii functions.

Then build a receiver with the same type of wireless chip and pwm-controlled rgb-LEDs, voila, you have wireless, tilt-controlled coloured room lightning.

Keep the transmitter-board level with breadboard facing up and the LED is cool blue, only blue led is active. Then tilt the transmitter in one direction and you mix in red or green depending on which direction you tilt it. Tilt all the way to 90 degrees, and you go trough all mixes of red and blue or green and blue until only red or green is active at 90 degrees tilt. Tilt a little in both x and y direction and you get a mix of all the colours. At 45degrees in all directions the light is an equal mix of red, green and blue, in other words, white light.

The parts used are available from internet hobby-electronic stores. Should be identifiable from some of the pictures.

Step 1: Transmitter with accelerometer

Picture of Transmitter with accelerometer
The transmitter is based on the Atmel avr168 microcontroller. The convenient red board with the 168 is an arduino-board with voltage regulator and reset-circuit. The accelerometer is connected to the avr with bit-banged i2c bus, and the wireless board is connected with hardware SPI, (Serial Peripheral Interface).
The breadboard is completely wireless with the 4,8V batterypack strapped underneath.

The wireless board and the arduino wee accepts up to 9 V and have onboard linear voltage regulator, but the accelerometer needs 3,3V from the regulated rail on the wee.
sibilkoloft10 months ago

Great Project.

Is there any way to use my Android Amarino App data of accelerometer or orientation sensor to control the RGB hex?

visuallabs4 years ago
the accelerometer you used was off ebay.com
camp0s5 years ago
Hi, what is the name of the RF module board? you told about the RF chip, but I cannot find anything about the module itself, where did you take it?

Thanks :)
Andlier (author)  camp0s5 years ago

I bought the rf-module from sparkfun.com; 

Transceiver nRF24L01+ Module with RP-SMA
sku: WRL-00705

Thanks for your interest!
flemron5 years ago
That is brilliant!
raykholo6 years ago
any way to use a wiimote for the accelerometer?
yes you can use the wiimote if you have the BT arduino or if you have a BT enabled laptop you could via serial send the data back to the arduino and use the data to do what you want
sounds great, expensive, but great... now is it possible to use a BT arduino and send serial to it from the laptop over bluetooth too? (instead of just a direct usb connection... thanks
the BT arduino should have all the same functionas as the usb only wirless and some extra capability too.
yep --- i was looking at the product page and that sounds about right...
sounds good i am definitely familiar with the wii chuck adapter in the link u included, but that site provided some new insight that helped me learn something new thanks
Hey - do you mind including the actual code you used? I'm curious about the data analysis for your accelerometer. If you don't want to post it, could you e-mail it to me? (PM me for my e-mail) Thanks, -Josh
Andlier (author)  T3h_Muffinator6 years ago
I've posted some of the code, but unfortunately I've messed up the code for use in another project. The code posted is low-level routines for radio and shiftbright. It's not very clean, and not the best commented. Some variablenames migth be in norwegian:P I don't have time to change that now.
The accelerometer post-prosessing is a oneline lowpass-filter in c-code. Look up lowpass on wikipedia.

avg_value += (read_value - avg_value)/a

where a is the lowpass filter constant.
Hi: Which store do I buy boards for this project from ? Any ideas ? Thanks in advance.
Andlier (author)  Hobby_Electronics6 years ago
Thanks for your interest, I've bought almost everything from sparkfun.com, the led-boards are from macetech.com
ajohnstone6 years ago
This is a really cool idea. I saw this a couple of weeks ago and decided to have a go at this as a first project. I am new to this kind of thing, electronics and micro-chip programming. I have just started a blog to document my attempt at this. So just thought I would leave a comment to acknowledge the source of inspiration for my project. Cheers.
rasyoung6 years ago
Is the source code available for this? I would love to look at, esp. the I2C code.
Andlier (author)  rasyoung6 years ago
I haven't posted my own code because I don't think it's clean enough for the internet, it's just something I wrote in a hurry to test the concept. I didn't even bother to do the indentation right, honestly, really ugly code. The i2c-code is software-i2c and I found the code for it on[http:// www.avrfreaks.net avrfreaks.net]
just search for "software i2c", it's an assembly-file named something like i2cmaster.S. If I have some time to spare one day, maybe I'll post a cleaner version of the code, but don't stay around and wait for it.
crizo6 years ago
The "easier language" for arduino is actually c++ with some preprocessing. Your program would probably compile and run as-is.
Andlier (author)  crizo6 years ago
That is true, I just assumed that arduino-language was something more complicated and I did it in C that I am familiar with.
crizo Andlier6 years ago
I haven't been at it long, but I was very happy when I discovered this. It had been 5-6 years, and I was worried that my C/C++ was getting a little rusty. Once I started playing with the Arduino, I was able to jump right back into pointers, etc...
MrCakes146 years ago
So...I was thinking of doing (almost) exactly this (mine wasn't gonna be wireless, so touché) just last night. LOL - Every time I think of something cool, somebody beats me to it. Well done, and way cool...hopefully I can get mine off of the paper and into reality someday soon.
Andlier (author)  MrCakes146 years ago
I did my wired version a couple of months ago, but never got around to make an instructable. I'm sure you can come up with something new, that hasn't been done before! I find alot of inspiration here, and various other sites, and sooner or later a new, original idea will appear.
Sandisk1duo6 years ago
so what's the 2.4 ghz antenna for?
Andlier (author)  Sandisk1duo6 years ago
The wireless transmitter and receiver doesn't have onboard antenna. So to get good range I connected an external antenna.
um, so what's the receiver for? programing? Sorry i'm a programing noob
its wireless between the accel and the light module - like a tilt remote control.
Andlier (author) 6 years ago
The setup is like this:
The white breadboard with accelerometer measures tilt and sends this over the wireless link. The receiver makes the tilt-information into LED-commands and talks to the LED controller in the shiftbright-module.
uc1=microcontroller avr168
uc2=microcontroller avr169 butterfly
wirelessTX = transmitter module
wirelessRX = receiver module
~ = wireless link
--> = wired interface

accelerometer -->uc1-->wirelessTX ~ wirelessRX -->uc2--> LED