Я хочу иметь "направление по компасу" (я хочу знать угол на север) с помощью магнитометра. Я видел в нескольких учебниках, что сначала мне нужно его откалибровать. Когда я посмотрел, как это сделать, я увидел графическое сравнение значений магнитометра с и без калибровки.
Вот ссылки, которые я использовал: link_one и link_two
Обе ссылки показывают, что некалиброванный магнитометр должен отображать несколько кластеров на графике, как показано ниже:
И откалиброванный магнитометр должен иметь обе 3-оси в одной и той же точке вокруг нуля, например:
Я использую Adafruit LSM9DS1< /а>. Я попытался получить ту же графику со следующим кодом Python:
def save_mag_values():
f = open("magnetometer.csv","w")
for i in range(10000):
value = sensor.magnetic
f.write(",".join(map(str,value)))
f.write("\n")
Затем я использую следующую команду gnuplot для печати:
gnuplot> plot "magnetometer.csv" using 1:2 title "XY" pointsize 2 pointtype 7, \
"magnetometer.csv" using 1:3 title "XZ" pointsize 2 pointtype 7, \
"magnetometer.csv" using 2:3 title "YZ" pointsize 2 pointtype 7
Как написано в туториале, я просто медленно перемещаю датчик и через 1 минуту печатаю значения. Вот что у меня есть для некалиброванного магнитометра:
Как видите, глобальная форма не является кругом, и я не знаю почему. Я попытался откалибровать его, и вот что у меня есть:
Может ли кто-нибудь сказать мне, что я сделал неправильно и почему я не могу иметь значения «формы круга», как должно быть? Или форма должна быть идеальным кругом, как я вижу в учебниках, или у меня все в порядке? Спасибо
set size ratio -1
- person Ethan   schedule 27.03.2019