Published using Google Docs
FinalReport.docx
Updated automatically every 5 minutes

Group 6

Human Assisted Natural-Movement Device (HAND)

Advanced Engineering Physics Design Project

ENPH 454

Final Report
Submitted: December 12
th, 2012

Queen’s University

Team Members:

Erin Adamson (Secretary)

Wesley Gadient (Leader)

Young Jeong (Treasurer)

Ginelle Johnston (Controls Leader)

Amanda McCoubrey (Safety Officer)

Ryan Peressotti (Mechanical Leader)

Jimmy Zhan (Electrical Leader)

Supervisor:

Dr. J. Morelli


Table of Contents

Overview and Motivation        

Quantitative and Qualitative Objectives        

Design        

Final Mechanical Design        

Final Electrical Design        

Final Integrated Design        

Progress Made in Achieving Objectives        

Quantitative Assessment        

Qualitative Assessment        

Safety Considerations        

Budget        

References        

Appendices        

Appendix A: MATLAB Torque Calculations        

Appendix B: Device Schematics        

Appendix C: Arm Measurement Tables        

Appendix D: Budget        

Appendix E: Electrical System Block Models        

Appendix F: Pin Functionality of Microcontroller        

Appendix G: Force Sensing Resistor Calibration Data        

Appendix H: Arduino Code for Microcontroller        

Appendix I:  Torque Analysis Tables        

Appendix J:  ANSYS Stress Analysis        

Appendix K:  Pressure Sensor Thresholds        

List of Figures

Figure 1: A typical worm gear _        

Figure 2: CAD model of the final design used        

Figure 3: Comparison of torques supplied by the motor with the theoretical torque        

Figure 4: Change in ratio of motor torque supplied to theoretical torque        

Figure B1: Motor assembly prior to mounting and machining        

Figure B2: Top view of design schematic showing various parts of interest        

Figure B3: Model of proposed design. Black components are machined from PVC.        

Figure B4: Four BJT H-Bridge, two BJT voltage buffer, and two Op-amp comparators        

Figure B5: Sensor and processor modules, and manual switching module        

Figure B6: Frontal view of harness during device use        

Figure B7: Exploded view of final design        

Figure B8: Dimensioning of arm support beam        

Figure B9: Dimensioning of spool for nylon wire        

Figure B10: Dimensioning for mounting board and safety guard        

Figure E1: Basic electrical control system schematic        

Figure E2: Sensor control schematic        

Figure E3: Original proposed program for microcontroller development        

Figure G1: Force sensing resistor respsonse to various loads over its active area (1 cm2)        

Figure J1: ANSYS stress concentration with rough mesh and scale in Pa        

List of Tables

Table C1: Arm measurements of participants        

Table C2: Arm measurement statistics of participants        

Table D1:  Purchases of the mechanical sub-team        

Table D2: Purchases of the electrical sub-team        

Table F1: Pin functionality of atmega microcontroller chip        

Table I1: Average motor torque for lifting        

Table I2: Average motor torque for lowering        

Table I3: Comparison of motor torque and torque on device        

Table K1: Thresholds for pressure sensors for two users        


Overview and Motivation

The proposed project was the Human Assisted Natural-Movement Device (HAND).  The objective of this device was to supplement human power exerted for a bicep curl motion while lifting a given load.  The final design was in the form of a wearable robotic structure positioned around the arm. Via mechanical assistance, HAND was meant to reduce the required input torque of its user by up to 40 N∙m.

HAND was targeted towards individuals with reduced arm endurance or strength. This included recovering medical or rehabilitation patients and the elderly. Often, doctors will suggest limited stress on the arm in order to help a patient heal or to prevent secondary issues [1]. However, this can interfere with even simple tasks, such as lifting groceries. The development of HAND was meant to reduce the required output power from the patient’s arm, thereby allowing the individual to go about their daily activities without overexerting their arm.

Quantitative and Qualitative Objectives

An initial goal was to lift 10 kg, with the load being located at the hand. This target load was selected because it corresponded to the approximate average weight that can be lifted by an adult female in a bicep curl [2]. As seen in Appendix A, simplified torque calculations were carried out in MATLAB to assess the range of torques that would act on the arm as a result of this load. This calculation accounted for the weight of the arm and the external load of 10 kg at the hand. The calculations indicated that a torque of less than 40 N∙m would act on the arm. Based on this calculation, a torque of approximately 40 N∙m needed to be produced by the driving system for the mechanical arm.

The range of motion offered by the device was set out to be 0°-145°. This range extends from the fully relaxed arm position to slightly less than the full range of elbow flexion [3].

The operation time for the device was limited by the power supply, which was chosen to be a lead acid battery. It was desired that the chosen battery could provide 1 hour of continuous operation. A longer battery lifetime would have been ideal but the size, weight, cost, and safety of such a battery made it an impractical goal.

Another quantitative goal was to have the response time of the automatic system less than 0.5 s.  This seemed to be a reasonably quick response time, but still long enough to prevent the sensors from picking up too many unintentional motions by the user, which would result in jerky motions and unwanted oscillations.

The mass of the entire robot arm was constrained to be less than the mass of the average human male arm:  3.2 kg [4]. It was possible that the user could be recovering from injury or simply unable to adequately perform basic lifting tasks, so it was important that the device was kept light and practical.

HAND was envisioned to be supported over the entire arm and shoulder. The goal was to ensure easy attachment for individuals with weak arms while avoiding any discomfort. The device was also required to have an overall smooth motion, free from intermittent stops and oscillations, and to be comfortable for a variety of users.

It was important to maintain as many degrees of freedom of the arm as possible because the target users were those of limited bicep ability. Therefore, maintaining as many natural degrees of motion as possible would keep the user maximally mobile. The resulting design goal was that the forearm of the user was able to rotate to any natural angle desired. The device was initially envisioned to be capable of operating in forward and reverse, both at variable speeds, as a result of its control system. The capabilities of the device were expected to be seen in the motion controlled by a toggle switch, motion controlled by the program and sensor system, and the variable speed of the motion as a response to the sensory system being coupled with pressure and gyroscope sensors. The entire device was also desired to be portable and battery-powered.

Design

Final Mechanical Design

The design of the mechanical system began with addressing the choice of what driving mechanism to use for the arm. Two major options were considered for this function:  pneumatic muscle actuators and a motor and gear reduction system. The final structure incorporated a motor driving mechanism.

For pneumatic muscle actuators, the muscle would have been built by the team and attached at the shoulder and slightly below the elbow. It would have mimicked the contraction of the bicep. Multiple muscles in parallel may have been required to obtain the desired torque. However, substantial modelling would have been required to simulate artificial muscle movements. Associated with the choice to use pneumatic muscles was also the safety risk of dealing with compressed gas and the difficulty in achieving smooth motion. Despite the fact that this design was lightweight and inexpensive, motor and gear systems were explored as a lower-risk alternative.

