- Prototype of an Assistive Walking Posture Device -
WalkProp is an assistive device that will guide correct walking posture. It does this by adjusting one's feet to become parallel from each other.
February to March 2020
3D printing, Arduino components
Mechanical prototyping, C++
What problem can I solve in my life?
To design and prototype a device that would aid my life in some way, I started with listing all the inconveniences whether big or small that I would like to have fixed in my life. It was challenging to decide what I could pursue because many times, there could be devices in the world already created to fix these problems. In the end, I decided to pursue a physical aid device that would help my feet walk more parallel to each other.
This was something my parents always corrected me for and warned me how it was not only bad posture but also will hurt your knees in the future. With some research into this, there have been studies that states that walking posture is important for muscle and join health. Therefore, I decided to create a device that would help correct walking posture. I hope that my experiences that influence the purpose of this product would be able this would be able to apply to others and help them as well.
Conducting research based on personal experiences
Storyboards for my top ideas
Drawing out the context and problem situation for my main ideas helped me decide which ones that are most feasible to create, meaningful to me, and is also unique.
Through my working process, there were two major decision points in my progress that impacted the end result of my project.
The Arduino Uno and Arduino Pro Mini Situation:
Prototyping and modifying according to the occasion
The magnetometer acted as a compass
With a target outcome, I decided that the GY-271 magnetometers would work best with my idea because magnetometers were the most reliable options to the other components that were available to me. My plan was to code the magnetometers so that they would detect the direction they were facing on a horizontal plane, much like a compass. I would convert the ranges that the GY-271 could output (0-255) to degrees (0-360) to do this.
I needed two magnetometers for each foot to determine the differences between the degrees output on each foot. If the difference was greater than a certain degree that I setup, a vibration motor (that was next to your feet or ankles) would trigger. I learned through trying to make this work was that the communication between the two magnetometers could only happen through using two microcontroller boards/Arduinos. Thus, I separated the two and used transmitters for a wireless communication to take place.
Prototype of device with magnetometer, transmitter and vibration motor
This prompted me to use the smaller Arduino Pro Minis to replace the bulkier Arduino Unos, hoping to make my device more comfortable to wear and inconspicuous on the body. I wired up the Arduino Pro Minis and was able to send my code to it, however, the feedback was jumbled and I could not receive the data of the left and right magnetometers that I would have been able see from the Arduino Uno.
Replacing the Arduino Uno with the Arduino Pro Mini
The screen shows that it is only displaying the receiving transmitter’s data (right foot) and not the transmitting one (left foot)
I spend a significant amount of time making this change to a smaller device so I tried multiple ways to resolve the problem. I asked multiple people about how I could use the Arduino Pro Mini and searched for online solutions. However, the left foot’s transmitter would not display its data. I doubled checked my wiring and replaced wires in case that that was the issue, yet the result was the same. This was the point where I decided that in order for my device to work in our limited time, I should switch back to the larger Arduino Uno.
Condensing the wiring and interior as much as possible with tape to place inside its packaging
2. Changing the Code:
While I was creating the packaging for my device, I realized for the magnetometers that were connected to the Arduino Unos, the data that was being displayed was very noisy and fluctuated significantly. Even though the range of data that is coming from the magnetometers was suppose to be from 0 to 255, this was not the case in reality. This led to my second major change, where I looked for patterns in the code and calibrated the device so that the right foot (since my right foot was the one that normally doesn’t walk straight forward) needed only to be parallel to the left foot. In my code, I looked for the changes in numbers when my right foot strayed from being parallel and I used the this to signal when the vibration motors should be activated. I also included a line of code that helped reduce the noise and fluctuation of the data being received from the magnetometers to increase the accuracy of the readings.
WalkProp final working prototype
WalkProp in context and close up shots
My Arduino schematic of components used
Reflection & Future Steps
I am satisfied with what I have accomplished because I am hopeful that this device can be applied not only to my daily life, but for others as well potentially used in the real world to help myself or others. I was also happy that I was able to move on with the issue over the Arduino Mini Pro and solve the situation quickly by using the Arduino Uno. Thinking back, if I dwelled on this, I would not have been able to spend time on the exterior design.
Furthermore, I realized that it is much more difficult to create a useable device than I expected. If it was already so demanding to create an assistive device just for myself, it would be multiple times more difficult to create a tool for everyone.
I learned that there can also be many different obstacles that you cannot anticipate. Through this project, I learned to use the resources and knowledge that I have to adapt to situations and modify the final product according to these unexpected troubles. I think this is very relevant for the future in real world situations where these situations can happen much more often and I would need to quickly adapt and learn on the spot to face these troubles in order to find a solution.
Specifically in the making of my device. I realized that much of how to solve Arduino coding problems is to search online and learn from example codes. Before, I thought that people who were experts in Arduino would simply know what the problem is with just by looking at the code because they knew the C language, however, when I asked them about various issues I was having, they also went through the same pattern of searching online and learning on the go. This really helped me find methods on how to solve problems myself for the future.
My next steps for this project would be to improve the hardware for it to function smoother (stronger communication between the magnetometers and more reliable detection of feet rotation) and become smaller in size to be more comfortable to wear. WIth these refined, I believe that this product would be steps even closer to being on the market.