Как преобразовать данные без знака в градусах
Я знаю, что на различных форумах в Интернете есть много тем, я понимаю разницу между atan и atan2 и как решить эту проблему с подписанными данными.
Я использую Digilent CMPS2 модуль, который использует магнитометр Memsic MMC34160PJ. В спецификации чипа CMPS2 есть формула с актаном (x/y)*180/pi. Ясно, что я получаю значения только от 0 до 90 градусов, потому что датчик выдает только беззнаковые значения. Когда я использую atan2, я получаю значения от 0 до 180 градусов.
Я знаю, что было бы легче, если бы я подписал данные. Но, к сожалению, датчик выдает только неподписанные значения.
Как возможна такая форма преобразования данных без знака от 0 до 360 градусов?
1 ответ
Я не использовал этот конкретный магнитометр сам, но есть много датчиков, которые работают аналогичным образом.
Лист данных магнитометра, стр. 2, утверждает, что значение "Выход нулевого поля" (то есть выход при отсутствии магнитного поля) не равно нулю.
Допустим, вы используете режим разрешения 14 бит, выходное значение пустого поля равно 8192. Это означает, что 8192 - это ваша контрольная точка для нулевого значения, все значения выше этого значения положительные, а все значения ниже этого значения отрицательные. Вы должны вычесть это значение нулевого поля из каждого измерения, и вы должны быть готовы к работе.