In order to lift the target load, a high torque from a motor was needed. However, most small commercial motors run at relatively low torques, below 1 N∙m [10]. These motors also run at relatively high angular velocities. Therefore, the motors needed to have a gear train reduction to reduce the angular velocity and increase the output torque. The projected required torque of 40 N∙m required a gear output ratio on the order of 40:1, depending on the dynamic torque of the motor selected. It was expected that a DC motor would be required because it easily runs in reverse, and is also easier to control using an H-bridge or Pulse Width Modulation (PWM). A servomotor was, therefore, an ideal choice for the project as it has high angular resolution and precision.

In the end, the team invested in a prefabricated window crank motor and sprocket system (Figure B1, Appendix B). This system avoids the weight and bulk of many other conventional motor systems. The motor outputs a smaller torque which is multiplied via the gear reduction through its worm gear and sprocket combination. A worm gear, shown in Figure 1, transforms a radial motion in one direction to another radial motion perpendicular to it.

Figure 1: A typical worm gear [5]

Each full turn of the worm shaft results in a single tooth being turned in the worm wheel. The worm drive system cannot be run in reverse, with the wheel driving the shaft, due to frictional forces. This provides the advantage that the user’s arm could be kept still even when the motor is not running; this is a mechanical brake independent of the battery. The drawback of this system is that a user is unable to move HAND on his/her own and must rely on manual or automatic controls to set its position.

The final assembly of the mechanical system is shown in Figure 2 (see also Figure B7, Appendix B). The motor and sprocket system was mounted on a ½-inch thick PVC board, which served as the structural support for the device. The dimensions were determined by averaging measurements of various arms (Table C1-C2, Appendix C). Figures B7-B10 in Appendix B show the dimensions of the final design.

Figure 2: CAD model of the final design used

The motor was mounted using nuts and bolts. A spool was milled out of PVC and attached to the motor/sprocket system using nuts and bolts. A nylon cable was attached to the spool by threading it through a hole and running one of the nuts securing the spool through the nylon threads. The end of the nylon cable was melted to further ensure it would not slip out through the hole in the spool.  The other end of the nylon cable was similarly attached to a rigid bar of PVC that ran along the forearm. This rigid bar was connected the PVC mounting board via a bushing at the elbow joint, and was also permanently attached to the semi-circular PVC arm supports described in further detail below. Running the motor caused the spool to rotate and coil up, or release, the cable. This resulted in moving the forearm in a bicep curl motion.

The PVC mounting board was attached to the user using Velcro and cinching straps. The entire device was attached to a supportive harness, which held it in place by distributing the weight of the device over the shoulders and back. A frontal view of the harness during use can be seen in Figure B6 in Appendix B. This harness also served as the proposed location of electronics and the power supply.  An aluminum box was constructed to carry the battery and electronics. This box was planned to be placed on the back, hanging from the cinching straps that were part of the supportive harness. The weight, inside the box, was planned to be shifted as far to the left as possible to help offset the weight of the mechanical device on the right arm. In this manner, the electronics were out of the way during operation, but still accessible for maintenance.

The end effector, also PVC, was made of a rigid beam and two semicircular supports, which cradle the user’s arm. These open-faced structures allow for easy rotation of the user’s forearm. In choosing PVC for this component, it was important to make sure that it would be able to handle the loads and torques which were defined in our objectives. An ANSYS model of the PVC end effector was used to determine the stress concentrations in the beam. Figure J1 in Appendix J shows the post-processed model, with a maximum stress of 2.28 MPa. This is below the tensile strength of PVC, 7 MPa, but above the fatigue strength of 1 MPa [7]. The fatigue strength of PVC is rated at 107 cycles, or 1.5 years of continuous use of the device, assuming a five second cycle time. This type of cycling was deemed unnecessary for the purposes of this project and only the tensile strength was considered.

In choosing the method by which to attach the cable, three options were considered. The first option involved attaching the cable directly to the metal arm that is rotated by the sprocket system (Appendix B, Figure B1). Using a protractor, the sprocket and arm attachment was measured to rotate approximately 110° as the motor fully traversed its range of motion. Through experimenting with various radii, it was determined that attaching one end of the cable to the forearm support, 10 cm from the elbow pivot point, and the other end to the metal arm on the motor, approximately 12 cm from the axis of rotation of the sprocket, was the best set-up for achieving 145° of rotation of the forearm about the elbow pivot point. While this design meets the original goal of 145° of forearm rotation, a 12 cm radius of the metal rotating arm would be impractical and unsafe. Due to this safety consideration, this option was deemed unacceptable.

The second option involved attaching the cable to a PVC spool centered on the axis of rotation of the sprocket in the motor system (Appendix B, Figures B2 and B3). Through simple calculations and experimental results, it was determined that this method would not provide the full range of motion of the forearm because the spool could not reach the 12 cm radius required for the full range of motion without exceeding the structural boundaries of the device. That is, a 12 cm spool would add significant bulk to the system and present a physical barrier to the rotating arm as it reached its maximum curl position. A 6 cm spool radius was ideal structurally, but at the cost of range of motion. It was experimentally determined that the forearm would rotate approximately 115°, instead of 145°, using the reduced radius.  While this range of motion does not meet the original design goal, it was deemed an acceptable range as many users would not wish to achieve full flexion or extension during daily activities. Additionally, safety became less of a concern with this option because no extreme arm positions would be encountered during operation of the device.

The third option involved off-centering the spool on the sprocket. This option had the possibility of recovering the full range of rotation without the safety hazard of a long metal rod. However, it was time-consuming to model the ideal spool location and determine how much additional range of motion would be gained from this set-up. Given the limited time frame for this project, this was a significant drawback of this option. As well, it was likely that this option would be less linear due to the multiple axes of rotation. Due to the time commitment and an irregular motion, this option was deemed unacceptable.

Ultimately, due to safety, size, and time constraints, the second option, involving the 6 cm radius spool centered on the sprocket’s axis of rotation, was chosen as the best approach.  

        Once the body of the mechanical structure was complete, an additional few features were added to improve safety and comfort.  Firstly, a soft foam material was used to cover any areas where the rigid mechanical components expected or found to come in contact with the user’s skin.  The foam material was attached using velcro straps to ensure it was removable if device maintenance was required.  Additionally, a protective casing was machined out of aluminum to prevent the user from coming into contact with the teeth of the sprocket.  Using nuts and bolts, this protective casing was connected to the PVC mounting board and formed a shield over the majority of the motor, sprocket, and pulley assembly.  This protective casing can be seen in Figure B6. Additionally, a wrist guard was purchased to help alleviate stress on the wrist during lifting.

