Foot Pressure Sensor

Hi,
I'm completely new to Arduino.
I want to use this foot pressure insole sensors - 16 sensors = 16 ADC input:
sensors
My questions:

  1. What is the common approach to review results of let's say 5 minutes of walking with such sensor?
    a. Write to local file, then transfer it via USB to a PC.
    b. Real time sensor readings communication via WiFi/Bluetooth to a mobile/web/server/desktop app I need to program?
    c. Is the "Arduino cloud" might be relevant here (which means real time WiFi communication)? Does it have ready template app to display real time ADC input readings from the board?
  2. What is the recommended board in such case, assuming battery power (should be portable around the leg) and 16 sensors input (16 ADCs ports - not a 16bits single ADC)? In addition, I guess there is no board with 16 (saw typically it's 6 ADC inputs etc.) and the film flex type connector suitable for above sensors, so how does it work? There are supplementary HW for the main board, and in my case a 16 ADC connector?
    Thanks a lot in advance!
    Mike,

How frequently do the sensors need to be read and, bearing in mind that they won't all be read at once, what is the maximum period over which they must be read ?

1 Like

Hi,
The use case is medical monitoring of weight distribution in the different parts of the foot and between the two legs, on each and every step while walking.
So I guess real time measurements hence every sensor every 0.25-0.5 of the second.

What does the manufacturer recommend for monitoring their sensors?

Your request is pretty unusual, so there is no "common approach". Reading 16 analog sensors will be a challenge -- you will probably need a Mega, which has 16 analog input pins.

Start small and learn how to read one Force Sensitive Resistor at a time (they can be individually purchased from Adafruit, Sparkfun, etc.), and figure out how to interpret the results, as the sensors are highly nonlinear in their response. You cannot make quantitative force or pressure measurements with those sensors, only rough estimates.

Couldn't find anything, looks like it's a stand alone sensor kit, weird.
So I found this:
https://www.mdpi.com/1424-8220/23/4/2323#B33-sensors-23-02323
academic master thesis used some ST microcontroller, Bluetooth and mobile app. But the microcontroller wasn't enough, so they designed another custom PCB board...
At that moment I said "Ok, but at the end it's ADC input reading", so aren't this Arduino thing which also provides some (all my questions above) to ease development especially communicating sensor readings to the application abstraction layer?

So where will you get the device you described?

That is what you get. It is up to you to make something of it. Or of 16 of them.

I linked below a master thesis explaining the fit function to solve the non linearity thing and actually this part is the one I understand.
What I don't understand is how Arduino handles real time sensor reading to the application layer: Log to a file, then read at the end of the usage? WiFi/BT real time communication?

Hint on posting product links: all that junk after the "?" is your personal tracking information. Best to remove it.

how Arduino handles real time sensor reading to the application layer

What application layer? You write code to do whatever you want with the analog readings. Process them and print results on the serial monitor (or terminal program on a PC, to capture to a file), write them to SD cards, send over WiFi, etc.

1 Like

I looked at the link to the device. I see no replies by anyone actually buying the device. I also see several similar offerings from other names, but NONE have any useful information or responses from buyers. So, you seem to be on your own.

Do you have one to begin testing? Will you require two devices for bi-pedal use?

1 Like

Interesting.
I won't purchase before I can realize how to deal with it, and yes - I would need set of 2.

Then you will likely never begin you project.

1 Like

For a person who is "completely new to Arduino", it would be a very challenging project to reproduce the study done in the paper you linked.

However, that is a perfectly reasonable goal, although it might take a year or more to develop the skills to do it yourself.

You need to decide what the actual project goal is, and whether you are willing to put in the required time and effort.

1 Like

Hi,
After doing some research, I'm thinking about HX711 and 4 X 50kg load cells (so single ADC pin needed from the board), that I would place (squeeze somehow) on different parts of shoe's mid-sole etc. (I'll figure it out).
Based on: https://www.youtube.com/watch?v=LIuf2egMioA
He also provides GitHub with code basically "continuously in real time" outputting single figure - overall total sensed weight - It's a bit different from fine tuned foot pressure map like in the research, but good enough for my case.
Then the Board will be placed just above the foot (yes some attention cause wires to sensors all around) powered with a battery and sending over WiFi, so I was thinking about the MKR WiFi 1010 and the Arduino cloud as App interface.
The missing part is to modify the GitHub code: GitHub - olkal/HX711_ADC: Arduino library for the HX711 24-bit ADC for weight scales
To output to Cloud widget, then I understood the Cloud platform allows to record historical data for later data review and analysis.
Do you think this is a legit approach? (At the X2 for each leg).

For the fine tuned foot pressure map, assuming MKR 1010 has 7 ADCs, It would be a different project requiring finding pressure sensors beyond the popular FSR402 20N (~2KG), let's say 10KG each, then 7 on each foot, connected directly to the ADC pins.
Question here: Extended ADC Shield is just MUX, so at the end no real parallel simultaneous reading from all the sensors, right? (In case I want to connect beyond the 7 slots I have on the board).
Thanks,

Do you even have anything on hand? An Arduino board, an FSR? That would be a starting point. Learn how to read an FSR and get a feel for what the thing can do and how you would possibly integrate it in a shoe sole. Load cells make no sense to me, they're much bigger and much harder to integrate.

For parallel reading: you're looking at reading at rates of a mere 4 Hz. The Arduino can take analog readings at just under 10 kHz at default settings, can be made faster if needed. So you can take a dozen readings of all 16 sensors in a matter of milliseconds. That is as good as parallel for your desired sample rates.

Data collected: just send it to a computer. Raw data, CSV, whatever format you like - you design the interface. The Arduinos have built-in USB interface so that part is easy. After that it's of course up to you to crunch the data and do something useful with it on your computer, that's way out of the abilities of an Arduino.

1 Like

For 16 ADC channels, you can consider Arduino Mega 2560.

can any one send me the working code

You definitely don't need 16 ADC channels for this to work—just two 16-channel multiplexers. Along with some basic components like resistors, diodes, and capacitors. An Arduino Nano 33 BLE is the best option, as it’s the smallest option and ideal for portability in a shoe. the Arduino Nano 33 BLE can communicate via Bluetooth Low Energy, allowing you to send data to a smartphone. Its low power consumption means a small battery can power it for an extended period.

4 Likes

Do you want to make your own foot pressure sensor or are you going to buy the one in the picture (called "FS-INS-16Z") ? Do you have a connector for it ?
FS-INS-16Z: https://film-sensor.com/product/pressure-mapping-fs-ins-16z/
I assume that they use rubber-like flexible conductive material on top of traces on the plastic foil. It seems that each sensor has a wire, they are not in a matrix.

One 16-channel multiplexer would be enough (or a Arduino Mega board).
About 10 samples per second is easy, maybe 100 samples per second is possible.
You need 16 resistors (or 1 resistor when a multiplexer is used) to be able to measure the resistance.

It might not be accurate.
You could do a very cheap test with any Arduino board. You only need conductive rubber and strong copper/tin foil, a few wires and a resistor.