Самодельный передатчик (часть 2)

EagleB3
Pav_13:

Вы действительно можете проделать такой “фокус” на своей футабе?

Я уверен, что сможет! Хотя сам (на своей футабе) это не проверял и не исследовал.
У “футабы” логика такая. Для них +120% триммера и +140% EPA - это нормально.

А вот 140% чего? Глубоко убежден, что именно стика. Если поставить расход на стике в 140% (такое там тоже возможно! Но не обязательно…), то отклоненный до упора (100% механики) стик как раз и приедет в 140% EPA.

Я же говорю - принципы построения алгоритма могут быть разными. На разной логике.
Эта логика не плохая и не хорошая. Она РАЗНАЯ.
Кому-то ближе и удобнее одна, кому-то другая.

dollop:

И я не думаю, что нужно на первых полетах рулить этими расходами посредством EPA. Микроскопом гвозди забивать. Хотя, может, я чего-то в высказывании недопонял.

Скорее именно недопонял.
Я знаю три метода “уменьшения расходов для первых полетов” (да и не для первых тоже):

  1. Уменьшить расход;
  2. Переставить EPA;
  3. Поставить крепкую экспоненту в минус (-60…-70).
    Каждый по своему удобен. Использовать надо то, что удобно и наиболее подходит.

Я против того, чтобы использовать EPA вместо того, чтобы переназначить расходы. Мне вот это очень не понравилось:

sslobodyan:

И функция двойных расходов в таком случае решается как изменение ЕРА в зависимости от какого-либо переключателя или даже крутилки.

Я против того, чтобы использовать EPA как штатный инструмент для оперирования расходами.

А эксперимент - можно. Я же предлагал. Но я не просто так попросил программу эксперимента. Я не вижу смысла крутить неизвестно что неизвестно зачем; крутить надо ради чего-то.
Ну покрутим, увидим как делает Футаба. Оно имеет смысл, только если кто-то еще возьмется проделать аналогичный эксперимент с Хитеком, или Санвой, или еще с кем. Чтобы сравнить и выбрать базу для нашего кодера.

А иначе… Да , “Футабы” вот так. Да и хрен с ней! А у нас вот эдак, совершенно по-другому, но всем нравится.

P.S. А в алгоритме, который я прописал в посте #2707, надобно сделать улучшение: считать, что двойной расход главного канала тоже может быть менее 100%. Тогда и для двойных расходов, и для одинарных надо считать коэффициент N/100 ; если расход = 100%, то коэффициент равен 1. И если расход меньше 100%, то при полностью упертом стике (и всех вмикшированных стиков тоже!) качалка не доедет до EPA. И это - правильно!

sslobodyan
EagleB3:

А вот идея менять расходы движением EPA мне кажется не хорошей.

Я несколько плохо выразился 😃 Имел ввиду именно так как Вы и поправили. Множить на ЕРА*Кдвойного расхода. Так и делал у себя в кодере.

Pav_13
EagleB3:

Я уверен, что сможет! Хотя сам (на своей футабе) это не проверял и не исследовал.

Ну так, проверте 😉! Как активный участник обсуждения “проблемы”…
Я на своей проверял, но у меня такая футаба, что футабе за нее должно быть стыдно 😊… (4EX) Она так не сможет!
Эклипс тоже так не может…
А может, у меня интеллекта не хватает заставить их так поступить 😦? Хотя… может, и хватило бы, если бы я понимал, зачем такое может потребоваться в управлении моделями? Но пока я такого понимания не достиг… Увы! И по-прежнему пребываю в убеждении (или заблуждении ?), что “машинка не должна останавливаться пока стик не уперся!”

EagleB3:

Я уверен, что сможет! Хотя сам (на своей футабе) это не проверял и не исследовал.

