Можно ли получить значения только во время вибрации/движения с акселерометра (ADXL335/MPU6050)?
Я пытаюсь сделать носимый датчик движения, используя плату ESP32 и акселерометр ADXL335.
В настоящее время, когда я последовательно печатаю выходные данные, я также получаю значение наклона, которое имеет разные значения при разной ориентации (я печатаю среднее значение X, Y и Z). Поэтому, когда я пытаюсь зажечь светодиод, установив пороговое значение, среднее значение отличается в разных ориентациях.
Есть ли способ получать значения только во время вибрации и быть равными нулю, когда вибрации/движения тела нет.
Заранее спасибо, ребята, за помощь.
@aadi_k, 👍-1
Обсуждение2 ответа
Ускорение является векторной величиной. Поэтому вместо того, чтобы смотреть на средние значения X, Y и Z, вам, вероятно, следует смотреть на величину вектора ускорения, то есть (X ^ 2 + Y ^ 2 + Z ^ 2) ^ 0,5. Затем вы можете установить порог ускорения, ниже которого вы не будете отправлять данные.
Преимущество использования величины вектора ускорения заключается в том, что она не зависит от ориентации устройства. Например, если вы поместите устройство на стол вдоль оси X, акселерометр покажет что-то вроде X = -g, Y = 0, Z = 0, где g — ускорение свободного падения. Точно так же, если вы поместите устройство на стол под углом 45 градусов между осями X и Y, акселерометр покажет что-то вроде X = -g sqrt(2)/2, Y=-g sqrt(2)/2, Z=0. . В обоих случаях величина вектора ускорения равна g. С другой стороны, средние значения будут -g/3 и -g sqrt(2)/3 соответственно, как вы заметили в "... среднее значение отличается в разных ориентациях".
Большое спасибо за помощь @Kavka. Я попробую так., @aadi_k
** Тем не менее величина отличается ** с разной ориентацией., @aadi_k
Да.
Линейное ускорение на заданной оси = фактическое ускорение - гравитационное ускорение
Гравитационное ускорение по любой оси = Величина вектора силы тяжести x Косинус угла оси с вектором силы тяжести
- Трудности получения значений угла от MPU6050.
- Функция запуска при срабатывании
- устаревшее преобразование из строковой константы в 'char*'
- Какие есть другие IDE для Arduino?
- Esp8266 Vin контакт
- ESP32 в Arduino-IDE с FS.h и SPIFFS
- Программаторы для этой платы отсутствуют - Программирование ESP32 Cam с помощью Ardunio IDE
- Установка значения float до двух знаков после запятой
я думаю, что ваш вопрос должен быть о «распознавании движения», @jsotola