Трикоптер.

Piranha
myname:

Совет - по возможности не покупайте CARDUINO V5,

Хм, мне видимо повезло, две штуки работают как часы! А мега там действительно в микроскопическом корпусе!А что тогда брать то? Фридуину заказывать и ждать долго 😦

myname

V4 были в neotoy, но кончились, может привезут еще!

Piranha

Дык на V4 мега разве не 168я в отличае от V5 где стоит 328я?

myname

Неа, и те и те бывают с атмегами как 168 так и 328.
Те что “Mem Duo” - на них 328, на обычных 168.

Covax

На счет несколько неудачных Carduino v.5 подписываюсь. У меня первая на заработала, не выдавала сигнал на pin11. Но ребята с carmonitor вошли в положение, поменяли, проверили новую на “все ли хорошо пропаено”. А есть разница для wiicoptera на чем он летает? на 168 или 328? Владислав, а как пропаял мелочь такую? Можно фотку глянуть?

myname

Вот, нарулил пару патчей для своих нужд. Делюсь. Патченая прошивка TriWiiCopter v1.5

Что там нового:

  1. возможность регулировки отклонения руддера для включения/выключения моторов. По дефолту было “до упора” -
    мне неудобно, потому что иногда мог причесать пропеллером землю.
  2. Принудительное отключение хвостовой сервы (в режиме трикоптера) во время инициализации гироскопов/акселерометров.
    По дефолту серва не отключалась, и могла прилично дрожать, что давало вибрации и сказывалось на качестве калибровки.
  3. Поддержка аналоговых акселерометров.

Все новые настройки в самом начале файла:
#define BAZ_ARMING_YAW_MINCHECK 1450 // PPM для выключения моторов
#define BAZ_ARMING_YAW_MAXCHECK 1550 // PPM для включения моторов

#define BAZ_USE_ANALOG_ACC // Закомментируйте эту строку чтобы выключить поддержку аналоговых акселерометров.
Включенная поддержка аналоговых акселерометров с нунчаком несовместима.
#define BAZ_ANALOG_ACC_PITCH_PIN 1 // Аналоговая нога на Arduino для оси pitch. 0 = A0, 1= A1, и т.д.
#define BAZ_ANALOG_ACC_ROLL_PIN 0 // Аналоговая нога для оси roll
#define BAZ_ANALOG_ACC_YAW_PIN 2 // Аналоговая нога для оси Z
#define BAZ_ANALOG_ACC_GAIN 200 // Настройка чувствительности (процент от реального выходного сигнала с чипа акселерометра).
#define BAZ_ANALOG_ACC_MIDPOINT 511 // Средняя точка АЦП, не трогать )))

Чувствительность акселерометров в идеале надо подобрать такую, чтобы в GUI показывало от -200 до +200 при повороте коптера на 180 градусов. Больше ±200 делать не стоит. У меня от -130 до +130, держит горизонт идеально.

Все оригинальные настройки без изменений.
При перепрошивке калибровка и настройки не сбиваются.

MultiWiiV1_5.zip

funtik26

господа у меня такая дилема- чтобы трикоптер нормально летал нужно первый столбик ставить порядка 2-3, если больше- начинает колбасить на ветру, но с такими маленькими значениями как будто без гироскопов…как быть? что то моя wiirdiuna плоховато летает

Covax

я тоже P_ROLL и P_PITCH с 4х убавил до 2.5, мой квадрик получше летать стал, а при 2х уже начинает его раскачивать. я правильно понимаю, что P отвечает за скорость реакции на изменение положения гир и акселерометра?

myname
Covax:

Владислав, а как пропаял мелочь такую? Можно фотку глянуть?

да там фоткать особенно нечего, внешне какая была такая и осталась. Только теперь пропаянная ))
Паяльник с тонким жалом, и пройтись по всем ногам атмеги.

Covax

если I до нуля снизить, то обороты моторов на квадрике полностью сравняются. типа I делает необходимую разницу в оборотах. Алекс так обьяснил, когда я задал ему вопрос, почему у меня на правом переднем и левом задним обороты в GUI меньше чем на остальных.

Гляньте, что Шакира навояла по поводу того, как надо настраивать виикоптер с нуля.
www.rcgroups.com/forums/showthread.php?t=1348268

flank

народ, гиры НК401 имею бока скошенные, т.е. на ребре оно будет стоять чуть с уклоном, это имеет сильное значение?

попробовал подключить гиру, светодиод на нем загорается, на регуле мызука играет но инициализации нет 😦
как быть?

myname

Для тех кто мучается вопросом что куда крутить.

Представьте, вы управляете элеронами самолета. У вас в голове встроенный ПИД. Так вот, самолет летит, у вас в руках штурвал, и перед глазами только “датчик горизонта”.
Поехали.
P - это в какой ПРОПОРЦИИ (насколько сильно) вы отклоняете ручку штурвала, в ответ на ОПРЕДЕЛЕННОЕ отклонение от горизонта.
Примеры:
Значение P=100; Самолет накренен 45 градусов влево - вы располагаете штурвал в положении 45 градусов вправо.
Значение P=100; Самолет накренен 10 градусов влево - вы располагаете штурвал в положении 10 градусов вправо.
Значение P=50; Самолет накренен 45 грудусов влево - вы располагаете штурвал в положении 22.5 градусов вправо.
Значение P=50; Самолет накренен 10 грудусов влево - вы располагаете штурвал в положении 5 градусов вправо.

