Датчик направления Ардуино

Я работаю над школьным проектом на следующей неделе. И мне нужно, чтобы мой Arduino «ощущал», в каком направлении он движется, возможно ли это? Существуют ли какие-либо датчики направления, которые «определяют», в каком направлении движется Arduino?

, 👍0

Обсуждение

Направление относительно самого себя или абсолютное направление (например, север или юг)?, @chrisl

@chrisl нет, я хочу, чтобы Arduino чувствовал, что он движется вверх, вниз, вправо или влево, извините, что я не учел это в вопросе, @user49556

https://playground.arduino.cc/Main/MPU-6050, @Juraj

@Juraj na не особо помог, @user49556

это, как это делается. изучение, @Juraj


1 ответ


1

Как писал Юрай, вам нужен MPU, который представляет собой модуль, состоящий из трехмерного акселерометра и трехмерного гироскопа. С помощью первого вы можете почувствовать ускорение в каждом из трех измерений (вверх-вниз, влево-вправо, вперед-назад), а со второго вы можете почувствовать вращение вокруг этих трех направлений. Иногда (в зависимости от модуля) в комплект поставки входит также магнитометр, который можно использовать как компас.

Обратите внимание, что вы не можете определить фактическую скорость устройства напрямую, без использования какой-либо внешней опорной точки. С помощью акселерометра вам придется выполнить некоторые математические вычисления с данными, чтобы получить скорость (в основном, интеграцию). Но поскольку вы просто хотите почувствовать направление, не заботясь о точной скорости, вам не нужно об этом думать.

Как именно это нужно запрограммировать, выходит за рамки этой стороны, поскольку это довольно большая тема. Также это зависит от используемого вами модуля и библиотеки. Ссылка, предоставленная Юрай, является хорошей отправной точкой для чтения об этом. Есть также дополнительные ссылки, например, на библиотеку для управления MPU-6050 (если она у вас есть) на этом сайте github.

По сути, вам придется регулярно измерять ускорение во всех трех измерениях с помощью MPU. Если для оси ускорение превышает пороговое значение, вы можете считать это направлением. Чтобы получить более точное направление (не только прямо по оси) придется объединить значения размеров в вектор. Как решить эту проблему, во многом зависит от того, чего вы хотите достичь.

,