Какие датчики могут измерять 3-осевое ускорение?
В настоящее время я измеряю вибрацию, температуру и шум с помощью Arduino и различных недорогих датчиков. Датчик ускорения, который я нашел, был датчиками, которые измеряли гравитацию на 3-осевой оси датчика. Но я бы хотел измерить acc, а не гравитацию, когда она движется в направлении датчика. Например, если объект движется фронтально в горизонтальном положении, то измеряется x-направленный acc.
Не могли бы вы сказать мне, знаете ли вы аксенсор, который мне нужен.
@D.S, 👍-1
Обсуждение1 ответ
Датчик ускорения, который я нашел, был датчиками, которые измеряли гравитацию на 3-осевой оси датчика
Гравитация-это ускорение.
Акселерометр измеряет ускорение - или, точнее, он измеряет сопротивление ускорению (инерцию) и приравнивает его к ускорению.
Удерживая акселерометр неподвижно, вы заставляете его сопротивляться силе тяжести, и именно это "сопротивление" он измеряет - постоянное 9,8 м/с2
Если вы позволите акселерометру свободно падать, он больше не будет сопротивляться гравитации и будет измерять 0 для оси Z.
Таким образом, вам просто нужно "игнорировать" гравитацию, удалив это постоянное ускорение 9,8 м/с2 ("1g") от оси Z. И вы делаете это, просто вычитая его.
Обычно акселерометр калибруют, удерживая его в покое и считывая значения "холостого хода". Затем эти значения вычитаются из показаний, чтобы получить фактическое значение.
Но я хочу проверить x и y-dir accs, а не гравитацию. (передний(x-dir) acc, на плоскости), @D.S
Да? И что? вот для чего нужны две другие оси. X (вперед/назад), Y (вбок) и Z (вверх/вниз+гравитация)., @Majenko
Означает ли это, что эти измерения ускорения также возможны?; https://stackoverflow.com/questions/38962719/how-to-get-acceleration-and-deceleration-like-a-car-in-android Я не получил желаемого значения, когда переместил датчик ускорения в плоскости. Я использовал MPU6050., @D.S
Тогда либо вы делаете что-то не так в своем коде, либо принципиально неправильно понимаете основную природу вселенной., @Majenko
https://physics.info/kinematics-calculus/, @Majenko
Как убрать гравитацию с оси-ускорения? Я искал это, но мне удалось найти то, что я хочу. Не могли бы вы сказать мне код, который мне нужен ?, @D.S
z = z - 9,8;
- предполагая, что Z-вертикальное ускорение в g., @Majenko
ДА. я уже это сделал. но если ось x ориентирована вверх, то обнаруживается 9.8., @D.S
Затем вы хотите преобразовать три отдельные оси в 3D-вектор, а затем вычесть 3D-вектор датчика, когда он неподвижен., @Majenko
О, как вы об этом говорите, сначала получите крен, тангаж и рыскание с помощью гироскопа, а затем используйте его для трехмерного преобразования. Правильно ли я понимаю?, @D.S
Существует библиотека IIRC, которая принимает все 6 значений и делает с ними какую-то причудливую математику, чтобы дать вам полезные значения. Я никогда им не пользовался и не знаю, как он называется, но, может быть, Google найдет его для вас. Похоже, это то, что вам нужно., @Majenko
ускорение-это не гравитация. что-то, сидящее на столе, ось z датчика вверх, должно иметь ускорение 0, а не 9,81 м/с/с. В свободном падении он ускоряется при g, а не при 0. Достаточно легко вычесть 9,81 из этого показания, но это не работает, когда ориентация датчика будет меняться в процессе использования (а интегрирование ориентации с течением времени не обеспечивает необходимой точности). что мне действительно нужно, так это датчик, который действительно считывает ускорение!!, @Jonathan Weaver
@JonathanWeaver https://en.wikipedia.org/wiki/Equivalence_principle, @Majenko
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
3-осевой акселерометр. И да, они измеряют гравитацию. В конце концов, гравитация-это просто ускорение вниз (9,8 м/с2)..., @Majenko