Компас HMC5883L с Arduino для квадрокоптера
- Войдите на сайт для отправки комментариев
Начнём с того, что я собрался сделать полётный контроллер для квадрокоптера, используя Arduino Uno, гироскоп и акселерометр MPU6050, и барометр BMP180, а также GPS модуль GY-NEO6MV2, но для Arduino Uno это много, поэтому буду использовать Arduino Pro Mini, скорее всего две штуки, одна на GPS, а вторую на компас и барометр.
Скетч и схему брал с серии видео в ютубе YMFC, можно легко найти.
Плату на Ардуино Уно уже спаял, будет бутерброд, а вот хотел бы теперь разобраться с компасом...
Компас брал на отдельной плате HMC5883L, понял что он имеет три оси, и так как квадрокоптер будет все время наклоняться в разные стороны, мне нужно сделать так, чтобы направление всегда оставалось неизменным, то есть не зависимо от углов наклона квадрокоптера, т.е. мне с компаса нужен только так называемый азимут, что бы в связке с GPS, квадрокоптер знал направление своего движения...
Суть вопроса в том, как мне сделать показания азимута не зависимыми от наклона квадрокоптера?
Заранее спасибо за ответы!
А зачем? Все равно компас нужен только для калибровки. Все дальнейшие отклонения должен учитывать МК на основании показаний трех гироскопов и акселерометра. В момент выравнивания можно производить повторную калибровку. При наличии нормального современного GPS модуля, можно вообще отказаться от магнитометра (компаса), калибруясь по GPS. Я бы на Вашем месте лучше о сонаре подумал, чтобы в провода и ветки не врезаться.
Я про компас к тому, что если связь с коптером пропадает, то он сам возвращается на точку взлета.
О сонаре я тоже думал, а еще об инфракрасном датчике препятствий, их можно две штуки, но это дальше...
Вы думаете компас не нужен?
Спасибо за ответ!
Так вернуться то можно и по GPS. Причем это будет на порядок точнее, чем по компасу. Попробуйте сами по компасу, не привязываясь постоянно к карте местностности, куда-то попасть. Даже древние мореплаватели использовали компас только в промежутках между определением долготы и широты секстантом и хронометром )
В готовых комплектах для беспилотников компаса часто нет. В некоторых, был до определенной версии, потом убрали. Смысл в компасе только для изначальной грубой калибровки. Как только БПЛ сместится хотя бы на несколько метров, он уже сможет перекалиброваться по GPS.
Хорошо, с этим я согласен
Но а что калибровал компас я вот этого не понял, и ещё, Gps я буду использовать GY-NEO6MV2?
А так почему тогда например на контроллере APM2.6 есть компас, спасибо за объяснения нубовских вопросов!
Не уверен, что он там есть:
"Цифровой компас работает на HMC5883L (до версии 2.5.2)"
http://ardupilot-mega.ru/
Ок, и ещё один вопрос, который остался, это для чего был нужен компас в старых версиях? Если для калибровки, то чего?
GPS более-менее точно расчитывает азимут только при довольно быстром перемещении (от нескольки м\с и быстрее). При малых перемещениях (а тем более когда объект неподвижен) естественные ошибки определения текущих координат GPSом приводят к расчету практически случайного азимута. То есть, если ваш коптер завис, то GPS может выдать любой азимут. Вот тут то и нужен магнитный компас, который скорректирует ошибку по GPS. Можете проверить это самостоятельно, включив в программе по настройке вашего ubloxа диаграмму Deviation Map при неподвижно лежащем модуле.
То есть магнитный компас все равно придётся ставить?
Это смотря как будет работать математика. Представим ситуацию. Есть коптер без магнитного компаса. Пока он стоит на земле, коптер не знает точный вектор направления (напомню, что стоЯщий GPS врет). Но как только взлетели и начали прямолинейно перемещаться в горизонтале, GPS уже может выдать более-менее точный вектор. Вот если теперь подключить в расчет вектора акселерометр и гироскоп, то дальше можно и без магнитного компаса с приемлемой точностью вычислять направление. По гироскопу получите угловые скорости, а акселерометр будет сглаживать дрейф гироскопа. И потом во время движения будете корректировать вектор по GPS. Но если вам нужен вектор еще на земле или сразу после взлета, то без магнитного компаса не обойтись. Могу ошибаться :)
Спасибо! Буду думать!