Final Electrical Design

        The electrical design is a highly modular system consisting of many independently constructed stages that work together to provide motor control and sensory processing functions. The main design can be described by Figure E1 in Appendix E. Force sensing resistors were used to detect and transmit any intentional movements from the user. The resistors have a resistance that is a function of applied surface force. Each is connected in series with a resistor of known resistance value. A fixed DC voltage is applied across the two resistors (with the sensor electrically above the known resistor, and the known resistor closer to ground). The output signal is taken at the junction of the sensor and the known resistor. This is essentially a voltage divider. When the user attempts movement in a certain direction, a force is applied on the sensor, reducing its resistance, thereby increasing circuit output voltage in a linear fashion. The microprocessor processes the inputs and sent out an appropriate digital control signal in the form of a pulse width modulated (PWM) wave. This PWM signal is voltage amplified by two op-amps in comparator configurations. A threshold voltage of 2.5 V (halfway between digital 0 and digital 1) was used. A digital 0 will be pulled to the negative rail, and a digital 1 will be pulled to a high positive rail. During the design development, it was discovered that the Arduino microprocessor could not output negative digital logic signals. Therefore, in order to reverse the motor, two dedicated and independent output channels for each bipolar junction transistor (BJT) needed to be used. One of the output channels was planned to be hardwired to a non-inverting op-amp and the other output channel to an inverting op-amp. The microprocessor always outputs positive PWM signals, but it could select the inverting channel to achieve an effectively negative output. The same principle applies to both sides of the H-bridge that was used. However, it was later decided to use a single rail power supply with “ground” at halfway between 12 V and 0 V, instead of using a dual positive/negative rail power supply because of issues with floating grounds. Therefore, the fact that the Arduino can only output positive digital signals was neutralized. The advantage of dual rail design was a more symmetrical power system. However, the simplicity and practicality of the single rail (ground at 6 V) was tempting, and finally became the chosen design. Therefore, only two op-amps were used, as two comparators, instead of four op-amps.

        Following the op-amp stage is the voltage buffer (unit gain) stage which consisted of two medium power, emitter followers. They incorporated current gain to ensure that the signals from the op-amp could drive the power BJTs without being overloaded. Initially low power BJTs were used in a push-pull emitter follower configuration as the voltage buffer (essentially, a low power H-bridge driving a high power H-bridge), however, the complexity of this design led to many unforeseen errors. The power ratings were too low, and the DC conditions were unbalanced, leading to thermal failures. The final design was streamlined by incorporating simply two high-gain reliable internal current/voltage/power/temperature-limited transistor chips capable of driving more current than the small H-bridge.

        The next stage is the output stage which drives the motor. It was initially designed in the same way as the previous stage initial design (unity voltage gain and push-pull emitter followers designed only for current gain). Various configurations were tried and tested, one classification being complementary or non-complementary (whether using all n-devices or using both n- and p-devices). It was discovered that non-complementary H-bridges are extremely unreliable and dangerous. They turn on the motor when one transistor on one side is supplied with a positive voltage and the opposite transistor on the opposite side is supplied with a zero. Since opposite transistors on opposite sides of the H-bridge are cross-linked, supplying both sides with positive voltage will turn on all four transistors, immediately shorting both sides of the H-bridge, and catastrophic failures to the transistors and battery will result. This has happened numerous times during our testing of the non-complementary H-bridge, and countless MOSFETs were blown or melted. This fatal flaw of the non-complementary H-bridge was well-known; however, PMOS was not available in the lab. The final design featured a complementary H-bridge. However, since PMOS were not available, NPN and PNP BJTs were used instead. With the complementary design, the two transistors on each side of the H-bridge were hardwired. Under no circumstances could the transistors short through the bridge, because it would take a positive voltage and a negative voltage applied simultaneously to turn on both transistors, whereas the transistors have already been hardwired to one input. To turn the motor, a positive voltage is applied on one side of the bridge, and a negative voltage is applied on the other side of the bridge. However, the sacrifice made was by using power BJTs instead of power FETs. BJTs have a certain fixed VCE (sat), and across this VCE a current flows through, and this creates a power loss. At 3.5 A (Table I1, Appendix I) and a VCE of 2 V (for two BJTs) this translates to a power loss of 7 W, producing heat and lowering motor power. Another disadvantage of using BJT is that they require a significant base current to be driven (thus the buffer stage). At high IC, the HFE of the BJT falls rapidly, therefore to sustain the high IC, a fairly high IB must be provided. This current contributes to waste energy of the device, limits peak motor power, and reduces battery life. The MOSFET has neither of the two above problems. MOSFETS do not have a fixed VDS, and their loss mechanism is governed by RDS (on) which is typically very small for power MOSFETs, leading to a power loss of less than 1 W for our application. Also, MOSFETs are charge controlled instead of current controlled, leading to virtually zero gate current. Theoretically, the MOSFETs can be driven directly by the Arduino, significantly simplifying the electrical systems. However, one disadvantage of MOSFET is that their gates are easily damaged by static electricity (being charge controlled). This was the reason MOSFETs were not purchased during the design phase of the project.

Finally, some high powered Schottky (mainly for their speed) diodes were installed across each transistor (from the emitter to the collector) to dissipate any high voltage spikes produced by the motor due to back EMF.

Final Controls Design

        The final integrated design involved coupling the mechanical and electrical/control systems. This included the machining of a mountable box to store the battery and circuitry as shown in Figure B4 in Appendix B and the design of a clip-on switch box including LED warnings and all required manual switches, Figure B5 in Appendix B. As a result of delays in developing a working circuit design, the final mounting was not achieved. Most components were mounted independently and temporary wiring allowed primary testing to be carried out.

A large component of the integrated design was the creation of a control system in order to interface the previously mentioned electrical and mechanical systems. The control system was designed to have two modes of operation:  (1) manual operation allowing the user to control motion through use of manual switches and (2) automated operation where the device would respond to force changes on the mounted sensors. The control system also implemented three safety stops with indicator LED’s for the user mounted on the switchbox. The control system is summarized by the flow diagrams in Figures E1-E3 in Appendix E.

The switchbox (Appendix B, Figure B5) has a power ON-OFF switch, a two directional switch (allowing for switching between automated and manual modes), and a momentary rocker switch (allowing for manual control between forward and reverse motions). The box also includes the fuse holder located at and the four LED indicators. The green light would illuminate when the device was on. This would be accomplished by using the same input to the Arduino as described below for the high current sensor. The orange and yellow light would each denote a different battery voltage dropping below the set threshold. The red LED would indicate high current.

The safety stops were implemented through voltage inputs to the Arduino (Table F1, Appendix F), including thresholds designed for each of the respective sets. Battery reads were carried out for the 12 V main power supply and the series 9 V batteries for the amplifier stage. Voltage divider networks were designed to produce an input voltage to the Arduino. Outputs of the voltage divider were used as inputs to the microcontroller device, which meant they needed to be reduced to less than 5 V, the input limit of the Arduino board. For the 12 V battery, this required a drop of 75%. The 9 V battery required a drop of 50 % of the initial voltage. It was assumed that a voltage drop across a single 9 V battery would be indicative of the drop across all three of them.  A cut-off of 11.9 V was used for the 12 V lead acid battery since only a small decrease of the voltage in a lead acid battery is indicative of a low battery charge. Also the “12 V” batteries are not in fact charged to 12 V, as their voltage at 100% capacity is usually between 13.5 V to 14.5 V [6]. The cut-off for the 9 V battery was chosen to be 6.5 V since at 6 V the amplification stage would no longer provide enough output voltage to fully drive the transistors into saturation.  The microcontroller then took these inputs and determined whether the voltage of either battery dropped below the calculated thresholds or not. If the voltages were below the thresholds, the device would stop operation in the automated mode and the appropriate warning LED light would be illuminated. The user then would be required to manually move out of the position.

