1. “Chill Feeler”,
2. “Therapeutic Massager”,
3. “MetalHead+RelaxomaticShoulderCushion”,
4. “NewEnhancedWavelength(NEW)” or call it “(NEW) Feel”
-Flexible wire from home depot.
-Some Hard mendable wire from home depot.
-Another switch.
Inspired again from this device.
These are my ideas so far and hopefully they will become a reality.
QUESTIONS:
1)What do you think I could use as a good motor that won’t stop so easily?
2) Do you have any ideas of how to go about massaging the neck?
3) Should this project be mean’t for commercial purchases or for a tester for a Halloween gag to see how long you can take it kind of mechanism? Other Advice to how I go about doing this I would be glad to hear about.
UPDATE TO PROJECT IDEA
Project: SOMBRERO
Has the same functions as the shoulder massager BUT it is going to be another massaging crazy hat.
Functions:
–Stepper motor will basically lead the car around the head but counting each sound to the music at the same time. These will be hooked up to a button. AND to get that massaging head feel I am going to hook up a pager motor within the car so when the car rides around the head you can feel the vibration. Like a real race car is on you and hopefully get a tingly weird feel as well. (I would like if possible dunno if i have time make a four LED race course around the outer rim of the hat so when the car goes around the hat the car going over the LED will close the circuit causing it to light up.) Possibilities are endless with this crazy hat.

Basic concept of the sombrero and as the other hat the bread board and the arduino will be attached to the hat. I forgot to change the piezo into a buzzer. It essentially is a buzzer that will be playing music and I hope to find the mariachi music or it can be the Can Can song.
The stepper motor will be hooked up to a Violin String I have acquired a D string for now.
A pager motor hooked up to the car. Can’t wait to see that in action.
Materials:
-Violin String(I had to grab some of my Violin string and it is not cheap as it wasn’t broken the ones i found.)
– -EasyDriver
Stepper Motor Driver- 2.75- http://www.allelectronics.com/make-a-store/item/SMT-102/STEPPER-MOTOR-W/SCREW-MECHANISM/1.html