Если значение P слишком большое, то начнутся колебания - потому что вы будете постоянно “переруливать”

Представим, вы нашли такое значение параметра P, когда еще нет колебаний (переруливаний), и в то же время работа элеронами достаточно эффективная чтобы достойно отвечать на порывы ветра. Но…
Если появляется какая-то постоянная внешняя сила (не ветер), которая заставляет самолет удерживаться в отклоненном состоянии (например все пассажиры пересели на левую сторону ))) параметра P уже недостаточно чтобы компенсировать крен - вам уже надо как-бы подтриммировать самолет. Поэтому ввели параметр I.
I - насколько сильнее вы отклоняете ручку штурвала, если с течением времени самолет не желает возвращаться в горизонт.
Ключевое слово - “с течением времени”.
Так как I “накапливается” все время пока самолет не вернулся в горизонт, появляется некая инерционность, т.е. даже при возврате в горизонт составляющая I будет продолжать действовать постепенно уменьшаясь, что выразится во временном крене в противоположную сторону.
Ну и остается параметр D…
D - это ваш друг Вася, который стоит рядом, тоже держит руки на вашем штурвале, и не дает вам его РЕЗКО дергать, т.е. смягчает и демпфирует ваши движения. D - это сила рук вашего Васи…

Процесс настройки …
D,I в ноль.
подбираем P. Это чувствительность, самое главное. Надо найти P на пределе возникновения колебаний, и затем чуть-чуть уменьшить.
теперь начинаем увеличивать I - по вкусу, но без фанатизма - его не должно быть очень много.
ну и последним подбираем D. D тоже не должно быть много. После увеличения D можно снова попробовать увеличить P.

V8Max
Adekamer:

фотки платы (не моей)
adekamer.webs.com/apps/photos/album?albumid=108054…
схема

смотрите номер детали с номиналами на схеме и на плате
конденсаторы имеют полярность - внимание!

Платка KKmultikopter v4 кажется…
Сейчас последняя официально выложена на сайте v5.5 smd, я ее не много переделал(переразвел), сделал поменьше, поуже, ну вообщем под себя завтра постараюсь фото выложу, если что могу выложить.😃

myname
funtik26:

народ кому не лень, выкладывайте сюда таблицы настроек

трикоптер, лучи 45см, несколько вялый но оч. устойчивый

V8Max

Если не трудно, объясните как запускать программу? Скачал а он жалуется.

funtik26

мои настройкиЮ немножко подколбашивает на ветру, но летать можно.
завтра попробую по описанному выше методу

Musgravehill

Нам на лекциях по ТАУ объяснили ПИД-регулятор так: Управляющее воздействие (которое будет удерживать коптер в желаемом положении) U зависит от ошибки delta (ошибка = разница между желаемым состоянием и текущим. Например, коптер наклонен на -45 градусов, мы желаем 0, значит, delta = 0 - -45 = + 45 ).

П - пропорциональная составляющая: Up = p * delta, где р - ваш коэффициент. Если “р” слишком большое, возникнет перерегулирование, автоколебания и разрушение объекта (на небольшое отклонение коптер отреагирует резким броском и кувыркнется вниз).
И - интегральная составляющая. Ui = интеграл delta * i. В каждый момент времени вычисляется delta, полученные дельты складываются. Со временем получается значительная величина, если не установить объект в заданное положение (при этом растет и управляющее воздействие). Благодаря И-составляющей устраняется статическая ошибка (если работает только П-регулирование, то всегда требуется наличие ошибки для управления коптером: если вдруг delta =0 , то Up=0, объект неуправляем). Регулятор ПИ может обойтись без Д.
Д - дифференциальная составляющая. Ud = скорость изменения delta * d. Чем быстрее меняется ошибка delta, тем сильнее управляющее воздействие Ud. Ветер резко наклонил коптер, управляющее воздействие Ud резко возросло и вернуло коптер в горизонт. Коэффициент d задаете сами.

Итоговое управляющее воздействие: U = Up+Ui+Ud, которое должно вернуть коптер в желаемое положение.

А теперь интересная задачка: какие коэффициенты брать =)

skyrider

Несколько месяцев назад встретил на форуме ссылку на очень простую OSD (без GPS) , кажется отображает только ток и напряжение АКБ, может что то еще , не помню, ценник был всего около 10$, ссылку потерял, по поиску результатов нет, может кинет кто ссылку на эту OSD, отличное дополнение для полетов по очкам всего за 10$.

MikeMDR
skyrider:

Несколько месяцев назад встретил на форуме ссылку на очень простую OSD (без GPS) , кажется отображает только ток и напряжение АКБ, может что то еще , не помню, ценник был всего около 10$, ссылку потерял, по поиску результатов нет, может кинет кто ссылку на эту OSD, отличное дополнение для полетов по очкам всего за 10$.

Накладывалось только 2 напряжения.
www.cnchelicopter.com/servlet/the-1783/…/Detail
Только это раньше было за 10USD (см. www.rcgroups.com/forums/showthread.php?t=1329658#p…), теперь они извиняются перед предварительно-заказавшими за повышение цены до 23,99USD