I was able to hop onto a lab parts order early yesterday and throw in some force sensitive resistors and prototyping miscellanea. Thanks to the miracle that is modern supply chains and logistics, I had them on my desk in less than 24 hours.
Now, if only Advanced Circuits could finish my Double DEC’er boards that fast. I mean, without costing a significant percentage of my undergraduate tuition.
Oh, speaking of the Double DECers, here’s the latest board iteration featuring discrete 3.3v and 5v regulators. The amount of power I wanted to draw from the 5v line was cresting the limit of the DECs’ onboard regulators, so I added one that runs directly off the battery input. Also, a power LED.
I figured it was safe to stop there for now.
And here’s (part of) the controller parts roster. On the left is a Lilypad Xbee holder and prototyping antiperfboard. Lilypads were designed to be used with wearable electronics, and I figured that the controller qualified as a piece of wearable electronics. These things are actually huge. They looked tiny and cute in the pictures, but are actually about 2 inches in diameter. I foresee no fitting problems, however.
I got four coin cell holders. The controller power will, for now, come from 2 CR2032s in series for a 6 volt power source, which will be regulated to 3.3 volts.
The XBee 2mm headers are for the Double DECers, so I don’t have to solder my poor XBees to the board.
Anyways, here’s How Shit Go Down™ with the FSRs.
Their resistance decays as 1/R with linearly increasing pressure. There is a very high (megohms) unloaded state, and a minimum force must be applied to enter the hyperbolic region. After a certain pressure is applied, the decay saturates at a steady value until you compress it out of existence. Actually, all this is in the datasheet. Why am I explaining it?
I elected to begin experimenting with the “buffered voltage divider” on p. 16. As fig. 9 illustrates, the voltage response is highly nonlinear near zero force. However, with a low load resistance (Rm), the logarithmic curve is approximately linear at higher forces. And with a high parallel resistance inserted across the FSR, the Precipitous Voltage Cliff is smoothed out to a zero force intercept with a value of approximately (Rm / Rparallel + Rm) * Vref.
I exaggerated this approximately linear curve even further by using a 1Kohm load resistor, which seems to put me on the edge of the FSR’s 1ma per cm² current tolerance. Next, I set up the op amp buffer as an adjustable noninverting amplifier (as seen in figure 10). Tuning the blue potentiometer effectively let me set the force slope.
Now I had a response that was kinda-sorta-not-really-but-close-enough linear within an adjustable force range. To supplement, I put a slow RC filter (t ~ 0.5 sec) on the output of the amplifier.
After having enough fun playing Squeeze the Resistor, I began to attach it to spots on the wrist plate for ergonomics testing. The results:
- Palm area: Good wrist bend force response, but had the unfortunate side effect of also responding when I opened my palm all the way. This was due to the way the sensor was oriented – a normal force could come from either forcing the hand down through the wrist or pushing the palm out by uncurling the fingers.
- Other side of same area: Very little response at all, because the force didn’t really go that way.
- Behind the wrist on the flat portion of the plate. This is the 1st class lever equivalent of the first configuration, so it suffered from the same undesirable side effect. Pushing out with the palm also meant that this area of the plate was pushed upwards (with the main wrist strap as a fulcrum), triggering the sensor. Clearly, any response having to do with “opening of the hands” is bad, because that means if I’m trying to recover from an impending faceplant, it will just faceplant me harder.
- Right under the wrist: Now this was actually promising. While the motion is reverse (i.e. now I pull up with my wrist), the side effect was eliminated – if not, it was a transient at most.
Crap, should have made the damn wire longer.
And so I actually settled with the original motion I was going to reserve for a brake or reverse mode. Now, something that can clearly solve this issue is having multiple FSRs such that different ones are triggered depending on hand position. The ability to distinguish between the open hand and limp hand with wrist pressure positions clearly mean the difference between go faster and oh shhhhh–.
However, that would require some software processing of the multiple signals, and I want to just start simple for now.
Here’s a short video illustrating wrist bend control. In the video, the control looks sensitive with respect to distance displaced, but that distance comes with substantial force applied against the wrist straps and plates. It’s actually quite easy to maintain a certain voltage position, and the “muscle twitch” response is well damped due to the filter.
The moving line scale is 1 volt per division, and the maximum output voltage is just under 3.2 volts. The system runs on a 3.3 volt bus (XBee native voltage) using the LMC6484 rail to rail I/O op-amp to take maximum advantage of the low voltage swings.
Next mission: Transmit this 0-3.3v signal to another board using the XBees in direct I/O bridge mode and decode & buffer the output to 0-5v.
Oh yeah, guess where my batteries were for the past week?
… it was in the bin, but we forgot to record it. sorry.”
-desk
Sigh.
Along with the batteries, I got a few bags of miniature bullet connectors (2.3mm) and a ton of 5 volt BECs for the robots.
I was concerned that my lipos were starting to suffer from dry rot, but they both read 23.1 volts out of the box with all cells balanced. I’ve apparently had great luck with HK batteries, since they seem to occasionally arrive with dead cells.
These batts come with an XT60 type connector that I might replace with some Deans, since I have a few zillion ghettoDeans but no 3.5mm bullet connectors.
OH NOEZ! The lipos seem to be a millimeter or two wider than their stated width (41mm).
This is kind of bad, because it means they don’t lie down in the cavity any more. The amount of leftover top volume is still acceptable, though, even with them “lying vertically”. There is enough of a gap behind them to add things like a power switch and charge/balance port.
So when the Double DECer boards arrive, I’ll perform a test fit in the remaining cavity space. Hopefully, by then, I’d have verified the XBee wireless analog voltage and Enable pin transmission.
Maybe you could bias the FSR with a spring or something so your “zero” is some finite resistance and the bending backward or forward moves the resistance up or down from the offset zero point. Might get fwd speed control and braking.
I’m actually quite content with how the FSRs are working. Any more changes I’ll make will just be experimentation, but I think the final control solution for version 1 will be the current setup.
thats great chuxxor. Kindly update for the changes and when double DECer boards arrive. i also have the similar set up. thanks for the info.