The additional safety measure that was designed was a current sensor. This was done in order to prevent large current spikes which result from stalling the motor when the mechanical limits of the sprocket are reached. In the stall position, currents were seen to go above 20 A if prolonged power draw occurred, although for small amounts of time the peak was approximately 8 A. A current sensing resistor was designed to monitor the current in the main wiring. This check was implemented in the code immediately after the power ON-OFF switch sequence, allowing for its added use in evaluating when the device was on. The current sensing resistor was planned to be a 0.1 Ω resistor, rated for 40 W. The voltage across the current sensing resistor will increase as current is increased, and this voltage will be fed to a voltage divider network.  A threshold on this voltage would indicate high current. This value was soft-coded into the program. However, due to electrical system constraints, the exact threshold was not evaluated. In the event of a large current, the program would power down for a time delay of 10 s in order to prevent damage and for the devices to cool down. This would occur independent of whether the device was in manual or automated mode. This introduced a dependency of the manual mode on the microcontroller which was not considered ideal. It was decided, however, that this was a necessary trade-off to prevent large currents. A 20 A fuse was also used in the event the software was unable to mitigate the high current flow.

        Automated control used sensor inputs from two force sensing resistors giving variable resistance outputs. A schematic of the sensor control is seen in Figure E2 in Appendix E. A voltage divider was designed in order to tune the sensitivity of these devices to where the voltage and series resistance were found optimal. A 15 kΩ resistor was chosen, and the device ran off of the 5 V DC voltage supply used for the microcontroller. The output of the voltage divider was used as an input to the microcontroller. The initial sensor configuration had two sensors on the top of the arm and two sensors on the bottom of the arm, all in the vicinity of the forearm support structure. As a result of the upper sensors being mounted on non-rigid material which moved with the arm, it was found that these sensor readings were not reliable in aiding in motion detection. As a result, the final design only uses two sensors, mounted on the insides of the semi-circular supports. The sensor control uses thresholds in order to determine the intent of the user. The cases operate as shown in Table K in Appendix K. As can be seen, there is an increased dependence on the front sensor over the back sensor. Exact threshold values had to be varied according to the user and the contact. The code used for this implementation can be seen in Appendix H.

Progress Made in Achieving Objectives

Quantitative Assessment

One of the quantitative design goals set out for HAND was to have the device lift an external load of 10 kg. During testing of the integrated system, a 10 kg load was successfully lifted by the user with the machine both in manual and automatic modes of operation. The ability of the device to lift 10 kg on its own was also demonstrated during the final testing period.  During the final test, a bucket was filled with water and weights, starting from 0 kg and ending at 10 kg in increments of approximately 2 kg.  The toggle switch for manual operation was used to direct the device to lift and lower the loads during this testing. The device successfully lifted each of these loads on its own. The experimental data collected during these tests can be seen in Tables I1 and I2 in Appendix I.

Another quantitative goal was to have the entire mechanical device, irrespective of the battery, have a total mass under 3.2 kg.  The device was weighed and found to have a mass of 2.85 kg, which is below the allowable maximum. Thus, this design goal was achieved.  

Based on preliminary calculations of the torque that would act on the user’s arm (as seen in Appendix A), it was determined that the chosen motor would need to provide a torque of at least 40 N∙m to achieve stalling. It was estimated that a torque greater than this would likely be required to cause movement of the arm. The final testing stage, involving the increasing load in the form of a weighted bucket, addressed this quantitative goal. As previously mentioned, the device was operated in manual mode with no user, and with a load attached to the semi-circular supports. While the motor was operating to lift or lower a load, and not in a stalled-position, the average current drawn by the motor and the average voltage across the motor terminals was recorded. This was done for each of the six different loading conditions, ranging from a 0 kg load to a 10 kg load. The degree of rotation of the device with no user was also measured prior to testing, and found to be 90°. For each loading case, the time to raise and lower the load was also recorded. Using the fact that power is equal to voltage multiplied by current, the average power for each raising and lowering motion of the arm was calculated. The angular velocity was also calculated by converting the degrees of arm rotation to radians and dividing by the time taken to lift or lower the load. Using the fact that torque is equal to power divided by angular velocity, the average torque exerted by the motor during lifting and lowering was determined for each load. A summary of the tests done can be seen in Tables I1 and I2 in Appendix I. It was found that the maximum torque exerted by the motor during this testing was 95.5 N∙m and the minimum torque exerted was 40.7 N∙m. Both of these torques exceed the desired motor ouptut torque of 40 N∙m, and thus this design objective was achieved.

The torque analysis was carried out further to assess how the torque supplied by the motor compared to the theoretical torque that would be acting on the device during each testing case. During each loading condition, the testing parameters were inserted into a MATLAB code (seen in Appendix A) which calculated the theoretical torque acting on the device due to the weight of the device and the external load. Table I3 in Appendix I outlines the theoretical torques. Through the final tests, it was found that as the load was increased, the torque supplied by the motor also increased in order to lift the load.  However, for the motor to lower the load, the torque ranged between approximately 40 N∙m and 50 N∙m. There was no trend in the lowering torque data, indicating that the torque supplied by the motor for lowering was relatively independent of the external load applied over the range of 0 to 10 kg. For both raising and lowering, the theoretical torque on the arm increased as the load increased.  However, the theoretical torque acting on the device was always lower than the torque supplied by the motor. This was expected since the motor torque would have to exceed the torque acting on the device in order to create an imbalance of forces and cause movement of the device.  Figure 3 displays a plot of the theoretical and supplied torques for raising and lowering conditions.  

Figure 3: Comparison of torques supplied by the motor with the theoretical torque acting on the device for given loading conditions

The torque analysis was completed by looking at the ratio of the torque supplied by the motor to the theoretical torque acting on the device for a given loading condition.  It was found that as the load was increased, the ratio decreased. This was also expected because an increase in load resulted in a larger relative change between the smaller theoretical torques than it did between the larger torques supplied by the motor. That is, as the load was increased, the motor was not able to direct as much power into lifting or lowering the load.  Rather, it had to re-direct more power to overcome the initial stopping torque. As indicated by the increasing theoretical torques with increasing load, the power needed to overcome the stopping torque was also increasing. Table I3 in Appendix I summarizes this experimental data. Figure 4 displays the decreasing trend of the motor torque to theoretical torque as the load is increased.

Figure 4: Change in ratio of motor torque supplied to theoretical torque on device with increasing loads

