Thursday, December 12, 2013

Motion Study of Completed Hand Assembly

     Today we have a motion study of the entire hand assembly. Although the assembly itself was completed weeks ago in order to send it in for 3D printing, the group had never done a full motion study. Below is a video of each segment of each finger rotating 45 degrees over a period of 3 seconds. As you can see it follows the basic motion of an actual human hand. With the pieces we have missing unfortunately we will not be able to full replicate this motion on the real product. On the product we are presenting we have one finger performing this motion.
 

 
 
 
     Construction of the hand will be covered in a following post.

Wednesday, December 11, 2013

Servos and resistors arrived.

The servos that were ordered last week have arrived and now the process begins of fine tuning our code to properly match the flex sensor's range with the servo range.  Not surprisingly, it was cheaper to get a large container of many resistor values and pay no shipping through Amazon Prime than get a small package of 22K ohm resistors and pay shipping.





Laser Cut and 3-D Printed Parts Recieved

On Monday (12/9/13) the laser cut parts as well as most of the 3-D printed parts were picked up.  After taking an inventory of all the parts recieved against the parts submitted it was found that there were 5 pieces missing from the submitted 3-D printed parts.  It is assumed that another group grabbed these by mistake but this will present another challenge for the group as we will need to find a workaround to replace these parts with either something we fabricate or simply presenting an incomplete hand for the time being.  The laser cut parts fit together well and appear to be the correct dimensions. 




Tuesday, November 26, 2013

Flex Sensor Controlling a Servo Motor

Below is a simplified process of how flex sensors will control a servo motor. The flex sensor has to be calibrated by finding the range of values it will output through the serial monitor. These values can then be used to ensure a full range of motion for the servo motor.


Parts Ordered and Arduino Code


   Over the past week the group has met and decided on what type of servo motors and flex sensors that were to be used. The parts have been purchased and have either arrived or are currently en route. We will use 2.2" flex sensors manufactured by Spectra Symbol. The servo motors to be used are MG946R servo motors manufactured by TowardPro. We also ordered some male to female jumper wires so there was enough length between the robotic hand and the glove to be comfortable to wear, and some 22k resistors to save space from chaining 10k resistors together on the bread board. Overall the cost of the extra pieces came to about $100.

Below is the code that will be used in the arduino to control the servo motors to create movements in the hand, some values might be calibrated after testing to work better with the final product:
 
//Define sensors and servos
#include <Servo.h> //Includes servo library
Servo finger1, finger2, finger3, finger4, finger5;

 
int servoPin1 = 5;
int servoPin2 = 6;
int servoPin3 = 9;
int servoPin4 = 10;
int servoPin5 = 3;

int flexPin1 = A0;
int flexPin2 = A1;
int flexPin3 = A2;
int flexPin4 = A3;
int flexPin5 = A4;

 void setup()

{
 //Attach the servo objects to their respective pins

  finger1.attach(servoPin1);
  finger2.attach(servoPin2);
  finger3.attach(servoPin3);
  finger4.attach(servoPin4);
  finger5.attach(servoPin5);

 
  // set each servo pin to output;
pinMode(servoPin1, OUTPUT);
pinMode(servoPin2, OUTPUT);
pinMode(servoPin3, OUTPUT);
pinMode(servoPin4, OUTPUT);
pinMode(servoPin5, OUTPUT);

  //Set each flex sensor pin to input: this is necessary
 pinMode(flexPin1, INPUT);
 pinMode(flexPin2, INPUT);
 pinMode(flexPin3, INPUT);
 pinMode(flexPin4, INPUT);
 pinMode(flexPin5, INPUT);

}

 
void loop()

{

  //Defines analog input variables
  int flex1 = analogRead(flexPin1);
  int flex2 = analogRead(flexPin2);
  int flex3 = analogRead(flexPin3);
  int flex4 = analogRead(flexPin4);
  int flex5 = analogRead(flexPin5);


  //Defines "pos" variables as being proportional to the flex inputs.

 int pos1 = map(flex1, 400, 700, 0, 180);
 pos1 = constrain(pos1, 0, 180);
 int pos2 = map(flex2, 400, 700, 0, 180);
 pos2 = constrain(pos2, 0, 180);
 int pos3 = map(flex3, 400, 700, 0, 180);
 pos3 = constrain(pos3, 0, 180);
int pos4 = map(flex4, 480, 640, 0, 180);
pos4 = constrain(pos4, 0, 180);
int pos5 = map(flex5, 400, 700, 0, 180);
pos5 = constrain(pos5, 0, 180);

 
  //Tells servos to move by the amount specified in the "pos" variables
 finger1.write(pos1);
 finger2.write(pos2);
finger3.write(pos3);
 finger4.write(pos4);
 finger5.write(pos5);

}




Tuesday, November 12, 2013

Motion Study of a finger

                For the past couple days the group has been messing around a little bit in SolidWorks, trying to see if we can match the shape and movement of a hand. To start off we did a basic design of a pinky. It took 6 separate parts to create the assembly, with each link in the finger being 2 parts. Even though physically constructing it may be more of a hassle with more parts, we believe stringing fingers to the servo motors will be easier with shorter pieces. At the end of the day this video is what the group came up with and it looks on par for how a finger actually moves when a hand is closing.


                   We also came up for some basic dimensions of the hand. As of now the whole pinky assembly is .47 cubic inches in volume. This may have to be adjusted in time as it is the smallest piece. Other options may be printing it out less dense, or put some holes through the design to free up some space. For now we'll continue on as planned and if it becomes evident we're going to be grossly over volume we can adjust the dimensions then without too much hassle.

Thursday, November 7, 2013

Choosing A Project

As we all know there are hundred upon hundreds of things can be created using an Arduino board, so just choosing one in itself is a challenge. After scouring the internet and many "top Arduino projects" Google searches we were able to dwindle it down to a few. We came across a pretty cool website called DIY Drones (http://www.diydrones.com) that had all types of R/C drones by land, sea, or air. It seems like a pretty active community with everybody trying to share their ideas with one another.


After looking at the logistics of cost, designing, and programming one of these machines we decided it might be outside the scope of difficulty and time we are aiming for.

After doing some more research into possible projects we came across a 3D printed human hand that was controlled via strings attached to servo motors which were in turn controlled by flex sensors sewn onto a glove.

Something to the effect of the video shown below, although this one is controlled by linear potentiometers instead of flex sensors.




As of now the group is analyzing what it will take to create this device to see if this is an endeavor that is worth following.