Through thousands of steps testing, it can be found that
the time for one step is between T0=0.41 s and T1=1 s [12] and the threshold
of the difference between peak and valley is set to 1.1 m/s2. If the difference
between peak and valley is less than the threshold or the period of the most
recent process from C0 to C6 is not in the [T0, T1], this waveform is determined
to be caused by the accidental acts.
From:
An Adaptive Step Detection Algorithm Based on the State Machine
Fang Zhao1, Xinran Li1(B), Jiabao Yin1, and Haiyong Luo2
In other words:
max(a.mag) - min(a.mag) should be greater than 1.1 if its a step and not a wrist or arm movement whilst at rest.
Just need to find the equivalent values for:
var v = (m*8192)>>0; or a simlar integer scale. NEXT STEP #1
Worth a try to see if I can use this to gate stepping.
I should also look at the period range [0.41s, 1s] - my state machine does this for 1s part already.
I already attempted to add a lower limit of 0.167s as I estimated that as 6min mile pace.
NEXT STEP #2 to replace with 0.41s for the lower period limit.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
This warrants experimentation:
From:
An Adaptive Step Detection Algorithm Based on the State Machine
Fang Zhao1, Xinran Li1(B), Jiabao Yin1, and Haiyong Luo2
In other words:
max(a.mag) - min(a.mag) should be greater than 1.1 if its a step and not a wrist or arm movement whilst at rest.
Just need to find the equivalent values for:
var v = (m*8192)>>0; or a simlar integer scale. NEXT STEP #1
Worth a try to see if I can use this to gate stepping.
I should also look at the period range [0.41s, 1s] - my state machine does this for 1s part already.
I already attempted to add a lower limit of 0.167s as I estimated that as 6min mile pace.
NEXT STEP #2 to replace with 0.41s for the lower period limit.