MultiWii
Saradon, учите матчасть! Средние положения стиков соответствуют 1500 мс, а минимальные сигналы соответствуют примерно 900, максимальные 1900-2000. 900 мс, это и есть крайние значения во всех каналах. И если канал газа не заморозить, он тоже упадет до 900 (примерно) что соответствует “0”. И кто вам сказал, что коптер при этом не грохнется? Даже 50% газа не гарантирует снижения или взлета.
Ну да, всё так. Только “нулю” - среднему положению стиков, соответсвует 1500. 900 и 2000 - это крайние, не нулевые положения стиков.
Может я и не прав, конечно, может на более продвинутой аппаратуре всё по-другому, но на моей дешёвке именно так.
И при отсутствии пульта все значения равны 1500. Т.е. рысканье, крен, тангаж - нулевые, газ - 50%.
Но это только при включении коптера без пульта. Возможно, что при потере пульта на ходу параметры действительно заморозятся. И сие печаль.
Ну да, всё так. Только “нулю” - среднему положению стиков, соответсвует 1500. 900 и 2000 - это крайние, не нулевые положения стиков.
Писатель вы хороший, много пишите! Ну очень прошу, попробуйте почитать, то что вам пишут… может прозрение наступит! Уже разжевываем, разжевываем…
/******** Failsafe settings ********************/
/* Failsafe check pulses on four main control channels CH1-CH4. If the pulse is missing or bellow 985us (on any of these four channels)
the failsafe procedure is initiated. After FAILSAFE_DELAY time from failsafe detection, the level mode is on (if ACC is avaliable),
PITCH, ROLL and YAW is centered and THROTTLE is set to FAILSAFE_THROTTLE value. You must set this value to descending about 1m/s or so
for best results. This value is depended from your configuration, AUW and some other params. Next, after FAILSAFE_OFF_DELAY the copter is disarmed,
and motors is stopped. If RC pulse coming back before reached FAILSAFE_OFF_DELAY time, after the small quard time the RC control is returned to normal. */
//#define FAILSAFE // uncomment to activate the failsafe function
#define FAILSAFE_DELAY 10 // Guard time for failsafe activation after signal lost. 1 step = 0.1sec - 1sec in example
#define FAILSAFE_OFF_DELAY 200 // Time for Landing before motors stop in 0.1sec. 1 step = 0.1sec - 20sec in example
#define FAILSAFE_THROTTLE (MINTHROTTLE + 200) // (*) Throttle level used for landing - may be relative to MINTHROTTLE - as in this case
#define FAILSAFE_DETECT_TRESHOLD 985
Почти то, что надо.
При отсутствии сигналов по каналам 1-4, или при значении газа меньше 985 в течении 1 секунды, автомат сбрасывает крен, тангаж, рысканье в ноль и выставляет минимальный газ + 200 на 20 секунд, после чего глушит движки.
Если за эти 20 секунд управление возвращается, то программа прерывается и продолжается штатный полёт.
Осталось только сделать так, чтобы вместо программы включения снижения каналу 6 присваивалось значение 2000 - там у меня активируется GPS_HOME.
Писатель вы хороший, много пишите! Ну очень прошу, попробуйте почитать, то что вам пишут… может прозрение наступит! Уже разжевываем, разжевываем…
Дык, вроде и картинку приложил с положением каналов при отсутствии пульта…
Чему-же верить? Тому, что пишут, или своим глазам?
И при отсутствии пульта все значения равны 1500. Т.е. рысканье, крен, тангаж - нулевые, газ - 50%.
Но это только при включении коптера без пульта.
При потере сигнала картина скорее всего будет другая.
Не понятно, у вас нет как таковой аппаратуры? В чем проблема включить/выключить пульт и понять что происходит?
Не понятно, у вас нет как таковой аппаратуры? В чем проблема включить/выключить пульт и понять что происходит?
Выше написал - пульт сейчас на другом конце города 😃
И, да, припоминаю, что положение каналов при потере сохраняется…
Выше написал - пульт сейчас на другом конце города
И, да, припоминаю, что положение каналов при потере сохраняется…
Думаю нужно дождаться пульта. Есть ещё вариант ФС. Когда газ всеж таки программируется или сбрасывается именно в ноль. А так рассуждать можно вечно.
Не, ФС точно нет.
Ниже картинка программки пульта.
Думаю, проще и логичнее всего привязаться к активации ФС внутри самого Мультивия. По отсутствию 1-4 каналов.
Только вот как понимать фразу “If the pulse is missing” - если данные по каналам отсутствуют, или не изменяются?
Ведь при замораживании показателей при потере сигнала данные-то, фактически, есть…
С другой стороны, сильно подозреваю, что показатели замораживает не сам приёмник, а непосредственно сам Мультвий, а с приёмника, всё-же, так и идут нулевые данные. Хм. Надо на самолёте проверить…
Стоп, помнится, как-то я вырубил пульт и самолёт врубил газ на 50%, значит, всё-же, сам передатчик действительно выставляет все каналы в 1500, а “замораживание”, это функция полётного контроллера, а не аппаратуры…
Привёз пульт.
Да, каналы замораживает не Мультвий, как я думал, а сам приёмник.
И на коптере, и на самолёте после “потери” пульта каналы остаются именно в том положении, в котором были в момент потери.
Сие печаль.
Ладно, буду пытаться заставить Мультивий при потере сигнала активировать не снижение, а AUX2.
Факультативно.
Вычитывал сегодня про то, как научить Мультивий читать напряжение батареи.
Несколько вопросов.
Не будет-ли делитель напряжения из двух резисторов способствовать усиленному разряду батареи, т.к. по сути образует замкнутую цепь с нагрузкой?
Как определить этот самый пресловутый пин А1 ( у меня пины не подписаны).
Как откалибровать напряжение в GUI и в OSD? Читал, что в Мегапирате надо просто измерить реальное напряжение и задать его в GUI, тогда софт будет пропорционально его пересчитывать. А как с этим в MultiwiiConfig?
Можно-ли в качестве датчика напряжения\тока использовать такое вот изделие? Или там ток мал? Или оно вообще не для этого?
Да, каналы замораживает не Мультвий, как я думал, а сам приёмник.
Ай-Ай-яй… что вы говорите?.. поверить не возможно…
Вычитывал сегодня про то, как научить Мультивий читать напряжение батареи.
А чего же до конца не дочитали? Наверно с надеждой очередную ересь тут доказывать?
По этой теме столько инфы, столько перетирали… ну научитесь вы читать…
Не будет-ли делитель напряжения из двух резисторов способствовать усиленному разряду батареи, т.к. по сути образует замкнутую цепь с нагрузкой?
Вы про закон Ома слышали? Если нет, то сделайте тупо как написано в мануале.
Можно-ли в качестве датчика напряжения\тока использовать такое вот изделие? Или там ток мал? Или оно вообще не для этого?
Нет. нельзя! А чем вам датчики Алегро не угодили?
Или там ток мал?
Да там всего 3А ток и этот девайс просто сделает пшик когда через него пойдёт ток на порядок больше 😉
Ай-Ай-яй… что вы говорите?.. поверить не возможно…
А я где-то утверждал обратное?
А чего же до конца не дочитали? Наверно с надеждой очередную ересь тут доказывать?
По этой теме столько инфы, столько перетирали… ну научитесь вы читать…
Из десятка статей получилось вырвать более-менее схему и номиналы (правда, в некоторых местах они заметно отличались).
Только в одно месте было написано, что плата-то видит три вольта и надо ей вручную выставить соответствие реальному напряжению.
Больше нигде про это не было.
Полного мануала от схемы до настройки я найти не смог. Как, в целом, и на большинство прочих манипуляций, связанных с мультивий.
Вы про закон Ома слышали? Если нет, то сделайте тупо как написано в мануале.
Честно, физику в тот день прогулял. Я-бы с удовольствием сделал по мануалу, только вот мануала как такового нету. Инфу приходится по крупицам надёргивать.
Нет. нельзя! А чем вам датчики Алегро не угодили?
Не увидел по ссылке датчика…
Да там всего 3А ток и этот девайс просто сделает пшик когда через него пойдёт ток на порядок больше
Я честно говоря, и не надеялся. Так, на всякий случай спросил.
сильно подозреваю, что показатели замораживает не сам приёмник, а непосредственно сам Мультвий, а с приёмника, всё-же, так и идут нулевые данные.
Ваша фраза?
Не увидел по ссылке датчика…
Это сайт производителя, выберите себе датчик соответствующий вашему току и найдите на али или ебее.
А это кусочек из прошивки мультивия, вкладка config.h :
/**** battery voltage monitoring ****/
/********************************************************************/
/* for V BAT monitoring
after the resistor divisor we should get [0V;5V]->[0;1023] on analog V_BATPIN
with R1=33k and R2=51k
vbat = [0;1023]*16/VBATSCALE
Читать не царское дело, правда?
Ваша фраза?
Утверждение от предположения не можете отличить?
А это кусочек из прошивки мультивия, вкладка config.h
Спасибо, постараюсь разобраться.
Читать не царское дело, правда?
А где я должен был это прочитать?
Ни одного “мануала”, где-бы это было написано я не встречал.
Утверждение от предположения не можете отличить?
Могу, Так же как бредовое предположение и глупый спор… от нормального аргументированного мнения.
Вот специально для Вас, за пару минут. Крайне сложная комбинация букв
Спасибо. Через поисковик всех ответов не нашёл.
Этот мануал не видел.
Английским не владею, но вместе с гугл-переводчиком мы справимся.
UPD. Хорошая статья. Ещё раз спасибо. Только не очень понял, что у него там за история с несоответствующими пинами.
Теперь буду знать, что для лучшего результата нужно пользоваться польским гуглом…
немного не могу понять, вроде все прошивки были готовые,давно не трогал, компилились без проблем. стал сейчас загружать и вот те на
что не так?
видел такую ерунду… появилось после обновления программки ардуино… восстановил старую версию 1.03 и все стало компилироваться, как раньше…
да сам подумывал об этом, оказалось и правда старая версия все выполняет.
Коллективными усилиями сделал относительно вменяемый FS.
В стандартных средствах Multiwii при потере сигнала коптер зависает на месте и начинает приземляться.
Я-же в MultiWii.cpp после строчки rcData[THROTTLE] = conf.failsafe_throttle; добавил rcData[AUX1] = 2000; , а строчку //for(i=0; i<3; i++) rcData[i] = MIDRC; закомментировал.
В результате при потере сигнала активируется канал AUX1, на котором висит GPS_HOME.
Коптер не садится непонятно где, а начинает возвращаться домой.
Правда,при возврате в зону действия пульта AUX1 отключается и управление возвращается на пульт.
Но мне кажется, что лучше уж так.
Ещё в config.h нужно выставить в строчке #define FAILSAFE_OFF_DELAY 200 значение побольше, а то через 20 секунд вырубит моторы.
Строчку #define FAILSAFE_THROTTLE (MINTHROTTLE + 200) закомментить, чтоб мозг не пытался сам управлять газом.
В строке #define FAILSAFE_DETECT_TRESHOLD 950 я выставил значение 800, чтоб мозг не включал FS на холостых оборотах.
Ну и чтобы всё это работало, нужно, кончено, раскомментировать #define FAILSAFE.
Мужики, поделитесь знаниями или опытом) Замучался уже. Три года летаю на одном и том же коптере (да, модифицируется, меняются моторы-пропы-навеска) но мозг один и тот же - AIOP v2 на маховике. Борюсь нынче с такой ситуацией. В полный штиль коптер летает идеально. Висит ровно. Никаких тебе осцилляций. А как толькоподует ЛЕГКИЙ ветерок - его начинает трясти, выглядит как перекомпенсация. Пиды по роллу и питчу загнал в самый низ, коптер вялый, еле плавает, но как ветер - начинает опять трястись как листик) Вибрации в норме.
Пытался понизить еще пиды по LEVEL - тряска осталась, а коптер управляется тяжело, ибо “приблизился” по поведению к акро-режиму.
У кого какие мысли? Где копать? В прошивке фильтра на MPU включал-отключал, дефайны KILL_VIBRO И KILL_SMALL_OSCILATIONS включал и выключал. Со включенными дефайнами коптер вялый, но трясется одинаково и там и там)
Очищал EEPROM, прошивал, настраивал все заново - без результата.
Дальше пиды крутить? Замучился уже.