prototype Dance Dance Revolution controller where the sensing happens with piezoelectric sensors attached to an arbitrary flat surface
Go to file
colin 99dc665ab0 readme: convert relative angle-bracket links to named links so they render 2022-07-01 00:13:00 -07:00
doc/data add existing measurements to the repo 2022-07-01 00:12:52 -07:00
scripts add missing scripts to repo 2022-07-01 00:13:00 -07:00
src median-filter the samples before sending them over itm 2022-06-28 03:25:01 -07:00
Cargo.lock add missing Cargo.lock 2022-06-28 03:30:56 -07:00
Cargo.toml median-filter the samples before sending them over itm 2022-06-28 03:25:01 -07:00
README.md readme: convert relative angle-bracket links to named links so they render 2022-07-01 00:13:00 -07:00
openocd.gdb Reading from external input and setting the LEDs 2019-09-15 18:17:33 -07:00

README.md

Goal is to either sense foot positions, or foot movement, across a large flat pad.

This is a prototype to test the concepts below, designed for the STM32F3 Discovery board (in particular due to its excellent Rust support).

METHODS

Method 1a: Piezoelectric sensing of foot presses

Foot presses create mechanical waves. Piezoelectrics can turn these waves into voltages for sensing. Place an array of piezoelectrics along the border of the platform and you can triangulate foot stomps

Method 1b: Surface acoustic waves

Use a piezoelectric device to insert an acoustic wave onto the pad, and an array of piezos to detect its phase/amplitude at locations along the border. Pressure differences from standing feet will affect the phase/amplitude, and you can create a pressure map of the surface. See: https://en.wikipedia.org/wiki/Surface_acoustic_wave_sensor

Method 2a: Capacitive displacement sensing

Two parallel conductive plates form a capacitor. If pressure on the top plate deforms it, that changes the capacitance. Measure this and triangulate it to find foot locations. This is sort of like turning the pad into a giant microphone, but with triangulation. See: https://en.wikipedia.org/wiki/Capacitive_displacement_sensor

WORK SO FAR

Method 1a is demonstrated. It works on rigid surfaces. See itm-on-table-drop-30lb-halfway-through.wav: this was achieved using 181.5 clock single-ended ADC sampling with delay(1) between each sample with no external amplification. The piezo was held in place using an empty water glass.

On pad: itm-on-pad-heavy-hit-halfway-through.wav demonstrates the same setup on a Polish pad on carpet but with a full glass of water.

itm-on-pad-tape-big-hit-4clock-1024buffer.wav and itm-on-pad-tape-big-hit-4clock-1024buffer.png shows what we get with a BIG stomp if the sensor is taped to a pad it's really hard to get.

Tried using flat piezos and the L-shaped ones, both behave similarly. Really difficult to get reliable waves. Try:

  • Differential ADC mode
  • Add an op-amp
  • Try using the mic line-in on my computer
  • Get a USB ADC to prove the concept
  • Borrow UW's oscilloscope
  • Buy a cheapo scope?

itm-sandwich-51medianfilt.png shows results after taping a piezo to a flat surface, loosely setting an acryllic plate on top of it, and then tapping the plate moderately. There is median filtering on the device side, plus additional filtering on the PC side.

Median filter seems to be key. Even without the plate, the device can detect stomps from 4-5 inches away, though not quite as cleanly. Placing the piezo such that half of it is in air seems to help detection. I suspect if the whole platform is oscillating, I want the other end of the piezo somewhere that's more fixed, in order to detect the oscillation of the platform itself. Alternatively, I believe a longer piezo element attached all to the surface could help. A smaller element should still receive everything, but the high frequencies are attenuated. Perhaps then, a HPF could be installed to mitigate this attenuation? Could also try replacing the device-side median filter with a more tuned filter (HPF)

itm-pad-drop-weight-3in-away-covered-tape.png: shows clear signal dropping a 30lb weight near the sensor, even when the sensor is fully attached to the pad. Whole signal is about 5 ms. 51-median filt device side 5000-sample DC removal PC side timescale is accurate

Resources (acoustic touch screen):

Resources (using Piezos)