Difference between revisions of "User:S8brown"

From Robert-Depot
Jump to: navigation, search
 
(5 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
I made two tilt sensors out of ball bearings and bic pens and positioned them on either side of the motor at different angles.
 
I made two tilt sensors out of ball bearings and bic pens and positioned them on either side of the motor at different angles.
 
When the motor/device is tilted in one direction, it will spin clockwise, and when tilted the other direction, counter-clockwise.
 
When the motor/device is tilted in one direction, it will spin clockwise, and when tilted the other direction, counter-clockwise.
 +
Originally I wanted to control a toy that would fall over and correct itself, but the motor it used takes a little more power than I was able to supply directly from the microprocessor, so this might be considered to be a prototype.
 
As for the aesthetic of the device, it would be fitted to the duty it was designed to perform such as a handle for a fishing pole, etc.
 
As for the aesthetic of the device, it would be fitted to the duty it was designed to perform such as a handle for a fishing pole, etc.
 
For testing, I affixed the components to a toilet paper tube with the tilt sensors pointing up a little bit so that they won't always be triggering.
 
For testing, I affixed the components to a toilet paper tube with the tilt sensors pointing up a little bit so that they won't always be triggering.
Line 11: Line 12:
 
[[Image:Photo.png]]
 
[[Image:Photo.png]]
  
[[Image:http://i650.photobucket.com/albums/uu221/onebigword/photo2.png]]
+
[[Image:Photo2.png]]
  
 
And Here's the code!
 
And Here's the code!
  
  
int turn1 = 12;            // choose the pins for controlling direction
+
    int turn1 = 12;            // choose the pins for controlling direction <br>
int turn2 = 13;
+
    int turn2 = 13;<br>
int tilt1 = 4;                // choose the input pin (for the tilt sensors)
+
    int tilt1 = 4;                // choose the input pin (for the tilt sensors)<br>
int tilt2 = 5;
+
    int tilt2 = 5;<br>
int val1 = 0;                    // variable for reading the pin status
+
    int val1 = 0;                    // variable for reading the pin status<br>
int val2 = 0;
+
    int val2 = 0;<br>
 
+
    void setup() {<br>
void setup() {
+
      pinMode(turn1, OUTPUT);      // declare turn pins as output<br>
  pinMode(turn1, OUTPUT);      // declare turn pins as output
+
      pinMode(turn2, OUTPUT);<br>
  pinMode(turn2, OUTPUT);
+
      pinMode(tilt1, INPUT);    // declare tilt sensors as input<br>
  pinMode(tilt1, INPUT);    // declare tilt sensors as input
+
      pinMode(tilt2, INPUT);<br>
  pinMode(tilt2, INPUT);
 
 
    
 
    
  digitalWrite(0,HIGH);    // write a HIGH to allow for current to flow through pin
+
      digitalWrite(0,HIGH);    // write a HIGH to allow for current to flow through pin<br>
  digitalWrite(1,HIGH);
+
      digitalWrite(1,HIGH);<br>
}
+
    }
 
+
    void loop(){
void loop(){
+
      val1 = digitalRead(tilt1);  // read input value
  val1 = digitalRead(tilt1);  // read input value
+
      val2 = digitalRead(tilt2);
  val2 = digitalRead(tilt2);
 
 
    
 
    
  if (val1 == HIGH) {        // if tilted, turn the motor!
+
      if (val1 == HIGH) {        // if tilted, turn the motor!
    pinMode(turn1,OUTPUT);    // turn the pins on
+
        pinMode(turn1,OUTPUT);    // turn the pins on
    pinMode(turn2,OUTPUT);     
+
        pinMode(turn2,OUTPUT);     
    digitalWrite(turn1, LOW);  // turn the motor!
+
        digitalWrite(turn1, LOW);  // turn the motor!
    digitalWrite(turn2, HIGH);
+
        digitalWrite(turn2, HIGH);
  }
+
      }
  if (val2 == HIGH) {        // if tilted, turn the motor!
+
      if (val2 == HIGH) {        // if tilted, turn the motor!
    pinMode(turn1,OUTPUT);    // turn the pins on
+
        pinMode(turn1,OUTPUT);    // turn the pins on
    pinMode(turn2,OUTPUT);
+
        pinMode(turn2,OUTPUT);
    digitalWrite(turn1, HIGH);  // turn the motor the other way!
+
        digitalWrite(turn1, HIGH);  // turn the motor the other way!
    digitalWrite(turn2, LOW);
+
        digitalWrite(turn2, LOW);
  }
+
      }
  if(val1 != HIGH && val2 != HIGH){ // if it's not tilted either way
+
      if(val1 != HIGH && val2 != HIGH){ // if it's not tilted either way
    pinMode(turn1,INPUT);  // turn the output pins "off"
+
        pinMode(turn1,INPUT);  // turn the output pins "off"
    pinMode(turn2,INPUT);
+
        pinMode(turn2,INPUT);
}
+
    }
}
+
    }
  
  
 
[[User:S8brown/Project | Other Projects]]
 
[[User:S8brown/Project | Other Projects]]

Latest revision as of 18:48, 11 June 2009

Hi I'm Seth.

For my midterm project, I created a tilt sensing motor. I made two tilt sensors out of ball bearings and bic pens and positioned them on either side of the motor at different angles. When the motor/device is tilted in one direction, it will spin clockwise, and when tilted the other direction, counter-clockwise. Originally I wanted to control a toy that would fall over and correct itself, but the motor it used takes a little more power than I was able to supply directly from the microprocessor, so this might be considered to be a prototype. As for the aesthetic of the device, it would be fitted to the duty it was designed to perform such as a handle for a fishing pole, etc. For testing, I affixed the components to a toilet paper tube with the tilt sensors pointing up a little bit so that they won't always be triggering.

(I let my friend borrow my Arduino, so there aren't any pictures of the "device" as a whole, but here are the main components!)

Photo.png

Photo2.png

And Here's the code!


   int turn1 = 12;            // choose the pins for controlling direction 
int turn2 = 13;
int tilt1 = 4; // choose the input pin (for the tilt sensors)
int tilt2 = 5;
int val1 = 0; // variable for reading the pin status
int val2 = 0;
void setup() {
pinMode(turn1, OUTPUT); // declare turn pins as output
pinMode(turn2, OUTPUT);
pinMode(tilt1, INPUT); // declare tilt sensors as input
pinMode(tilt2, INPUT);
digitalWrite(0,HIGH); // write a HIGH to allow for current to flow through pin
digitalWrite(1,HIGH);
} void loop(){ val1 = digitalRead(tilt1); // read input value val2 = digitalRead(tilt2); if (val1 == HIGH) { // if tilted, turn the motor! pinMode(turn1,OUTPUT); // turn the pins on pinMode(turn2,OUTPUT); digitalWrite(turn1, LOW); // turn the motor! digitalWrite(turn2, HIGH); } if (val2 == HIGH) { // if tilted, turn the motor! pinMode(turn1,OUTPUT); // turn the pins on pinMode(turn2,OUTPUT); digitalWrite(turn1, HIGH); // turn the motor the other way! digitalWrite(turn2, LOW); } if(val1 != HIGH && val2 != HIGH){ // if it's not tilted either way pinMode(turn1,INPUT); // turn the output pins "off" pinMode(turn2,INPUT); } }


Other Projects