The range of motion offered by the device was reduced from the initial goal of 0°-145° (which was the fully relaxed arm position to slightly less than the full range of elbow flexion [3]) to 30°-110°. This goal was modified due to mechanical impracticality, previously discussed, and additional safety considerations. It was decided that avoiding extremes such as complete flexion and complete extension would be the best way to avoid injuring or causing discomfort to the user.

        The response time of the system in automatic mode was desired to be less than 0.5 s.  Due to the fact that the force sensing resistors, used in automatic operation of HAND, rapidly picked up and transferred signals (changes in their resistances), a lag time of 1.6 s needed to be incorporated into the program to ensure that movement of the arm would occur before the next reading was addressed.  The lag time also helped to avoid oscillations in the movement of the arm. These oscillations were the result of the arm moving upwards or downwards, towards or away from the user’s arm, respectively. Once the device began moving, the sensor readings would change and indicate the relative motion of the device to the arm (as the pressure, and thus resistance, changed) rather than the intended motion of the user.  Introducing the 1.6 s lag time allowed for the user to adjust their arm as the device began to move to continue in their desired motion.

        The final quantitative objective was to have a battery life that lasted for greater than 1 hour of continuous operation. During intermittent testing of the device, the battery lasted for over 1 hour.  Furthermore, calculations indicate that the expected lifetime for the battery in continuous operation would be at least 1.4 hours based on a max current of 3.5 A (Table I1,Appendix I) and a battery rated at 5 A∙h. Therefore, this objective was met.

Qualitative Assessment

It was planned that the HAND design would incorporate a sensory control system. The force sensing resistors chosen for this system had a variable resistance response and thus operated as a voltage divider when placed in series with a resistor between a set voltage and ground. Therefore, the sensitivity could be tuned through varying the resistor values placed in series. The voltage was chosen to be 5 V allowing the sensor to run off of the microcontroller power supply. Using a variable resistor it was found that ideal sensitivity was reached between values of 10 and 50 kΩ. A 15 kΩ resistor was implemented.

For automated control, thresholds were required in order to achieve motion. It was found that these thresholds had to be fine-tuned to the user and type of contact. Table K1 in Appendix K shows two sets of parameters. Data sheets provided by the manufacturer (Figure G1, Appendix G) were used to convert voltages into force thresholds. User 1 had a smaller arm, and made direct skin to sensor contact. User 2 had a larger arm had a thin fabric was present between their arm and the sensors. This data demonstrates some of the variation in sensor readings that occurred as a result of variation in user.

Sensor accuracy and calibration was not fully achieved in the HAND design. After calibrating to a single person, it was, however, possible to achieve two out of the three proposed automated states (i.e., upwards motion, downwards motion, and a stationary state). Achieving a steady, non-oscillating, stop state was problematic. This was part of the reason for incorporating the sensor lag time in the program as discussed above. Furthermore, calibration was required for each user, with variations in code depending on the type of contact occurring (if the sensors were contacting bare arm or a fabric-padded arm). Further calibration may have improved these discrepancies. Specifically, mounting the sensors with a fabric boundary between the person and the arm may have resulted in a more universally applicable calibration. While the stationary state was not fully achieved, the set thresholds did result in successful forward and reverse motion.

 Another design goal was to have variable speeds of operation. These, variable speeds were not achieved due to the complexity of the programming coupled with the limited time to neatly achieve this goal. It was ultimately decided that the addition of variable speeds would not add any significant benefit since the natural human arm movement has a fairly uniform velocity. Variable speeds could have been implemented in PWM if desired, but this would only offer speeds slower than that of the motor. This was not desirable since the motor already exhibited a slow full rotation (90°) time between 2.7 and 3.5 s, depending on the external load. If a more powerful motor was used, the addition of variable speeds could be more beneficial as a larger range of speeds could be achieved.

Because HAND was intended to be worn by people, the qualitative objectives of having a smooth motion, comfortable fit, and achieving portability were all important. When operated in manual mode, the device produced a smooth motion and did not cause the user to move in any undesired direction. Additionally, the open-face, semi-circular arm supports allowed the user to rotate their forearm to any natural position they wished. Thus, natural, smooth motion was achieved. With respect to comfort, it was found that the weight of the device was concentrated too heavily on the right arm of the body. This resulted in the harness shifting to the right which allowed the device to slide farther down on the upper arm than desired.  This poor distribution of weight caused the comfort of the device to decrease. However, soft padding was added to the device anywhere that PVC and skin would have come into contact.  This did make the device more comfortable. Thus, comfort was partially achieved, although there is certainly room for improvement with respect to load distribution. Finally, portability was not achieved. This is due entirely to the fact that the circuitry was not completed in time to assemble with the mechanical device. An aluminum box was made to house the electronics and battery, and was designed to sit on the user’s back, hanging from the cinching straps of the harness. Had the circuit been completed in time, it would have been placed in this box, mounted with the device, and HAND would have been entirely portable.

Akin to the goal of having a comfortable device for the user was having a device that comfortably fit a wide variety of users. Through the use of adjustable cinching straps in the harness and in connecting the PVC mounting board to the upper arm, the device was able to fit every individual who tried it on. Due to the poorly distributed weight of the device, the entire assembly did tend to shift towards the right side of the body, however. Therefore, HAND tends to fit individuals with broader shoulders which constrict movement of the harness. Due to the variability of comfortable fit based on the user, it was determined that this goal was met but could have been improved. It is hypothesized that the addition of the electronics box and battery could have been used to offset the bias of the weight distribution, thus making the device fit each user more comfortably.

        The final qualitative goals were to have a safe, fully-assembled device that met the budget constraints. As detailed in the safety section below, all safety procedures were followed during the making of this device and no injuries occurred during testing.  Thus, the device is considered safe. The full assembly, however, was not achieved. This was due to the fact that the circuitry was not fully finalized in time to place into the electronics box. Finally, the project was within budget, as detailed in the budget section below.

Safety Considerations

Development of the control program schematic required the incorporation of a safety mechanism. This safety mechanism included manual power off, manual forward and manual reverse movements. Additional safety considerations include the use of a clocked voltage check on the battery. The driving motor uses a worm gear which must be powered in order to operate. To prevent any locking of the worm gear, which could potentially harm the user, the device was not allowed to operate on low battery. There were also mechanical constraints (engendered by the sprocket system), limiting the range of motion of the device and thus preventing hyperextension and hyperflexion of the arm. A switch was also incorporated to operate the motor manually, should it lock in place or operate unexpectedly.

The selection of a lightweight, inexpensive battery also required the consideration of the participant’s safety. Some batteries are known to explode upon overloading, which may occur in the event of a short circuit. Batteries of lithium derivatives were, therefore, avoided for this reason. In the end, sealed lead-acid (acrylic glass matrix gel) batteries were chosen to provide power to the device, due to the fact that they are reasonably safe and have a high energy density.

An application to the Research Ethics Board was submitted and approved, to ensure that the project complied with Queen’s and Canadian safety standards. No names were used in the final collection of data, but rather a code key was developed to protect the privacy of the test participants and each test participant signed a letter of informed consent.

All testing on electrical components was powered by 12 V or less, which is far below the limit of 40 V, where safety would become a significant concern. There was one incident in which the battery was shorted during operation and caused sparking, but no one sustained any injuries. A report describing the incident and procedures taken to prevent repetition was written and stored in the lab binder. All other safety considerations and procedure forms are also stored in the group laboratory binder.

Budget

