week nine: input devices
This was a good week for learning. It was the first time this class I took a datasheet to bed.
I've been thinking about a fun sensor project for a while -- I'd like to make an array of force sensors that have a low enough profile to fit into my running shoes imperceptibly. These sensors would show force during the footstrike as I'm running. I get so fed up with the hocus pocus and fads surrounding biomechanics, and this doable project would get rid of it.
To start, I built and tested Neil's hello.load.45 board in order to better understand step response. The fab and make went well without any real hiccups. When I ran the python script, I could detect the presence of my finger on the 'sense' lead.
Next, I bought some samples of silicone rubber from McMaster, and made two arrays of copper pads on the vinyl cutter. By stacking up the pads with rubber between them, we create an array of capacitors for which the capacitance depends on pressure exterted on their surface. If we rotate the arrays, the pads become individually addressable through multiplexing. Important to note, we must shield this sensor with grounded copper sheets on the outside of the stack in order to avoid sensing capacitance from the outside world.
To test the force sensor, I fabbed Neil's hello.txrx.45 board. I mapped one column of one array to transmit, one row of the other array to recieve, and the shield plates to ground. Before buying the silicone, I ran some numbers on the capacitance levels I would be sensing. For a given pressure, the ratio of change in capacitance to the baseline capacitance value is independent of the thickness of rubber used (ignoring Poisson effect deformation). If we include Poisson effect, this ratio should increase as we decrease thickness, but not by an enormous amount.
The samples I bought were 1/16", 1/32", 20 mil, and 10 mil (MC: 9010K81, 9010K82, 86435K45 , 86435K41). Simply running Neil's script, I noticed a steady increase in this ratio (as perceived by watching a moving bar graph...). I did notice something I hadn't considered before: the memory of the material after being depressed. When I pressed on the thicker samples, they were very slow to return to their original thickness. This makes sense, as the thicker materials spread a greater distance due to Poisson deformation and tend to adhere to the substrate in their stretched state. Stuck like this, the capacitance reading never returns to its original value after being pressed. Fortunately, the thinner samples didn't exhibit any noticable memory, so I selected the 10 mil.
After these tests, I started designing a board to multiplex the array. This would be an adaptation of hello.txrx.45 to use the ADC multiplexer in the Tiny44. I rewrote the C code, using PA0 through PA3 as multiplexed Receives, and PA4 through PA7 as transmits. Then I started to route the traces.
As it turned out, I got distracted on Tuesday night building a wing with Kenny for wind tunnel testing later this week. I'm really excited about the footstrike recorder, so I plan to finish it during Interface week (and make a sweet visualization for it, duh). After spending time digging through datasheets this week, I feel like I now know how to do something I didn't a week ago.
Files: