I THINK ∴ I'M DANGEROUS

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
seismometer_positioning_system [2016/02/18 18:06]
zashi
seismometer_positioning_system [2016/02/19 19:34]
zashi
Line 3: Line 3:
 Or maybe Seismic Local Positioning System? Or Seismic Triangulating Positioning System? Or maybe Seismic Local Positioning System? Or Seismic Triangulating Positioning System?
  
-Using a system of seismometers (or perhaps accelerometers pressed into service as seismometers) that are networked together, it should be possible, with accurate clocks, to analyze input over, say, a 1-second rolling time window for frequency and amplitude to determine the source (epicenter) of the vibration. The time-window and frequency matching helps ensure the observed vibrations are from the same source.+Using a system of seismometers (or perhaps accelerometers pressed into service as seismometers) that are networked together, it should be possible, with accurate clocks, to analyze input over, say, a 1-second rolling time window for frequency and amplitude to determine the source (epicenter) of the vibration. The time-window and frequency matching helps ensure the observed vibrations are from the same source. The venerable Fourier Transform will be used to determine frequencies and amplitudes
  
 Amplitude and timing are used to determine distance. Timing is the primary factor for determining distance--assume speed of sound traveling through soft wood (see table below). Amplitude can be used as a sanity check (e.g. the sensor with the greatest amplitude should be closest). ​ Amplitude and timing are used to determine distance. Timing is the primary factor for determining distance--assume speed of sound traveling through soft wood (see table below). Amplitude can be used as a sanity check (e.g. the sensor with the greatest amplitude should be closest). ​
Line 29: Line 29:
  
 The net effect should be a graphical, real-time or near-real-time tracking of foot steps. The net effect should be a graphical, real-time or near-real-time tracking of foot steps.
 +
 +===== Communication Protocol =====
 +
 +The higher level bits will be written in Tcl, thus Tcl structures (strings, lists) will be used within the protocol. The combination of seismometer and MCU/Control board will be referred to as a node. There will be 3 (or more) nodes. Each node upon detection of a vibrations above a certain amplitude within a certain frequency range (to be empirically determined) will be transmitted to a central server via TCP. The data transmitted will be a line-delineated (and line-buffered) tcl list consisting of, in order, a time-stamp in microseconds,​ a list of 2-element lists each consisting of a frequency and corresponding amplitude.
 +
 +E.G. If node1 sensed at 1455909894376591 microseconds epoch time a 60hz signal at 0.2 amplitude and a 45hz signal at 0.6 amplitude, it would send
 +
 +    1455909894376591 {60 0.2} {45 0.6}\n
 +
 +Plan B:
 +
 +The above method may be too slow. the devices may need to stream raw vibration data directly to the central server via UDP. IP communication induces its own lag, but the devices could perhaps be calibrated to take this into account.
 +
 +Plan C:
 +
 +Plan B may also be too slow. Perhaps a hybrid solution? A small C-program continually takes measurements and continually pushes microsecond timestamped data samples to a central server that handles all processing.
 +
 +E.G. Node 1 would, as fast as possible push out binary data in the form of 
 +
 +    <long unsigned int ts><​double sample>
 +
 +Where `long unsigned int ts` is the epoch timestamp in microseconds and `double sample` is the raw data coming off the ADC.
 +
 +It would then be up to the server to buffer the data from each node into a signal and perform a Fourier Transform to determine frequency and amplitude. ​