Introduction: How to Make a Helmet to Help You Just Say No

Do you have trouble saying no? Do you find yourself in situations you would rather not be in because it it? Are you attacked by solicitors on you way to class or work? Or are you worried that you will offend people if you say no? Then try this. It says no, so you don't have to.

This project instructs how to make a helmet that has a slide down visor with the word "NO" printed on the outside. The helmet uses an accelerometer to determine if the user is walking or stopped and deploys the visor when the user has stopped for too long.

I designed this project because I for one have trouble saying no. With strangers I do not want to be rude by saying no. And with friends and family I do not want to disappoint them, or feel like I am letting them down by saying no. However, never being able to say no can lead to some unfavorable situations and outcomes. So instead of learning how to say no, I decided to create a device to do it for me. This way I do not have to feel rude or disappointing when I say no and I can blame it on the pursuit of Art and Science!

Enjoy!

Step 1: The Goods

For this project you will need...

Arduino:  I used the Arduino Uno. You can find them at Sparkfun .

USB Cable:  To connect the Arduino to a computer for coding.

9V Batter Power Cord & Battery: To power the Arduino.

Helmet:  I used a cheap bicycle helmet. Alternatively you could use a costume helmet or go with something like a motorcycle helmet.

Full Rotation Servo: You could also use a motor, just make sure you use something that has continuous 360 rotation in both directions. I used Sparkfun's Medium Full Rotation Servo .

Accelerometer:  I used the Gryo Breakout Board from Sparkfun. The accelerometer I used did require having some pins soldered on.

Visor: For my visor I used some old card-stock paper I had around. Other opinions could be other paper, plexiglass, etc. 

Arduino Shield: This part is not necessary but can be handy to consolidate space, especially since the whole device sets atop one's head. I also found a mini-breadboard to place on my shield. 

Solder Iron & Solder: Some materials may require soldering.

Computer:  You will need a computer to write, compile and upload code to the Arduino. Any computer (with a USB drive) will do.
 
Screws : To attach the Arduino and other parts to the helmet.

Four AA Battery Pack & Batteries: To power the Servo.

Wires : To connect the electrical parts. 

Tape & Glue: For construction and attaching parts.

Step 2: Soldering

A few parts may need to be soldered before putting everything together.

Depending on your motor and accelerometer some soldering might be necessary. I had to solder some lead wires to my Gyro Breakout Board. And My Arduino shield also came in a kit that required everything to be soldered.

I am not providing a how-to on soldering, however, here's a helpful Instructable on How to Solder  by noahw

Step 3: Coding

Coding is perhaps the most important part of this project.

The idea behind my code is that the accelerometer measures the movement of the head while walking and standing. When the movement is minimal - standing still - the visor is deployed. And then when the movement increases again - walking - the visor is pulled back up.

Depending on the servo/motor and accelerometer used the code will differ. Furthermore depending on how confident or skilled you are with programming you might be able to come up with something a little more elegant than mine. But, here is the code I used for mine...

- - - - -

#include <Servo.h>
Servo alfred;
const int xpin = 1;
int maxi, mini, output, range, WALK;
unsigned long start;
boolean deployed;

void setup(){
   alfred.attach(9);
   maxi = mini = 250;
   deployed = false;
   WALK = 100;
}

void loop(){
   maxi = mini = 250;
   start = millis();
   while (millis()-start < 2000){
      output = analogRead(xpin);
      if (output > maxi)
      maxi = output;
      if (output < mini)
      mini = output;
   }
   range = maxi - mini; 
   if (range > WALK && !deployed){
      deployed = true;
      alfred.writeMicroseconds(2000);
      delay(200);
   }
   else if (range < WALK && deployed){
      deployed = false;
      alfred.writeMicroseconds(1000);
      delay(200);
   }
   else{
      alfred.writeMicroseconds(1450);
      delay(200);
   }
}

- - - - -

Once you have your code how you want it you will need to upload it to your Arduino using the USB cable. 

Step 4: Circuit & Wiring

The other most important part of this project is the Circuit. If your board and pieces are not wired up right, then now matter how elegant and impressive your coding is, it will make no difference. So make sure everything is hooked up right.

I included a schematic for my servo and accelerometer, as well as a picture of how my breadboard, wires, etc. look. The Servo is powered by the AA Battery pack and the Arduino is charged by the 9V battery. The wiring is pretty simple for this project so the schematic should be most helpful.

Note: The X(x4) axis was not working properly on my accelerometer so I used the Z(x4) axis instead.


Step 5: Construction

For anyone who can better resources and any knowledge of mechanics I am sure you can create a better system than mine for the visor system. But here is how I did it...

Write, type, print, etc. NO onto your visor. Most Important Step!

For the visor I took a large sheet of bristol board paper and cut the sides so it bent up into a half helmet shape (see picture). The visor is held together with glue and tape. For the visor cover I took an additional sheet of Bristol Board and cut it so it would cover the visor (pretty simple).

Originally I had constructed a second half helmet shaped cover, but since paper only bends in one direction the visor did not slide very nicely inside of the cover. Feel free to experiment and see what look best to you.

Then I use screws to attached the visor and the cover to the helmet. The visor and cover are attached on the two sides of the helmet to allow the visor to pivot up and down. I aped down the cover so it would not move along with the visor.

Don't have the Arduino on (connect to batteries) while attaching it. To attach the Arduino and shield I screwed them to the top middle/back of the helmet. The batteries and servo I attached with tape/glue.

Once everything is placed atop the helmet attach the batteries and servo to the Arduino. Wait to see the postition of the servo so that you can properly attach it to the visor in the correct up or down position. Use a string (I used a longer wire) to attach to the servo to the visor.

I used one of the servo arms that came with the servo and tied my string (wire) around it. Just make sure that the string you use will wrap (and un-wrap) around whatever you decide to use with your servo/motor/etc.




Step 6: Finish

Some Additional notes and comments...

With the Arduino near the back of the helmet it make it very back heavy. So be careful that it does not fall off the back of your head. Alternatively try re-adjusting the weight to different places. If you use plastic instead of paper for the visor it would also add more weight to the front.

In the final version of my project I used a 180 degree rotation Servo, different from the kind used in the Instructable. This kind of Servo will work, you will just have to create a longer lever arm for the Servo to pull the visor up and down.

... 

If you followed all the steps you should be all done. Congrats! Now go out there and tell some people NO!