Компас для определения отклонения в горизонтальной плоскости. HMC5883L + ADXL345

Skaper
Offline
Зарегистрирован: 24.06.2012

Имеется 10DOF датчик, GY-80. 

Комплектация:

  • проекция ускорения на три оси x,y,z (акселерометр ADXL345);
  • скорость вращения вокруг трех осей x,y,z (гироскоп L3G4200D);
  • проекции магнитного поля на три оси x,y,z (компас HMC5883L);
  • атмосферное давление (барометр BMP085).

Отдельные библиотеки я нашел, для снятия показания со всех датчиков, но не смог найти пример для компаса в связке с акселерометром, что бы компас не преходилось держать строго параллельно горизонту, для верных показаний. Как расчитать угол отклонения в горизонтальной плоскости? Прошивки MultiWii и подобные не подойдут...

Skaper
Offline
Зарегистрирован: 24.06.2012
Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

предлагаю HMC5883L приклеить к куску пенопласта и опустить в банку с водой. пусть все время ровно к горизонту стоит..

Skaper
Offline
Зарегистрирован: 24.06.2012

Нет, это совсем не вариант =)

Датчик находится на подвижном роботе.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

и что? зачем вообще роботу компас?

Клапауций
Offline
Зарегистрирован: 10.02.2013

Puhlyaviy пишет:

и что? зачем вообще роботу компас?

для поиска аудио-колонок, трансформаторов, прочей хрени с мощными магнитами и электромагнитными полями.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

А про магнитные аномалии забыли - где в кино обычно компас(механический) вертеться начинает?

Клапауций
Offline
Зарегистрирован: 10.02.2013

NeiroN пишет:

А про магнитные аномалии забыли - где в кино обычно компас(механический) вертеться начинает?

сейчас мало таких аномалий - большие заводы распилили на металлолом и вывезли в Турцию.

Skaper
Offline
Зарегистрирован: 24.06.2012

Зачем флудить тут! Может быть по делу, что скажете? 

Клапауций
Offline
Зарегистрирован: 10.02.2013

Skaper пишет:

Зачем флудить тут! Может быть по делу, что скажете? 

мне показалось, что первый пост не может не провоцировать флуд - ведь, если у нас имеются:

  • проекции магнитного поля на три оси x,y,z (компас HMC5883L);

то, зачем нам держать датчик в горизонтальном положении?

Skaper
Offline
Зарегистрирован: 24.06.2012

Если на конечном устройстве нет гарантии горизонтального положения сенсора, определение ориентации с помощью одного лишь компаса невозможно. В этом случае для точного расчёта дополнительно понадобится использовать акселерометр.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Skaper пишет:

Если на конечном устройстве нет гарантии горизонтального положения сенсора, определение ориентации с помощью одного лишь компаса невозможно. 

Так теперь уже и ориентацию у робота будем определять? надеюсь робот с нормальной ориентацией?

std
Offline
Зарегистрирован: 05.01.2012

А как тогда делают автопилот для самолёта, с таким же датчиком, на 328й меге? Ardupilot например, или самопал со сходным функционалом. Неужто там компас работает с допущением что pitch/roll (тобишь тангаж или крен) всегда нулевой?

UPD. Skaper, пока не предлагаю читать исходники Ardupilot - сам попробовал, но голову сломал.

StrangerM
Offline
Зарегистрирован: 02.11.2013

А я вот такой купил. http://www.robot-electronics.co.uk/htm/cmps10doc.htm Там уже все сделано. И задача эта  сложная. Стоит на стальном катере на деревянной мачте.  

kimmel.dima
Offline
Зарегистрирован: 20.02.2014

Вот здесь все очень подробно описано. Правда на англииском.

 http://www.loveelectronics.co.uk/Tutorials/13/tilt-compensated-compass-arduino-tutorial

Russk1j
Offline
Зарегистрирован: 03.05.2012

Доброго времени суток! Столкнулся с подобной проблемой. Получилось решить?

Тоже нужно вычислять наклон платформы относительно горизонта акселерометром, чтобы корректировать показания магнитометра. Есть возможность использовать также гироскоп в роли магнитометра, но магнитометр предпочтительнее. 

Есть связка гироскопа и акселерометра MPU-6050 и магнитометр, как у автора. Может есть у кого-нибудь пример работы магнитометра или гироскопа в связке с акселерометром или материал по теме. Нашел мало информации. Очень сильно надо..

kimmel.dima
Offline
Зарегистрирован: 20.02.2014

Сюдаположил

https://yadi.sk/d/o9seCdK9r4jo8

Russk1j
Offline
Зарегистрирован: 03.05.2012

Спасибо большое!

Russk1j
Offline
Зарегистрирован: 03.05.2012

А не подскажите еще, для чего выводы ADO и INT с гироскопа? INT это наверное для получения данных по прерыванию. При  подключении двух датчиков одновременно к sda и sql получаю данные. Но для чего тогда xda и xca.

http://www.i2cdevlib.com/forums/topic/111-arduino-example-sketch-to-read-magnetometer-while-dmp-is-on/

Russk1j
Offline
Зарегистрирован: 03.05.2012

Если кто тоже сразу не догадается, для компиляции выложенных проектов нужно использовать библиотеки автора. Со стандартной библиотекой гироскопа и магнитометра не работало.