The overall project budget, supplied by the Department of Physics and Engineering Physics, was $650.00. The mechanical team initially proposed to use a gear reduction system with no pre-attached sprocket. Soon after the purchase of approximately $230.00 from McMaster Carr, the team decided to move away from this approach, considering both the budget and time constraints in creating a custom gear reduction system. With a new design developed, which incorporated the window crank motor with a sprocket system, $111.54 worth of items from McMaster Carr was returned for capital. With a few additional purchases, the final expenditure of the mechanical team was $229.87. The total breakdown of mechanical team expenses can be found in Table D1 in Appendix D.

                The electrical team’s expenses varied less than the mechanical team’s. The cost breakdown on the electrical side was fairly even, without any one component costing significantly more than the others. The main components that contributed to the expenses were (in order of descending costs), the motor, force sensors, Arduino board, pressure sensors, heat sinks, power BJTs and gyroscope. One modification made in the electrical team’s expected spending was in their choice of sensors. Initially, pressure sensors were ordered from eBay. During the calibration process, it was observed that the pressure sensors were in fact atmospheric pressure sensors (instead of mechanical pressure sensors) and so force sensors from Solarbotics were purchased as replacement. Overall, the electrical team’s expenses were $267.61.  It should be noted that the electrical team did not end up purchasing batteries since the rechargeable batteries were available for the team’s use in the laboratories, although having twice the capacity and twice the weight as in the design. However, one group member was able to provide lead acid batteries of the designed capacity and weight for testing purposes. If the batteries were to be purchased, it is estimated they would drive the total electrical cost up to $297.61.  The detailed breakdown of the electrical team’s expenses is shown in Table D2 in Appendix D.

                 In conclusion, the total expense of the project was $498.48 which meets the project budget of $650.00 with $111.52 to spare.


References

[1] STEUNEBRINK, M., DE WINTER, D. and TOL, J.L. Bilateral Stress Fracture of the Ulna in an Adult Weightlifter : A Case Report. , 2008.

[2] Brian Connolly, The Average Dumbbell Curling Weight, Apr. 26, 2011, available:  http://www.livestrong.com/article/428948-the-average-dumbbell-curling-weight/ 

[3] PERRY, J.C., SEATTLE ROSEN, J. and BURNS, S. Upper-Limb Powered Exoskeleton Design. IEEE/ASME Transactions on Mechatronics, 2007, vol. 12, no.

[4] CLAUSER, C.E. Weight, Volume and Center of Mass of Segments of the Human Body. Ohio: American Medical Research Laboratory. , 1969.

[5] available: http://upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Worm_final_drive_(Manual_of_Driving_and_Maintenance).jpg/220px-Worm_final_drive_(Manual_of_Driving_and_Maintenance).jpg 

[6]  Lead Acid Batteries, Battery Council, available: http://batterycouncil.org 

[7] PVC Strength, PVC, Vinyl and ECVM, available:  http://www.pvc.org/en/p/pvc-strength 

[8] Man-Systems Integration Standards Revision B, NASA, 1995, vol. 1, sec. 3, [Online],  available: http://msis.jsc.nasa.gov/sections/section03.htm

[9] R. F. Chandler, C. E. Clauser, J. T. McConville, H. M. Reynolds, J. W. Young, Investigation of Internal Properties of the Human Body, Civil Aeromedical Institute, Oklahoma City, OK, 1975, [Online], available: http://www.ulb.ac.be/medecine/anatemb/biblio/Chandler1975.pdf

[11] DigiKey. Motors, Solenoids, Driver Boards. , 2012.

[12] available: http://www.sparkfun.com/datasheets/Sensors/Pressure/fsrguide.pdf 


Appendices

Appendix A: MATLAB Torque Calculations

Torque Acting on Arm (Arm Starts in Horizontal Position)

Output:

tau = [-34.9997, -34.2349, -31.9738, -28.3154, -23.4194, -17.4999, -10.8155, -3.6585, 3. 6585, 10.8155, 17.4999, 23.4194, 28.3154]

*Arm dimensions and range of motion were found in [8].

*Average mass of human forearm and hand was found in [9].

Torque Acting on Arm (Arm Starts in Vertical Position)

Output:

tau = [0, -7.2768, -14.2357, -20.5723, -26.0099, -30.3106, -33.2867, -34.8080, -34.8080, -33.2867, -30.3106, -26.0099, -20.5723]

*Arm dimensions and range of motion were found in [8].

*Average mass of human forearm and hand was found in [9].

Torque Acting on Device

function [ max_tau ] = torque_vertical_start (M)

%This function calculates the torque applied to do a bicep curl, with a variable amount of external load. This calculation is done assuming the device starts in the extended position, 30 degrees from horizontal.  It is an approximation of the torque that will be present when the system is in use.

%Erin Adamson

%September 25th, 2012

%Last modified December 2, 2012.

%Input variables:

%M is the supported external load.

theta=[30:15:120]*pi/180;                       %angular range of elbow flexion [rads]

m=2.85;                                                 %mass of device [kg]

load_pos=0.13;                                         %distance of external load from elbow bushing [m]

cm=0.75*0.13;                                   %approximate location of centre of mass [m]

g=9.81;                                                 %acceleration due to gravity [m/s^2]

%Output variables:

% max_tau is the absolute value of the maximum torque that acts on the system

%%%%%%%%%%%%%%%%%% MAIN CODE %%%%%%%%%%%%%%%%%

%A for loop is used to calculate the torques at various angles throughout the motion.

for n=1:length(theta)                  

    if theta(n)<90*pi/180              

        tau=-(cm*m+load_pos*M)*g*sin(theta);   %the torque is calculated [Nm]

    elseif theta(n)==90*pi/180

        tau(n)=-(cm*m+load_pos*M)*g;

    elseif theta(n)>90*pi/180

        alpha(n)=pi-theta(n);        %angle between force and radial vectors [rads]

        tau(n)=-(cm*m+load_pos*M)*g*sin(alpha(n));

    end  %if statement

end  %for loop

max_tau=abs(tau(1));

%A for loop and if statement are used to determine the absolute value of the maximum torque acting on the system.

for n=1:length(theta)-1

    if abs(tau(n+1))> abs(tau(n))

        max_tau=abs(tau(n+1));

    else

        max_tau=max_tau;

    end  %if statement

end  %for loop

       

end  %function "torque"

* Range of motion was found in [8].


Appendix B: Device Schematics

Figure B1: Motor assembly prior to mounting and machining

Figure B2: Top view of design schematic showing various parts of interest

Figure B3: Model of proposed design. Black components are machined from PVC.

Figure B4: Main electrical subsystems: the four BJT H-Bridge, two BJT voltage buffer, and two Op-amp comparators

Figure B5: Electrical subsystems, sensor and processor modules, and manual switching module

Figure B6: Frontal view of harness during device use

C:\Users\Ryan\Downloads\exploded.png

Figure B7: Exploded view of final design

C:\Users\Ryan\Downloads\Bar Handle.jpg

Figure B8: Dimensioning of arm support beam

C:\Users\Ryan\Downloads\Spool (1).jpg

Figure B9: Dimensioning of spool for nylon wire

