MultiWii
Настраиваю ALLINONE на MultiWii_dev20110622
Для данной версии dev датчики по отдельности выставлять не надо.
Только убрать // в строчке
//#define ALLINONE //full FC board or standalone 9DOF+baro board from CSG_EU
Для более ранних dev версий в модуле Sensor.pde
для твоей платы исправить
#if !defined(MAG_ORIENTATION)
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = Z;}
#endif
На
#if !defined(MAG_ORIENTATION)
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}
#endif
Такой вопрос а обязательно подключать регули к аурдине для тестирования платки из Вия?
что за платка из Вия такая? 😃
Не уточнил как подавал питание.Варианты
- Диод отвечающий за выбор питания, в правом нижнем углу низ платы (маркировка B2…не разобрать)
B2M
Закоротил сразу за работала кардуинка . Так что менять его надо или просто закоротить и все?
0622 выдало при заливке:
ошибка: нет декларации ‘A3’ в этой области видимости
И на движки пульта не реагирует, скотина… Но последнее - из-за перешивки пульта в Линуксе: надо в винду грузиться…
Закоротил сразу за работала кардуинка . Так что менять его надо или просто закоротить и все?
Однозначно менять. При одновременном подключении от USB и от регулятора (аккумулятора) можешь спалить порт USB.
Можно поставить MBR0520, SS14.
Правда можно поставить перемычку. При питании от USB замыкать. При внешнем - размыкать. Но придется следить.
Платка из WM+.
Однозначно менять. При одновременном подключении от USB и от регулятора (аккумулятора) можешь спалить порт USB.
Можно поставить MBR0520, SS14.
www.chipdip.ru/product/ss14.aspx смари такой подойдет
www.chipdip.ru/product/ss14.aspx смари такой подойдет
Купил, поставил, теперь в компьютере порт не определяет и очень сильно греется FTDI
Купил, поставил, теперь в компьютере порт не определяет и очень сильно греется FTDI
Напряжение на выводе кардуино +5В (4)?
Катод с анодом диода не перепутал?
Здравствуйте, ткните носом как подключать компас нмс-5883, зараннее благодарен!
Вроде разобрался, теперь П подстроить, при 4-х не держит при летании по кругу уходит, стоит зависнуть то возвращается на место в течении двух- трех секунд.
Вот гадство! Война с компасом переходит в позиционную стадию. Уже все перепробовал, но результат тот же. Компас движется правильно, повторяя движение коптера (в ГУИ), но стоит остановить движение, и стрелка возвращается на место. Проверил распайку платы тестером, все в норме, менял оси в конфиге, такое ощущение, что вообще ему пофиг, как оси стоят. Результат не меняется. Может как то влиять отсутствие преобразователя уровней? Все таки 3.3 на плате, там свой стабилизатор с 5в на 3.3 в стоит. Вот еще странность, бывает, что в графике компас с ума сходит, ±500 показывает в окошках, синусоиды в экран не помещаются. Потом все успокаивается, но продолжается фигня с возвратом к первоначальным показания, стоит прекратить крутить коптер… Уже ничего не понимаю. Ткните носом, где еще в скетче меняются ориентации осей, кроме конфига, плз!
Ткните носом, где еще в скетче меняются ориентации осей, кроме конфига, плз!
Я менял оси в sensors:
GYRO_ORIENTATION( - ( ((rawADC[0]<<8) | rawADC[1])/3 ) ,
( ((rawADC[2]<<8) | rawADC[3])/3 ) ,
- ( ((rawADC[4]<<8) | rawADC[5])/3 ) );
это пример для гиры 3200
Прошу прощения не в конфиге а в сенсорах
#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 стрелки в разные стороны смотрят.
Вот тут менял по всякому, не помогает
Я же дал кусок кода. Он расположен ниже. Для каждого сенсора - свой.
Нашел я этот кусок в скетче, спасибо. Вы можете пояснить смысл цифр в квадратных скобках?
Вы можете пояснить смысл цифр в квадратных скобках?
Нет. Я не прграммист. Я сочувствующий 😃
Вы можете пояснить смысл цифр в квадратных скобках?
Это номер элемента в массивах. Их менять не нужно! (грубо говоря массив - это как книга с данными, этот номер указывает на “страницу” в такой книге)
Вам нужно поиграться с знаками “-”. ставить их нужно там, где я отметил звёздочками. сами звёздочки ставить не нужно
GYRO_ORIENTATION( * ( ((rawADC[0]<<8) | rawADC[1])/3 ) ,
* ( ((rawADC[2]<<8) | rawADC[3])/3 ) ,
* ( ((rawADC[4]<<8) | rawADC[5])/3 ) );
Их менять не нужно!
Сравниваем платы 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).
Напряжение на выводе кардуино +5В (4)?
Катод с анодом диода не перепутал?
Где перепутал? на выходе 4.39 В
Это массив данных со всех датчиков? Или на каждый датчик отдельный массив?
Сравниваем платы 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 и попробую.