Introduction: Neopixel Ring Motorcycle Helmet
This instructable is on how to modify a motorcycle helmet ( or any helmet for that matter ) with a neopixel ring using a Lilypad Arduino and a sound sensor.
DISCLAIMER: This modification could violate safety laws in your area. If you live in an area where a helmet it required, do not drill into your helmet. If you live in a "no helmet" area, then it is up to you. This is purely for looks.
You will need a helmet with a removable shell. You will need a neopixel ring (adafruit) and some sort of arduino board and a sound sensor. If you get a Lilypad Main board you will need a power distribution board. The battery plugs into this board and powers the rest of the components.
You will also need these supplies:
Wire, solid is easiest to solder with.
Wire strippers.
Soldering Iron and solder.
Hot glue gun.
Clear 2 part epoxy.
Drill
1/8th inch drill bit.
Step 1: Programming
I got the bulk of my code from this package here. http://zeroeth.github.io/oculus_aethereum/
This has a great starting block for neopixel programming.
Use the wire diagram to see how all the boards talk to eachother.
I added a segment of code to control the light pattern by the sound sensor. I mapped the sound sensor value down from 1-1024 to 1-255.
I am setting my value to go through the light patterns while I am at idle, and to stop when I am riding down the road.
Keep in mind that this was adapted from a goggle project so the names might be somewhat confusing, but the code works well.
Here is the rest of my code.
#include "Adafruit_NeoPixel.h"
#include "segment_models.h"
#include "segment_views.h"
#include "themes.h"
int sensorValue = A0;
int mappedValue;
// Initialize
#define PIN 6
#define LED_COUNT 16
#define LEFT_EYE_START 0
#define RIGHT_EYE_START 16
#define LEDS_PER_EYE 16
#define THEME_SWITCH_DELAY 5000 // Milliseconds
Adafruit_NeoPixel led_strip = Adafruit_NeoPixel (LED_COUNT, PIN, NEO_GRB + NEO_KHZ800);
// Create containers for sections of your LED strands/circles.
StripView left_eye = StripView (led_strip, LEFT_EYE_START, LEDS_PER_EYE);
StripView right_eye = StripView (led_strip, RIGHT_EYE_START, LEDS_PER_EYE);
StripView both_eyes = StripView (led_strip, LEFT_EYE_START, LEDS_PER_EYE * 2);
void setup ()
{
Serial.begin(9600);
pinMode (A0, INPUT);
// Aways give your project a safe boot delay so you can re-upload code when:
// - it uses too much current when your LEDs are too bright
// - the serial doesn't respond because of some timing issue
delay(3000);
led_strip.begin ();
}
// Main Loop
void loop() {
// strip.setPixelColor();
sensorValue = analogRead(A0);
Serial.print("sensorValue :");
Serial.println(sensorValue);
mappedValue = map(sensorValue, 0, 1023, 0, 255);
Serial.print(" map to 0 - 255 :");
Serial.println(mappedValue);
if (mappedValue < 30 && mappedValue >=1)
{
// Switch themes every {x} seconds
Theme::switch_every (THEME_SWITCH_DELAY);
left_eye.clear ();
// Update the spots
left_eye.update ();
// Draw the spots.
left_eye.draw ();
led_strip.show ();
}
if (mappedValue <255 && mappedValue >=31)
{
left_eye.clear ();
led_strip.show();
}
}
Attachments
Step 2: Layout the Hardware
Remove the shell from the styrofoam insert.
Layout where you would like the hardware to go.
Draw an outline around the board.
Label the ports of each board to show orientation of the board.
Step 3: Remove Material
Remove the styrofoam so the hardware will not interfere with the shell of the helmet.
I used my soldering iron to melt the material away. It worked very well. You could also use a drill, dremel or plain old exacto knife. Just get the material out of the way.
Step 4: Route Wires
Determine the paths that the wires need to take. Refer to wiring diagram to determine where the wires need to be routed.
Cut the wires to proper length. ( leave a cm or so extra just for safe measures )
Strip each end and solder wires to correct port.
Once you have all the wires the correct length and soldered to the correct port hot glue all the hardware and wires down securely.
Step 5: Drill
Drill the holes for the sound sensor and the LEDs.
It is important to measure precisely. I did not get the holes above the LEDs perfectly but you still get a good effect.
Use a 1/8th inch drill bit. An larger and you risk all the holes cracking into eachother. Any smaller and not enough light is seen.
Step 6: Fill Drill Holes With Epoxy
Tape the inside of the holes off.
Fill each hole with clear epoxy. This will provide waterproofing and diffuse the light nicely.
I used JB Welds ClearWeld quick setting epoxy. It is the clearest epoxy I have found yet.
Step 7: Go Ride!
Now go show all your buddies your awesome new helmet and have them gawk in awe!

Participated in the
Sensors Contest

Participated in the
Arduino Contest
20 Comments
5 years ago
library file downloading link???
7 years ago
Wow Someone doesn't understand motorcycle safety at all. 100% fail . That hellmet will crack open like a egg shell when you get hit . Then add in you ve taken away the foam that stop the impacked protection and you ve got brain damage . Don't do this at all
Reply 7 years ago
Did you even read th whole thing?
9 years ago
why not mould an atttachment for the outside saving safety nice idea though
9 years ago
You can easily reach speeds at which you can do significant damage when rollerblading and skateboarding. Pretty but I'm with those concerned about compromising the integrity of a protective device. Much better as a stick on unit.
9 years ago on Introduction
Since many are concerned about this helmet's safety, perhaps it would be better used as a rollerblade or skateboarding helmet. You wouldn't be going nearly as fast when/if you fell.
9 years ago
Other than having a ring of LEDs on your lid does this accomplish anything? Looks neat, but I'm a fan of keeping my brain in its current home.
Reply 9 years ago
One could argue increased visibility is safer but this is mainly just for looks. I personally dont believe this will significantly reduce the helmets safety standards. Its not the hard shell that protects your brain. And unusually dont wear a helmet so anything would be better than nothing.
Reply 9 years ago on Introduction
The hard shell is an integral part of the helmet too
Reply 9 years ago on Introduction
Bike helmets have a plastic film over the main styrofoam part of the helmet. The styrofoam is going to provide the bulk of the protection.
Reply 9 years ago on Introduction
This is true. That plastic film is basically there to contribute to aerodynamics and make it look pretty.
However, not all helmets have this thin plastic film. Many of them, like yours, have a hard shell, that is actually part of the helmet's safety rating.
9 years ago
The plastic shell serves to spread the force if impact across a larger area, thereby reducing the peak impact force felt at the brain. Compromising the shell of a helmet turns it into an ornament.
Reply 9 years ago
Lik I said before, I live in a no helmet state. Not worried about it.
9 years ago
Just a note to anyone in the UK... messing with your lid like this will get you pulled at every turn... for good reason. Would you wear a suit instead of leathers because it might "look better". Ride safe.
Reply 9 years ago
I agree. here in Canada you can't modify your helmet either. this really does look cool but gotta be safe.
9 years ago
A better solution would be to set the ring in a low profile housing that attaches to the helmet with double sided tape
9 years ago on Introduction
I did consider that. I live in a "no helmet" state so I was not too concerned about that. Thanks for viewing.
9 years ago on Introduction
Good for displaying. No more useful as protection.
9 years ago
I would be concerned about the structural integrity and energy dispersion properties of the helmet now. I looks good but I wouldn't wear it as it is no longer safe.
Reply 9 years ago on Introduction
Agreed ! somethings are better left or modified keeping in mind its primary use.