This project was devised for the Software of Places graduation course of PUC-Rio - Pontifical Catholic University of Rio de Janeiro.
We developed a wearable - The Smart Insole - to collect data from the user's feet, in order to analyze this data to understand the user's foot posture. The insole constantly reads the pressure applied over the right and left edges, along with accelerometer data, and send this data together in short messages via Bluetooth.
Step 1: Bill of Materials
For this project we need only a few electronic components and an insole. Here is the list of materials used and their prices:
- Lightblue Bean - US$30,00
-  Force Sensitive Resistors - US$15,00
- Insoles - US$8,00
- Coin Cell Battery - US$1,95
- Jumper Wires - US$1,25
-  10K Ohm Resistors - US$0,10
Total Cost: Approximately US$56,00
Step 2: Assembly
The setup of the force sensitive sensors is fairly simple, but you will need a 10K Ohms resistor for each force sensor in order to create the voltage divider needed to read the data. The figure 5 above shows how to connect each force sensitive resistor to the Arduino compatible board of your choice - we used the Lightblue Bean micro-controller by Punch Through Design because of its innate Bluetooth capabilities., and the code provided here was developed for that micro-controller.
There is a special need to protect the force sensitive resistor terminals, and one of the resistors of the first prototype developed was damaged beyond repair. We found out that a simple coin is more than enough for the job, just remember to use some isolation tape.
We used double-sided bonding tapes to hold the two parts of the insole together, just like an electrical component sandwich. The micro-controller was put in an old small running pouch, and the wires from the insole were connected to the micro-controller through the shoelace's eyelets.
Step 3: Coding and Reading the Data
Here in this step the code needed to broadcast Bluetooth messages containing the data is provided. Again, we read the Lightblue Bean accelerometer's data along with the force applied to each side of the insole (a number ranging from 0 to 1023).
To visualize the data, there is a vast number of options.
If you have an OS X computer, you can use Virtual Serial
If you have an iPad or iPhone, you can use the Lightblue Explorer
Step 4: So What?
Now that you have an insole collecting data from the user, so what?
You could, like we did, use it to analyse the user's foot pronation, as figure 1 and 2 shows.
It is also possible - and we did it too - to generate a data set and get some insights from it through Machine Learning techniques. If the user is working out, for example, you can try to determine in which lower body exercise the user is currently engaged. Or you can turn the Smart Insoles in a cheap sensor package to help discovering a user's context - walking, running, stepping down or up, etc.
It is up to you!