C:\Users\Ryan\Downloads\Base and Casing (1).jpg

Figure B10: Dimensioning for mounting board and safety guard


Appendix C: Arm Measurement Tables

Table C1: Arm measurements of participants

Person

Forearm length

(+/- 1 cm)

Elbow to mid hand length (+/- 1 cm)

Hand breadth (+/- 0.5 cm)

Wrist circumference (+/- 0.5 cm)

Upper arm circumference (+/- 0.5 cm)

Subject # 1

21.5

31

8.5

16.5

26.5

Subject # 2

23

32.5

9

17.5

28

Subject # 3

23

32

9

18.5

31

Subject # 4

22.5

31

9

16.5

25.5

Subject # 5

24

30.5

8.5

16.5

25.5

Subject # 6

23

28

8.5

16.5

24.5

Subject # 7

21.5

31.5

8.5

16

23.5

* Forearm length measured 3 cm from elbow to start of hand.                                                              

* Elbow to mid hand length measured 3 cm from elbow to base of knuckles.                                                  * Hand breadth is the distance across the middle of the hand.                                                                

* Wrist circumference was measured just below "knobs" of wrist bone.                                                                            * Upper arm circumference was measured at the largest part of the upper arm.               

Table C2: Arm measurement statistics of participants

Measurement

Maximum (cm)

Minimum (cm)

Average (cm)

Standard Deviation (cm)

Mode (cm)

Forearm length

24

21.5

22.6

0.83

23

Elbow to mid hand length

32.5

28

30.9

1.35

31

Hand breadth

9

8.5

8.71

0.25

8.5

Wrist circumference

18.5

16

16.86

0.79

16.5

Upper arm circumference

31

23.5

26.4

2.31

25.5


Appendix D: Budget

Table D1:  Purchases of the mechanical sub-team

Quantity

Description

Vendor

Cost

 

 

 

Base ($/quantity)

Shipping

Total

3

Bolts/ Nuts from the Scince Store

Science Store

*cents range

 

$5.00

1

5 feet, 1 inch width

McMaster Carr

$5.27

 

$5.27

1

30 feet, 6 buckles, 1 inch width

McMaster Carr

$11.54

 

$11.54

1

5 mm pitch, outer circle circumference of 350 mm, 15 mm wide

McMaster Carr

$17.25

 

$17.25

1

3/8 in thickness, 12 x 24 in

McMaster Carr

$23.10

 

$23.10

1

1 inch thickness, 1 inch

McMaster Carr

$36.23

 

$36.23

1

3.66 inch diameter, 0.84 inch thickness, possible belt width up to 0.65 inches

McMaster Carr

$49.97

 

$49.97

1

1/2 inch diameter, 11/16" total height

McMaster Carr

$24.17

 

$24.17

10

10 feet, 3/16 in diameter, breaking strength is 3420 lbs

McMaster Carr

$0.81

 

$8.10

1

3/16 in diameter fitting

McMaster Carr

$18.36

 

$18.36

1

Fully keyed shaft, 3 inch length, 1/2 inch diameter

McMaster Carr

$7.97

 

$7.97

1

SH, 1/2 inch diameter, 1 5/16" total thickness. 1/8" by 1/16" key

McMaster Carr

$15.48

 

$15.48

1

1/8 x 1/8 inches

McMaster Carr

$2.38

 

$2.38

2

1/2" diameter flanged sleeve bearing. 1/2" length

McMaster Carr

$0.67

 

$1.34

1

Motor

Princess Auto

$19.99

 

$19.99

1

Item Return

McMaster Carr

-$17.25

 

-$17.25

1

Item Return

McMaster Carr

-$49.97

 

-$49.97

10

Item Return

McMaster Carr

-$0.81

 

-$8.10

1

Item Return

McMaster Carr

-$18.36

 

-$18.36

1

Item Return

McMaster Carr

-$15.48

 

-$15.48

1

Item Return

McMaster Carr

-$2.38

 

-$2.38

5

ROPE POLY TWIST

CANADIAN TIRE

0.09

 

$0.45

1

GRIP ULTRA 20X4

CANADIAN TIRE

$5.99

 

$5.99

4

MET HX CAPM6X2

CANADIAN TIRE

$0.35

 

$1.40

1

SS HX CAP 3/8X3

CANADIAN TIRE

0.8

 

$0.80

1

SS HEX NUT 3/8

CANADIAN TIRE

$0.60

 

$0.60

1

SS FLT WASH 3/8

CANADIAN TIRE

$0.30

 

$0.30

6

MET FLAT WASH M

CANADIAN TIRE

$0.15

 

$0.90

2

MET HX CAP M6X1

CANADIAN TIRE

$0.70

 

$1.40

1

Quick Sew fo Backpack

Quick Sew

$33.90

 

$33.90

1

Pro Tec Wrist Supporrt

Racquet Science

$9.00

 

$9.00

 Sub Total

 

 

 

$15.90

$213.97

Total

 

 

 

 

$229.87


Table D2: Purchases of the electrical sub-team

Quantity

Description

Vendor

Cost

 

 

 

Base ($/quantity)

Shipping

Total

1

Gyro+acclerometer

Ebay

$12.67

$3.90

$12.67

8

Pressure Sensor

Ebay

$2.88

$14.00

$23.04

1

Programming Board

Digikey

$26.90

 

$26.90

2

Microchip Processor

Digikey

$5.29

 

$10.58

10

diode

Digikey

$1.00

 

$10.00

4

NPN

Digikey

$5.00

 

$20.00

4

PNP

Digikey

$4.64

 

$18.56

1

Motor

Princess Auto Ltd.

$33.89

$0.00

$33.89

2

Oscillator

Digikey

$0.45

 

$0.90

5

Buffer BJT

Digikey

$1.02

 

$5.10

4

Heat Sinks

Digikey

$5.05

 

$20.20

4

Buffer amp

Digikey

$0.60

 

$2.40

4

protection zener

Digikey

$0.57

 

$2.28

4

SparkFun Force Sensitive Resistor

Solarbotics

$6.26

$5.00

$30.04

Sub Total

 

 

 

$22.90

$244.71

Total

 

 

 

 

$267.61


Appendix E: Electrical System Block Models

Figure E1: Basic electrical control system schematic

Figure E2: Sensor control schematic

 

Figure E3: Original proposed program for microcontroller development


Appendix F: Pin Functionality of Microcontroller

Table F1: Pin functionality of atmega microcontroller chip [10]

Pin

Input/Output

Function

8

output

LED for 12 V battery

12

output

LED for 9 V battery

10

output

input 1 to amplification stage

9

output

input 2 to amplification stage

4

output

LED for ON-OFF

13

output

current overload LED

5

output

voltage for manual switch*

A3

input

front sensor voltage

A5

input

back sensor voltage

A1

input

12 V battery read

A2

input

9 V battery read

A4

input

voltage read for high current/ON-OFF evaluation

*This pin is high when the device is on, unless the current goes high. This forces the manual to always be driven low.


Appendix G: Force Sensing Resistor Calibration Data

