Difference between revisions of "FootFrame"

From ESE205 Wiki
Jump to: navigation, search
m (Changed protection level for "FootFrame" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) [cascading])
 
(59 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
==Overview==
 
==Overview==
  
The goal of this project is to develop a system of sensors that can detect and read the amount of force placed on it, each sensor will have a reading for the left and right foot respectively. We plan to do this by using force sensitive resistors to take in data that is sent to arduino, this data will be used to calculate an imbalance (calculation will take place in arduino) in the forces on each sensor, and display this imbalance for the user, we will develop an algorithm as well which will display whether this imbalance is undesirable or okay. In its final state, the project will be able to find imbalances in forces from pushing with the legs when standing or squatting. Applications for FootFrame could be found in weightlifting and physical therapy, among other places.
+
The goal of this project is to develop a system of sensors that can detect and read the amount of force placed on it, each sensor will have a reading for the left and right foot respectively. We plan to do this by using force sensitive resistors to take in data that is sent to arduino, this data will be used to calculate an imbalance (calculation will take place in arduino) in the forces on each sensor, and display this imbalance for the user, we will develop an algorithm as well which will display whether this imbalance is undesirable or okay. In its final state, the project will be able to find imbalances in forces from pushing with the legs when standing or squatting. Applications for FootFrame are found in weightlifting and physical therapy, among other places.
  
 
==Team Members==
 
==Team Members==
Line 12: Line 12:
 
*Detect the amount of force applied by feet on force sensitive resistors, up to 110 pounds per foot
 
*Detect the amount of force applied by feet on force sensitive resistors, up to 110 pounds per foot
 
*Be able to deliver a reading of the force from each resistor into arduino, and code a program that calculates and displays the difference between the force sensitive resistors in arduino
 
*Be able to deliver a reading of the force from each resistor into arduino, and code a program that calculates and displays the difference between the force sensitive resistors in arduino
*Designing a foot stand that allows us to accurately and completely transmit all the force generated by feet onto the force sensitive resistors. Six force sensors will be used to develop data (this number was chosen because geometrically, three sensors for each foot plate will be stable)
+
*Designing a foot stand that allows us to accurately and completely transmit all the force generated by feet onto the force sensitive resistors. Eight force sensors will be used to develop data (this number was chosen to support a Wheatstone bridge circuit)
 
*Developing an interface to show the information collected (difference in force readings between feet in LBS)
 
*Developing an interface to show the information collected (difference in force readings between feet in LBS)
  
Line 25: Line 25:
 
==Gantt Chart==
 
==Gantt Chart==
  
[[File:FootFrameGantt.jpeg|FootFrameGantt.jpeg|1000px|Image: 1000 pixels]]
+
[[File:1234.JPG|1234.JPG|1200px|Image: 1200 pixels]]
 
 
https://docs.google.com/spreadsheets/d/1H5cpbgXfJl0u1xPYPvo7tCifoArmC6_x2dsyvQ3xTgw/edit#gid=0
 
  
 
==Budget==
 
==Budget==
*SparkFun Load Cell Amplifier - HX711 [$9.95] https://www.sparkfun.com/products/13879?_ga=1.121117709.48925135.1486004091
+
*2 SparkFun Load Cell Amplifier - HX711 [$9.95 each] https://www.sparkfun.com/products/13879?_ga=1.121117709.48925135.1486004091  
*SparkFun Load Sensor Combinator [$1.95] https://www.sparkfun.com/products/13878?_ga=1.52354092.48925135.1486004091  
+
*2 SparkFun Load Sensor Combinator [$1.95 each] https://www.sparkfun.com/products/13878?_ga=1.52354092.48925135.1486004091  
*6 Load Sensors - 50 kg [$9.95 each] https://www.sparkfun.com/products/10245?_ga=1.9476016.48925135.1486004091
+
*8 Load Sensors - 50 kg [$9.95 each] https://www.sparkfun.com/products/10245?_ga=1.9476016.48925135.1486004091  
*Load Cell - 200kg, Disc (TAS606) [$56.95] https://www.sparkfun.com/products/13332?_ga=1.16093363.48925135.1486004091
+
*9V Battery Clip - [$4.29] https://www.amazon.com/Parts-Express-9V-Battery-Clip/dp/B0002ZPFU8
 +
*4 pack of 9V D batteries [$8.79] https://www.amazon.com/Duracell-MN-1604-Pack-MN1604/dp/B0164F986Q/ref=sr_1_3_a_it?ie=UTF8&qid=1486762819&sr=8-3&keywords=9v%2Bbattery&th=1
 
*Arduino (supplied by lab) [$0.00]
 
*Arduino (supplied by lab) [$0.00]
 
*Personal Computer - for display screen and power source - (supplied by group) [$0.00]
 
*Personal Computer - for display screen and power source - (supplied by group) [$0.00]
*3D printed platform [$0.00]
+
*3D printed load sensor connects [$0.00]
 +
*Wooden platforms and blocks from machine shop [$0.00]
 +
===Total===
 +
$116.48
 +
 
 +
==Objectives Revisited==
 +
===Force Readings===
 +
* Our original goal was to read up to 110 lbs per foot, but we were able to measure up to 220 lbs per foot (to give us a total of 440 lbs overall)
 +
* These readings were very accurate up to 0.1 lbs (tested in the lab)
 +
* Each set of sensors could measure force individually and additively
 +
 
 +
===Arduino Programming===
 +
* Successfully designed an algorithm that took a rolling average of the force values from each set of sensors
 +
* This average was used to obtain a weight difference in pounds between the two sets of sensors
 +
 
 +
===User Interface===
 +
* Used Arduino’s Serial Plotter function to show the absolute weight difference between the two sets of sensors in real time
 +
 
 +
We combined the Serial Plotter with research to accurately show when a user has an unhealthy asymmetry. As confirmed by a PhD in WashU’s medical department, 60% of total weight on one leg corresponds to an unhealthy asymmetry. We showed this on the Serial Plotter by taking 20% of the total bodyweight (which moved in real time, allowing it to account for increased force via squatting) and plotting it as a blue line on the screen. The difference in weight distribution between feet is shown as a red line on the screen. Refer to our example Serial Plot on the poster to see what it looked like in real time.
 +
 
 +
[[File:FinalPoster.JPG|thumbnail|our final poster]]
 +
 
 +
===Accurate Readings===
 +
* The housing we designed and printed for the load sensors allowed for accurate readings
 +
* We surrounded the footplates with blocks of wood so they wouldn’t move while also not subtracting any force given by the user (thus providing accurate readings)
 +
* We used known weights to confirm that the calibration of the sensors were correct
 +
 
 +
==Mechanical Design==
 +
The main ideas and their corresponding CAD diagrams are drawn out below. The overarching design is for two of the assemblies shown below to exist - one for each foot.
 +
 
 +
[[File:Assembly_Top.JPG|Assembly_Top.JPG|500px|Image: 500pixels]]
 +
 
 +
(above) A top-down view of the completed assembly (picturing the foot plate over the base plate). For reasons mentioned below, a team used two rectangular pieces of wood to cover each set of load sensors, rather than circular foot plates.
 +
 
 +
[[File:Assembly.JPG|Assembly.JPG|500px|Image: 500pixels]]
 +
 
 +
(above) An isometric view of the assembly, featuring four load sensor support blocks. The foot plate rests evenly upon each of the four load sensors. Not included in the assembly are the four walls that will be set up around the foot plate. These walls will ensure that the foot plate does not move and therefore put more pressure on one sensor than the others. The walls were not included in the above pictures for clarity's sake. The only differentiation between the CAD model and the actual design were the shape of the footplates. Due to an error from a lumber company, the team was unable to received circular footplates. Instead, two pieces of wood were cut to fit across each set of load sensors.
 +
 
 +
[[File:Sensor_Close_Up.JPG|Sensor_Close_Up.JPG|500px|Image: 500pixels]]
 +
 
 +
(above) This view is a close up of the load sensor support block and a depiction of the load sensor itself, as well as the load sensor housing. The support block will be attached to the base plate with nails. The housing is two pieces which sandwich the load sensor together. Screws will be put through both pieces and into the support block in order to hold the load sensor in place. These housing pieces are 3D printed. They can be found on the Thingiverse online repository at a link posted below.
 +
 
 +
==Challenges, Modules, and Solutions==
 +
===Calibration===
 +
* To calibrate the project's sensors, a calibration algorithm was found from the sensors' online library.
 +
* Using known weights, the project was able to calibrate the project to an accuracy of .1 pounds.
 +
===User Interface===
 +
* To display information from the sensors, the project took advantage of the Arduino Serial Plot (an example is above on the poster).
 +
* To simplify the interface, the only information presented during the demo was the difference in weights and a constant of 20% of the user's total bodyweight.
 +
* This 20% constant was given by Dr. Harris of WashU's Biomedical Engineering department as a value considered unhealthy of an individual to surpass while trying to stand or squat. This means that an individual standing or squatting with more than 60% of their bodyweight on one leg or the other is at risk for injury.
 +
===Mechanical Design===
 +
* The mechanical design had many challenges, one of which was securing the load sensors while not interfering with measurements. This was accomplished through the use of 3D printed sensor housings bolted to blocks that sandwiched the load sensor together and did not apply any force that could misconstrue the readings.
 +
* Another concern was the accuracy of the measurements. The team was worried that the load sensors would not be very accurate. However, working in tandem with the calibration code, the team was able to test with known weights and discovered that the scale was accurate up to 0.1 pounds.
 +
* The footplates were held in place by walls bolted to the frame. This prevented a misdirection of force that would have made an inaccurate reading, but successfully held the pieces in place.
 +
* One pitfall of the footplates was the fact that they wobbled when pressure was placed near the corners. Due to the nature of the project, it would have been damaging to the wood and pieces to try and solve this problem after it was put together. However, foresight could have directed the team to place the blocks at the corners, which would have prevented wobble.
 +
* Terry O'Neill, a physical therapist at WashU informed the team that using two individual footplates forced users to subconsciously correct their stance when using the project. This information was delivered after the demo, however, in future revisions of the project, the team would find a way to use a single footplate that spanned over both sets of sensors to increase usability.
 +
===Data Filtering===
 +
* To prevent inevitable noise from creating inaccurate readings, a rolling average was placed into the algorithm to effectively balance out bad readings.
 +
 
 +
==Repository==
 +
Load Sensor CAD Files - http://www.thingiverse.com/thing:2278804
 +
 
 +
Code - https://bitbucket.org/Jkorovin/footframe
 +
 
  
 +
==HowTos==
 +
Arduino Serial Plotter: http://classes.engineering.wustl.edu/ese205/Using_Arduino_Serial_Plotter
  
 +
Soldering: http://classes.engineering.wustl.edu/ese205/How_to_Solder_Wires_Together
  
 
[[Category:Projects]]
 
[[Category:Projects]]
 
[[Category:Spring 2017 Projects]]
 
[[Category:Spring 2017 Projects]]

Latest revision as of 13:43, 16 September 2017

Overview

The goal of this project is to develop a system of sensors that can detect and read the amount of force placed on it, each sensor will have a reading for the left and right foot respectively. We plan to do this by using force sensitive resistors to take in data that is sent to arduino, this data will be used to calculate an imbalance (calculation will take place in arduino) in the forces on each sensor, and display this imbalance for the user, we will develop an algorithm as well which will display whether this imbalance is undesirable or okay. In its final state, the project will be able to find imbalances in forces from pushing with the legs when standing or squatting. Applications for FootFrame are found in weightlifting and physical therapy, among other places.

Team Members

  • Jessie Korovin
  • Adam Messer
  • Isabel Shapiro
  • Will Luer (TA)

Objectives

  • Detect the amount of force applied by feet on force sensitive resistors, up to 110 pounds per foot
  • Be able to deliver a reading of the force from each resistor into arduino, and code a program that calculates and displays the difference between the force sensitive resistors in arduino
  • Designing a foot stand that allows us to accurately and completely transmit all the force generated by feet onto the force sensitive resistors. Eight force sensors will be used to develop data (this number was chosen to support a Wheatstone bridge circuit)
  • Developing an interface to show the information collected (difference in force readings between feet in LBS)

Challenges

  • Calibrating force resistors so they do not give inaccurate readings (can sometimes differ by 10%)
  • Designing a program to deliver the reading using arduino
  • Making sure the foot stands are stable and do not break, to make sure the user remains safe
  • Making sure all the force is delivered onto the sensor
  • Filtering data to get accurate results
  • Ensuring the material that the sensor is housed in will not impact the quality of the data

Gantt Chart

Image: 1200 pixels

Budget

Total

$116.48

Objectives Revisited

Force Readings

  • Our original goal was to read up to 110 lbs per foot, but we were able to measure up to 220 lbs per foot (to give us a total of 440 lbs overall)
  • These readings were very accurate up to 0.1 lbs (tested in the lab)
  • Each set of sensors could measure force individually and additively

Arduino Programming

  • Successfully designed an algorithm that took a rolling average of the force values from each set of sensors
  • This average was used to obtain a weight difference in pounds between the two sets of sensors

User Interface

  • Used Arduino’s Serial Plotter function to show the absolute weight difference between the two sets of sensors in real time

We combined the Serial Plotter with research to accurately show when a user has an unhealthy asymmetry. As confirmed by a PhD in WashU’s medical department, 60% of total weight on one leg corresponds to an unhealthy asymmetry. We showed this on the Serial Plotter by taking 20% of the total bodyweight (which moved in real time, allowing it to account for increased force via squatting) and plotting it as a blue line on the screen. The difference in weight distribution between feet is shown as a red line on the screen. Refer to our example Serial Plot on the poster to see what it looked like in real time.

our final poster

Accurate Readings

  • The housing we designed and printed for the load sensors allowed for accurate readings
  • We surrounded the footplates with blocks of wood so they wouldn’t move while also not subtracting any force given by the user (thus providing accurate readings)
  • We used known weights to confirm that the calibration of the sensors were correct

Mechanical Design

The main ideas and their corresponding CAD diagrams are drawn out below. The overarching design is for two of the assemblies shown below to exist - one for each foot.

Image: 500pixels

(above) A top-down view of the completed assembly (picturing the foot plate over the base plate). For reasons mentioned below, a team used two rectangular pieces of wood to cover each set of load sensors, rather than circular foot plates.

Image: 500pixels

(above) An isometric view of the assembly, featuring four load sensor support blocks. The foot plate rests evenly upon each of the four load sensors. Not included in the assembly are the four walls that will be set up around the foot plate. These walls will ensure that the foot plate does not move and therefore put more pressure on one sensor than the others. The walls were not included in the above pictures for clarity's sake. The only differentiation between the CAD model and the actual design were the shape of the footplates. Due to an error from a lumber company, the team was unable to received circular footplates. Instead, two pieces of wood were cut to fit across each set of load sensors.

Image: 500pixels

(above) This view is a close up of the load sensor support block and a depiction of the load sensor itself, as well as the load sensor housing. The support block will be attached to the base plate with nails. The housing is two pieces which sandwich the load sensor together. Screws will be put through both pieces and into the support block in order to hold the load sensor in place. These housing pieces are 3D printed. They can be found on the Thingiverse online repository at a link posted below.

Challenges, Modules, and Solutions

Calibration

  • To calibrate the project's sensors, a calibration algorithm was found from the sensors' online library.
  • Using known weights, the project was able to calibrate the project to an accuracy of .1 pounds.

User Interface

  • To display information from the sensors, the project took advantage of the Arduino Serial Plot (an example is above on the poster).
  • To simplify the interface, the only information presented during the demo was the difference in weights and a constant of 20% of the user's total bodyweight.
  • This 20% constant was given by Dr. Harris of WashU's Biomedical Engineering department as a value considered unhealthy of an individual to surpass while trying to stand or squat. This means that an individual standing or squatting with more than 60% of their bodyweight on one leg or the other is at risk for injury.

Mechanical Design

  • The mechanical design had many challenges, one of which was securing the load sensors while not interfering with measurements. This was accomplished through the use of 3D printed sensor housings bolted to blocks that sandwiched the load sensor together and did not apply any force that could misconstrue the readings.
  • Another concern was the accuracy of the measurements. The team was worried that the load sensors would not be very accurate. However, working in tandem with the calibration code, the team was able to test with known weights and discovered that the scale was accurate up to 0.1 pounds.
  • The footplates were held in place by walls bolted to the frame. This prevented a misdirection of force that would have made an inaccurate reading, but successfully held the pieces in place.
  • One pitfall of the footplates was the fact that they wobbled when pressure was placed near the corners. Due to the nature of the project, it would have been damaging to the wood and pieces to try and solve this problem after it was put together. However, foresight could have directed the team to place the blocks at the corners, which would have prevented wobble.
  • Terry O'Neill, a physical therapist at WashU informed the team that using two individual footplates forced users to subconsciously correct their stance when using the project. This information was delivered after the demo, however, in future revisions of the project, the team would find a way to use a single footplate that spanned over both sets of sensors to increase usability.

Data Filtering

  • To prevent inevitable noise from creating inaccurate readings, a rolling average was placed into the algorithm to effectively balance out bad readings.

Repository

Load Sensor CAD Files - http://www.thingiverse.com/thing:2278804

Code - https://bitbucket.org/Jkorovin/footframe


HowTos

Arduino Serial Plotter: http://classes.engineering.wustl.edu/ese205/Using_Arduino_Serial_Plotter

Soldering: http://classes.engineering.wustl.edu/ese205/How_to_Solder_Wires_Together