-spring assisted hinge to open the door once knob is fully turned.
Mechanical design lab arduino project
Monday, December 2, 2013
Spring assisted door opener
If we applied the door knob opener to a full size door the addition of this spring assisted hinge would be a great addition to making the door fully automatic requiring minimal to no work to open it. In addition to that a second mechanism would then be needed to close the door.
Sunday, December 1, 2013
Week 4 objectives/progress
-Begin assembly on the doorknob assembly when 3D parts are recieved
-work out any quirks in the assembly
Finalized Arduino Code:
// Include the servo library to add servo-control functions:
#include <Servo.h>
// Create a servo "object", called servo1. Each servo object
// controls one servo (you can have a maximum of 12):
Servo servo1;
// Define the analog input pin to measure flex sensor position:
const int flexpin = 0;
void setup()
{
// Use the serial monitor window to help debug our sketch:
Serial.begin(9600);
// Enable control of a servo on pin 9:
servo1.attach(9);
}
void loop()
{
int flexposition; // Input value from the analog pin.
int servoposition; // Output value to the servo.
// Read the position of the flex sensor (0 to 1023):
flexposition = analogRead(flexpin);
// Because the voltage divider circuit only returns a portion
// of the 0-1023 range of analogRead(), we'll map() that range
// to the servo's range of 0 to 180 degrees. The flex sensors
// we use are usually in the 600-900 range:
servoposition = map(flexposition, 719, 870, 6, 180);
servoposition = constrain(servoposition, 6, 180);
// Now we'll command the servo to move to that position:
servo1.write(servoposition);
// Because every flex sensor has a slightly different resistance,
// the 600-900 range may not exactly cover the flex sensor's
// output. To help tune our program, we'll use the serial port to
// print out our values to the serial monitor window:
Serial.print("sensor: ");
Serial.print(flexposition);
Serial.print(" servo: ");
Serial.println(servoposition);
// Note that all of the above lines are "print" except for the
// last line which is "println". This puts everything on the
// same line, then sends a final carriage return to move to
// the next line.
// After you upload the sketch, turn on the serial monitor
// (the magnifying-glass icon to the right of the icon bar).
// You'll be able to see the sensor values. Bend the flex sensor
// and note its minimum and maximum values. If you replace the
// 600 and 900 in the map() function above, you'll exactly match
// the flex sensor's range with the servo's range.
delay(20); // wait 20ms between servo updates
}
-work out any quirks in the assembly
Finalized Arduino Code:
// Include the servo library to add servo-control functions:
#include <Servo.h>
// Create a servo "object", called servo1. Each servo object
// controls one servo (you can have a maximum of 12):
Servo servo1;
// Define the analog input pin to measure flex sensor position:
const int flexpin = 0;
void setup()
{
// Use the serial monitor window to help debug our sketch:
Serial.begin(9600);
// Enable control of a servo on pin 9:
servo1.attach(9);
}
void loop()
{
int flexposition; // Input value from the analog pin.
int servoposition; // Output value to the servo.
// Read the position of the flex sensor (0 to 1023):
flexposition = analogRead(flexpin);
// Because the voltage divider circuit only returns a portion
// of the 0-1023 range of analogRead(), we'll map() that range
// to the servo's range of 0 to 180 degrees. The flex sensors
// we use are usually in the 600-900 range:
servoposition = map(flexposition, 719, 870, 6, 180);
servoposition = constrain(servoposition, 6, 180);
// Now we'll command the servo to move to that position:
servo1.write(servoposition);
// Because every flex sensor has a slightly different resistance,
// the 600-900 range may not exactly cover the flex sensor's
// output. To help tune our program, we'll use the serial port to
// print out our values to the serial monitor window:
Serial.print("sensor: ");
Serial.print(flexposition);
Serial.print(" servo: ");
Serial.println(servoposition);
// Note that all of the above lines are "print" except for the
// last line which is "println". This puts everything on the
// same line, then sends a final carriage return to move to
// the next line.
// After you upload the sketch, turn on the serial monitor
// (the magnifying-glass icon to the right of the icon bar).
// You'll be able to see the sensor values. Bend the flex sensor
// and note its minimum and maximum values. If you replace the
// 600 and 900 in the map() function above, you'll exactly match
// the flex sensor's range with the servo's range.
delay(20); // wait 20ms between servo updates
}
Week 3 Overview
-Finalize design and complete models of parts to be 3D printed
-Finalize any quirks in the arduino coding
Group attendance
Monday November 25th
All members
Wednesday November 27th
All members
Goals set for next week (week of december 2nd)
-when 3D parts are printed, construct prototype assembly of doorknob opener and fix any quirks in the mechanism
As of Wednesday November 27th all solidworks parts to be submitted for printing have been submitted and all coding has been finalized.
-Finalize any quirks in the arduino coding
Group attendance
Monday November 25th
All members
Wednesday November 27th
All members
Goals set for next week (week of december 2nd)
-when 3D parts are printed, construct prototype assembly of doorknob opener and fix any quirks in the mechanism
As of Wednesday November 27th all solidworks parts to be submitted for printing have been submitted and all coding has been finalized.
Monday, November 18, 2013
Arduino flex sensor setup+wiring schematic
A doorknob assembly will be attached to the servo and the turning of the knob will solely be controlled by movement of a flex sensor.
Subscribe to:
Posts (Atom)