Ну так, проверте 😉! Как активный участник обсуждения “проблемы”…
Я на своей проверял, но у меня такая футаба, что футабе за нее должно быть стыдно 😊… (4EX) Она так не сможет!
Эклипс тоже так не может…
А может, у меня интеллекта не хватает заставить их так поступить 😦? Хотя… может, и хватило бы, если бы я понимал, зачем такое может потребоваться в управлении моделями? Но пока я такого понимания не достиг… Увы! И по-прежнему пребываю в убеждении (или заблуждении ?), что “машинка не должна останавливаться пока стик не уперся!”

EagleB3:

…при полностью упертом стике (и всех вмикшированных стиков тоже!) качалка не доедет до EPA. И это - правильно!

Пока писал свой пост, Вы добавили…

Если вставить в Вашу фразу уточнение “… не доедет до EPA, но и не остановится, пока все стики не упрутся.” - то я соглашусь, что "И это - правильно!" 😁

msv

2serg111

Разбрался кажись.

Что-то не то… Ваши изменения -только неправильная адресация буфера, причем с выходом за его границы… Чревато…

dollop
msv:

2serg111 Что-то не то… Ваши изменения -только неправильная адресация буфера, причем с выходом за его границы… Чревато…

Та не. Там все правильно. У этого дисплея совсем другой буфер. По-более - 102x67 пикселей.

2serg111 И еще, если не устраивает контраст этого “паленого” дисплея, то поиграйтесь напряжением питания дисплея (даже просто резисторным делителем) ну и не забудьте поменять в инициализации значение VOP - контраст улучшится раза в 2-3

