MultiWii

Александр==
Александр==:

Здравствуйте, ткните носом как подключать компас нмс-5883, зараннее благодарен!

Вроде разобрался, теперь П подстроить, при 4-х не держит при летании по кругу уходит, стоит зависнуть то возвращается на место в течении двух- трех секунд.

Alex_from_Israel

Вот гадство! Война с компасом переходит в позиционную стадию. Уже все перепробовал, но результат тот же. Компас движется правильно, повторяя движение коптера (в ГУИ), но стоит остановить движение, и стрелка возвращается на место. Проверил распайку платы тестером, все в норме, менял оси в конфиге, такое ощущение, что вообще ему пофиг, как оси стоят. Результат не меняется. Может как то влиять отсутствие преобразователя уровней? Все таки 3.3 на плате, там свой стабилизатор с 5в на 3.3 в стоит. Вот еще странность, бывает, что в графике компас с ума сходит, ±500 показывает в окошках, синусоиды в экран не помещаются. Потом все успокаивается, но продолжается фигня с возвратом к первоначальным показания, стоит прекратить крутить коптер… Уже ничего не понимаю. Ткните носом, где еще в скетче меняются ориентации осей, кроме конфига, плз!

tusik
Alex_from_Israel:

Ткните носом, где еще в скетче меняются ориентации осей, кроме конфига, плз!

Я менял оси в sensors:

GYRO_ORIENTATION( - ( ((rawADC[0]<<8) | rawADC[1])/3 ) ,
( ((rawADC[2]<<8) | rawADC[3])/3 ) ,

  • ( ((rawADC[4]<<8) | rawADC[5])/3 ) );

это пример для гиры 3200

Alex_from_Israel

Прошу прощения не в конфиге а в сенсорах

#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -Y; accADC[PITCH] = X; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = X; gyroADC[PITCH] = Y; gyroADC[YAW] = Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = Y; magADC[PITCH] = X; magADC[YAW] = Z;}

Вот тут менял по всякому, не помогает. Аксель поменял, помогло. На плате компасс и аксель ориентировованы одинаково, только ось Y стрелки в разные стороны смотрят.

tusik
Alex_from_Israel:

Вот тут менял по всякому, не помогает

Я же дал кусок кода. Он расположен ниже. Для каждого сенсора - свой.

Alex_from_Israel

Нашел я этот кусок в скетче, спасибо. Вы можете пояснить смысл цифр в квадратных скобках?

tusik
Alex_from_Israel:

Вы можете пояснить смысл цифр в квадратных скобках?

Нет. Я не прграммист. Я сочувствующий 😃

tarik
Alex_from_Israel:

Вы можете пояснить смысл цифр в квадратных скобках?

Это номер элемента в массивах. Их менять не нужно! (грубо говоря массив - это как книга с данными, этот номер указывает на “страницу” в такой книге)
Вам нужно поиграться с знаками “-”. ставить их нужно там, где я отметил звёздочками. сами звёздочки ставить не нужно

GYRO_ORIENTATION( * ( ((rawADC[0]<<8) | rawADC[1])/3 ) ,
* ( ((rawADC[2]<<8) | rawADC[3])/3 ) ,
* ( ((rawADC[4]<<8) | rawADC[5])/3 ) );

vtumane
tarik:

Их менять не нужно!

Сравниваем платы FreeIMU v0.1
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}
и SEN-10321 (Алекс у тебя вроде эта плата?). Отличаются тем что магнитометр на sparkfun плате повернут на 90 градусов по часовой стрелки. Значит X и Y поменяются местами и будет
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}
Хотя не уверен в знаках у X и Y, пространственного воображения не хватает.
Насчет показаний +500, -500 многие жаловались, притом и на 43 и на 83. Даташит на HMC5843 не смотрел, а в HMC5883-м рекомендуют ставит конденсаторы обвязки с малым ESR (ориентировочно можно определить по размерам , чем меньше корпус - тем больше ESR).

spartanec
vtumane:

Напряжение на выводе кардуино +5В (4)?
Катод с анодом диода не перепутал?

Где перепутал? на выходе 4.39 В

Alex_from_Israel

Это массив данных со всех датчиков? Или на каждый датчик отдельный массив?

vtumane:

Сравниваем платы FreeIMU v0.1
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}
и SEN-10321 (Алекс у тебя вроде эта плата?). Отличаются тем что магнитометр на sparkfun плате повернут на 90 градусов по часовой стрелки. Значит X и Y поменяются местами и будет
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}
Хотя не уверен в знаках у X и Y, пространственного воображения не хватает.
Насчет показаний +500, -500 многие жаловались, притом и на 43 и на 83. Даташит на HMC5843 не смотрел, а в HMC5883-м рекомендуют ставит конденсаторы обвязки с малым ESR (ориентировочно можно определить по размерам , чем меньше корпус - тем больше ESR).

