Final Project (NEW) Feel

Name-Ashley Villagrana
Argumental names
1. “Chill Feeler”,
2. “Therapeutic Massager”,
3. “MetalHead+RelaxomaticShoulderCushion”,
4. “NewEnhancedWavelength(NEW)” or call it “(NEW) Feel”
Materials:
-3 motors?
-3 toy servos?
-Flexible wire from home depot.
-Some Hard mendable wire from home depot.
-Some really strong glue
-Another Bread Board
-Another switch.
-Neck Pillow
Purpose: To give another feel and edition to the previous
Metal Head. I want it to be like a clip on to enhance the experience or
relaxation. Or just go the other way and give a really goose bumpy feel to
allow a new sensation of feeling the chilly yet relaxing feel to it.
Inspired by: Student’s everyday stress and their needs to
get in a more relaxed state.  Shoulders I
am looking at are always a problem with the now a days 10 to 20 pound book bags
that we wear now. Back problems, shoulder problems, and head problems are what
is effecting the population these days. This invention though will attack the
shoulders.
Build-up: Since this neck device is applied to the previous
Metal Head project, I would love to modify the hat as well and try to if not
hide the wires to give it a more commercial product feel, or to make it more
ridiculous for a feel for laughs and giggles. Keep the wires exposed but in a way
where it means something as a tester to see how long a person can stand the
weird sensation as a Halloween product game as being the Guinea pig in a mad scientist experiment.
So first look for wire for frame to keep motors protected
and supports the neck a big to put in the neck pillow and to apply at least 3
strong rotation motors or one strong rotation motor.

 Locate a small metal peg
or stick to attach and will super wire or hot glue it depends on how strong the
adhesive is to the metal. Then get some type of smooth wheels, I can try to
find spare parts from the flea market or 3 rotating metal flower looking wheels,
which is still in debate of what type of motors to use using a strong motor, I
would love to use or find a way to use the little 2 metal motors and apply the
same concept with the hat of giving it space within the neck pillow so no
restraint or friction would fall upon these three motors. I am influenced by
the real motors in the back chair massager, which are kind of big and bulky.
These will motors go slowly down the back and rotate like pounding your back. For
this I would still want to apply this and concentrate solely on the neck area.

            The wires
would be hooked up on another breadboard, and connected to the same button as
last time, or to make it more optional to the person using the device include a
secondary button.
-Other solution would be to use three toy servos in place of
the protected rotation to get a up and down rotation and applying smooth
pebbles with strong adhesive to two poles hooked up in the toy servos. These
poles going around the neck and will go up and down smoothing the neck out.
– Then my other solution would be to buy some flexible wires
and glue some little wires with taped ends to a pole that is erected into the
air around your shoulder and let them go in a circular motion with the strong
motor and allow that to go in play at full speed and achieve a tinglish
feeling. The support will be by two strong poles and a strong yet comfortable
should rests on both shoulders to make sure the device stay on shoulders.
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); 
  //  }

2 Comments

  1. 1) I like the idea you had in having 3 strong rotation motors, so that the power not just being put into one motor, and you could have motors dedicated to certain spots on the head or neck.
    2) Something you may want to try for a neck massager is getting a neck pillow and attaching the motor with small marbles or beads, which might not be bad materials to use as a massager, and put them inside the pillow. You could even add some kind of massager component in the neck pillow to massage the shoulders!
    3) I say make this as close to a "massager" as possible (I would DEFINITELY pay for one of those!). I would say have the motor go at a slower, more rhythmic speed.

  2. 2) An idea on how you might have alternative ways to massage the neck might be using a necklace or scarf. Instead of using a neck pillow, maybe using something smaller and wearable may be an alternative of the neck pillow. You can get a necklace with marble size beads and those can act as tiny massagers.

Comments are closed.