In previous project log I described how I designed two kinds of force/displacement sensors, now it's time to demonstrate how it's working.
Amplifier board provides voltage, proportional to optical power on receiver photodiode; simplest way to determine the sensor output is hooking up voltmeter, like DMM set to voltage range. In order to allow transferring the measured values to computer, I could use any microcontroller with ADC and UART, there is plentiful choices and I opted to use MSP430 MCU, just because I wanted to entertain myself a bit by stepping outside of my Microchip routine.
I had one MSP430F5529 launchpad accumulating dust for a while. I wrote single-file C program to exercise UART and ADC of this MCU, continuously measuring voltage on two ADC channels, waiting for user input and emitting the measured values once user sends expected string.
@patex1987 wrote graphical demonstration program in Python, asking periodically the MSP430 for measured values, parsing the output, displaying both numerical and graphic output, as color gradient ranging from yellow (no load) to red (fully loaded sensor). Apart from that, measured values are emitted to log file, for later analyze.
Sources for the programs are in github repository.
Having the means to visualize and log sensor response, I was really curious how the sensors do perform - starting by all plastic sensor. I took a few bits of "heavy hardware" (mechanical engineers may scoff, but as electronic engineer, I'm used mostly to M2,5 and M3 screws), namely M10 spacers, each weighing 57g.
I considered all of them being the same weight (acceptable for my rough characterization), so I ran measurement and logging while stacking them one by one
Adding the weight manually caused a lot of wobble, but that made the characterization just slightly more complicated
Red line is measured value from one sensor, going down as I added more weight; I put 6 pieces in total. Blue is slope of last 10 measurements, allowing me to find stable areas (where slope is near to zero). This boiled down to seven values from which I calculated rough "calibration data".
The sensor response is surprisingly linear. I didn't dare to go further than 6 blocks (342g total), so let's call this maximal allowable load, or roughly 3,4N of force.
I did the same for suspended sensor, though using smaller M6 spacers, each by 18g.
The response wasn't that linear, but still quite good. This sensor is also much more sensitive than plastic one.
I assume the culprit here may be friction of not exactly perfectly aligned linear bearing, as the first point is mostly off, other being OK-ish.
In next log, I'll talk a bit of sensor stability and possible improvements of the design.