У меня именно эта плата. Если Вы обратили внимание, в моем посте на предыдущей странице указана именно такая ориентация. Это я сообразил, сравнил фото плат и сразу выставил. Причем пробовал и {magADC[ROLL] = -Y, и {magADC[ROLL] = Y. Не меняется поведение магнитометра. Кстати, ± 500 показывает далеко не всегда. примерно в половине случаев показания близки к нулевым. Причем никак не связано ни с какими событиями. Хочет так показывает и тогда на графике частокол, хочет по другому, тогда график хоть в эталон выставляй! У меня смутные подозорения, что нужно попробовать конвертер уровней поставить. Закажу микросхему PCA9306 и попробую.

vtumane
spartanec:

Где перепутал? на выходе 4.39 В

Похоже не хватает напряжения для запуска меги. Для 16 МГц нужно не менее 4,5 В (у меня при питании от USB 4,65 В)
По даташиту SS14 падение напряжения при токе меньше 1 А должно быть менее 0,5 В (5-0,5=4,5 В укладываемся в норму).
У тебя получается меньше. Учитывая что сильно греется FT232RL похоже вылетел не только диод.

Covax

подключи с БЕКа +5V к пину Кардуины +5V, а минус к GND
возможно просто стаб внутренний у кардуины накрылся

Prikupets

Так к слову 😃
Посмотрел тут проект CopterControl/OpenPilot. Датчики примерно те же что и в MultiWiil. Процессор по-мощнее конечно. Но насколько же отличается софт и схема!
Софт сделан четко профессионально, модульно, с документацией и тестами.
Плата - тут я не специалист но размер 35 на 35 мм на все говорит о чем-то 😃
Схема - отдельные стабилизаторы 3.3V на все а не один общий как в MultiWii. Фильтры по питанию грамонтные. Диоды защитные стоят. Предохранитель, дроссели и т.д.
Теперь думаю как перетащить какие схемные решения в MultiWii…

Кстати, они рекомендуют только один сигнальный провод подключать от непитающих регуляторов - чтобы не было земляных петель и самовозбуждения BECов.

Еще там весьма вразумительная статья по настройке ПИДов.

Ar2r

Не знаю что это было, но собрана плата сидуина мега + wmp. залил прошивку - цик -9800 (с минусом.) залил заново прошивку - цикл с WPM 1800…
у меня именно такая зеленая WMP, которую считают мегачувствительной. работает и делители не увеличивал. наверное правильно дорожки перерезал 😃

Musgravehill
Ar2r:

зеленая WMP, которую считают мегачувствительной

Выпиленный чип возбуждается и идет в разнос: 1. когда полежит в покое; 2.при питании от 5В. Я использовал LLC 5-3.3В и питал чип от 3.3В, сверхчувствительность не проявлялась.

Ar2r
Musgravehill:

Выпиленный чип возбуждается и идет в разнос: 1. когда полежит в покое; 2.при питании от 5В. Я использовал LLC 5-3.3В и питал чип от 3.3В, сверхчувствительность не проявлялась.

Картинка при быстром движении WMP сделана.

Но у меня чип в покое и при питании от 5В нормально работает и ровные горизонтальнеы линии рисует. Сверхчувствительности не проявляет. Вот поэтому и терзает сомнение, что я что-то не так подключил 😃

PS: Схема подключения на фото. Дорожки где нужно резал.

toleg
Ar2r:

Схема подключения на фото. Дорожки где нужно резал

всё правильно, при таком подключении питать нужно 5в , на чипе при этом должно быть 2.8в

Александр==
Александр==:

А кто пробовал 626-ю прошивку, на 607 прекрасно летает.

Сегодня поставил прошу 626 раз нет никого. В левел понравилось, компас тоже работает хорошо и по моему он себя на спуске стал на много лучше вести, не трясет.
Правда долго не летал, всего две батареи, но быстрые подъемы и спуски пробовал, рол пич по кругу гонял не переворачивает, и с разгоном над землей летает нормально.
P.S. ГУИ стал работать быстрее.

vtumane

Похоже попробовали для показаний барометра использовать интерполяцию.
Теперь два графика высоты и похоже показания в метрах над уровнем моря

Александр==
vtumane:

Похоже попробовали для показаний барометра использовать интерполяцию.

Барометр чет ни как не дойдет.

ZamuykAtel

Ура заработало,порезал дорожки на Вимоушене подпаялся как на фото и понеслась:),подключил регули,моторы.Стартанул,покрутил винтами,остальное завтра.