Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Детектор свободного падения


Модуль акселерометров поддерживает три различных чипа. В зависимости от установленного чипа применяются различные настройки.
Значение параметра -1 означает использовать значения по умолчанию. В скобках указано актуальное значение.

Доступные значения и используемые единицы зависят от используемого типа акселерометра.

Тип акселерометра можно увидеть командой GET /cli state imu::


Общее описание назначения параметров:

odr - output data rate. Частота измерения ускорения чипом

fs - full scale. Диапазон измерения ускорений.

wuths - wakeup threshold. Пороговое значение ускорения для генерации события подвижности.

wudur - wakeup duration. Длительность превышения ускорения по wuths, после которого генерируется событие подвижности.

idledur - idle duration. Используется для генерации события неподвижности, если в течении этого времени не было движения, ms.

o6dths - orientation in 6 dimensions threshold. Порог ускорения либо угол, по которому генерируется значение текущей ориентации.

filt - filter option. Используется для отладки.


ISM303DAC

Code Block
[/imu/ibase] imu base:
  odr=-1(400HzHR) fs=-1(2g) wuths=-1(100) wudur=-1(5) idledur=-1(5000) o6dths=-1(50deg) ffths=-1(200) ffdur=-1(75) filt=-1(internal) (Set 0*)

wuths - mg, multiples by 1*lsb

wudur - ms, multiples by 1*odr

o6dths - 80deg (1), 70deg (2), 60deg (3), 50deg (4)

ffths - free fall threshold. Порог ускорения для генерации события “свободное падение”, mg, internally aligned in row [156, 219, 250, 313, 344, 406, 469, 500]

ffdur - free fall duration. Длительность либо количество отсчетов в течении которого ускорение остается ниже ffths по всем осям и генерируется событие “свободное падение”, ms, multiples by 1*odr

Code Block
[/imu/iext] imu ext:
  slpmode=-1(enabled) slpdur=-1(3000) clkmode=-1(disabled) clkths=-1(400) clkdur=-1(560) clkshock=-1(60) clkquite=-1(30) (Set 0*)

slpmode - sleep mode. Включение (1) / выключение (0) режима сна акселерометра.

slpdur - sleep duration. Таймаут, если в течении которого небыло активности, акселерометр переходит в режим sleep (odr=12Hz), ms, internally aligned by 512*odr.

clkmode - click mode. Режим работы функции "click". Выключено (1), одинарный (2), двойной (3).

clkths - click threshold. Порог ускорения для определения "щелчка", mg, internally aligned by 2*lsb (lsb=31.25mg with default 2g full scale).

clkdur - click whole duration, ms, multiples by 32*odr.

clkshock - click shock duration, ms, multiples by 8*odr.

clkquite - click quite duration, ms, multiples by 4*odr.


LSM303AGR / LIS3DH

Code Block
[/imu/ibase] imu base:
  odr=-1(o25Hz) fs=-1(s2g) wuths=-1(32) wudur=-1(400) idledur=-1(5000) o6dths=-1(1600) ffths=-1(320) ffdur=-1(3) filt=-1(strong) (Set 0*)

wuths - mg, internally aligned by 1*lsb (lsb=16mg with default 2g full scale).

wudur - ms, internally aligned by 1*odr

o6dths - mg, internally aligned by 1*lsb

ffths - не используется

ffdur - не используется


Парсет не используется.

Code Block
[/imu/iext] imu ext:
  slpmode=-1 slpdur=-1 clkmode=-1 clkths=-1 clkdur=-1 clkshock=-1 clkquite=-1 (Set 0*)


Начиная с прошивки 3.8.0 исправлены ошибки и изменены настройки поумолчанию:

Настройки по умолчанию (новая метка либо сброшена конфигурация):

ISM303DAC:

odr=-1(50HzLP) fs=-1(2g) wuths=-1(100) wudur=-1(30) idledur=-1(5000) o6dths=-1(50deg) ffths=-1(510) ffdur=-1(350) filt=-1(internal) (Set 0*) - настройка датчика свободного падения на 2 метра (эмпирически).

ffdur=700 - настройка датчика свободного падения на 5 метров (эмпирически).


Начиная с прошивки 3.13.0 обновлен алгоритм детектирования событий "свободного падения" и изменены настройки поумолчанию:

LSM303AGR / LIS3DH:

[/imu/ibase] ibase:

odr=-1(o25Hz) fs=-1(s2g) wuths=-1(32) wudur=-1(400) idledur=-1(5000) o6dths=-1(400) ffths=0 ffdur=0 filt=-1(strong) (Set 0*)

настройки детектора свободного падения расположены в парсетах:

[/imu/ffacc] :  test= off glow=9 gspike=18 ghigh=15 tmin=60 p=80 ambigmax=2 exithold=40 iirtau=50

[/imu/ffimp] :  impths=13 impwin=100 impmin=1

[/imu/ffcorr] :  ffto=50 imp2norm=20 imp2val=5 val2norm=5 ff2impwin=50 imp2valwin=20 ffdurmin=3 ffdurmax=300 (Set 0*)

[/bar/ffbar] :  enable= off incths=200 iirtau=200


Добавлена настройка позволяющая включать режим критических сенсоров, в данном случае это только события свободного падения.

node/ctl#CritSens=on - включает критическое поведение сенсоров (по умолчанию off)

После активации этой настройки критический сенсор (свободное падение) будет транслироваться до события отмены.

Отмена (отключение) этого события произойдет после установки метки на зарядку

...

hpf >

 

 

 

{0.02,

0.008,

0.004,

0.002},

{0.2,

0.08,

0.04,

0.02},

{0.5,

0.2,

0.1,

0.05},

{1.0,

0.5,

0.2,

0.1},

{2.0,

1.0,

0.5,

0.2},

{4.0,

2.0,

1.0,

0.5},

{8.0,

4.0,

2.0,

1.0},

{32.0,

16.0,

8.0,

4.0},

{100.0,

50.0,

25.0,

12.0} ^

...

.