Самодельный передатчик (часть 2)
нет,спасибо 😃 писальщик програм с меня очень плохой… если делают на 3310 то на ней и буду делать.
А подскажите кто нибудь, я уже совсем запутался, про функцию двойных расходов. Когда их включаешь, то угол отклонения серв уменьшается пропорционально или увеличивается, и для каких ситуаций используется сей режим?
…машинка канала 1, EPA 100%, подмикшированы каналы 2 (100%) и 4 (100%)…
Выше один из разработчиков кодера признался, что он “не Пилот”… Я тоже не Пилот, летаю без экстрима на простых моделях, поэтому совсем не пользуюсь микшерами… Воможно, отсюда мое недопонимание, что раньше должно упереться - машинка или стик 😛… Возможно поэтому я не понял и Вашего примера - зачем нужно 100% микширования одного канала (стика) на другой? Ведь это, практически, замена одного органа управления другим 😃… А привязка органов управления к управляющим поверхностям должна быть вполне определенной, иначе как управлять?!
Понятно, что настоящие Пилоты сюда вряд ли заглядывают, но, может кто из пользующихся микшерами скажет, какой реально процент микширования приходилось вводить?
Я, конечно, попытаюсь напрячь остатки серого вещества по озвученной проблеме, но пока остаюсь при своем ИМХО - машинка не должна останавливаться, если стик, влияющий на нее, еще имеет возможность двигаться!
Возможно поэтому я не понял и Вашего примера - зачем нужно 100% микширования одного канала (стика) на другой?
Не важно ни разу. Мы говорим про ее величество Функцию… Она может быть любой, а кодер при любой функции должен работать правильно. Была фраза “машинка должна “выполнять его волю” пока СТИК не упрется” - а серва может управляться более более чем от одного стика. Как быть если один стик уперся, а другой еще нет?
Rакой реально процент микширования приходилось вводить?
Ну ладно, пусть микширование 100% + 50 %. EPA=140%. Первый стик уперся. Второй еще не уперся, но уже влил свои 40%. Серва пришла на EPA. Формально второму стику “до упора” осталось еще 10%. Что должна делать серва?
А можно навыворот. Второй стик уперся и дал свои +50%. Второй доехал до 90%. Он еще не уперся. А машинка типа все.
Если функция будет правильно работать в общем случае - и тогда никто не заморковится ни при каком частном случае. Ни при 100%+120%+100%, ни при 30%+140%-150%. Какой бы стик куда не уперся. При любом EPA.
А если закладываться в “больше ХХ% никому не потребуется” - тогда может реально и весьма неожиданно пострадать тот, кому все же потребуется.
В общем, еще раз мое IMHO: машинку не должно волновать, что в сумме она может получить 185%. Есть две ее EPA, которые задают зону работы машинки. Эта зона соответствует 200 тиков ее стика (как +100 и -100 от середины). Кто примикшировался, сколько примишкировалось - пофиг. Доехала до EPA с участием микшеров - и все. Пусть даже еще 2/3 ее родного стика осталось.
…Причем тики в одну сторону могут быть длиннее, чем тики в другую сторону. Если EPA стоит +140 - 80 (для простоты считаем, что это в точности равно градусам отклонения качалки), то тики в одну сторону это это 1,4 градуса качалки, а в другую - всего 0,8 градуса качалки.
Про функцию двойных расходов. Когда их включаешь, то угол отклонения серв уменьшается пропорционально или увеличивается, и для каких ситуаций используется сей режим?
Он не уменьшается и не увеличивается. Он вообще может не изменяться. Это просто отдельный режим, который включается выключателем DoubleRates.
Допустим , ты летаешь “блинчиком”, и во время такого полета тебе вполне достаточно иметь отклонение руля высоты ±20 градусов. Но вот приходит время повисеть и тебе необходимо на это время увеличить отклонение РВ до +60-50 градусов (заметь, утроить расход в одну сторону и удвасполовинить в другую). Ну так ты программируешь одно положение переключателя DoubleRates на расходы +60-50, а другое на ±20. Щелкнул тумблером - расходы поменялись. А множитель “два” вообще не при чем.
Если у тебя и в двойных, и в одинарных расходах стоят одинаковые настройки (скажем, +100-80), то сколько тумблером не щелкай - ничего не изменится вообще. Уж я то знаю. Я чуть не месяц тумблером щелкал, не понимая почему у меня положение рулей не меняется. 😊
В тутошнем самодельном кодере предусмотрены раздельные переключатели DoubleRates для каждого из каналов (РВ, РН, Элероны). А на заводских аппах попроще - один-единственный “на все”.
И уж, до кучи. На тутошнем кодере есть еще 3 режима пилотирования (Normal/Landing/Pilotage). Для каждого можно назначить расходы (двойные/индивидуальные) отдельно. Итого для одной модели получаем 6 (=3 режима*2 вида расходов) вариантов настройки расходов.
машинка не должна останавливаться, если стик, влияющий на нее, еще имеет возможность двигаться!
Это проверяется и настраивается процентами микширования еще на земле. Задача ЕРА - исключить проблемы механики, т.е. не дать качалке либо управляющей поверхности упереться во что-то. Если при проверке на земле вы видите, что стик еще имеет ход, а серва остановилась на ЕРА, то изменяйте проценты микширования.
По-простому - ЕРА это последний ограничитель хода сервы.
Для sslobodyan:
Немного не понял, зачем Вы мне все это объясняли? Рассказанное Вами очевидно, а речь ведется о проблеме “с точность до наоборот” 😉…
Вы ведь предлагаете ограничивать ход машинки на ПОЛНЫЙ ход стика! Что вполне разумно и повышает точность управления… Здесь же обсуждается ситуация сознательного “загрубления” стиков - ибо, если ПРОГРАММНО ограничить ход машинки, когда ход стика еще не исчерпан, то это будет равносильно уменьшению разрядности АЦП и ухудшению точности управления… И каким бы “величеством” ни была та “Функция”, которая так поступает - мне кажется, она не права 😁!
Вот мне тоже кажется что ЕРА должны конечные точки сервы выстанавливать, дальше которых серва при любом случае уходить не должна. Просто в текущей прошивке, как мне ход машинки на элероны например с помощью ЕРА ограничить, если я микшеров ни каких не использую, то просто у меня элероны будут двигаться только при меньшем угле отклонения стика. Вот еще какая то глупая мысль есть как микширование сделать: как в магнитофоне баланс громкости по каналам регулируется, выходная громкость всегда одна и таже, а вот каждый канал учавствует в этом по своему. Только у нас наоборот получается
По-простому - ЕРА это последний ограничитель хода сервы.
Собсвенно в анотации к 1.8 я так и объяснял смысл EPA заложенный в этой версии, сделав разделение настроек на логический и физический уровень. Но уже на этапе реализации этой функции, задумывался, что если сделать EPA просто ограничителем, при конструировании микшера пользователю необходимо учитывать и допустимый ход, определяемый EPA. Т.е например, если я хочу сделать элевоны без ограничений, то при EPA<100 процентов нужно микшер ставить не 60+60 а меньше. По хорошему (и по изначальной задумке) конструируя логический канал, пользователь не должен задумываться, какой EPA он в конце-концов поставит, а значит EPA должен не просто обрезать, а масштабировать функцию на своем интервале. Проблема в том, что для этого надо знать значения конечных точек функции и ноля. Тупо обсчитывать для каждого фрейма вместо одного- три значения функции, может производительности не хватить. Делать это только после выбора модели, испугался что не будут учтены триммера, переключения режимов полета и может еще чего… Короче поленился и сделал на первое время просто резалку… 😃
если ПРОГРАММНО ограничить ход машинки, когда ход стика еще не исчерпан, то это будет равносильно уменьшению разрядности АЦП и ухудшению точности управления…
Ээээ… Ограничивать ход машинки без микширования, похоже нужно только мне. Давайте говорить все-таки о микшировании. Хуже что при программном (EPA<100) ограничении возможности машинки (точность, мощность) будут недоиспользованы… Это долго был мой аргумент в личке j нецелесообразности в принципе и вредности этой фичи… 😃
КМК, для стика своего канала и ТОЛЬКО для стика своего канала установленные границы EPA именно должны задавать масштабирование. Грех, поставив EPA +30-20 (на длинной качалке, например) получить мизерный рабочий угол хода джойстика.
А вот для функции в целом (например, когда в посчитанное значение добавилось микширование с других каналов) EPA должно работать как ограничитель.
Попробую “растечься мыслью” 😃:
- установка EPA (конечная точка) должна ограничивать ход сервы при ПОЛНОМ ходе стика в зависимости от механики управляемой плоскости (дальше нельзя механически) или требуемого угла отклонения - расходов (дальше не справимся с управлением 😛). Зависимость хода машинки от хода стика этого канала назовем “Функция 1” (Ф1). Эта функция будет главной для данного канала и EPA устанавливаются именно по ней ❗.
- если возникает необходимость наложить на Ф1 функцию другого стика (Ф2), то это надо сделать так, чтобы Ф1+Ф2=EPA. Отсюда Ф2=EPA-Ф1. То есть - насколько мы увеличили влияние другого стика на управляемый канал, настолько мы должны уменьшить влияние “родного” стика. “Точкой сходимости” этих функций должна всегда оставаться “конечная точка” для этого канала.
При таком раскладе может возникнуть ситуация, когда стик “уперся” а машинка не дошла до EPA и довести ее туда можно только другим (замикшированным) стиком… Такую ситуацию, мне кажется, можно считать нормальной…
Из приведенной мной “формулы” также видно, что микширование в 100% не имеет смысла, ибо просто заменяет основной для этого канала орган управления…
Ситуацию, при которой хотя бы один из рассмотренных выше стиков еще не дошел “до упора”, а машинка уже оставновилась (хотя ей ничего не мешает механически и приемлемых расходов она еще не достигла) я представить не могу… Точнее, не могу понять, зачем такое может понадобиться? 😊
Думаю, это потому, что вы привыкли работать всегда в максимальных ходах машинки и регулировать максимально возможное отклонение рулевой поверхности длинами качалки и кабанчика, устанавливая DoubleRates не более 100% и одинарные расходы меньше 100%
Ответьте (самому себе?) на вопрос: что такое EPA=140% и зачем оно надо?
…при программном (EPA<100) ограничении возможности машинки (точность, мощность) будут недоиспользованы…
Поэтому правильным будет не полагаться на возможности электроники, а настраивать требуемые расходы механически (длиной качалок и кабанчиков) при максимальном “размахе” канального импульса, подаваемого на машинку (оставляя, конечно, запас на точную подстройку)… Я стараюсь поступать именно так…
…что такое EPA=140% и зачем оно надо?
Вы правильно про меня, как оказалось, думаете 😁…
Но на ваш вопрос, даже самому себе ответить не могу 😊…
А зачем нужны EPA=140%?!
если ПРОГРАММНО ограничить ход машинки, когда ход стика еще не исчерпан, то это будет равносильно уменьшению разрядности АЦП и ухудшению точности управления… И каким бы “величеством” ни была та “Функция”, которая так поступает - мне кажется, она не права 😁!
А мне кажется, что Вы хотите к двойным расходам добавить тройные 😃
Именно двойные расходы “растягивают” или “сжимают” полный диапазон хода стика на определенную длину управляющего импульса. А ЕРА - только отрезает.
Я честно отвечу - НЕ ЗНАЮ!
Но я ими пользуюсь со спокойной душой.
Я догадываюсь зачем они нужны (хотя это догадки, я могу и ошибаться). Это некоторый разумный запас, который закладывается под “добавку” от вмикшированных каналов. То есть я стик упер, а вмикшированный канал мне еще добавляет отклонение - и рулю есть куда отклониться. И после этого никто не парится - будет сюда вмикширвано еще 3 канала, но по 12 градусов, или всего 2, но по 22. Скока есть - стока есть. Больше 140 не будет, хоть умри, потому что лишнее просто будет обрезано.
Да, я могу поставить EPA=140%. Я стик на 100% задавил - руль встал в 140. Вмикшированный канал добавляет - а отклониться уже некуда.
Но я могу сказать - “и хрен с ним”! Особенно если я на этом канале не пользуюсь микшированием. И даже если пользуюсь, я могу сказать то же самое.
Это мое дело - знать, что у меня ограничение может наступить раньше, чем дойдут до 100% все участвующие каналы. Я хозяин, мне - решать. Дело аппы - дать возможность не париться, что машинка сгорит, упершись во что-то рулем или тягой.
Точно так же и с расходами 120%.
Но это очень удобно. Мне не обязательно переставлять тягу в качалке на поле - я могу это реализовать настройками, виртуально. Да, если мне понравится, то дома, наверное и переставлю. Но если реального выигрыша от реальной перестановки не будет - все так и останется виртуальным.
И не надо этого бояться (потеря точности/разрядности, потеря мощности).
Допустим, я поставил EPA 20% (для наглядности = 5 градусов).
Я не потерял точность! Допустим, что измерительные цепи имеют точность абсолютную, тогда точность - это разрядность. Пусть она 10 бит на 100%, тогда с небольшой оговоркой имеем 10 тиков на процент.
На сколько процентов я отклонил руль - не важно. 10 тиков на процент. Если точности хватает летать и не падать с 20% отклонением стика (и, соответственно, отклонением рулей на 20%=5 градусов) при EPA 100%, то ее и подавно хватит при отклонении стика на 100% и отклонении рулей на те же 5 градусов (раз EPA установлен на 20%). Почему “подавно”? Потому, что улучшилась точность работы Вашей руки - увеличился ход джойстика. А точность РМ осталась 10 тиков на процент - не хуже и не лучше.
Теперь, допустим, что вы не изменяли EPA, а впятеро сократили длину качалки.
Мощность стала больше? В общем да, но мощность ограничивается усилием, а усилие ограничено прочностью зуба на РМ. Если Вам хватало усилия на длинной качалке, то зачем Вам надо еще больше? Не надо… Итого выигрыш есть, но совершенно не принципиальный.
Точность работы Вашей руки изменилась? Нет! 100% стика по-прежнему транслируюся в 5 градусов отклонения руля.
Точность отработки РМ стала больше? Да! Теперь Вы имеете 50 тиков на градус. А оно Вам надо? 10 тиков на градус -> 1 тик = 6 минут, 50 тиков на градус -> 1 тик=1минута. Для Вас это существенное различие?! Прикиньте разницу отклонения кромки руля при ширине руля, ну пусть 15 см.
Ни когда не надо бороться за абстрактную точность! И за мощность, и за скорость. Попадос может получиться ОЧЕНЬ КРУПНЫЙ.
Точность, мощность, скорость и много чего еще должны быть не офигенными, а ДОСТАТОЧНЫМИ. Если они достаточны, то бороться за “еще большую лучшесть” и “более качественное качество” - труд бессмысленный.
Если для достижения необходимого результата надо менять длину качалки - конечно, ее следует поменять. Особенно, если виртуальными регулировками этого никак не добиться.
Но если точно тех же результатов можно сделать виртуальными регулировками, то…
Завидую Вашей усидчивости при написании стольких букФФ… 😁!
Я нарисовался в этой теме только из-за одного высказанного здесь утверждения, что “ручка продолжает двигаться, а машинка уже стоит - это нормально…” (имелось в виду, что машинке ничто не мешает двигаться, кроме программы передатчика), поскольку не согласен, что так должно быть…
Я мало чего понимаю в тех “процентах”, которые присутствуют в меню RC-передатчиков и которыми Вы так лихо оперируете 😊… Сильно подозреваю, что это совсем не те проценты, которым меня учили в школе… Скорее всего - это совсем не проценты 😉…
Поэтому попробую еще раз пояснить свое понимание поведения машинок и стиков (без “процентов” 😌):
- сколько бы каналов управления не было замикшировано на ОДНУ многострадальную машинку, она не долна останавливаться, пока ВСЕ органы управления, на нее влияющие, не “упрутся”! Разумеется, хозяин этой машинки должен позаботиться о том, чтобы она не сломала себя или модель, установив для нее “крайние точки”!
Если же машинка отказывается подчиняться еще не достигшим “упора” органам управления (разумеется тем, которым обязана подчиняться) - то имеет место ошибка в программе…
ИМХО!
Ух как много написано…
для стика своего канала и ТОЛЬКО для стика своего канала установленные границы EPA именно должны задавать масштабирование.
У этого кодера нет для канала “своего” стика, есть только дефолтовые настройки микшера. Это концептуально, имхо идеологически верно и пересмотру не подлежит.
Отсюда Ф2=EPA-Ф1.
Поверьте, есть смысл иметь для разных режимов полетов микшеры 50+50 и 100+100. Для вашей концепции они не будут отличаться. Даже мне, с небольшим опытом пилотированием, это весьма пригождается. Как приятно врубить режим “пилотаж”- 100+100 и крутануть на вертикали бочку “пропеллером”. И Вы хотите меня лишить этой радости? 😃 При этом я конечно понимаю, что одновременно мак крен и мак тангаж при такой настройке сделать не получится…
Точность, мощность, скорость и много чего еще должны быть не офигенными, а ДОСТАТОЧНЫМИ.
Вот уж точно согласен, если добавить- при выборе сервы. Поверьте, что сервы (которые у меня) имеют несравнимо меньше тиков, чем аппаратура. В это будет очень серьезная потеря точности. Ну и по мощности… даже лень описывать очевидную механику…
Поэтому тезис
Если для достижения необходимого результата надо менять длину качалки - конечно, ее следует поменять. Особенно, если виртуальными регулировками этого никак не добиться.
в моем представлении нужно инвертировать.
Если же машинка отказывается подчиняться еще не достигшим “упора” органам управления (разумеется тем, которым обязана подчиняться) - то имеет место ошибка в программе…
Если Ваша задача недопустить ограничения, а оно есть, то имеет место неверно сконструированный канал…
…Вот уж точно согласен, если добавить- при выборе сервы.
Я тебя уверяю - ВСЕГО, ЧЕГО УГОДНО!
Это основополагающий принцип при построении любых комплексов.
Да вот хоть такой пример: я просто меняю настройки копиллятора CVAVR в программе для работы с энкодером AS5043 и компилирую программу. Для настроек printf типа “int,width” результат “Program size: 1419 words (2838 bytes), 34,6% of FLASH”, а для настроек “float,width,precision” уже “Program size: 3135 words (6270 bytes), 76,5% of FLASH”. Я не поменял ни одной буквы в тексте программы, а от меня уже хотят в два раза больше ресурсов. Я на ровном месте попадаю при прочих равных на вдвое более мощный камень. За желание выводить числа с плавающей точкой. У меня вообще нет таких чисел. Не нужны. Зачем вводить избыточность?
Не нужна 14-ти канальная аппа тому, кто летает на тренере, не имеющем даже РН. Но, может быть она просто необходима, если человек без такой аппы чувствует себя несчастным вплоть до суицида…
Потому, что это тоже комплекс: “модель+аппа+человек”…
Мы можем подарить ему 12-ти канальную аппу, и какую-нибудь модельку от <имярек> за $20000, а он все равно в петлю полезет - двух каналов не хватило…
“то имеет место неверно сконструированный канал…” - абсолютно согласен!
Не буду “спорить о вкусе ананасов с теми, кто их ел!”(с)…
Придется все же собрать этот кодер, чтобы говорить с присутствующими на одном языке, а пока, чувствую, мне не удается правильно изложить свое ИМХО… Ну да, фиг с ним…
Крайнее уточнение:
Это цитата из меня 😉:
“Если же машинка отказывается подчиняться еще не достигшим “упора” органам управления (разумеется тем, которым обязана подчиняться) - то имеет место ошибка в программе…”
Это ответ на нее от автора программы:
Если Ваша задача недопустить ограничения, а оно есть, то имеет место неверно сконструированный канал…
Это полное согласие с автором программы от участника форума:
“то имеет место неверно сконструированный канал…” - абсолютно согласен!
Но фраза именно этого участника и ввергла меня в дискуссию:
А то, что ручка продолжает двигаться, а машинка уже стоит - это нормально, не беспокойтесь!
Поэтому вопрос к Denn (и я удаляюсь паять кодер):
Так все же, тот факт, “что ручка продолжает двигаться, а машинка уже стоит” - это нормально или “имеет место неверно сконструированный канал”?!
P.S. Ничего личного!
Ты, главное, сам ни на кого не обижайся…
Я вот тут повыступал - так и понял, что не было (и нету?!) вовнутри меня однозначного понимания логики масшатбирования по EPA. 😊
То мне кажется, что масштабирование должно быть по всему диапазону от одной EPA до другой, то вот вроде как должен быть все же запас по краям для триммирования и микширования. Но не за пределы EPA, это точно!
Может быть так: EPА поставили, внутрь диапазона процентов так по 20 от края отступили, и по этим пределам отмасштабировались? А?
…Авось сообразим сообща, как оно следует быть.
P.S. Ну так не зря выступал. По крайней мере мне самому стало немножко яснее… 😁
P.P.S. Надо будет сделать шкалу, стрелочку длинную на РМ-ку повесить и поисследовать как на моей “Футабе” дело обстоит.
Так все же, тот факт, “что ручка продолжает двигаться, а машинка уже стоит” - это нормально или “имеет место неверно сконструированный канал”?!
У Denn нет противоречия, он только недостаточно точно процитировал мою фразу, обрезав - “Если Ваша задача недопустить ограничения, а оно есть,…”. Все зависит от того, что Вы хотите получить. Посмотрите на диаграмму обработки сигналов, сколько звеньев там участвует в определении конечных точек… Не забудте, что есть еще три режима полета не показанных на диаграмме. Если программа возьмется умничать и менять расходы по своей логике, вряд ли это будет для пользователя удобно и даже предсказуемо… На всякий случай уточню, программу пишет программист, канал конструирует пользователь. Поэтому на Ваше “программист- дурак!”, ответил “кто как обзывается, тот сам так называется!”. 😃
Я тебя уверяю - ВСЕГО, ЧЕГО УГОДНО!
Это основополагающий принцип при построении любых комплексов.
В абстарктном смысле - конечно! Речь о выборе путей и методов решения проблемы. Утрировано- Вы предлагаете поставить 10кг-вую высокопрецензионную серву и ограничить ее ход до 10%. Я намекаю что ту же точность и усилие можно получить от ширпотребовской 1кг-вой всего лишь правильно оценив длину плеч качалки и кабанчика.
ЗЫ Для меня полемика тоже оказалась полезной. Как в анекдоте- “объяснил раз, объяснил два… Сам уже понял…”. А какого фига для масштабирования внутри EPA мне нужно было конечные точки функции??.. Можно обрезать значения перед EPA до фиксированных ±120%, (напомню ±100% полный ход стика, ±120% соответствует границам допустимой ширины канального импульса), как и было до введения EPA, и затем масштабировать значение по EPA, считая крайними точками функции именно допустимую ширину канального импульса. Вроде бы все логично- EPA однозначно определяет крайние углы отклонения и нет обратной зависимости EPA->начало ограничения.