Mihail66> У кого есть мысли на этот счет?
Типовой датчик абсолютного давления:
Эффекты ускорения/замедления на мембране такие же, как и при изменении давления. Изгибается ли она под давлением или из-за ускорения, не имеет значения.
Mihail66> Я это понимаю, но Ардуинка с этим не справляется. И без того приходится функционал резать.
Он справляется, но подход отличается. Можно интегрировать, но в целых числах, а сравнивать надо с коэффициентами, преобразованными обратно в целые числа.
Например в моем BREO, допустим, настроил раскрыть парашют на высоте 250 м над землей после апогея. Все значения давления считываются битами АЦП, но никак не нужно рассчитывать текущую высоту на каждом шаге - где имеет экспоненты, математику с плавающей запятой и т. д. - это довольно трудоемкие вычисления.
Итак, что делаеш - учитывая базовое давление, сразу после включения конвертируеш базовое давление и желаемую высоту в целое число, используя в реверсе эту сложную формулу. Затем на каждом этапе полета BREO сравнивает целые числа, а на етом, эти маленькие процессоры довольно эффективны.
Xan> скорость интегрировать по времени, чтоб получить путь. И вот когда смещение станет больше заданного
Почему этот метод - с грубой силы?
Логический подход более эффективен. Какое условие может точно отличить взлет от случайного события - время в сочетании с направлением!
Делай буферизации данные в FIFO и посмотри, сочетается ли устойчивое ускорение в правильном направлении в течение заданного периода времени с изменением отрицательного давления в течение того же периода.
Это старт - и его можно очень эффективно отслеживать по целочисленным показаниям АЦП без дополнительного преобразования.
В общее, на мой взгляд ето направление построения алгоритмов бортового компьютера с 8-битными процессорами.