This is the one I purchased HOPEFULLY it’ll come. I don’t trust online purchasing of anything so if
this works I may get more if it fails to function.
If I don’t get this in time I will be forced to use a DC motor.
-Coupler Brushless- I am going to see if I can purchase some around here.(seeing some around 8.99)for i don’t know if I am spelling it right online. This will weigh down the violin wire on the Stepper Motor.
-Buzzer- $1.55
http://www.allelectronics.com/make-a-store/item/SBZ-204/3-18-VDC-PIEZO-BUZZER/1.html
When I get the stepper motor I’ll be able to combine code. So code I want to combine to get these functioning together:
Force Sensor with Buzzer
//Force Sensor to Light Fade
//turn on the serial statements to DEBUG
//add in mapping statements to make for a better response
int ForceSensePin = A2;
int ledPin = 9;
int ForceSensorValue;
int buzzerPin = 4; // Connect Buzzer to Pin 4
long buzzerFreq; // The frequency to buzz the buzzer
// You can experiment with these values:
long BUZZ_FREQ_MAX = 24000; // Maximum frequency for the buzzer
// keep increasing BUZZ_FREQ_MAX until you get the full range
long PR_MAX = 1023; // Maximum value for the forceResistor
void setup() {
pinMode (ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT); // set a pin for buzzer output
//Serial.begin(9600);
}
void loop() {
ForceSensorValue = analogRead(ForceSensePin);
analogWrite(ledPin, ForceSensorValue);
// apply the calibration to the sensor reading
ForceSensorValue = map(ForceSensorValue, 0, 1023, 0, 255);
// in case the sensor value is outside the range seen during calibration
ForceSensorValue = constrain(ForceSensorValue, 0, 255);
buzzerFreq = (ForceSensorValue * BUZZ_FREQ_MAX) / PR_MAX;
buzz(buzzerPin, buzzerFreq, 50);
// increase the third variable, long length to hear more stepping in tones
// try values 10 through 100
// Serial.println(ForceSensorValue);
}
void buzz(int targetPin, long frequency, long length) {
long delayValue = 1000000/frequency/2;
long numCycles = frequency * length/ 1000;
for (long i=0; i < numCycles; i++){
digitalWrite(targetPin,HIGH);
delayMicroseconds(delayValue);
digitalWrite(targetPin,LOW);
delayMicroseconds(delayValue);
}
}
Stepper One Step at a Time
/*
Stepper Motor Control – one step at a time
This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 – 11 of the Arduino.
The motor will step one step at a time, very slowly. You can use this to
test that you’ve got the four wires of your stepper wired to the correct
pins. If wired correctly, all steps should be in the same direction.
Use this also to count the number of steps per revolution of your motor,
if you don’t know it. Then plug that number into the oneRevolution
example to see if you got it right.
Created 30 Nov. 2009
by Tom Igoe
*/
#include <Stepper.h>
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8,9,10,11);
int stepCount = 0; // number of steps the motor has taken
void setup() {
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
// step one step:
myStepper.step(1);
Serial.print(“steps:” );
Serial.println(stepCount);
stepCount++;
delay(500);
}
French Can Can Buzzer
// Buzzer example function for the CEM-1203 buzzer (Sparkfun’s part #COM-07950).
// by Rob Faludi
// http://www.faludi.com
// Additions by Christopher Stevens
// http://www.christopherstevens.cc
//referenced from http://www.phy.mtu.edu/~suits/notefreqs.html
//starting with F noteFreqArr[1]
int noteFreqArr[] = {
49.4, 52.3, 55.4, 58.7, 62.2, 65.9, 69.9, 74, 78.4, 83.1, 88, 93.2,
98.8, 105, 111, 117, 124, 132, 140, 148, 157, 166, 176, 186,
198, 209, 222, 235, 249, 264, 279, 296, 314, 332, 352, 373,
395, 419, 444, 470, 498, 527, 559, 592, 627, 665, 704, 746,
790, 837, 887, 940, 996, 1050, 1110, 1180, 1250, 1320, 1400, 1490,
1580, 1670, 1770, 1870, 1990, 2100};
void setup() {
pinMode(4, OUTPUT); // set a pin for buzzer output
}
void playNote(int noteInt, long length, long breath = 20)
{
length = length – breath;
buzz(4, noteFreqArr[noteInt], length);
if(breath > 0)
{ //take a short pause or ‘breath’ if specified
delay(breath);
}
}
void loop() {
//main course
playNote(24,500);
playNote(17,1000);
playNote(19,250);
playNote(22,250);
playNote(21,250);
playNote(19,250);
playNote(24,500);
playNote(24,500);
playNote(24,250);
playNote(26,250);
playNote(21,250);
playNote(22,250);
playNote(19,500);
playNote(19,500);
playNote(19,250);
playNote(22,250);
playNote(21,250);
playNote(19,250);
playNote(17,250);
playNote(29,250);
playNote(28,250);
playNote(26,250);
playNote(24,250);
playNote(22,250);
playNote(21,250);
playNote(19,250);
playNote(17,1000);
playNote(19,250);
playNote(22,250);
playNote(21,250);
playNote(19,250);
playNote(24,500);
playNote(24,500);
playNote(24,250);
playNote(26,250);
playNote(21,250);
playNote(22,250);
playNote(19,500);
playNote(19,500);
playNote(19,250);
playNote(22,250);
playNote(21,250);
playNote(19,250);
playNote(17,250);
playNote(24,250);
playNote(19,250);
playNote(21,250);
playNote(17,250);
delay(250);
}
void buzz(int targetPin, long frequency, long length) {
long delayValue = 1000000/frequency/2; // calculate the delay value between transitions
//// 1 second’s worth of microseconds, divided by the frequency, then split in half since
//// there are two phases to each cycle
long numCycles = frequency * length/ 1000; // calculate the number of cycles for proper timing
//// multiply frequency, which is really cycles per second, by the number of seconds to
//// get the total number of cycles to produce
for (long i=0; i < numCycles; i++){ // for the calculated length of time…
digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphram
delayMicroseconds(delayValue); // wait for the calculated delay value
digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphram
delayMicroseconds(delayValue); // wait againf or the calculated delay value
}
}
Use my old code as a frame or more like an example to fix all these together.
// Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
// variable to store the servo position
int motorPin1 = 3;
int motorPin2 = 5;
int motorPin3 = 6;// define the pin the motor is connected to
// (if you use pin 9,10,11 or 3you can also control speed)
const int buttonPin = 2;
int buttonState = 0;
int pos = 0;
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
// initialize the LED pin as an output:
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop()
{
if (buttonState == HIGH)
{
for(pos = 0; pos < 90; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 90; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(15); // waits 15ms for the servo to reach the position
}
}
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH); // turns the motor On
}
else {
// turn motor off:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);// turns the motor off
}
// // read the state of the pushbutton value:
// buttonState = digitalRead(buttonPin);
//
// // check if the pushbutton is pressed.
// // if it is, the buttonState is HIGH:
// if (buttonState == HIGH) {
// //turn servo on:
// digitalWrite(myservo, HIGH);
// }
// else {
// // turn servo off:
// digitalWrite(myservo, LOW);
// }
}