Figure G1: Force sensing resistor respsonse to various loads over its active area (1 cm2) [11]


Appendix H: Arduino Code for Microcontroller

//Pressure control using only two inputs from bottom pins therefore have 3 cases, high pressure go down, middle pressure stay still, low pressure go up

 // in this script have case up either moving when below or when front sensor is below and back is high

int threshdown =300;// if pressure is above this value go down

int threshup = 25;// if pressure is below this value go up

int delaytime=800;//vary this value in order to change delay between the reads

int threshvlarge=609;

int threshvsmall=666;

int state;

//int duty = (255);//duty cycle 0 to 255

int s=0;

//float currentthresh;//voltage for current at stall stops program for 15 seconds

 

//outputpins

int ledlarge=8;

int ledsmall=12;

int pwm3=10; //output2

int pwm4=9; //output 1

int power=4; //led for power switch

int current=13; //led for current overload/stall

int switchv = 5; /// votage output for switch (manual)

 

//analog read pins

int vread1=A3;// first input front

int vread2=A5;//second imput

int blarge=A1; // wire voltage divider from 6v battery to ground

int bsmall=A2; // wire voltage devider from 9 v battery to ground

int currentlim = A4; //takes current read for stall

 

void setup() {

  Serial.begin(9600);

 

  pinMode (vread1, INPUT) ;

  pinMode(vread2,INPUT);

  pinMode(currentlim,INPUT);

  pinMode (blarge, INPUT) ;

  pinMode(bsmall,INPUT);

 

  pinMode(pwm3,OUTPUT);

  pinMode(pwm4,OUTPUT);

  pinMode(ledlarge,OUTPUT);

  pinMode(ledsmall,OUTPUT);

  pinMode(switchv,OUTPUT);

 

  digitalWrite(blarge,LOW);

  digitalWrite(bsmall,LOW);

  digitalWrite(ledlarge,LOW);

  digitalWrite(ledsmall,LOW);

  digitalWrite(current,LOW);

  digitalWrite(switchv,HIGH);

 

}

 

void loop () {

 

float vlarge=analogRead(blarge);

float vsmall=analogRead(bsmall);

delay(delaytime);

 

float v1=analogRead(vread1); //forward sensor

float v2=analogRead(vread2); //forward sensor

float currentread = analogRead(currentlim);

 

if ( v1 < threshup) {  //up

state=3;

 

//intloop=intloop+1;

}

else if (v1 > threshdown & v2 >threshdown) { //go down

state=1;

}

 

else  { //go up

state=0;

}

 

if (vlarge > 2){//power on

digitalWrite(power,HIGH);

}

else{

digitalWrite(power,LOW);

}

 

 

if (vlarge < threshvlarge){

  state=0;

  digitalWrite(ledlarge,HIGH);}

  else {

  digitalWrite(ledlarge,LOW);

}

if (vsmall < threshvsmall){

  state=0;

  digitalWrite(ledsmall,HIGH);

}

 else {

 digitalWrite(ledsmall,LOW);

}

 

//if (currentlim > currentthresh) //information for thresholds

//{

//s=1; //triggers 15 sec delay

//state=0;

//digitalWrite(switchv,LOW);

 

//digitalWrite(current,HIGH);

//}

 

//else {

//digitalWrite(current ,LOW);

//s=0;

//digitalWrite(switchv,HIGH);

//}

 

 Serial.println(state);

 

switch(state) {

 

  case 0: //stop

        

  digitalWrite(pwm3,LOW);

 digitalWrite(pwm4,LOW);

 

break;

 

  case 1: //one direction

  digitalWrite(pwm4, LOW);

  digitalWrite(pwm3,HIGH);

 

  break;

 

  case 3:// other direction

  digitalWrite(pwm3,LOW);

 digitalWrite(pwm4,HIGH);

 

  break;

}

 

if (s=1){

Serial.println('stall');

delay(15000);

}

 

//} //end while


Appendix I:  Torque Analysis Tables

Table I1: Average motor torque for lifting

Trial #

Load (kg)

Voltage (V)

Current (A)

Time to Lift (s)

Degrees of Rotation (°)

Degrees of Rotation (rad)

Angular Velocity (rad/s)

Motor Power Output (W)

Motor Torque (N·m)

1

0.47

12.7

2.1

2.7

90.0

1.57

0.58

26.7

45.8

2

1.46

12.6

2.4

2.78

90.0

1.57

0.57

30.2

53.5

3

4.09

12.6

2.6

3.00

90.0

1.57

0.52

32.8

62.6

4

5.98

12.6

2.6

3.30

90.0

1.57

0.48

32.8

68.8

5

8.05

12.6

3.3

3.45

90.0

1.57

0.46

41.6

91.3

6

10.03

12.6

3.5

3.40

90.0

1.57

0.46

44.1

95.5

Table I2: Average motor torque for lowering

Trial #

Load (kg)

Voltage (V)

Current (A)

Time to Lower (s)

Degrees of Rotation (°)

Degrees of Rotation (rad)

Angular Velocity (rad/s)

Motor Power Output (W)

Motor Torque (N·m)

7

0.47

12.7

2.0

2.98

90.0

1.57

0.53

25.4

48.2

8

1.46

12.6

1.9

2.73

90.0

1.57

0.58

23.9

41.6

9

4.09

12.6

1.9

2.95

90.0

1.57

0.54

23.9

44.5

10

5.98

12.6

2.0

3.10

90.0

1.57

0.51

25.2

49.7

11

8.05

12.6

1.8

2.82

90.0

1.57

0.56

22.7

40.7

12

10.03

12.6

2.2

2.93

90.0

1.57

1.54

27.7

51.7


Table I3: Comparison of motor torque and torque on device

Trial #

Load (kg)

Motor Torque (N·m)

Torque on Device (N·m)

Ratio of Motor Torque to Torque on Device

1

0.47

45.8

3.5

13.1

2

1.46

53.5

4.8

11.1

3

4.09

62.6

8.1

7.7

4

5.98

68.8

10.5

6.6

5

8.05

91.3

13.2

6.9

6

10.03

95.5

15.7

6.1

7

0.47

48.2

3.5

13.8

8

1.46

41.6

4.8

8.7

9

4.09

44.5

8.1

5.5

10

5.98

49.7

10.5

4.7

11

8.05

40.7

13.2

3.1

12

10.03

51.7

15.7

3.3


Appendix J:  ANSYS Stress Analysis

Figure J1: ANSYS stress concentration with rough mesh and scale in Pa


Appendix K:  Pressure Sensor Thresholds

Table K1: Thresholds for pressure sensors for two users

User 1

Front Sensor (V1)

Back Sensor (V2)

Forward Threshold (Pa) (Vup)

< 221

Anything

Reverse Thresholds(Pa) (Vdown)

> 770

> 770

Stop Case Thresholds (Pa)

Otherwise

Otherwise

User 2

Front Sensor

Back Sensor

Forward Thresholds (Pa) (Vup)

< 110

Anything

Reverse Thresholds (V) (Vdown)

> 239

> 239

Stop Case Thresholds (V)

Otherwise

Otherwise