Может поможет (с http://www.avrfreaks.net/index.php?n...topic&p=562497):
Code:
PORTB |= (1<<PB4); // sets bit 4
PORTB &= ~(1<<PB4); // clears bit 4
PORTB ^= (1<<PB4); // toggles the state of bit 4
![]() |
Специальные цены | новые товары | ![]() |
![]() |
![]() |
Тема раздела Коптеры. Комплектующие, сборка, настройка. в категории Квадрокоптеры и мультироторы; Сообщение от deepness Это я как раз понял, сейчас изучаю код для добавления стабилизации и по "YAW" интересует что значит: ...
Может поможет (с http://www.avrfreaks.net/index.php?n...topic&p=562497):
Code:
PORTB |= (1<<PB4); // sets bit 4
PORTB &= ~(1<<PB4); // clears bit 4
PORTB ^= (1<<PB4); // toggles the state of bit 4
День добрый! по совету Сергея Ковакс, я приступил к сборке коптера без нунчака и задумался о проблеме висения проводов, хочу вытравить плату чтобы аккуратно было, не подскажите где можно найти такую картинку, готовую к печати для ардуино нано, для ардуины мини я встречал, а на нано не нашел...
Сергей, что-то я Вас не пойму!!
То Вы пишете:
А несколькими постами ниже:
Вы уж как-нибудь решите что-нибудь одно и не вводите в заблуждение таких новичков, как я!!!
(Я уж было решил, что не правильно понимаю теорию! И собрался заново перечитывать все ветки по много-роторникам...)
Ну как не нашел то? Тему читать надо, читать, сразу много вопросов отпадет.
Олег выложил печатную плату к нанЕ MultiWii
Плохо, что не поняли. И чего не понятно то я написал? зачем вырывать слова из контекста? еще раз повторюсь:
Это не в полете проверяется!
1. сначала проверяем в ГУИ как графики себя ведут:
- при наклоне коптера вправо ACC_ROLL и GIRO_ROLL (или как там его) должны изменяться в положительную сторону. влево - отрицательную.
- при наклоне вперед ACC_PITCH и GYRO_PITCH должны изменяться в положительную сторону, назад - отрицательную. Это и есть правильно сориентировать нунчак и вимоушен отномительно коптера, неправильно поставил - никакая калибровка не поможет.
2. Ставим коптер на ровную поверхность, берем уровень и прикладываем к мотору или основанию винта, куда можете приложить. вот именно эти точки у всех трех-четырех моторов должны быть на одном уровне. Выставили моторы-пропы по уровню - калибруем акселерометр. Вот теперь у вас в воздухе коптер будет висеть в режиме стабилизации точно по горизонту. А это как правильно калибровать нунчак.
3. Если чуть чуть коптер все равно плывет - триммируем аппаратуру, регулируем ПИДы.
Ветка растет однако! Было бы здорово собрать основные проблемы и рекомендации в FAQ... вопрос только кто займется этим?!![]()
нужно или первый пост редактировать или вики делать... или свой rcdesign с... ну в общем в плюшками разными =)
а так да... 1 важный пост и куча мусора... как итог 30 страниц и в них 5-10 нужных сообщений, часть из которых еще и устарела
А причём эти азбучные истины при ответе на мой вопрос в том конкретном случае у Саша_пилот?
Т.к. коптер у Саша_пилот только слегка "уплывал" при висении, то речи о "неправильно-развёрнутой" ориентации (т.е. с разворотом датчиков на 90 или 180 по каким-либо осям) и не могло идти, т.к. уже при взлёте его бы или крутило или перевернуло!
Следовательно, совет
можно было понять (во-всяком случае для меня) только как про некоторую непараллельность осей рамы и датчиков! О чём я и попытался поправить Exial'а, написав свой пост, где упомянул про калибровку при горизонтальной раме для привязки оси коптера к горизонту.
И вдруг Сергей пишет о бесполезности такой калибровки в этом случае! Я - в большом замешательстве, начинаю думать, что чего-то "недогоняю", рвать на сбе волосы..
И тут - бац - через несколько минут, Сергей предлагает произвесть такую-же калибровку, на которую я и намекал!
После чего меня и понесло....(Т.к. Сергей уже летает, а я - ещё нет, то мне приходится "принимать на веру" некоторые его высказывания!)
P.S. (слова не вырывал, только подсократил технические детали.)
А можно ткуть меня мордой в то место, где я говорил про калибровку в полёте?
Я прошу прощения, но у меня нет времени перечитывать анализировать кто что сказал, я вроде бы разьяснил что имел ввиду, если и после этого что-то осталось непонятно, то ни чем не могу помочь, тут и без меня полно специалистов.
вот тут неполучается, при включенном нунчаке, закручивал триммер до упора в перед, а трикоп с тойже интенсивностью плывет обратно, тоесть на тример чаке нас...ть.
а что значит регулируем ПИД, это для стабилизации ведь, к дрейфу не применимо?
хотелось бы знать за что отвечают остальные настройки в ГУИ, окромя ПИД
Это уже после перекалибровки? Триммер конечно не до упора, его можно совсем чуть чуть.
ПИДы отвечают за чувствительность сенсоров, скорость отработки изменения их состояния, в этой ветке очень много об этом говорится, в кратце все снижают P, уменьшают I, D кто увеличивает, кто снижает. Надо держать коптер в руки и играть с настройками, отслеживать что на что влияет лучше-хуже. Каких то универсальных решений нет, все опытным путем под свой конкретный коптер.
ничего не понимаю, как не может быть эффекта на триммер? это все равно на на стик давать все время, только с постоянным значением.... давай еще раз, коптер дрейфует назад, так? ты его аппой выравниваешь же? в ГУИ, когда коптер в состоянии покоя, значения стиков везде должно быть 1500, у тебя так и есть? можешь скриншот ГУИ выложить когда моторы запустил на холостом ходу?
Тоже мучался
1 выставляем чтобы в ГУИ были нули
2 если у вас проседает задний луч то подкладываем под него брошурку чтобы в ГУИ изменилось значение этого луча
на 1-2 единици при этом остальные значения должны остаться в нулях
3 теперь "калибрате" и подлетнуть
у меня только так получилось откалибровать
Сдела новую раму для своего multiwii контролера. Не подскажите мне какой лутше выбрать вариан + или х коптера. Растояние от мотора до мотора 56 см. Движки KD20-22
Сергей, не поверишь, элементарно.
В режиме автолевел канал с передатчика и выход IMU PID суммируются. Т.е. при наличии ненулевой интегральной составляющей все отклонения рано или поздно сведутся на нет. Равно как и разбаланс конструкции (все видели видео, как лишнюю батарейку сбоку вешали?). Т.е. если уровень откалиброван со смещением, оно будет плыть туда, хоть ты тресни.
По-хорошему, в режиме стабилизации каналы наклона стоило бы завести как поправки к целевым уровням крена и тангажа прямо в IMU.
А пока, чтобы триммеры действовали, приходится level I ставить в 0. Сам напоролся, когда треху в зале колотил.
Подключил наконец то нунчак. И поймал трабл: При подключенном нунчаке переходник USB - COM не определяется ... что за ... фигня?
данные от нунчака скачут до 400. Надо "придушить" ?
Последний раз редактировалось Texnik; 26.03.2011 в 03:05.
Мой пэпэлац полетел таки с гироскопом с дилэкстрима и bma020. Так что проблемы были в конкретном экземпляре WMP.
Пробовал на прошивке 1.6 и последней 1.7prebis
Самое интересное - он тоже на 3205, но делить ничего не пришлось, итак все данные в правильном количестве приходят
Как потеплеет и поменьше ветра будет - пойду на улицу настраивать PID, пока практически в дефолте.
Еще заметил странное поведение при подключении питания к коптеру. Питание у меня организовано так: с силового аккумулятора всё разведено по контроллерам моторов, с силового же аккумулятора напрямую идет питание на seeeduino. Далее с одного из контроллеров моторов 5вольт идет на приемник. Питалово гироскопа и акселя идут через pin12 3.
Проблема следующая: периодически при подключении аккумулятора начинается какой-то тупняк и регуляторы моторов переходят в режим программирования, в этом случае у них сбрасываются некоторые настройки, чаще всего включается тормоз. Полагаю это из-за особенностей питания, примерно так: сидуина еще не прогрузилась, а на регули уже пошел какой-то непонятнный сигнал, отсюда и режим программирования включается.
Как можно решить эту проблемку, посоветуйте? А то у меня всё распаяно и каждый раз разбирать коптер, выпаивать проводки, и программировать контроллеры очень геморно :\
А регули какие? Сидуина мега?
Может попробывать в цикл в прошивке добавить условие подавать сигнал на регули начиная с какого-то определенного значения, а не сразу с момента запитки ардуины, не с нуля. Смысл понятен о чем я?
Залез в прошивку, вот например поставить в самом начале скетча такой код:
я правда не знаю, 10000 это много или мало, но смысл в том, что не закончись этот цикл не пойдет инициализация сенсоров, моторов и т.д. Олег Сайбериан у нас крутой программер, пусть скажет свое мнение.for (delay = 0; delay < 10000; delay++) {
}
Последний раз редактировалось Covax; 26.03.2011 в 10:58.
ну то что время обработки сигнала с ним возрастает вдвое это факт, поэтому лучше нунчак сразу вешать с джампером по питанию, чтобы можно было иногда его отключать на уровне железа.
лучше в setup() {} добавить в начало delay(нужное количество милисекунд);
Да, точно, без него примерно 3000 , с ним 6000, упустил из вида, спасибо.
Давайте поставим точку по конкретным датчикам (ITG 3205) на конкретных платах (фото ниже) , летают они у кого или нет, именно "летают " или нет, потому как на столе в GUI ведут себя замечательно! Насчитал минимум троих с такими платами.
![]()
Да, летает (+ВМА020)! Коптер запускал в комнате и несколько раз на улице блинчиком. Сегодня подключил чип 3205 как 3200 и залил новую прошивку 1.7претер. Мельком взглянул - вроде пропатченая. Показания не делил, только сменил +roll на -roll. Все работает плавно, без overflow. http://wbb.multiwii.com/viewtopic.php?f=6&t=27&start=20 Питание напрямую +3.3В, причем, скосячил, и подал его сразу на подтягивающие резисторы, где автор на картинке обозначил +2.8В.
Удивительно, впервые вижу такую "правильную" картинку в ГУИ. В покое всё оси = 0, при наклонах мнемосхема повторяет движение коптера абсолютно синхронно! До хака 3205-->3200 мнемосхема могла запаздывать, заваливаться и плавно принимать нужное положение. Сейчас всё работает как часы.
Последний раз редактировалось Musgravehill; 26.03.2011 в 12:38.
Попробывал на улице.
поведение странное, иногда сам наклонится и полетит то вперед то назад, иногда просто дернется как следует и выравнивается.
на видео немного видно.
что порекомендуете?
Думаю, метод работает во всех необходимых случаях. Добавлю, что сменил 2 оси и один знак. Платы не трогал вообще. При рабочем положении "как для ВМП+ВМА020" нужно в коде для 3200 сделать так:
gyroADC[PITCH] = - ( ((rawADC_ITG3200[2]<<8) | rawADC_ITG3200[3])/5/4 ); //поменял Питч и Ролл местами, у Ролл сменил знак. Делители не трогал.
gyroADC[ROLL] = - ( ((rawADC_ITG3200[0]<<8) | rawADC_ITG3200[1])/5/4 );
gyroADC[YAW] = + ( ((rawADC_ITG3200[4]<<8) | rawADC_ITG3200[5])/5/4 );
--------
А вот эта строчка в разделе 3200 интересная: TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz
Аксель ВМА020 вроде нормально работает. Нужно копаться.
Freeduino 2009 328р, запитана от силового аккумулятора.
ВМП и ВМА020 питаются от пина 3.3В
Я всегда использую ВМП + ВМА020, потому что летаю блинчиком.
Тест в руках.
Прошивка 1.7preter. Ничего не патчил. Задал, что использую #define ITG3200 и #define ВМА020. Возможно, придется покрутить оси и знаки в разделе 3200: gyroADC[PITCH] = + - и т.д.
Вот, все таки руки дошли сделать аккуратную проводку на квадрике, запаять мою сиидуино на шилд от Jussi (через этот шилд обещают в дальнейшем сделать поддержку ArduCopter, ArduPirates, BaronPilot, Aeroquad), сделать хорошую виброразвязку датчиков и немного полетать. В режиме акро и левел теперь летает отлично (пока только дома).
Вот несколько фото и видео
Разобрался со своим перевёртыванием всё дело в акке и движке.Просмотрев данные логера,обнаружил,что в последние секунды полёта,квадрик потребил 19Ампер в место обычных максимальных 14-16(пока не совсем понял почему),и в этот момент акк дал просадку на 9.6 Вольт,и каждый себя увожающий контроллер должен понизить обороты,При разборке повреждённого двигателя обнаружил оголёный пропаеный провод,который коротил на магниты.
П.С.Те у кого при увилечении газа перевёртывания,советую проверить акк.Есть вероятность что и у вас проседает напряжение.
Припаял нунчак. С креном и тангажом все в порядке.
С курсом не разберусь никак.
ACC_Z - на уровне 200, но нашел что так и должно быть.
А вот реакция на наклоны странная - на изменение по курсу вообще не реагирует, вместо этого уменьшается на модуль отклонения по крену и/или тангажу.
Это так задумано, или баг? Куда копать?
То ли припаял что-то не так, либо изменение положения по курсу не отслеживаются?
А ну вообще акселерометр и не может отслеживать ускорения по курсу.
А к чему тогда третья ось?
как бы еще через ардуинку снимать потребление тока?
датчиком тока на эффекте Холла
http://www.rlocman.ru/news/new.html?di=82641 вот таким например
у меня в OSD стоит STM32F на 50А, помоему аналоговый
Вот, кто-то из немцев разродился датчиками (есть и подобие FFIMU). Правда на rcgroups еще никто не пробовал их.