void LCD_init(void) // ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
{
LCD_DC =0;
LCD_RESET=0;
delay_ms(1);
LCD_RESET=1;
delay_ms(1);
LCD_DC=0;
spi(0x21);     // включить питание, расшир. команды
spi(0xE4);     // A large VOP for China displays
spi(0x45);     // China LCD Correction (Y offset +5)
spi(0x06);     // Temp. coefficient
spi(0x13);     // bias=3
spi(0x20);     // обычный набор инструкций
spi(0x0c);     // Normal Mode
delay_us(500);
LCD_clear();
LCD_refresh(); 
EagleB3
Pav_13:

Я на своей проверял, но у меня такая футаба, что футабе за нее должно быть стыдно 😊… (4EX) Она так не сможет!

да лааадно прибедняться-то! Расходов у нее нет, а EPA точно также, 0…+140 в каждую сторону.

Я попробую, конечно. Только не уверен что сегодня. Подготовиться надоть. Машинку закрепить, шкалу, стрелочку…

Кому чего интересно проверить/уточнить - пишите!

Pav_13:

Если вставить в Вашу фразу уточнение “… не доедет до EPA, но и не остановится, пока все стики не упрутся.” - то я соглашусь, что "И это - правильно!" 😁

Ы! 😁 А я изначально хотел возле этой добавки “2 Pav_13:” написать…
При таком (модифицированном) алгоритме фишка в том, что по отношению “расход главного канала”/100 считается ОБЩИЙ коэффициент. Допустим, расход = 80%; тогда общий коэффициент = 0,8. Дальше расход главного канала становится весом. Сумма весов относится к 100%. По весам считаются коэффициенты участия каналов. Да, все три (в наших примерах - три…) на полном отклонении дадут 100%, но эти 100% будут умножены на ОБЩИЙ коэффициент. И когда все три стика лягут на упоры, качалка дойдет только до 80% от EPA.
Не нравится, что всего 80? А зачем тогда ставили расход на 80%? Ставьте расход 100% - получите отклонение качалки 100% EPA.

Проверка, как в начальной школе: нету микширования. Никакого. Вообще. Расход 80%. До какого отклонения должна дойти качалка при полном отклонении стика? Тот, кто считает, что до 100% EPA, моментально получает двойку… Логично?..

Пример для осмысления: Условия точно как в “проверке”, но вы добавили 1% микширования от стика второго канала. Отклонили до упора первый стик. Потом до упора второй стик. До скольких процентов отклонилась качалка?
Подсказка: неужели до EPA? До 100% EPA? Как же это 1% от второго канала превратился в эквивалент 20% от первого?
Решение:
Расход главного канала = 80%
Микширование от второго кнаала = 1%
Общий коэффициент 80/100=0,8;
Сумма весов = 80+1
Весовой коэффициент главного канала =(80*100)/(80+1) = 98.76
Весовой коэффициент второго канала =(1*100)/(80+1) = 1.24.
Полное отклонение стика главного канала отклонят качалку на 98,76*0,8=79,008% от величины EPA,
Полное отклонение стика второго канала добавит 1,24*0,8=0,992% от величины EPA.
В сумме полное отклонение обоих стиков вызовет отклонение качалки 80% от величины EPA.
…А сколько хотел получить тот, кто установил расход 80%?

msv

Та не. Там все правильно.

Не могу согласится… В циклах не используется 0-вая строка буфера, зато залезаем за последнюю. Если размер буфера не скорректирован, то недалеко до беды… Единственное изменение во всех этих изменения по логике работы с индикатором- это команда адресации. Попробуйте в функции LCD_refresh поменять spi(64+i); на spi(65+i);,а все остальное вернуть.
//—
Прямо буря! (в стакане? 😃 ) Позиция Pav_13 уже давно понятна. А вот в объяснениях EagleB3 уже потерял нить… Периодически упомянается “главный канал”… Ну не понимаю какой канал главный для правого(левого) элевона… Дмитрий, прошу написать конкретно, какие изменения по вашим соображениям следует внести в логику обработки. Или это абсолютно другая концепция?
//—
Для меня более-менее все ясно, изложил выше. Один вопрос остался - как правильнее обрабатывать триммеры, субтриммеры? Или просто сдвигать всю фукцию (как сейчас) или менять только центр и менять наклон для сохранения конечных точек?

EagleB3

Я не готов сказать, какие изменения надо внести.
Я вообще (пока?..) не уверен, что они нужны.
Но зашла речь об алгоритмах - и появился (надеюсь…) реальный шанс найти концепцию, а в рамках этой концепции - алгоритм, который понравится всем (и за одно будет всем понятен. Даже тем, кто не умеет разбираться в исходниках).

“Главный канал” - тот, управление машинкой которого мы рассматриваем.
Боюсь запутать и скажу так: если при добавлении газа нос затягивает вниз, то стик РВ надо взять на себя. Берем канал РВ и микшируем в него сигнал от канала газа. Я в этом случае канал РВ считаю главным, а канал газ - микшируемым (“вмикшируемым”; криво, зато, КМК, не запутаешься).

Для левого элерона главный канал (традиционно? Только на Футабе?) первый. Для правого элерона при раздельных машинках - главный канал шестой. В шестой канал вмикшируется первый канал, с обратным знаком (если левый вверх, то правый - вниз).

Для левого элевона главный канал первый. В него микшируется второй канал (РВ).
Для правого элевона - главный канал шестой. В него микшируется два канала - первый канал и второй канал.

Но случай и элевонов, и раздельного управления элеронами - маненько специальный!
Общий коэффициент канала по описанному алгоритму считается через расход стика канала (сам физический смысл расхода - проекция стика на интервал, заданный EPA). А на 6-м канале стика нет! Общий коэффициент для 6-го канала (правый элерон/элевон) должен быть равен общему коэффициенту 1-го канала (левый элерон/элевон), а при подсчете весов расход…
А вот тут надо еще подумать!.. Либо расход 6-го принимается за 0, либо расход 1-го игнорируется. Либо еще более сложно…

В той же “Футабе” V-Tail и элевоны - два отдельных, специальных, заготовленных на заводе режима микширования…

Триммер, КМК, это должен быть аналог перестановки качалки РМ на нужное количество зубов. Поэтому наиболее простой (и правильный) вариант - двигать точку 1,5mS (“0” РМ).

Про субтриммеры ничего не знаю. 😊 Что такое “субтриммер”?

dollop
EagleB3:

В той же “Футабе” V-Tail и элевоны - два отдельных, специальных, заготовленных на заводе режима микширования…

О! Наконец-то есть некий общий знаменатель.
Хотите меньше ручной работы, и чтоб за вас все само настраивалось? - вэлкам - мастера/предустановки брендов помогут как нельзя лучше.
Хотите гибкость? - нет ничего лучше кодера от msv. Ручками, ручками таки нужно. И добиться можно всего и так чтоб правильно было. И, действительно

Я не готов сказать, какие изменения надо внести.
Я вообще (пока?..) не уверен, что они нужны.

На данном этапе изменений не нужно. Это, если делать вуаль в виде тех самых предустановок - тогда и нужно думать. А так, вся прелесть - гибкость

2 msv. По-поводу дисплея. Попытался изобразить

serg111
msv:

Не могу согласится… В циклах не используется 0-вая строка буфера, зато залезаем за последнюю. Если размер буфера не скорректирован, то недалеко до беды… Единственное изменение во всех этих изменения по логике работы с индикатором- это команда адресации. Попробуйте в функции LCD_refresh поменять spi(64+i); на spi(65+i);,а все остальное вернуть.

Чувствовал что что-то нето. Поменял spi(64+i) на spi(65+i), все остальное вернул. Работает 😃

Обнаружил что у дисплея иногда сносит крышу, если во время работы коснуться общего пробода схемы , осцил прицепить или отверткой (держась за металлическую часть). Немного помогло земление железки экрана. По питанию повесил керамику 2,2мк прям на ноги дисплея, лучше не стало. Камень не сбоит, проверено.

PARSEK

Здравствуйте всем!
Очень заинтересовался этой темой, хочу повторить девайс.
По мере сбора информации, выяснения наличия в местном магазине комплектующих, возник такой вопрос:

  • какой микроконтроллер подойдет для кодера из перечисленных:
    mega128-16AU (TQFP64)
    mega128L-8AI (TQFP64)
    mega128L-8AU (TQFP64)
EagleB3

Но лучше всего - первый. Штатный кварц в кодере = 12МГц.
Первый на этой частоте работать обязан,
второй и третий обычно не отказываются, но…

Aviator73
EagleB3:

Решение:
Расход главного канала = 80%
Микширование от второго кнаала = 1%
Общий коэффициент 80/100=0,8;
Сумма весов = 80+1
Весовой коэффициент главного канала =(80*100)/(80+1) = 98.76
Весовой коэффициент второго канала =(1*100)/(80+1) = 1.24.
Полное отклонение стика главного канала отклонят качалку на 98,76*0,8=79,008% от величины EPA,
Полное отклонение стика второго канала добавит 1,24*0,8=0,992% от величины EPA.
В сумме полное отклонение обоих стиков вызовет отклонение качалки 80% от величины EPA.
…А сколько хотел получить тот, кто установил расход 80%?

Давно читаю этот топик и никак не вкурю, о каких + и - тут вы говорите, если слово МИКШЕР подразумевает смешивание, а ни как не добавление!
Я EPA настраиваю так - ставлю стик в край, а циферками подгоняю под нужные мне предел. И все. А если и что-то микшируется с чем-то, то никак не пойму, как канальный импульс может от этого изменятся? Если один канал смикширован с другим на 100%, то он просто будет повторять первый, если на 50% - будет отклоняться на половину хода и т.д. Что к чему добавляется?
Поясните люди добрые, а то после последних 5-ти страниц вообще запутался…

Denn

Хочу добавить, что ЕРА это End Point Adjusment ( регулировка конечной точки ). И всё.

ADima

совсем уже запутался с весами и прочим.
моё мнение что все ограничения должны выполнятся ещё на логическом уровне а ЕРА задаёт длительности импульса для РМ перекладки из одного крайнего положения в другое и если нам так надо то можем из своих соображений его изменить в меньшую сторону.
на примере того же елевона - мы хотим чтобы на лгическом уровне и в качестве элерона и вкачестве закрылка влияние на РВ было 100% тогда если мы дадим крен до упора в право и закрылки до упора вниз (стиками, 100% допустим 100 тиков) то получим на РМ левого елевона -200 тиков, а на РМ правого элевона 0 так вот на логическом уровне мы ограничеваем значение ±100 тиками предельные значения для выдачи результата в реальный канал, а уже с помощью ЕРА масштабируем в мсек для реальной РМ параметры которой зависят от производителя
А при ограничении длительности ипмульса и соответственно хода РМ мы в любом случае теряем точность позиционирования, разрядность таймера не меняется и мертвые интервалы изменения длительности импульса на которые не реагирует РМ тоже не меняются

EagleB3
Aviator73:

если слово МИКШЕР подразумевает смешивание, а ни как не добавление!

А как для Джеймса Бонда могли смешать мартини с водкой, не добавляя водку к мартини или мартини к водке? 😉

Условно, без долей и весов: Допустим, ты микшируешь канал газа в канал РВ на 50%.
Потом отклоняешь стик РВ на 20%. Качалка РВ отклонится? Да.
Потом ты дал 100% газа. Качалка дополнительно отклонится? Да. “Дополнительно” это тоже самое, что “добавление”? Да.
Канальный импульс РВ при этом (т.е. при отклонение стика газа) изменится? Да.

Pav_13

Ну вот! В борьбу с “крайними точками” включились свежие силы 😁!
Значит, подуставшим бойцам можно воспользоваться “музыкальной паузой”!
Правда я, поскольку не меломан, скачал все файлы по кодеру, добыл дисплей, заказал Мегу, поставил на комп CodeVision, PoniProg, купил аж три книжки по AVR… Сижу… разбираюсь - всеж-таки платформа незнакомая…
Короче, к грядущим сражениям надеюсь быть теоретически и практически подкованным 😉
Может, если другие дела не отвлекут, в скором времени нарисуюсь здесь с глупыми вопросами… Надеюсь, в пылу полемики никого не обидел и смогу расчитывать на умные ответы 😊

СЕРЖЖ

Кто подскажет почему дергаются сервы? Может быть виной кодер и если да то что надо подстроить?

EagleB3
ADima:

на примере того же елевона … чтобы на логическом уровне и в качестве элерона и в качестве закрылка влияние на РВ было 100%

Сорри, не понял исходных условий, поэтому дальше вникать особо и не пытался.

  1. и главное: Чье влияние?
  2. Элевон = элерон работает в качестве РВ; стало быть машинки РВ при этом нет и влиять на РВ невозможно, ибо не на что. Стик РВ будет влиять на элерон (который поэтому и становится элевоном), но не наоборот.
  3. Элерон (по идее…) может влиять на РВ разве что когда используется в режиме флапперона. Оба элерона вниз -> нос “вспухает” -> даем РВ от себя. Но тогда и надо говорить про флапперон. И включается (управляется) флапперон от отдельного стика, не от элеронного, и не от РВ-шного, а совсем от отдельного. Но если элевоны - то элерон = РВ и дальше совсем уже непонятно.
Aviator73
EagleB3:

А как для Джеймса Бонда могли смешать мартини с водкой, не добавляя водку к мартини или мартини к водке? 😉

Условно, без долей и весов: Допустим, ты микшируешь канал газа в канал РВ на 50%.
Потом отклоняешь стик РВ на 20%. Качалка РВ отклонится? Да.
Потом ты дал 100% газа. Качалка дополнительно отклонится? Да. “Дополнительно” это тоже самое, что “добавление”? Да.
Канальный импульс РВ при этом (т.е. при отклонение стика газа) изменится? Да.

Да, это очевидно. Но если отклонить РВ на 100% и газ на 100% то ничего ни куда не добавится и оба канала будут находится в 100%. В чем тогда нескладуха в последних пяти страницах топика? 😃

СЕРЖЖ:

Кто подскажет почему дергаются сервы? Может быть виной кодер и если да то что надо подстроить?

У моего передатчика тоже дергались и буззер постоянно попискивал при вставленном кварце в ВЧ модуль. По совету MSV провел от каждого тумблера отдельный массовый провод, обвил им сигнальные провода и припаял все в одной точке на минусовой клемме батарейного разъема. Как рукой сняло. Наводки от антенны были.