Exoskeleton for Paralytic Arm

Exoskeleton for Paralytic Arm © CC BY-NC-ND

This exoskeleton was designed to help a patient suffering from paralysis to rehabilitate faster.

  • 312 views
  • 2 comments
  • 11 respects

Components and supplies

Necessary tools and machines

Apps and online services

About this project

Human beings have evolutionarily developed movement on pair of limbs which provides the coherent benefit of minute energy consumption. But this slick motion can also be hindered due to a diverse set of reasons like stroke, accidents and soon. The survivors are rendered with weakened limbs and require substantial effort in rehabilitation and regain routine gait. So, our objective in this project is directed at developing a novel type of exoskeleton to facilitate easy movement of the arm of a paralytic individual and also enabling them to work at their own efficiency involving daily chores.In the wake of that, we first developed a prototype model. for both arm and hand to check whether our concept is working or not. Our two concepts were wire technology and a link mechanism for providing motion to the exoskeleton. The finalized model was produced using 3D printing that gave strength to the model to act as a rigid body to hold high loads and equally easy to operate by the same individual or by any other. High torque servo motor was used for providing torque to the whole system using four bar like link mechanism.. The operating and controlling were done using Arduino and joystick. With the above course of action, the exoskeleton was able to meet the defined requirements satisfactorily.

Through the entire course of designing and fabricating the project we inferred and substantially understood the importance and role of torque for the correct selection of motor to drive the entire system. The Exo-glove showed fairly satisfactory results with a motion range of 0 to47 deg on average which is sufficient to grab day to day objects.The forces that could be exerted was found to be around 9.3 N. The only setback was that the objects couldn’t be held properly due to lack of friction between the two.

For the Arm portion the angle through which was found 00 to 1000 for lifting customary object required in day to day activities. Thus, the motor use could ensure transmission of ample torque to fulfill the required task. On average the efficiency was found to be 80% with decrease to almost 59% with increase in the load to be lifted. The potential solution to this problem could be usage of more powerful high torque motor. A four-bar mechanism was used in the arrangement which made it semiflexible and fetched the expected result. Initial trial of the Arm portion didn’t prove effective with fishing wire because lack of rigidity in the wire. Also, Bowden Cable transmission required more torque. A combination of a high torque motor and Bowden cable for transmission may enable to make the exoskeleton fully flexible without compromising fruitful performance.

https://www.youtube.com/watch?v=q5Ystz9NCpQ&feature=youtu.be

Code

servo controlC/C++
#include <Adafruit_PWMServoDriver.h>

#include <Wire.h>


Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
 #define MIN_PULE_WIDTH  650
 #define MAX_PULE_WIDTH  2350
 #define DEFAULT_PULE_WIDTH  1500
 #define FREQUENCY 50
 #define GROUND_JOY_PIN A3            //joystick ground pin will connect to Arduino analog pin A3
 #define VOUT_JOY_PIN A2              //joystick +5 V pin will connect to Arduino analog pin A2
 #define XJOY_PIN A1    
 #define X2JOY_PIN A0
 
void setup() {
  pwm.begin();
  pwm.setPWMFreq(FREQUENCY);
  Serial.begin(9600);
  pinMode(VOUT_JOY_PIN, OUTPUT) ;    //pin A3 shall be used as output
  pinMode(GROUND_JOY_PIN, OUTPUT) ;  //pin A2 shall be used as output
  digitalWrite(VOUT_JOY_PIN, HIGH) ; //set pin A3 to high (+5V)
  digitalWrite(GROUND_JOY_PIN,LOW) ; //set pin A3 to low (ground)
  
}

int pulseWidth (int angle)
{
  int pulse_wide, analog_value;
  pulse_wide = map( angle, 0, 180, MIN_PULE_WIDTH, MAX_PULE_WIDTH);
  
  analog_value = int(float(pulse_wide)/1000000*FREQUENCY*4096);
  return analog_value; 
}

void loop() {
   delay(200);                    
  int joystickXVal = analogRead(XJOY_PIN) ;
  int joystickX2Val = analogRead(X2JOY_PIN);
  Serial.print(joystickXVal);                //print the value from A1
  Serial.println(" = input from joystick");  //print "=input from joystick" next to the value
  Serial.print((joystickXVal+520)/10);       //print a from A1 calculated, scaled value
  Serial.println(" = output to servo");      //print "=output to servo" next to the value
  Serial.println() ;
  
pwm.setPWM(1, 0, pulseWidth((joystickXVal+520)/10));
pwm.setPWM(0, 0, pulseWidth((joystickXVal+520)/10));


pwm.setPWM(4, 0, pulseWidth((joystickX2Val+520)/10));
}

Custom parts and enclosures

3 d parts
tip_fIcbWMLdxY.SLDDRW
actual_model_2gpvElY2lq.SLDPRT
actuator casing
a_7XLugKI2iA.SLDPRT
pulley
horns_servo_motor_new_yUcNja7q2Q.SLDPRT
guides
guide3_oBGZbAsH5g.STEP
end guide
tip_qqJroX5pPT.SLDPRT

Schematics

block diagram
Screenshot (264) xogaspsgy6

Comments

Similar projects you might like

Robotic Arm from Recycled Materials

Project tutorial by circuito.io team

  • 32,038 views
  • 27 comments
  • 122 respects

Robotic Arm Controlled by Human Arm

Project showcase by zezarandrade

  • 5,481 views
  • 0 comments
  • 11 respects

Simple Programmable Robotic Arm

Project showcase by Ryan Chan

  • 69,250 views
  • 75 comments
  • 183 respects

Local and Remote Programmable Robotic Arm

Project tutorial by MJRoBot

  • 20,154 views
  • 7 comments
  • 59 respects

No Candy For YOU!

Project tutorial by Jonathan Tindal

  • 1,005 views
  • 5 comments
  • 6 respects
Add projectSign up / Login