VCoder2 - Новая версия ПО для Turnigy/Eurgle/FlySky 9x

ВНИМАНИЕ!!!

проект VCoder2 - обсуждение здесь
позже в этот дневник будут выкладываться ссылки на прошивку

Начинаю разработку второй версии ПО для сабжевой аппаратуры.

В настоящее время пытаюсь обобщить текущие мысли по функционалу аппаратуры.

От первой версии останутся:

  • 16 логических каналов
  • 8 физически передаваемых каналов по фильтрам
  • микшеры с возможностью регулировки коэффициента микширования

Новый функционал:

  • предустановленные микшеры (летающее крыло, V-хвост, вертолетные миксы)

  • захват до 8 каналов ppm с тренерского разъема - функция для тех кто иногда гоняет на шнурке учеников или использует хедтрекер или подобные устройства

  • свободно назначаемые условия включения микшеров и функций

  • вычисляемые выражения для условий

  • свободно назначаемые кривые и точки каналов

Максимум:

  • увеличения размера VDISKа за счет Self Programming FLASH-memory до 10 кб (соответственно увеличение количества хранимых моделей до 30-60 шт)
  • 46653
Comments
ВитГо

Новая прошивка будет на русском языке.

Поскольку аппаратура может быть использована с различными ВЧ модулями в функционал закладываю возможность задания 3-5 модулей ВЧ используемых в моделях, например, ВЧ Турнига, ВЧ Спектрум (инверсный сигнал), ВЧ Eurgle\HK (диапазоны каналов от 800 до 2200 мкс) и т.д.

Для каждой модели можно будет указать настройки какого ВЧ модуля необходимо использовать - это соответственно длительности каналов, количество каналов, полярность сигнала ppm

Для включения\выключения микшеров будут использованы свободно назначаемые условия, например,
логические условия:
(GEAR & TRUE) - выключатель GEAR включен
(!THR.CUT & TRUE) - выключатель THR.CUT выключен
(GEAR & THR.CUT) - выключатели GEAR и THR.CUT включены
математические условия
(THROTTLE > 30%) - ручка тяги в позиции более 30%
(THROTTLE < 10%) - ручка тяги в позиции менее 10 %

Таким образом микшеры можно будет включать по любому состоянию органов управления - из этого всего делаю вывод что полетные режимы как независимые наборы данных - просто не нужны… можно сделать 3,4,5,6… условий каждое из которых при установке в истину будет означать включение того или иного полетного режима (набора микшеров)

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

Вопрос возникает нужно ли у самого канала дополнительно иметь кривую ?
или кривых при микшировании будет достаточно ?

В принципе можно сделать кривые и в микшерах и в канале (сначала обработаются первые, после всех микшеров вторые)

ВитГо

Для обеспечения дополнительных возможностей условий - возможно задание простых выражений, с последующим использованием результата выражения в качестве одного из операндов условия…

Это будут простые логические операции И, ИЛИ, НЕ, - с логическими значениями операнда
Арифметические операции +, -, /, %, * - с процентными значениями операнда

ВитГо

В принципе можно попробовать сделать вторую версию кодера открытым проектом - если конечно найдутся те кто пожелает участвовать в разразботке

Кстати, планирую немного по другому организовать обработку каналов в прошивке - не как это было сделано у Фокуса (внутри прерывания) - так как длительные вычисления в прерывании делают невозможным захват внешнего ppm сигнала с тренерского разъема… Да и отрисовка одного и того же экрана впустую в цикле тоже смысла большого не имеет…

ВитГо

В настоящее время планирую использовать 3 таймера

Timer0, прерывания с частотой около 100 Гц - это будет системный счетчик используемый для организации равных интервалов действий прошивки, пока хочу опробовать в прерывании счетчик и в основном цикле программы обрабатывать вызовы в зависимости от его значения

switch (Timer0Counter) {
case 0: { опрос аналоговых каналов
}
case 1: { опрос клавиатуры
опрос триммеров
}

case 5: { Timer0Counter=0;
}
}
Это необходимо поскольку в зависимости от сложности модели частота исполнения цикла может меняться (в тестах у меня доходило до 120 циклов в секунду) и следовательно “поплывут” интервалы опроса клавиатуры, опроса аналоговых каналов и т.д.

Далее будет обработка условий, микшеров, фильтров,

далее, работа с экраном…

Независимо от этого цикла будет генерироваться сигнал ppm на вывод и на захват… - это позволит избежать недавно исправленной ошибки с обработкой ppm в первой версии прошивки где из за большого объема вычислений в паузе между импульсами ppm мы получали сдвиг значения первого канала на выходе передатчика… в предлагаемом решении мы можем получить полную обработку каналов не с частотой 50 гц а например с частотой 40 гц… или 30 гц… - причем поскольку идет дискретная обработка каналов а не инкрементная - на выходе изменений мы не заметим так как быстродействие серв все равно намного меньше…

Timer1 - генерация сигнала ppm, - минимальный размер кода исполняемого в прерывании

Timer3 - захват сигнала ppm, минимальный размер кода исполняемого в прерывании

HikeR

Для включения\выключения микшеров будут использованы свободно назначаемые условия…
(GEAR & THR.CUT)

в примере показаны пара условий, а сколько планируется использовать выражений в условии? вот такое прокатит: (AIL_DR & !ELE_DR | !RUD_DR)?

(!THR.CUT & TRUE) - выключатель THR.CUT выключен

несколько необычно. почему, например, не (THR.CUT & FALSE)

Вопрос возникает нужно ли у самого канала дополнительно иметь кривую ?
или кривых при микшировании будет достаточно ?

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

ВитГо
HikeR;bt36677

в примере показаны пара условий, а сколько планируется использовать выражений в условии? вот такое прокатит: (AIL_DR & !ELE_DR | !RUD_DR)?

Да, можно будет одним из операндов условия использовать результат другого условия
соответственно будет конструкция из нескольких условий

условие_1:
!ELE_DR

условие_2:
AIL_DR & условие_1

условие_3:
!RUD_DR

условие 4:
Условие_2 | условие_3

результат в условии_4

Всего условий планируется 32 (нужно больше ?)

HikeR;bt36677

несколько необычно. почему, например, не (THR.CUT & FALSE)

при операции И: (False И False) дает False
гм… получается что описанное выше условие проще сделать так: (!THR.CUT)

HikeR;bt36677

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

гм… кривая разве накладывается на орган управления ?!
может лучше сделать кривую при микшировании и\или после всех вычислений на полученное значение канала (после наложения всех микшеров) этого будет достаточно ? (особенно интересует достаточность функционала для вертолетов, для самолетов таких извратов не нужно и достаточно кривую наложить на канал после всех микшеров)

ВитГо

у меня описание условий пока в голове следующее:
побайтно
00 - вид условия
01 - операнд условия 1
02 - операнд условия 2

вид условия:
00 - нет операции, условие всегда ИСТИНА
логические операции
01 - лог. И
02 - лог. ИЛИ
03 - лог. НЕ
арифметическое сравнение
10 - операнд1 > операнд2
11 - операнд1 < операнд2
12 - операнд1 = операнд2
13 - операнд1 != операнд2
дополнительные арифметические операции
20 - операнд1 > |операнд2| - больше по модулю
21 - операнд1 < |операнд2| - меньше по модулю
арифметические выражения
30 - операнд1 + операнд2
31 - операнд1 - операнд2
32 - |операнд1|
33 - операнд1 \ операнд2
34 - операнд1 % операнд2
35 - операнд1 * операнд2

байт описатель операнда
битовое поле
7 6 5 4 3 2 1 0
| | | ++++++ - номер значения типа
| | |
++±—: вид операнда
0 - нет значения (пустое значение)
1 - значение переменной
2 - значение органа управления (UCH - в первой версии)
3 - значение логического канала (LCH)
4 - значение функции
5 - значение условия\выражения
6 - не определено
7 - не определено

младшие 5 бит - определяют сколько вариантов каждого операнда может быть - 32.
соответственно у нас 32 переменных, 32 условия\выражения, 16 логических каналов, 32 функции

Если кто где видит не соответствие или есть какие-то пожелания по возможным операциям или функционалу- пишите

ВитГо

Переменные

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

значения переменных можно будет изменять и при помощи Органов управления (UCH)
как было написано выше всего возможно 32 переменных

переменные это значение от -120% до +120% (241 значение), либо 0, 1 для логических операций(2 значения)

формат следующий
00 - вид переменной
01 - значение переменной

вид переменной
00 - переменная не задана
01 - фиксированное значение заданное в поле 01
02 - значение органа управления, номер органа управления в поле 01
03 - значение условия\выражения, номер условия\выражения в поле 01

ВитГо

Микшеры

вот что нужно обязательно обсудить так это микшеры !

00 - условие для работы микшера (только при истинности условия)
01 - номер логического канала получателя в битах 3210, вид коэффициента микширования бит 4 (0 - фиксированный, 1 регулируемый)
02 - номер канала источника в формате байта описателя операнда (описано в условиях)
03 - используемая микшером кривая

а вот теперь самые спорные и требующие обсуждения параметры
04 - точки канала получателя (левая, центр, правая)
05 - точки канала источника (левая, центр, правая)

7 - коэффициент микширования, в случае регулируемого коэффициента микширования - в формате байта описателя условия

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

ВитГо

Органы управления

Думаю что никаких изменений относительно первой версии не потребуется…
В принципе можно сделать возможность задания центра для аналоговых каналов - нужно кому ? с другой стороны центры задаются при калибровке…

У каждого органа управления будет 2 параметра - значения минимума и максимума, для дискретных каналов генерируемое значение либо мин. либо макс. для аналоговых генерируемое значение может изменяться плавно от мин. до макс. (в общем как и в первой версии)

как уже было указано выше - значение органа управления можно будет связывать со значением переменной

HikeR

сколько всего много, соберусь с мыслями и отпишусь попозже. однако про “может лучше сделать кривую при микшировании и\или после всех вычислений на полученное значение канала” скажу отдельно.

кривая - по сути переменный коэффициент. смотрим (микшер со сдвигом):
(нач. знач. канала + микшер) * коэфф.
(нач. знач. канала * коэфф.) + микшер

результат будет разным. но если будет выбор, к чему именно применять кривую, то хуже наверное не будет.

ВитГо

можно тогда ввести параметр на то когда применять кривую…
0 - кривая применяется на значение органа управления
1 - кривая применяется на результат микширования
2 - кривая применяется к результирующему значению канала…

так пойдет ?

ВитГо

куда прицепить управление средней (нулевой) точкой канала ?

есть идея для каждого канала хранить несколько (3,5 ?) точек в формате
00 - номер условия (если истина - точка активна)
01 - значение нулевой точки…

или лучше эти точки задавать в микшере ?
или опять таки сделать оба варианта ?

недостаток двойных вариантов - расход памяти моделью… соответственно будут заморочки с архивацией модели перед ее сохранением на V-Disk

druksel

Виталь, наверно нужно таки сделать возможность при субтриммировании устанавливать и среднюю точку канала и крайние и это все на одной вкладке. может ошибаюсь на в предыдущей версии прошивки это было бы здорово… а то там на одном экране - средние точки а на другом крайние. и этта… думается что задание крайних и средних точек должно быть независимым… то бишь сдвинул среднюю - а крайние остались так же. ну и по микшерам: неплохо бы добавить “готовые” микшеры типа - 2 машинки на РВ, 4 машинки на крыло - типа 2 элероны-2 флапы(щитки) и микшер типа элероны с РВ в противофазе (для уменьшения радиуса петли)

ВитГо

просто установка крайних точек - это фактически учет физических ограничений серв и тяг подключенных к ним…
а средняя точка - это уже настройка полетного режима… скорее всего и во второй версии это останется так же… - правда мы еще не решили где это будет настраиваться… в микшерах или все таки в каналах… если в первых - то будет отдельное место (Как в первой версии) если во втором - то будет как вы желаете… все 3 точки в каналах

а на счет крайних и средних точек - в первой версии эти точки абсолютно независимы !! среднюю или любую из крайних можно двигать без изменения остальных точек… раньше была проблема ухода точек если канал инвертировался… но эта ошибка исправлена уже очень давно… точки в первой версии не уходят… и не будут уходить во второй…

готовые микшеры будут ! главное не пропадайте когда я буду спрашивать какие нужны… сейчас у меня есть набор желаемых микшеров для вертов (от Дмитрия HikeR), по самолетам соответственно летающее крыло, 2 сервы на элероны (флапероны)…
в принципе главное движок написать для предустановленных микшеров, а потом накидаю сколько захотите…

druksel

не. не пропаду… а нсчет независимости при движухе точек… хмм… я тут начал среднюю точку двигать на 6 канале - и крайние поползли…

ВитГо

такого не может быть Андрей,

какую версию используешь ?

точки не ползут !! ползли месяц назад когда неправильно обрабатывался реверс каналов…
сейчас не ползут…

уточни - если я ошибаюсь - то нужно исправлять !!! скинь мне на мыло еепром !

druksel

так… вкладка LCH MIDDLE ползут. при изменении среднего значения… прошивка не самая последняя , может поэтому??? ща солью епром и закачаю самую последнюю

druksel

самую последнюю версию закатал… тож самое… 😢
епром отправил через квип - включишь аську - получишь ссылку . куда то твой емейл у мну затерялсо…

ВитГо

я тут комп поменял… аську не помню…

кинь на gorbukov@yandex.ru

ВитГо

ураа!! я квип нашел нормальный!!

мой номер в аське 600-989-219

druksel

дико звиняюся - невольно дезинформировал народ - усе пашет нормально - эт я натупил
Эти цифры показывают расстояние центральной точки от крайних . нужно для настройки дифференциала . а я то дурак подумал что это именно ползут точки

Stepan_M

Виталий, я думаю полетные режимы всеже надо оставить - например для 3д и пилотажного режима так гораздо удобнее переключаться чем
по условиям.

Еще по таймеру - посмотрел свой старый мультиплекс там таймер считает от нуля и до установленного потом аларм, и таймер продолжает считать т.е. видно сколько перелетываешь. Хорошо бы это реализовать.

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

То что собираетесь реализовать логические условия - это очень хорошо.

Желаю творческих успехов. Как вернусь с отпуска буду готов тестировать.

ВитГо

так фактически режимы и остануться…
только это будут
условие_1 - для первого режима
условие_2 - для второго режима
и так далее… в принципе количество режимов ограничено только количеством условий…

любой микшер и любые точки каналов, любые кривые, функции будут включаться в зависимости от условий…

просто хочу уйти от фиксированного количества режимов - для самолетов нужно 2 иногда 3 режима, для вертов минимум 3… для планеров вообще и 3 и 4 и 5… то есть сколько фиксированных не делай - всегда будет мало…
лучше сделать вручную создаваемые - каждый для себя сделает сам сколько захочет! плюс сам назначит каким способом эти режимы будут включаться (один из способов включения режима HikeR уже показал: AIL_DR = ON
ELE_DR = OFF
RUD_DR = OFF
 это условие может быть использовано как режим для включения цепочки микшеров, кривых, точек, и т.д.
причем
AIL_DR =ON
ELE_DR = ON
RUD_DR = OFF
 может быть по выбору либо другим режимом либо просто комбинацией отключающий предыдущий режим…

вопросы остались по кривым в микшерах и по точкам каналов…

никто не хочет высказаться - где эти параметры лучше использовать - при микшировании или при последующей обработке каналов ?

просто хочется написать прошивку пригодную для использования с вертолетами и планерами - но чую что опять не найду тех кто летает на них и прошивка опять получится чисто самолетная…
а для самолетной прошивки как раз все эти навороты в виде кривых в микшере или точек каналов ИМХО не нужны…

ВитГо

пишу новый движок меню, так как старый не устраивает по скорости работы… да и прошивка сейчас по другому строиться - не получиться по старому обрабатывать…

вопрос - как лучше сделать реакцию на нажатие кнопок меню?
есть два варианта:

  1. как было в первой версии прошивки - при удержании кнопки более какого то времени генерируется нажатие, потом через еще какое то время генерируется повтор…
  2. вариант стандартной прошивки - при удержании кнопки в течении какого то времени и потом ее отпускании - генерируется нажатие. повтора как такового при навигации по меню нет…

в первом случае иногда удобно нажать кнопку и держать ее пока в нужный пункт меню не попадешь…
но иногда мне был бы удобен второй вариант - нажал, отпустил - переместился на 1 пункт… никогда не проскочишь нужный…

а как удобно вам ?

druksel

если чисто навигация по меню - то лучше второй вариант наверное. но желательно меню типа закольцевать по возможности

ВитГо

да кольцо уже сделал 😃

еще есть какие мнения…?

Stepan_M

Виталий тут еще какое дело, при сохранении файла, на старой прошивке, если при этом включен приемник модели - то на время сохранения сервы загоняят в крайние позиции и что неприятно канал газа тоже. Был у меня несанкционированный взлет когда менял параметры на модели.

HikeR
  1. вариант стандартной прошивки - при удержании кнопки в течении какого то времени и потом ее отпускании - генерируется нажатие. повтора как такового при навигации по меню нет…

по меню ходить одиночными нажатиями вполне допустимо, однако если придется вдруг где-то поменять значение -50 на +50 путем сотни нажатий — то вас проклянут 😉

а если где-то в меню будет сидеть настройка скорости автоповтора, чтобы каждый мог под себя подстроить, то вобще цены не будет.

а для самолетной прошивки как раз все эти навороты в виде кривых в микшере или точек каналов ИМХО не нужны…

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

ВитГо
Stepan_M;bt37495

Виталий тут еще какое дело, при сохранении файла, на старой прошивке, если при этом включен приемник модели - то на время сохранения сервы загоняят в крайние позиции и что неприятно канал газа тоже. Был у меня несанкционированный взлет когда менял параметры на модели.

В другую ветку !
здесь вторая версия !

ВитГо
HikeR;bt37499

по меню ходить одиночными нажатиями вполне допустимо, однако если придется вдруг где-то поменять значение -50 на +50 путем сотни нажатий — то вас проклянут 😉

а если где-то в меню будет сидеть настройка скорости автоповтора, чтобы каждый мог под себя подстроить, то вобще цены не будет.

ну это я понимаю… процедуру перепишу чтобы регистрировала оба типа нажатия… для меню будет браться pushUp, а для изменения значений наверное pushHold…
скорость автоповтора для puchHold будет регулироваться…
да в принципе и для pushUp тоже можно сделать регулируемую задержку от дребезга

HikeR;bt37499

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

блин… дорого это для органа управления применять кривую 😦( эхх… хотя согласен что это наверное самый правильные способ…
так и буду делать !

значит вопрос с кривыми решен - кривая всегда будет накладываться на входящее значение в микшер !!

вопрос что делать с точками каналов - нужны они в микшере или достаточно будет в настройках каналов ?

кстати, в микшерах иногда есть поле offset - в чем его математический смысл ? нужно чтото подобное делать ?

ВитГо

все. сделал переписал обработчик чтобы он мог работать регистрируя и нажатия pushUp и нажатия pushHold

unsigned char rkey; // хранимый код нажатой кнопки
unsigned char presstime; // время нажатия кнопок для регистрации нажатия
unsigned char pushUpKey; // код нажатой и отпущенной кнопки
unsigned char pushUpReady; // признак уже считанного кода pushUp

// новая процедура опроса кнопок меню
void readMenuKeysNew() {
unsigned char temptime;
unsigned char tempkey;

tempkey=PINB &0xFE;

if (tempkey!=254) { // нажата одна из кнопок меню
if (tempkey!=rkey) { // регистрируем нажатие кнопки меню
rkey=tempkey; // запоминаем какая клавиша нажата
presstime=counter100; // запомним значение 100герцового счетчика
}
else { // кнопка меню удерживается
if (presstime<counter100) { // пересчитываем время если произошел переход счетчика через ноль
temptime=255-presstime+counter100;
} else temptime=counter100-presstime;
//в temptime время удержания кнопки

// определяем достаточное ли время удерживается кнопка меню в режиме PushUp
if ( (pushUpReady==0) && (temptime>E_key_PushUp_press_time) ) {
pushUpKey=tempkey & 0xFE;
pushUpReady=1;
}
// определяем достаточное ли время удерживается кнопка меню в режиме pushHold
if (temptime>E_key_PushHold_press_time) {
readyMenuKey=rkey; // регистрируем нажатие кнопки меню
rkey=254;
}
}
}
else {
rkey=254;
if (pushUpReady==1) pushUpReady=2;
}
}

// процедура получения кода кнопок меню PushUp
unsigned char getPushUpMenuKeysCode(void) {
unsigned char t;
if (pushUpReady==2) {
pushUpReady=0;
t=pushUpKey;
} else t=254;
return t;
}

// процедура получения кода кнопок меню PushHold для обработки
unsigned char getPushHoldMenuKeysCode(void) {
unsigned char t;

t=readyMenuKey & 0xFE; // сохраняем код перед сбросом

if (t!=254) {
readyMenuKey=254; // сбрасываем код нажатых клавиш
}
return t; // возвращаем код клавиш
}

в программе необходимо циклически вызывать readMenuKeysNew()
а в местах где нужно получить код нажатой кнопки:

  • для pushUp - getPushUpMenuKeysCode;
  • для pushHold - getPushHoldMenuKeysCode();

выходные коды функций соответственно одинаковые… 254 - нет нажатия…

HikeR

значит вопрос с кривыми решен - кривая всегда будет накладываться на входящее значение в микшер !!

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

предложенная схема учитывает этот момент? то есть не пойдет ли в разные микшеры одна и та же кривая (набор точек)?

кстати, в микшерах иногда есть поле offset - в чем его математический смысл ? нужно чтото подобное делать ?

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

ВитГо

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

так пойдет ?

точно так же будет массив точек каналов…

там смещение средней точки нужно делать или нет ?

Aleksey_Gorelikov

Виталь, ответь на 2 вопроса. Это (В2) будет “Наш ответ китаю?” или для себя любимого… ? Просто, в первом случае - давно пора на рцгрупс (ну или хотябы в отдельную ветку тут) и, если уж хочется русский - то как опцию (в меню, усл. компиляцию - не важно). А если “для себя”, то вполне возможно не стоит много писать, а стоит много летать. Взгляды и предпочтения со временем меняются. Хочется чего-то нового и принципиально другого. А вот чужие стериотипы - могут сбить с толку. Я вот, к примеру, задумался, как из Р/У планера сделать частично свободнолетающий. 😃 Т.е. - нажал кнопку - планер отработал определенную последователность комманд, как свободники по таймеру. Догадаешься для чего?
А с подходом - “реализовать все и вся” - много противоречивых моментов выползает. Учитывать все пожелания? - там народ танками управлять собирается, и целой флотилией сразу… 😃 Тогда уж лучше интерпритатор (бейсика? Английского? Русского?) написать, чтоб любой страждущий прошивке свои пожелания скармливал и она делала все “пучком”. Кстати, а RC-OS не на этом принципе работает? 😃

ВитГо

Я все прошивки пишу для “себя любимого” 😃 Ответ Китаю - просто для красоты слова 😃
Просто у меня сейчас есть пожелания по функционалу прошивки которые пока никак не реализованы…

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

Сейчас я готов написать прошивку на которой возможно и остановлюсь (по крайней мере скорее всего третьей прошивки не будет просто потому что упрусь в ограничения самой меги - и здесь либо отступлю от постулата и впаяю 128ю мегу… либо подниму вопрос в “Самодельном передатчике” о создании новой платформы для которой я буду писать прошивку (сам я железо вряд ли буду паять…)

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

в отдельную ветку здесь - не знаю… стоит ли ? первая версия прошивки тупиковая в плане алгоритма… развивать ее я не буду… только исправлять ошибки… все кто ее зальют - всегда получат здесь максимально возможную поддержку…

ветку для новой прошивки (V2) - может быть попозже… если честно боюсь я как то сильнопосещаемых веток форума… привычка у меня к “камерной” работе с единомышленниками 😃

Кстати сделать свободнолетающий планер на второй версии будет реально… этот функционал реализуется условными микшерами и 5ю внутренними таймерами… - ранее о таком использовании функционала я не задумывался… но сейчас прочитав вашу задачу проверил реализуемость на второй версии - можно реализовать… правда время автоуправления будет ограничено примерно тремя минутами (с посекундным заданием программы)

Подход реализовать “все и вся” - очень тяжел - я с этим столкнулся в первой версии когда пошли пожелания по старту\останову таймера - действительно тяжко… всегда найдется тот кому нужен будет 3,4,5,6ой вариант который я не сделал… - поэтому во второй версии я задумал универсальный механизм задания логики поведения передатчика и модели - это будет еще не макроязык (нет итераций в обычном понимании), но уже достаточно развитая система условий \ выражений и выполняемых в зависимости от них действий…

такую логику я пока не увидел ни у одного передатчика (немного есть у футабы8 в части назначения событий управления таймерами) - поэтому скорее всего вторая версия прошивки будет немного сложновата для освоения новичком после “обычных” аппаратур, для тех же кто пробовал МСВ\Thus\VCoder нововведения будут только приятны, и возможно даже желанны (из разряда пожеланий о которых думают, но не говорят вслух потому как этого нигде и ни у кого нет)…
опять таки документацию для второй версии я планирую писать сразу (чтобы небыло разрыва между функционалом и описанием)

Русский язык - у меня очень много людей которые высказывают его необходимость… при желании потом можно будет сделать перевод на английский… наоборот не делаю потому что английские сокращения на экране короче русских - поэтому лучше сначала все разместить на русском, а уж на английском точно получиться не хуже… 😃

применять RC-OS смысла не вижу… итак памяти мало… тем более у нас же не 128ая мега, я все таки не оставляю надежды использовать только стандартную конфигурацию оборудования… а оставшееся место во флеш памяти использовать для хранения моделей… в первой версии кстати свободно около 10 кб… - это еще около 30-40 моделей !! (но в первой версии этого кода нет… хочу его написать для второй версии)

Aleksey_Gorelikov

По поводу логики, которой нет ни у одного передатчика - есть еще что посмотреть… Старый, добрый мультиплекс серии профи 4000 … Его функционал вроде бы никто не повторил, и несмотря на старость (сродни дерьму мамонтов) он досих пор уважаем и востребован в определенном (правда достаточно узком) кругу моделистов. А узкий круг наверное потому, что конфигурить его без компа - практически нереально, чтобы не запутаться в наворотах - надо все настройки долго обдумывать и записывать на бумажке. Ну и плюс (точнее минус) - то, что в силу его старости - проявляются болячки схемотехники. Энергонезависимой памяти тогда еще небыло, пзу - не знаю почему использовать не стали… Короче - прошивка у него лежит в статической озушке, которая питается от литиевой батарейки. Батарейки свое отживают, менять “на горячую” не все могут и эти передатчики вымирают.
Но разговор не об этом. Рекомендую поискать на него инструкцию и посмотреть что он может. Возможно передрать что-то из него. Удачи!

ВитГо

спасибо, обязательно гляну… (у меня уже коллекция всяких мануалов 😃) и действительно очень полезно их читать)

NVS

Чувствую, начинается интересное и серьезное “кино”… Задумки многообещающие…
Что ж, хочется пожелать, чтоб все это реализовалось в “рабочую” версию…

Stepan_M

очень ждем.

Aleksey_Gorelikov

Еще хотелось бы дружелюбный интерфейс. Чтобы мозг не сломать что-то настраивая.

ВитГо

вот над этим сейчас и ломаю голову…
уже перебрал 2 способа меню…
к сожалению чтото изобрести пока не получается… скорее всего будет движок меню от первой версии (удачно там функционал добавляется)
Сейчас думаю как сделать удобным редактирование параметров, общая задумка такова - заходим например в микшеры, выбираем получатель - получатель это просто канал (их будет как и в первой версии 16)
выбираем источник - при этом как бы проваливаемся в новое меню - где будет выбор канал, функция, выражение, если это выражение или функция- то опять проваливаемся - и выбираем либо можем создать прямо от сюда…
сейчас вот думаю над организацией стека вызовов (чтобы как по подпрограммам через call ret работать) с глубиной где то 10 вызовов наверное…

скоро наверное можно будет выложить болванку…

ВитГо

вопросик маленький - а насколько нам в имени модели нужны маленькие буковки ?

будут знаки (всякие + - ? и так далее), латинские большие буквы (A…Z) и русские большие буквы (А…Я)

в принципе я могу сделать и все буквы - но возникают две проблемы - мелкая и только моя: как все разместить на экране (сливаться будут буковки и знаки) и проблема ваша: задание букв для имени модели будет занимать большое время, так как придеться перебирать большое число букв…

кстати, навигацию по выбираемым буквам сделать 4мя кнопками или сделать как в первой версии (вверх\вниз смена позиции для печати буквы, и вправо\влево - смена буквы) ?
или четырьмя (влево\вправо, вверх\вниз) кнопками двигаться по выбираемым буквам, а смену позиции сделать автоматом или специально выделенными позициями служебных буковок (типа “пробел”, “удалить”, “ввод” ?

druksel

навигацию по буквам по старому вполне удобно. мелкие буквы нафиг не надо. не письма же любовные строчить на аппе… 😃

ВитГо

просто количество буковок возрастет по меньшей мере вдвое…

Stepan_M

не не нужно маленьких букв, желательно оставить как в старой прошивке

ВитГо

ОК.

Давно тебя небыло Степан! 😃

В общем набор символов будет такой:
0 1 2 3 4 5 6 7 8 9

    • ! № % * / .
      Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
      А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ъ Ы Э Ю Я

Чтото нужно добавить/ убавить ? может быть в знаках оставить “+”, “-”, “*”, “/”, а остальные убрать ?

Stepan_M

Занят был сильно, моё мнение знаки типа % ! + / № можно убрать, ведь как мы назывем модель в передатчике мой пример

MANTA-01
ULTIMATE
KATANA

Так что минус лучше оставить для черточки.

ВитГо

ОК, плюс тогда тоже оставлю… может кто нить назовет модель “ПЕРВАЯ+МОЯ” 😃))

В имени модели буду делать 10 символов… а то мне 8 иногда мало было…

Stepan_M

Да 10 будет нормально.
Для новой прошивки пожелание - после триммирования модели можно сделать автоматическое сохранение, а то я часто забываю сохранить модель после полета.

ВитГо

к сожалению это обещать не могу… дело в том что модель перед сохранением упаковывается и записывается в новое место…
таким образом еепром перезаписывается равномерно по всему объему и не возникает ситуации что например начало еепрома уже по 1000 раз писали а конец еще ни разу…
в принципе могу подумать над автосохранением модели при изменении каждые 10-20 секунд…

Stepan_M

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

ВитГо

ладно, пожелание я понял… подумаю как лучше сделать…

NVS
Stepan_M;bt38718

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

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

не на столько эта проблема с сохранением триммеров серьезная… по моему мнению…
Как бы Виталий не запутался в наших пожеланиях… ))))
Хотя, все, конечно, на усмотрение разработчика…

ВитГо

турнига и приемыши -10 на хс…
наверное закажу сейчас себе…
когда еще будет такой шанс

заказал аппаратуру и 3 приемника 😃))

ВитГо

Народ кто может рассказать про точечные микшеры?
прочитал вот такое в форуме про аврору: “Аврора предусматривает абсолютно любые миксы “канал-канал”, хоть линейные хоть точечные(точечных правда 3 или 4 всего штуки допускается)”

интересно как это ? и насколько это нужно?

HikeR

имхо имеется ввиду следующее:
линейный - uprate, downrate, offset (коэффициенты в обе стороны, смещение)
точечный - кривые по произвольным точкам.

иначе говоря, ничего необычного.

Stepan_M

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

druksel

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

ВитГо

в двойке будет 5 таймеров…

Pilot494

Извеняюсь! Может не тактичный вопрос? А как и чем прошивать??? Если можно ссылочку.

druksel
ВитГо;bt38893

в двойке будет 5 таймеров…

ААААА!!! хачу !!!😆😉😇

NVS
ВитГо;bt38893

в двойке будет 5 таймеров…

и один из них - время жизни аппаратуры…
и чтоб если в режиме countdown, чтоб на нуле не останавливался, а дальше считал…
можно ?.. 😒

ВитГо

первое (время жизни аппы) как то по другому делать буду…
а на счет остальных - сами будете режим для них выбирать…
а на счет режима countdown - немного не так будет…
просто программируете один таймер на отсчет назад (например с 5 минут до нуля)
а второй таймер программируете на отсчет вперед (от нуля до бесконечности)
ну и ставите событие на нулевое значение первого таймера (чтобы звук например подать)
а второй пусть считает… до события например остановки таймера или еще может какое зададите…
это всего 2 таймера…
3-ий можно использовать на счет во время работы двигателя (условие thro>5%)
4-ый - время полета в максимальными расходами
5-ый - ну сами придумайте наконец что нить ! 😃))

вот такая вот идея у меня по таймерам… - вы сами будете события и поведение по таймерам задавать… так что надеюсь что вопросы типа " а можно сделать …" - будут решаться только настройкой модели а не дописыванием прошивки…

ВитГо

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

ВитГо

Сергей Солоденников (AlcoNaft43) прислал в личку:

Вот набросал минимум вертолетных функций

Минимальные требования к аппаратуре для полетов на электровертолету

  1. Выбор типа тарелки
  2. Режимы полета - Normal, IDLE1, IDLE2, HOLD
  3. Для каждого режима полета настраивается кривая газа и кривая общего шага по 5 точкам. В холде кривая газа = 0
  4. Холд отдельный переключатель, обычно слева верхний/крайний. Режимы полетов - слева, холд имеет приоритет.
  5. Настройка чувствительности гироскопа через меню, не крутилкой, ибо ее можно сбить. Настраивается для каждого полетного режима, ибо разная частота вращения основного ротора может требовать разной чувствительности. Легкий доступ для настройки при настройке в поле. Настраивается в процентах.
  6. Таймер, работающий когда канал газа > 0. Причем именно не стик газа, а канал. Этого даже нет в футабе. Легкий сброс таймера, возможно тумблером.
  7. Сабттримы для регулировки горизонтальности тарелки при среднем положении машинок
  8. Реверс каналов
  9. Регулировка конечных точек для регулировки параллельного хода тарелки перекоса
  10. Микс тарелки перекоса. Настраивается направление перекоса тарелки и ее величина, в зависимости от движения правого стика и стика общего шага/газа. На футабе в некоторых мифических процентах, отрицательных и положительных.
  11. Дуалрейты и экспоненты по вкусу.
  12. Swashring - опция, позволяющая ограничить величину перекоса “тарелки перекоса” в крайних положениях стиков. Те если мы загоним, к примеру элеватор и элерон в угол одновременно, тарелке перекоса приходится очень туго, в реальном смысле. Но в тоже время когда лишь один стик в крайнем положении, то все ок. Принцип работы просто представить если поставить накладку с круглой дыркой на правый стик, при 2 моде. Есть только в продвинутых аппах, начиная с Футабы 8.
  13. Для бензиновых вертов еще нужен Throttle Cut на отдельной тумблере, хотя вряд ли на бензиновом будут летать с такой аппой 😃

Жду ваших комментариев, пожеланий относительно написанного (я рад что появился такой четкий и более менее достаточный список функций для вертолетов)

HikeR

В холде кривая газа = 0

чтобы не плодить сущностей, HOLD — просто еще один полетный режим, в котором кривая газа обычно задается “полочкой”. только вот высота этой полочки должна регулироваться обычным образом, не всегда она равна нулю, у двс глушить движок в полете — плохая идея ;)

Настройка чувствительности гироскопа… Настраивается в процентах.

опять же, зачем проценты, +/-100% это 200 градаций, аппа поддерживает 1024, зачем же терять в разрешении?

Swashring… Есть только в продвинутых аппах, начиная с Футабы 8.

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

Режимы полетов - слева

не совсем понял, в аппе этот тумблер справа.

Микс тарелки перекоса.

тоже непонятно, для чего микшировать AIL/ELE с шагом, но это ведь банальный микс который доступен даже в оригинальной прошивке.

Stepan_M

Виталий насчет таймеров понравилось - всмыле старт второго по стопу первого. Насчет остальных таймеров я думаю каждый найдет им применение.

Жаль насчет вертолетов ничего не могу посоветовать я в этом неразбираюсь.

Stepan_M

Насчет времени жизни аппаратуры может имеет смысл считать не время жизни как таковое а время работы после зарядки батареи правда придется сбрасывать вручную.

ВитГо

сбрасывать вручную не обязательно… можно сделать контроль прежнего значения батареи и если оно увеличилось то сбрасывать счетчик (значит либо зарядили батарею либо поставили новую)

Stepan_M

Да хотел об этом попросить но подумал зачем еще программу напрягать

ВитГо

😃 а напрягать и не придется… эту проверку делать нужно при старте прошивки… так что по идее ничего и не поменяется в части нагруженности…

Aleksey_Gorelikov

Мультиплекс считает съеденный ток.

ВитГо

гм… ну в принципе ток потребления наверняка берется усредненный…
так что умножить время в сек. на ток чтобы посчитать потребленную мощность - в принципе можно…

NVS

Так ведь не точно это будет… Разные модули - разное потребление. Причем намного. Если есть какой-нибудь сенсор в этой аппе по току (в чем я сомневаюсь), или если данные по потреблению можно снять, тогда да… А так - есть ли смысл делать нечто с очень примерными данными, на которые все равно нельзя ориентироваться…

sslobodyan
NVS;bt39660

есть ли смысл делать нечто с очень примерными данными, на которые все равно нельзя ориентироваться…

Абсолютно согласен. Разве не хватает контроля и индикации напряжения на аккумуляторах? Если заряд у них на пределе, то все равно летать не стоит, и не важно на сколько осталось заряда - на 5 минут или на 7.

NVS

Тут это… другой вопрос…
Можно ли (насколько сложно) реализовать мультиплексирование каналов ? Надо ведь еще дешифратор делать … Может кто обладает информацией по данной теме - подскажите, или посоветуйте что-нибудь… Есть ли ограничение по модулю ВЧ - приемнику, или любой комплект эту штуку проглотит ?
Было бы вообще супер. Виталий, кажется у тебя были мысли на эту тему ?.. Не забросил эту идею ?..

ВитГо

Нет конечно !!

Мультиплексирование можно сделать на любом приемнике и модуле…
В VCoder’e есть функционал мультиплексирования со стороны передатчика, накидывал схемку приемника - но не закончил к сожалению… - буду во второй версии делать тот же алгоритм мультиплексирования каналов что и в первой и потом все таки планирую заняться приемной частью…
Фактически демультиплексор это мега8 (ну сейчас наверное мега88) с кварцем - включается в один из старших каналов приемника и на выходе дает еще 3-4 канала…

ВитГо

Потихоньку возвращаюсь к написанию двойки (время появилось)

вот за несколько дней набросал меню (в принципе от VCoder’a взял)
ну и редактор имени модели vcm.hex.html

больше ничего не работает…

предложения по редактору имени модели (например по набору символов) или по меню принимаются к рассмотрению

В этой прошивке ничего больше не работает (видимо по крайней мере).

p.s. если будете перепрошивать “боевой” передатчик с моделями не забудьте сохранить свой еепром от своей версии прошивки !! иначе потеряете их !!

=V=simon

Ждёмс

ВитГо

ОК.

РЕДАКТОР КРИВЫХ

Предполагаемый набор функций
0. выбор номера кривой (возможно задание 16 кривых)

  1. предустановленные кривые:
  • выбор предустановленных кривых (какие варианты нужны?)
  1. пользовательские кривые
  • выбор количества точек кривых от 2х до 9 точек
  • задание точек

Используемые кнопки - кнопки навигации по меню + menu + exit

размер экрана 128 на 64 точки
в принципе можно разбить функционал на 2 экрана (ну может быть и на 3) - главное условие понятность интерфейса !

размер символов 5х8
при выделении к первому символу слева добавляется один пиксел

Нужно:
где что располагается, какими кнопками, как изменяется, как эт изменения отображаются

Приму в любом более менее понятно-читаемом виде

готов ответить на любые уточняющие вопросы

ВитГо

кстати - голову сломал - насколько нужно иметь возможность задавать положение точек кривых по горизонтали (входное значение) или достаточно их разбросать равномерно от -100 до +100 %% ?

то есть первый вариант, например, можно задать 3 точки
первая точка задается в позиции -100%
вторая точка в позиции -50%
третья точка в позиции +100%

во втором варианте три точки будут автоматом помещены в позиции -100, 0, +100 %% без возможности их двигать по горизонтали…

так вот - насколько нужен первый вариант, или второго с заданием произвольного количества точек “за глаза” ?

NVS

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

Вахтанг
ВитГо;bt36698

Органы управления
У каждого органа управления будет 2 параметра - значения минимума и максимума, для дискретных каналов генерируемое значение либо мин. либо макс. д

Предлагаю предусмотреть для дискретных каналов минимум 3 значения. Если кто захочет сменить 2-х позиционный переключатель на 3-х позиционный!

ВитГо

если даже захочет сменить - то все равно свободных ног у меги можно сказать что нет 😦
так что не выйдет у него ничего…

кстати условиями можно будет делать любое количество значений исходя из входящих значений нескольких выключателей

Вахтанг
ВитГо;bt39873

если даже захочет сменить - то все равно свободных ног у меги можно сказать что нет 😦
так что не выйдет у него ничего…

кстати условиями можно будет делать любое количество значений исходя из входящих значений нескольких выключателей

А зачем свободная нога меги? разве любой тумблер или любой стык не на одно АЦП подается?
Я имел в виду, что на канале тумблера иметь не только два крайних положения машинки но и середину. Вроде достаточно коммутировать 2-3 резистора.

Вахтанг
ВитГо;bt39857

кстати - голову сломал - насколько нужно иметь возможность задавать положение точек кривых по горизонтали (входное значение) или достаточно их разбросать равномерно от -100 до +100 %% ?

то есть первый вариант, например, можно задать 3 точки
первая точка задается в позиции -100%
вторая точка в позиции -50%
третья точка в позиции +100%

во втором варианте три точки будут автоматом помещены в позиции -100, 0, +100 %% без возможности их двигать по горизонтали…

так вот - насколько нужен первый вариант, или второго с заданием произвольного количества точек “за глаза” ?

-100, -50, +100 как-то не симметрично тогда -100,-50,0,+50,+100. Или -100,0,+100.
Вообще-то кривые, наверное, интересно настраивать в пределах -70…+70, мое ИМНО! т.к. на крайных положениях стыков полет проходить редко! думаю 5 точек достаточно. Лично я кривые применяю для предотвращения дёргания модели при управлении около нулевых положении стыков. т.е. это важно при заходе на посадку. У вертолетчиков естественно своя точка зрения.

sslobodyan
ВитГо;bt39857

насколько нужно иметь возможность задавать положение точек кривых по горизонтали (входное значение) или достаточно их разбросать равномерно от -100 до +100 %% ?

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

sslobodyan
Вахтанг;bt39872

Предлагаю предусмотреть для дискретных каналов минимум 3 значения. Если кто захочет сменить 2-х позиционный переключатель на 3-х позиционный!

Вообще-то по идеологии дискретные выключатели для того и двухпозиционные, чтобы что-то включить либо выключить. Введение третьего положения внесет сильное усложнение кода и настройки. Если кому будет нужен трехпозиционный (либо на больше позиций) переключатель, то его надо будет делать вместо крутилки. Т.е. крутилка как бы будет иметь несколько предустановленных положений. А учитывая то, что будет реализована логическая математика, то можно будет через нее реализовать например 4 положения закрылков от двух дискретных переключателей.

ВитГо

как вариант 4 положения закрылков от крутилки 😃 причем можно сделать банально кривыми…

ПО КРИВЫМ
Тогда останавливаемся на изменении только количества точек кривых, точки раскидываются равномерно по всему диапазону от -100 до +100 %%

NVS

И двухпозиционные переключатели от -100 до 100, а не от 0 до 100. Так по моему, логичнее…
На многих аппах именно так сделано…

ВитГо

по тишине я понимаю что интерфейс никто не предложит … 😦

=V=simon

С удовольствием поделился своими соображениями по поводу интерфейса, но я ещё не заливал VCoder2

sslobodyan
ВитГо;bt40114

по тишине я понимаю что интерфейс никто не предложит … 😦

Нет возможности попробовать 2 версию, но по кривым предложение такое. Рисуем сетку (горизонталь - только мах, мин и нулевое, вертикали - только где Х точек. Клавишами влево-вправо подганяем указатель-стрелочку под нужный Х, а клавишами вверх-вниз смещаем У данной точки. Сбоку от сетки нужно писать числовое значение У. И можно даже сразу после сдвига перерисовать сетку и кривую. Выходим из редактирования по Exit.

ВитГо

угу… так в принципе в первой и сделано…

=V=simon

Ждём с нетерпением функционирующей прошивки.

ВитГо

угу… меня тут пробило немного опять… сижу пишу 😃
сделал немного отличающийся механизм изменения простых параметров сейчас отлаживаю (почему то двойное нажатие exit регистрируется вместо одинарного… разбираюсь)

ВитГо

вот такой вариант редактирования параметров vcm.hex.html

смотреть в меню
Настройка передатчика - Навигация по меню - Задержка навигации

ВитГо

вотс… vcm.hex.html

в меню “настройка передатчика” уже можно играться некоторыми настройками:

  • задержками при навигации по меню
  • задержками при изменении значений
  • звуком при навигации по меню (при 0 звука нет)
  • звуком при изменении значений (при 0 звука нет)
  • контрастом дисплея
  • общим выключателем звука

юзабельность можете обсуждать в принципе можно еще подсказки (какие?) воткнуть в пункты - только скажите какие и куда

ВитГо

кто нить может скинуть резюмирующую информацию по форматам сигналов ппм для различных вч модулей ?
интересуют следующие настройки:

  • формат (позитив / негатив)
  • общая длина пакета (18,5 / 20 / 22,5 мс)
  • количество каналов в пачке
  • минимальная длительность канала в мкс
  • максимальная длительность канала в мкс
    середина в 1500 мкс вроде у всех ?

все эти настройки будут объединяться одним общим именем и будут выбирабельны для моделей
всего таких настроек будет штук 5… пользовательских из них наверное 2 или 3… (Смотря сколько накидаете стандартных)

sslobodyan

А что, предполагается использование одновременно нескольких ВЧ-модулей? Я никогда не видел, чтобы на поле кто-то постоянно менял Вч-часть. Или я чего-то не знаю?

Stepan_M

У меня когда была стандартная турниговская прошивка работало и с прямым и с инверсным PPM на модуле Корона. Других модулей нет так что помочь в этом плане немогу.

NVS
sslobodyan

А что, предполагается использование одновременно нескольких ВЧ-модулей?

Не то, чтобы часто и постоянно, но я, например, иногда меняю. А теперь еще один модуль появился… Так что “частота” смен возрастет…

sslobodyan

Как по мне, то сделать простую настройку экспоненты и коефф влияния кривых будет гораздо лучше, чем смену ВЧ модулей.

ВитГо

ну по экспонентам вопрос еще будет задаваться… 😃 так что сможете поучаствовать 😃

а на счет ВЧ модулей - многие уже меняют стоковый и на FrSky и на Spektrum DSM2… так что настройка ВЧ модуля точно не помешает

sslobodyan
ВитГо;bt40382

ну по экспонентам вопрос еще будет задаваться… 😃 так что сможете поучаствовать 😃

С удовольствием.

HikeR

Виталий, тут нарыл такую штуку - code.google.com/p/eepe/, внешний редактор моделей. не было мыслей по этому поводу? слил eeprom, отредактировал, тут же проимитировал, если устраивает - залил обратно.
соответственно весь функционал предустановленных кривых/микшеров/настроек можно вынести в программу. хотим бы, например, дефолтный биплан с раздельными элеронами и закрылками — жмак кнопочку, на выходе готовый набор миксов. хотим настройки для верта с 140°-ной тарелкой, опять жмак, одновременно визуализируем саму тарелку, ну и так далее.

а в аппе остается только базовый редактор без всяких предустановок.

ВитГо

гм… на счет внешнего редактора думал. даже где то запрашивал программу которая может .bin в .hex и обратно перегонять…

кстати идея на счет базового редактора хороша !! (не додумал до этого) потому как уже сейчас в двойке тяжко с памятью программ 😦

=V=simon

Что то подозрительная тишина, может скоро выйдет новая версия ))))

diwsky
=V=simon;bt41579

Что то подозрительная тишина, может скоро выйдет новая версия ))))

Думаю, просто у Виталия совсем нет времени, в связи с новой работой…

ВитГо

Эхх… Дмитрий, ты прав… вообще редко стал бывать на форуме…

А вот двойку потихоньку пишу 😃))

тут мне как раз пришла вторая аппаратура - вот на ней двойку и обкатываю…

=V=simon

ждём

Stepan_M

Виталий как прогресс с V2?

sashaNar

Не помешала бы еще одна фича - замедление отработки серв. То есть возможность сделать закрылки, шасси, бомболюк итд без применения специальной платки в модели. Ибо лишняя платка - вес, деньги и главное, время, пока ждешь ее.
Дело в том что ко мне едет аппа, и скорее всего буду ее перешивать после ознакомления.

=V=simon

sashaNar замедление есть в англоязычной прошивке. Тема Наш ответ Китаю

ВитГо

Да, конечно замедление будет… как и прежде любого канала при изменении в каждом направлении…

orio55

Виталий. Вы говорили о том что в вашу программу телеметрия впишется как родная. Хотелось бы чтоб было звуковое оповещение о превышении параметров. Например-увеличился ток двигателя до предельного звучит голос -перегрузка. Или просто пищание какимто тоном отличающегося от других. Упало напряжение-пора на посадку. И.Т.Д. Извини -на каком этапе разработка можно на нее расчитывать?.

ВитГо

это все реализуется заложенными возможностями программирования модели… будет там телеметрия или нет - это уже дело второе… для тех у кого телеметрии не будет уже заложил функцию расчета остатка заряда батареи (в зависимости от активности работы стиком газа)

Двойка пишется медленно… сейчас дописываю редакторы параметров - параллельно еще раз прорабатываю в голове процессор модели (который по параметрам будет ее обсчитывать)…
Так что пока смотреть особо нечего 😦

ВитГо

ЭЭЭЭ, редактор форматов ппм уже написан…
храняться форматы для 3х ВЧ модулей…

если у кого есть возможность - нужны рабочие параметров ВАШИХ ВЧ модулей…
интересует следующий формат данных (наверное кидайте в виде таблички прямо сюда)

Название модуля - не более 8 символов, лат\рус буквы, цифры, знаки
Полярность сигнала - негатив\позитив
Длительность пакета - 18,5; 20,0; 22,5; 25,0 ms - в принципе можете этот параметр не заполнять… по умолчанию будет 20,0
Минимальная длительность канала - 619…1384 мкс
Максимальная длительность канала -1619…2384 мкс

в принципе от вас интересует полярность сигнала и длительности
полярность - в меню SYSTEM
Длительности- практические значения длительности канальных импульсов при которых сервомеханизм еще отрабатывает сигналы приемников… - поэтому и интересуют связки ВЧ-передатчик, Приемник, сервы…
Для тестов можно использовать VCoder, в меню EDIT- LCH SET - LCH EPA задаем тестируемые длительности каналов и пробуем на приемнике… (в принципе даже не нужен самолет, достаточно к приемнику на столе подключить регуль и серву… ну к регулю батарею не забыть 😃)
у меня на тестах с ВЧ Eurgle при превышении длительности канала - машинка шла в край а потом возвращалась в центр (значит превышен импульс) - что у вас получилось ?

Нужна статистика… очень жду ее…

sashaNar

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

sslobodyan
sashaNar;bt43213

Не знаю можно ли ее реализовать программно - настройка вольтажа при котором начинает пищать и при котором вырубается.

Аларм по понижению напруги уже есть. А вырубалку программно не сделаеш - надо железо курочить (добавлять электронный ключ либо менять регулятор напряжения на регулятор с шутдауном), что в данном проекте пока не рассматривается. Да и не выдержите Вы долго постоянного писка аларма 😉

ВитГо
sashaNar;bt43213

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

Аларм по вольтажу с заданием порога есть в VCoder, в двойке будет тоже самое, так что хоть 2е банки лития, хоть 7 банок кадмия 😃 пищать не будет 😃
Только калибровочное значение подобрать точнее нужно чтобы значение на экране было точным - а то аппа сама вырубается при чтото около 7 вольт (возможно что индивидуально)

druksel

у моей аппы при 7,2 вольта вырубается

ВитГо

гм… значит мне повезло больше… Юрка вырубилась у меня при 6,9… проверял по показаниям вольтметра…
а вот турнигу V2 еще не проверял…

PARSEK

У меня тоже - запитал FlySky от двух банок, откалибровал, насколько возможно, выставил аларм на 6,9 В - аппа вырубилась раньше, чем сработал аларм. Скорее всего, надо менять кренку в аппе на лоу дроп, типа КР1158ЕН5.

Vаno

Ф-ию тестирования серво - плавное движение от мин. до макс. и тест нейтрального положения возможно добавить?

NVS
Vаno;bt43904

Ф-ию тестирования серво - плавное движение от мин. до макс. и тест нейтрального положения возможно добавить?

+1

ВитГо

а “тест нейтрального положения” - это как ?
сначала сдвинуть в любое (случайное) положение и потом вернуть в нейтраль ? (и так несколько раз)

NVS
ВитГо;bt43979

а “тест нейтрального положения”

Про тест нейтрали тоже не совсем понятно, а вот плавно от минимума до максимума в цикле - весьма полезная вещь. А если еще тестируемые каналы можно будет выбирать (какие-то вкл, какие-то выкл) - вообще здорово будет.

ВитГо

Очередная игрушка… vcm.hex.html

Сделаны:

Настройки передатчика:

  • Настройки навигации по меню (реакции на нажатие кнопок меню)

  • Настройки органов управления:
    А) выбор моды (1,2,3,4)
    Б) просмотр результатов калибровки
    В) калибровка аналоговых каналов

  • Настройка контрастности дисплея

  • Общий выключатель звука

  • редактор форматов сигнала ppm (для трех внешних модулей)

Настройки модели:

- редактор имени модели

  • редактор используемого внешнего модуля в модели

  • редактор количества используемых физических каналов

  • редактор констант и переменных

  • редактор значений органов управления

  • редактор каналов с возможностью задания 5ти средних точек

Буду благодарен за тестирование написанного, указание на ошибки и неточности.

По стикам решил их назвать по функционалу, так появились следующие органы управления: Крен, Тангаж, Тяга, Направление - думаю что это лучшее решение… настройки моды передатчика будут приводить любую физическую конфигурацию стиков к этим параметрам…

в правом верхнем углу выводится текущее значение быстродействия главного цикла… пока цифры радуют, процедуры в цикле “умудряются” сработать до 700 раз в секунду !! - все таки не зря я озадачивался скоростной оптимизацией… конечно эти значения сильно упадут когда дойдем до математики каналов, но радует то что не теряем процессорного ресурса скорости вычислений на работу с LCD

p.s. как же мне мало 64-ой меги !! уже вошел в режим экономии и попытки оптимизации всего и вся 😦(((

p.p.s. начинаю ненавидеть написание интерфейсов 😦 эти выводы меню, обработка нажатий кнопок и т.п. 😦(( все таки как было хорошо в первой версии VCoder’а - там движок меню брал всю работу по редактированию списков и параметров на себя… да, конечно не экономно с точки зрения расходования программной памяти - зато очень экономно с точки зрения нервов и времени на отладку…

druksel

Виталя, то ли ишшо буит… … а вообще возможности паршивки думаю будут шикарными… и про память… на крайняк придется таки мегу 128 использовать …

ВитГо

пока все таки надеюсь что смогу оптимизируя уместить все в 64ю мегу - если же нет то скорее всего я озадачусь внедрением в аппу второго процессора… уже есть мысли о разделении процессов работы с дисплеем и опроса органов управления от процесса обсчета каналов… - его можно будет повесить на вторую 64-ую или даже 128ую мегу…
достоинство такого решения - для модернизации не нужно будет перепаивать мегу (я например дома сам вряд ли смогу - нет ни паяльника, ни желания это делать) - в моей задумке нужно будет всего лишь навсего припаять в определенные места 7 проводков - что всего на 2 проводка сложнее чем припайка разъема для программирования 😃))

druksel

гут!! ждемс!! 😃

MrHot
ВитГо;bt44979

…в моей задумке нужно будет всего лишь навсего припаять в определенные места 7 проводков - что всего на 2 проводка сложнее чем припайка разъема для программирования 😃))

Вот это задумка ! Можно хотябы в общих словах ? Это как так ?

Я, как любитель подымить паялой конечно с надеждой смотрю на появление второго CPU в корпусе аппаратуры, согласен даже состряпать статейку по такому модулю и изготовить и выслать его вам за просто так. Но возможно, я совершенно не понимаю о чём идёт речь (переоцениваю свои силы) и что именно нужно делать со стороны аппаратных ресурсов. Только погружаюсь в это мутное озерцо аппаратур. Пока, я разобрался только с питанием. 😦

На мой взгляд, стоит сделать второй проц. У проекта появится второе дыхание. Виталий, вы как программист сможете больше думать о функционале, а не о том, где бы ещё скостить десяток байт памяти программ. Тупик наверняка вот, он… дышит уже в спину. Обидно будет, если раком встанет всё. Это конечно немного эгоистично, но если возможности аппаратной системы уже исчерпаны - то может стоит согласиться с тем, что надо что-то менять при помощи паяльника ?

Вахтанг
ВитГо;bt44979

… - его можно будет повесить на вторую 64-ую или даже 128ую мегу…
перепаивать мегу (я например дома сам вряд ли смогу - нет ни паяльника, ни желания это делать) -

Второй процессор это значительное усложнение аппаратуры, и доп. печатная плата.
Жал вы не в Москве, перепаять процессор не проблема. Надеюсь в ваших краях найдете специалиста.
Если надо будет помощь в разводке и изготовлении ПП, обращайтесь, помогу.

ВитГо

дык в том то весь и фокус !
у второго проца из навесного фактически только кварц с двумя кондерами !! (за что я люблю меги - так это за их самодостаточность!)
все органы управления остаются на первой, уже впаянной в аппу меге !

ВитГо

использование памяти меги в VCM уже достигло 45 %… написано процентов 70 интерфейса…
наверное для дополнительного flash диска места совсем мало останется 😦

sslobodyan
ВитГо;bt45362

использование памяти меги в VCM уже достигло 45 %… написано процентов 70 интерфейса…
наверное для дополнительного flash диска места совсем мало останется 😦

Виталий, а может просто переместить всю память на отдельную епромку и не городить со вторым процессором? Мне кажется, что разделение программы на два независимыъ вычислителя достаточно напряжное решение. Сразу возникнут вопросы обмена данными и синхронизации работы. Я когда-то таким занимался 😦 . Да и кода для этого прийдется написать немало. Так что я голосую за епромку.

MrHot

Есть SPI в режиме Full Duplex на завидной скорости обмена. Есть на него прерывание, которое будет очень небольшим. Можно заставить один из процов собирать все данные, отправлять их по SPI и заниматься вопросами интерфейса. Второй проц может взять на себя задачи конечной обработки/формирования пакетов. Успешность выполнения такого проекта будет во многом зависеть от возможностей деления/распределения функций двух CPU.
Как бы их так поделить - чтобы обмен по SPI был однонаправленным…?

Как мне показалось, если взять рядового человека умеющего паять и что-то травить на текстолите, то задача протравить плату под второй проц и впять его будет выглядеть меннее травматично для модернизируемого изделия нежели перепайка проца. Просто, я знаю что при неумелой перепайке люди порой гробят дорожки на модернизируемом аппарате. И с оглядкой на это - некоторые просто боятся заниматься такими извратами. Качество удержания дорожек некоторорыми текстолитами из поднебесной - часто оставляет желать лучшего. Но бывают и исключения. Да, надо найти спеца, надо запастись правильным инструментом и материалами… Но с другой стороны, на втором CPU нам даже плату можно трассировать на халя-баля… у него выводов то бует: раз, два и обчёлся. Индикатора нет, кучи входов АЦП- нет, будет выход, SPI, питание, кварц и… туча пустых портов. Приклеить мини-плату с процом на заднюю стенку аппаратуры на термопистолет и всё. Если что - плату выкинул, “стандартную” прошиву залил и ты никак не испонганишь ни дорожки, ни проц… Т.е. есть некий шанс на откат процесса. Возможно, именно это кому-то добавит смелости в модернизации.

ВитГо

Именно так как говорит Роман я и думаю…

причем еще раз повторю - на плате нужно будет разместить: мегу128 (или 64), 2 кондера, кварц… - все !!!
в принципе даже плата не нужна… все в воздухе чудесно повеситься… и на термопистолет или еще как закрепиться на любое удобное место…

как разделить процессы я уже продумал… - обмен правда будет все таки двунаправленный от базовой меги - состояние органов управления и информация о тренерском захвате, от дополнительной - команды на дисплей… ппм будет генерить дополнительная мега. она же если нужно с блоком телеметрии взаимодействовать…

ВитГо
sslobodyan;bt45395

Виталий, а может просто переместить всю память на отдельную епромку и не городить со вторым процессором? Мне кажется, что разделение программы на два независимыъ вычислителя достаточно напряжное решение. Сразу возникнут вопросы обмена данными и синхронизации работы. Я когда-то таким занимался 😦 . Да и кода для этого прийдется написать немало. Так что я голосую за епромку.

Проблема не в памяти… еще в первом кодере я уместил более 8 моделей. - я считаю что этого для хобийного направления аппаратуры более чем достаточно…

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

хедтрекер или тренерские функции или телеметрия - все таки интересны мне и я хочу их вживить…

в двойке алгоритм генерации сигналов будет другой… посмотрим что будет… а там и решим…

просто дополнительно еще и программа сильно разраслась. все таки функций напихал туда тучу !!!

druksel

Виталь, эси оченна надо - готов те травануть , впаять и отправить мегу 128… тока дай схемку на какие ноги выводы делать… и какой кварц на нее повесить…

MrHot

Платы… платы… платы…

Смотрите что я нашел, для меня - было откровением что такая удобная штукень есть (возможно, кото-то тоже не видел)

Описание:
“Двусторонняя макетная плата MTR248 с металлизацией отверстий, стеклотекстолит 1.5 мм., шаг отверстий = 1,27 мм. Размер платы = 40х40 мм. 1-я и 2-я стороны разные.”

цена: 45 руб (даже три раза на автобусе не проехать…)

Ссылка на товар.

Это не реклама. Это просто попытка показать - что всё уже есть и делать ничего не надо. Стоит - смешно.
Ой…! Вернее длать надо много, но в программе. 😃

А чё, красиво: кварц втыкается в дырдочки… проводочки - тоже, да кондёры под кварц будет куда удобненько прицепить. А с обратной стороны - так вообще россыпон из SMD можно “насыпать” если вдруг припрёт что-то сильно.

Софт… софт… софт… - вот наше всё…

druksel

Роман, эт конечно здОрово что такие штуки есть на белом свете… но вот к примеру мне до ближайшего магазин, где эту платку купить мона надо на машине 200 км пропилить… поэтому прощще травануть и не париться… хотя за фотку спасибо… кое на какие мысли наводит… ну а касательно моего предложения Виталию - оно в силе… поскольку я в программировании практически ни бум бум то хоть таким способом попытаюсь помочь ему с аппой в ее совершенствовании. тем более что у меня в этом как бэ личная заинтересованность есть… 😉

MrHot
druksel;bt45471

…вот к примеру мне до ближайшего магазин, где эту платку купить мона надо на машине 200 км пропилить…

Да… далеко, полностью с вами согласен. Фирма “Десси” вроде как располагается по адресу “107113, г.Москва,…”, и мне нужно до неё ехать несколько тысяч километров. Но я туда не поеду. Я сделаю заказ по обычной почте (хавают наложенный платёж), а ещё лучше - я сам протравлю всё.
Но повторюсь, вдруг кому-то банально лень травить… или просто не умеет человек. Вот возьмёт и закажет.
Вопрос со впомогательной платой можно считать полностью исчерпаным.

  • Она есть.
  • Стоит копейки.
  • Покупается наложенным платежём.
  • Делается на <раз> <два> самим любителем.
ВитГо

я купил такую плату но для 128 меги…(там шаг выводов около 0,5 мм) - а так именно так она и выглядит… стоила кстати в чипе и дипе (мягко говоря не самом дешевом магазине) рублей 90…

MrHot
MrHot;bt45466

шаг отверстий = 1,27 мм.

Пппардон…
Надо поискать с шагом 0.8мм точно такое-же изделие. Не знаю, пока не нашел.
А я почему-то был твёрдо уверен в том, что там на проце, шаг именно 1,27мм. Обшибся я.
Прошу прощения за приведённый образец платы.

Mega_128…Mega_64…
Итог: Разные процы - разный шаг.

ВитГо

вот она: www.chipdip.ru/product/qfp-pcb.aspx

или вот: www.chipdip.ru/product/ppo-qfp-pcb.aspx
помоему даже все таки вторая

MrHot
ВитГо;bt45505

вот она…

Вот и гламурненько !..

QFP печатная макетная плата - шаг не написан. Точно вопрос шага этой платы решится наверное только после покупки этого образца. (может, уже кто-то покупал…)

ППО QFP-0.8 36-128 выводов, печатная макетная плата - с этим вроде проще. MEGA в корпусе 64A обязана встать как родная. Т.к. шаг продекларирован 0.8мм

Вахтанг
MrHot;bt45508

QFP печатная макетная плата - шаг не написан. Точно вопрос шага этой платы решится наверное только после покупки этого образца. (может, уже кто-то покупал…)

Написано на самой плате - 0,5мм

MrHot
Вахтанг;bt45564

Написано на самой плате - 0,5мм

Хм… точняк ! Спасибо… заметил.

Я тут мотрю раздел “Ordering Information” в чтиве на процы Mega641_1281_2561…

Тот факт, что есть даже AtMega2561 в корпусе 64А говорит о том, что шаг 0.5мм для нашего случая переделки излишен. Т.е. нужен шаг макетки в 0.8мм. Т.е. любой проц этой линейки, можно купить в корпусе 64А. Тем более классака AtMega128A так же выпускается в “64А”.
Так или иначе, макетки добыть/купить относительно просто, и сделать их самому тоже не проблема (при должном подходе и достаточном желании).

ВитГо

ладно, мы чтото отклонились от темы…

кто нить может на себя взять труд по фотографированию всех экранов меню второй версии? нужно просто более менее качественно пофоткать все экраны с разрешением 640 на 480 и накидать фотки в .doc файл чтобы я мог начать составление документации (А то потом за раз все не осилю описать)… чтото можно описать и самостоятельно, если что я поправлю…

вот ссылка на свежий файлик (меню “Условия\Выражения” пока не фоторафируйте, еще пишу) vcm.hex.html

MrHot
ВитГо;bt45577

…кто нить может на себя взять труд по фотографированию всех экранов меню второй версии?

Есть штатив, зеркалка, хорошая вспыха (в потолок) и есть желание ознакомиться с прошивой.
Вот и познакомлюсь так сказать. Постараюсь сделать.
Пускай кто-то ещё сделает. Можно зато будет отобрать лучшие картинки. Всегда хорошо, когда есть выбор.
Вот только сегодня припаяю 6-ть проводков на вчера пришедшее тело аппы и …

ВитГо

ну вспышка мне только мешала… блики создавала плексе…

в общем буду рад если чтото сделает мне эти фото !

MrHot
ВитГо;bt45611

ну вспышка мне только мешала…

Ещё немного отколнимся в частности… 😃
Надо её (вспыху) в потолок “упирать”. Тогда источником света станет не мелкая лампочка размером 3 см, а несколько квадратных метров яркого пятна на потолке (если он белый). Но дури у вспыхи должно быть очень много. Тогда свет пойдёт как-бы с разных сторон сразу. Но лучше правда - без неё и просто на штативе.

Шнурок на AVR ISP MkII я себе распаял. Долго вкуривал - почему у меня AVR ISP MkII сигнализирует о некорректной распайке кабеля ISP… Оказалось, что в спеках на AVR ISP MkII прописан кондёр на линии RESET не более 10uF. а там - 47uF впаян тантал. Блин… пофоткать толком ничего не успел.
В меню настройки контрастности, насколько я понял ещё недоделано ? Или уже обязано работать. а то что-то у меня не получилось поправить контрастность. Где я протупил ?

MrHot

Всё. Разобрался - какого чёрта я не мог сдвинуть настройки с места. “Задержка изменеия” не давала мне этого по-умолчанию. Т.е. я привык к резким и чётким нажатиям, а она меня игнорировала. Скрутил всё на минимум (Задержка изменеия) и процесс пошел. Только что-то меня немного коробит: “Задержка изменеия” у меня на минимум и “Контрастьность” тоже. Т.е. я пробую два показателя отрегулировать и везде шкребу по нижней границе. Настораживает однако… Но работает… 😃

ВитГо

по пределам значений ориентируйте меня !!
многие вещи поправимы…

конкретно с контрастностью - все очень сильно зависит от аппаратуры… для турниг первой версии и например юрки - значения контрастности дисплея отличаются на 5 единиц…
крайние значения не делал чтобы не создавать экстрима в работе самого дисплея как железки… - но если будут такие желающие - то без вопросов… сделаю 😃

MrHot
ВитГо;bt45673

по пределам значений ориентируйте меня !!

По контрастности: я ввёл текущий минимум и показывает самым лучшим образом. Если ставить максимум - то вааще нихера не видать. Это у меня так. Просто, если у меня минимум - это хорошо, то может кому-то придётся ставть ниже (а там счас низя). Так может ещё -4 сделать для текущего минимума ?
Стоит попробовать.
Я - отпишусь…

ВитГо

Версия для фотографирования vcm.hex.html

ИЗМЕНЕНИЯ:

-Убран счетчик главного цикла

  • Минимальное значение контрастности 15 единиц (было 25)
MrHot
ВитГо;bt45675

Минимальное значение контрастности 15 единиц (было 25)

С контрастностью - полегчало. Думаю, можно так и оставить. Диапазон тот что нужен. Врятли меньше кому-то нужно будет. Если что - объявятся и напишут.

Выложил фотки, что наклацал. Но ещё не внёс их в Word. И далеко не все там. Время - это тоже наше всё.

ВитГо

ух ты !!
класс !!!

как смогли так сфотографировать?!
я для первого кодера замучался фотки делать - постоянно то блики то не видно то не четко… а тут просто заглядение !!!

Роман, с твоего позволения для фотографирования меню буду обращаться к тебе !

MrHot
ВитГо;bt45730

ух ты !!
класс !!! … как смогли так сфотографировать?!

Спасибо за коментарий, а я только вот собрался просить тебя Виталий глянуть набор фоток чтобы оценить - годятся или нет по качеству. а ты сам всё глянул.
Очень хорошо что фото на уровне. Я рад. Но у меня и к этим фотам есть вопросы:

  • Я не заметил пылину в левой части изображения, хотя и тёр перед съёмкой экран специальной синтетической “тряпочкой”. Прилетела падла и её глазами не видно. а вот объектив её увидел и блин совершенно честно и справедливо её везде изобразил.
  • Внизу изображения имеет место теневой переход, он не мешает читаемости, но он есть и я должен был что-то сним сделать (как-то поставить свет иначе, но я пока не знаю как)
  • На некоторых кадрах, пока я двигал пульт лазая по меню - есть лёгенький блик. Он - тоже гавно то ещё. Вроде я старался без них (бликов), получилось… но не до конца.

Т.е. я такое делаю первый раз. Примерно только знаю что надо, а опыта небыло. Думаю, что если бы я делал это разок так в пятый то пунктов было бы поменьше. Ну, ничего… не всё так печально.

Я веть купил вот только что аппу. Снял с дисплея защитную пленку. Так у меня аппа пробыла всего один день. Вчера, я достал защитную плёнку для КПК и решил её присандалить перед фото-съёмкой и блин заметил что акрил (или что-то там ещё) на дисплее уже имеет некие разводы или царапинки, которые я не могу свести. Я офигел ! Офигел что не успел ещё помучать аппу, а дисплей так легонько коцается. Тут же пропали все сомнения что дисплей надо срочно накрыть. Накрыл. Но понял что внутри аппы есть пыль. Т.к. разборка аппы - для меня почти как за хлебом сходить. Т.е. я всё это к чему. Не то чтобы я такой чистоплюй и терпеть пыль не могу. Я про то, что чем дальше - тем больше будет пыли на фотах, и с этой пылью очень трудно мне будет справится. И её видно что самое хреновое. Т.е. будет мануал “в пыли” … если если так можно сказать.

Как фоткать злой LCD… (оффтоп, но вопрос был задан)
Технология съёмки LCD (мой первый опыт):
Кажется нужен (как ни странно) вечер.
Обычный стул, на него кладётся горизонтально аппа.
Включаем свет в помещении. На спинку стула можно повесить тряпку чтобы свет на LCD мог попасть только с потолка (а не напрямую от лампы освещения помещения). Это вопрос эксперимента и небольших передвижек.
Рядом со стулом - ставим обычный штатив для фотика. Я даже полностью штатив не раскладывал по полной высоте.
Ставим на штатив фотик, наклоняем объектив фотика почти вертикально вниз, но до полной вертикали - немного недотягиваем (градусов 5…10).
Выключаем (или просто не ставим на фотик) вспышку.
Если есть настольная лампа (энергосберегайка) - то направляем её в потолок (должен быть белым, или желтоватым).
На фотике (очень желательна зеркалка) ставим режим “А” - приоритет диафрагмы и ставим её значение например 6,3.
Фиксируем ISO на 100 или 200 единиц.
Делаем замер экспозиции притопив кнопочку. Замечаем что там написал нам фотик в качестве времени выдержки. Запоминаем и переходим в режим “М” (полный ручник).
Ставим в ручняке диафрагму (что до этого ставили) и ставим выдержку. У меня была диафрагма 6.3 а выдержка получалась примерно 5…6 секунд.
На объективе клацаем переключателем режима фокусировки и переводим его в положение “М” (ручник). Вручную, наводим фокус.
Если есть (а если нет - то используем внутренний таймер фотика) - втыкаем пульт-кнопку в фотик, (чтобы нажимая кнопку спуска наш фотик никак не дрыгался).
иии… вдохнув, начинаем делать кадры один за другим. Если полы с досками, и они пошатываются - то в течении длительной выдержи нужно стоять крепко и не топтаться как слон, а то резкости на кадрах не будет (пыль кстати тоже расплывётся 😃)
Т.к. выдержки - конские, то в фотике надо включить шумодав для так называемых “горящих” пикселей. Это есть кажется только в зеркалках и то не во всех.
Я использовал любительскую зеркалку “Canon 5D” с объективом “Canon 24-105 F4 L”.
Фотал на фокусном расстоянии 105мм, в RAW. потом - делал crop, повышение резкости, контрастности, сохранял в JPEG, а потом ещё дополнительно обрезал до нужной пиксельной ширины.

Ну, вот. Надеюсь, я ответил примерно на вопрос про то, как можно фоткать. О том, как нужно фоткать я пока не знаю. Всё экспериментально.

ВитГо;bt45730

Роман, с твоего позволения для фотографирования меню буду обращаться к тебе !

Буду помогать как смогу. Не могу обещать что буду резким как понос (т.к. процент гемора в совокупе довольно велик), но делать буду.

Я вот нафотал что-то, а дальше фоткать просто боюсь из-за того, что уже то что есть надо как-то систематизировать и разместить в неком WORD-е или в HTML-е…
Не могу понять - как это лучше сделать чтобы изменения и дополнения можно было живо и внятно вносить и при этом не запутаться. Т.е. я про то, что я таким ни разу не занимался, и когда ты и я будем вклинивать изменения в эту доку - то надо как-то определиться что мы делаем и как структурируем. Пунктов меню - как тараканов в бане… запутаемся нафиг…
У кого есть опыт такого документирования ? Как хотябы именовать жипеги… ?!

ВитГо

ДА уж… прочитал как ты делал эти фотки… “звезда в шоке”… 😃 я обычной мыльницей с рук фотографировал 😃))

по доке… - думаю я начну писать доку (составлю какой то каркас), потом будем все описывать по структуре меню… и в дальнейшем как и в первой версии кодера и доки к нему - сделаем несколько примеров настроек “под ключ”

MrHot

Чтобы не потонуть в фото-материале, я наверное возьму сначала один какой-то “раздел” меню и профоткаю его вглубь. Опишем, потом сделаем ещё шаг, и так далее. А то, трудно будет если сначала родить весь фото-материал, а потом там рыться в нём как в помойке. Я ещё начал как-то не с самого начала, и уже вижу что выверт какой-то получается неприятный. Счас сгоняю в гости к токарю, а потом успею пофоткать ещё. За выходные, думаю переварить побольше.

Меня клонит на интерактивные (кликабельные) описания. В word-е кажется это всё делается. Удобно, когда описание становится длинным и нудным. Блин, я ещё не видел описание от первой версии. Надо поискать его и зачитать обязательно. Я то я как-то с хвоста к кобыле подхожу (а веть и лягнуть может) 😦

Есть ещё вот это. Может приглянется на первую страницу мануала ?.. Позже, сделаю ещё что-нить из области “фото главного виновника”.

MrHot

Разкурочил аппу и активно работаю над подсветкой.
Непростой вопрос однако. Никогда не делал подобного, но что-то хорошее обязано получиться. Можно будет, я думаю, переснять все в более добротном виде. Если всё будет плохо - отрубить подсветку всегда можно.

sotikov

Фото железа посветки выложи, то есть как приделал диоды к экрану изнутри.

MrHot
sotikov;bt45972

Фото железа посветки выложи.

Сделаю тему в разделе самодельщиков. Но врят-ли я рожу что-то уникальное. Уже имеются материалы: Вариант_1, Вариант_2 и Вариант_3. Я дома, без ЧПУ смог попробовать повторить вариант_1. Сверление удалось, но появились паразитные яркостные пятнышки на экране. Это меня не устроило. Я положил примерно один выходной на эту плаху. 😦 Счас смотрю все ссылки, что я тут привёл - я рожу вариант_4 это точно. Думаю, что идеала я не буду добиваться (лёгкий градиент буду терпеть), но и пятен от разбегания света в разные стороны я не буду допускать.

Уже есть наработки (всё профотографировано) по модернизации кнопок этой чудесной аппаратуры. Просто, уже нет пути обратно: я и многие другие люди, уже развращены мягеньким тактовым “щелчком” кнопочек на сотовых телефонах. А тут - надо тестировать прошивки Ахтунг ! Нужно постоянно всё менять, сносить, набивать… Я просто в ауте от штатных кнопок. Они так щёлкают, нет, - клацают с неким ударом… что у меня всё опускается. Хочу получать удовольствие а не терпеть.

Прошу прощения за лёгкий оффтоп, но отчасти, это связано и с прошивкой и документированием самой прошивки.

vadimka29

Виталий! Включение подсветки будет происходить так же на 17-й ноге единица? Просьба - если есть свободный битик в епроме, давай введем в меню общих настроек устройства пункт подсветки: автовыкл.=да/нет, чтоб можно было работать с постоянно горящей подсветкой. Это можно к контрастности присовокупить…

ВитГо

да, подсветка будет на той же ноге… - не могу же я кинуть всех кто делал на 17ю ногу в первом кодере 😃))
на счет настройки подсветки наверное сделаю более менее полноценное управление подсветкой - вкл\выкл, время подсветки…

vadimka29

Виталий! А сейчас для тестирования надо принудительно перепаяться на вкл подсветки, или уже работает подсветка от V1? (тестирование происходит, как обычно, ночью:)).

Petr

Сегодня закончил работу по подсветке дисплея Турниги. сразу оговорюсь, идея не моя, подсмотрел на РЦД, мое только техническое исполнение.
Рассеиватель подсветки вырезал из рассеивателя портативного проигрывателя DVD, он оклеен белой пленкой, которую оставил. Торцы, которые при резке остались без пленки заклеил белой пленкой Оракал. Вдоль одной длинной стороны (на ней пленки нет) приклеил супермоментом шесть белых светодиов, светодиоды отпаял от световой ленты, которую ранее выписывал с ХС. Светодиоды соединил по два последовательно и затем три цепочки параллельно. У меня питание аппы от 2SLiPo, если аппа питается от 3SLiPo, то соединять последовательно по три светодиода. Запитал через общий резистор, хотя правильнее каждую цепочку питать через свой резистор. Микропорку, которая прижимает дисплей к корпусу, отклеил от платы и разрезал по толщине, тоесть уменьшил на толщину рассеивателя.
Замерил поточнее потребление аппы, Без подсветки потребляет 120 мА, с включенной подсветкой, при изменении U от 7.0 В до 8,4 В, ток меняется от132 мА до 143 мА
Ну и несколько фото в процессе изготовления и что получилось.

Вложения:

6.jpg [ 45 Кб | Просмотров: 148 ]

5.jpg [ 50.83 Кб | Просмотров: 148 ]

4.jpg [ 42.89 Кб | Просмотров: 148 ]

3.jpg [ 18.34 Кб | Просмотров: 148 ]

2.jpg [ 47.24 Кб | Просмотров: 148 ]

1.jpg [ 43.07 Кб | Просмотров: 148 ]

vadimka29

Залил прошиву, горит главное меню, движения по кнопкам нет, даже при 60 сек удержании… Лил только флэш после стирания чипа… После влил старый епром - нет улучшения… как надо разбудить монстра? (кстати, единица на 17-й ноге уже присутствует!)

Petr

Не получается пока фото вставить, если не получится и кому интересно, можно посмотреть на сайте rc70.ru, в разделе “электрика и электроника”-“аппа Turnigy 9X” стр.13.

vadimka29

Замерил поточнее потребление аппы, Без подсветки потребляет 120 мА, с включенной подсветкой, при изменении U от 7.0 В до 8,4 В, ток меняется от132 мА до 143 мА

Вот тут не понятно… при каком таки напряжении (с которым сравнивать) происходило измерение тока “Без подсветки”? Для качественного свечения диоды потребуют от 15 до 20 мА (а то и больше), три ветки = 45 - 60 мА, есть ли такой прирост?

Petr

Вадим, без подсветки, ток потребления аппаратурой (120 мА) не изменяется при изменении U от 7.0 В до 8,4 В. А то что получилось небольшое увеличение тока, возможно из-за большого номинала резистора, если его уменьшить, то потребление и яркость увеличатся, но меня устроила вполне получившаяся яркость. Измерение тока производил, включенным последовательно прибором (цешкой), а запитывал аппу от регулируемого блока питания.

vadimka29

Начинаю понимать… питали диоды от стабильного 5V? Тогда похоже… при повышении напряжения ток не менялся, но общая мощность возрастала (V*A), разница выделялась на резисторе… Но это и не важно уже… токовый прирост я обозначил выше, и вообще это оффтоп…

Petr

Вадим, несколько не так. Диоды запитаны от батареи, напрямую, через токоограничивающий резистор, ну и схему включения на полевике, а потребление замерял при отключенной и включенной подсветке. Прошу прощения за оффтоп.

vadimka29

Повторяюсь - (для Виталия) Залил прошиву, горит главное меню, движения по кнопкам нет, даже при 60 сек удержании… Лил только флэш после стирания чипа (и для фото и до того)… После влил старый епром - нет улучшения… как надо разбудить монстра? (кстати, единица на 17-й ноге уже присутствует!)

George164

Виталий, матрица для цифр 6х4 ? Девятку и шестерку я бы переделал. Просвет 2х2 и хвостик уменьшить.
А какую версию тестить? Vcoder1 уже полностью рабочий?

druksel
MrHot;bt45976

Сделаю тему в разделе самодельщиков. Но врят-ли я рожу что-то уникальное. Уже имеются материалы: Вариант_1, Вариант_2 и Вариант_3. Я дома, без ЧПУ смог попробовать повторить вариант_1. Сверление удалось, но появились паразитные яркостные пятнышки на экране. Это меня не устроило. Я положил примерно один выходной на эту плаху. 😦 Счас смотрю все ссылки, что я тут привёл - я рожу вариант_4 это точно. Думаю, что идеала я не буду добиваться (лёгкий градиент буду терпеть), но и пятен от разбегания света в разные стороны я не буду допускать.

ответил у себя в блоге как и чего по подсветке

MrHot

Так, опять в технический оффтоп поднырнули… Давайте не вставлять сюда описания технических решений.
Ссылки… Ссылки… Ссылки… и короткие ответы. Сделал тему под подсветку. Кажется, про подсветку, как раз тот пример, когда из форума приходится делать некую отжимку в поисках полезной информации. Всё как-то распределено так, что с “пинцетом” приходится работать.

ВитГо
vadimka29;bt46029

Виталий! А сейчас для тестирования надо принудительно перепаяться на вкл подсветки, или уже работает подсветка от V1? (тестирование происходит, как обычно, ночью:)).

Функционала подсветки еще нет… так что пока нечего смотреть

ВитГо
vadimka29;bt46039

Залил прошиву, горит главное меню, движения по кнопкам нет, даже при 60 сек удержании… Лил только флэш после стирания чипа… После влил старый епром - нет улучшения… как надо разбудить монстра? (кстати, единица на 17-й ноге уже присутствует!)

Гм… странное поведение… кнопки должны работать…
фюзы точно не трогали ?
функционала подсветки пока нет !! так что ее пробовать бестолку

ВитГо
George164;bt46082

Виталий, матрица для цифр 6х4 ? Девятку и шестерку я бы переделал. Просвет 2х2 и хвостик уменьшить.
А какую версию тестить? Vcoder1 уже полностью рабочий?

Матрица символов 8х5…

VCoder рабочий… летабельный… вторая версия еще только как демонстрашка меню

vadimka29

Виталию - фьюзы на месте, щас влил V1 с епромом, - как так и было… удивляюсь… аппа Турнига 9х… не слышит кнопок, блин… надеюсь, кнопочные порты у всех апп одинаковые?

vadimka29

Пошагово - сохранил епром от V1 (работаю в кодэвижн с 910-м программатором, залита V1), стер чип, загрузил флэш (vcm.hex-файл), залил загруженный флэш - появился главное меню - движения нет, и после ресета тоже… Вливаю обратно V1…

George164

Матрица 8х5 без пробелов даст 7х4. Минимально допустимое, чтобы не сливалось 7х5 плюс по пикселю на разделитель. Для меня уже мелко. Но 9 и 6 все равно надо бы переделать.
В каком модуле у вас обработка дребезга контактов. У меня что-то совсем нехорошо отрабатывает, то надо держать, потом перескакивает через два. Не пойму в чем дело. Стрелка вниз в родной была с небольшими проблемами, но не до такой степени. Когда по ехiт возвращаешься тоже двойное срабатывание иногда.

vadimka29

Георгий! Выложи плиз свой hex… мож, я не то лью…

ВитГо
vadimka29;bt46124

Георгий! Выложи плиз свой hex… мож, я не то лью…

ЭЭЭ… как бы никакой флеш заливать для VCM.hex не нужно !!
Флеш от VCoder не совместим с VCM !!

просто залейте последнюю версию VCM и все !
последняя версия вот ->vcm.hex

ВитГо
George164;bt46123

Матрица 8х5 без пробелов даст 7х4. Минимально допустимое, чтобы не сливалось 7х5 плюс по пикселю на разделитель. Для меня уже мелко. Но 9 и 6 все равно надо бы переделать.
В каком модуле у вас обработка дребезга контактов. У меня что-то совсем нехорошо отрабатывает, то надо держать, потом перескакивает через два. Не пойму в чем дело. Стрелка вниз в родной была с небольшими проблемами, но не до такой степени. Когда по ехiт возвращаешься тоже двойное срабатывание иногда.

Я подготовлю файл шрифта… и выложу еще программу для его редактирования… - так что поупражняетесь по желанию со шрифтами… этот я рисовал вместе с drucsel… мне у этого шрифта и девятка не очень нравиться… 😃

по поводу дребезга - гм… вроде модуль более продвинутый… в меню везде отрабатывает кнопку только после отпускания…
при редактировании параметров (или суб меню) - по удержанию…
а вот возврат по exit точно должен быть адекватный… - скажите пункты меню где происходит произвольный выход ! - возможно я где то пропустил… - везде вставляю спец функцию которая ждет удержание кнопки exit…

ВитГо

Вот ссылка на программу редактирования шрифтов и файл шрифтов LCD_Font.zip.html

  1. проверьте своим антивирусом (претензий на вирусы в exe не принимаю !)
  2. распакуйте куда нить
  3. запускайте екзешник
  4. в диалоге отвечаете “CAncel”, потом Файл - Открыть и выбираете второй файлик (не забудьте в диалоге открытия файла поставить фильтр all files)
  5. потом выбираем символ в правой половине окна и редактируем в левом…

по формату 6 на 4 !!! верхняя и нижняя строки только для символов где нужно ! и начиная с 5того столбца пусто ! для горизонтального интервала… ну в принципе для некоторых символов можно занимать 5ый столбец… - но не злоупотребляйте !

  1. после редактирования делаете Файл - Save и получаете файл шрифта
George164

Я вначале 90-х сотню, а может и больше, принтеров русифицировал, поэтому со шрифтами работал. Русский шрифт имеет десяток буков типа м, ш, щ, ф, ы, ж, ю… которые в 4 клетки просто не рисуются, а в 5 сливаются. Стандарт 9х6, минимум 7х5 плюс пиксель. Чем вызван такой мелкий шрифт? Стартовое меню явно перегружено. Вообще-то по меню отдельный разговор, более важный.

ВитГо

если делать шире - то всего 20 символов умещается на экран по горизонтали … а этого мало… тут 25 символов и то в обрез !!
таков вот он русский язык 😦

сливаются не многие буквы… в принципе была мысль сделать шрифт переменной длинны - может быть стоит действительно этим заморочиться…

по структуре меню - готов обсуждать - давайте ваши варианты

ВитГо

кстати в прошивке если заметили используются только большие буквы !! маленькие у меня не получились в шрифте… 😦

ВитГо

и еще одно “кстати” нарисуйте кто нить шрифт переменной длинны! я попробую под него переписать модуль печати!

vadimka29

ОООО!

ЭЭЭ… как бы никакой флеш заливать для VCM.hex не нужно !!
Флеш от VCoder не совместим с VCM !!

Не в обиду - Сэр - Прошу не держать меня за идиота от Чехова! Моими прошивками пользуются пол-страны для добычи нефти-газа в бюджет… Последняя публикация hex. файла работает аналогично предыдущей… Есть ли пользователи,влившие прошивку со мной вместе?

vadimka29

Блин… блин… монитор отказал… пришлось отобрать у сына… блин… блин… оказалось - контакт в питании… Неужели даже в розетку надо брызгать контактолом: таки ок! Прошива все одно не работает!

vadimka29

Виталий! Кинь мне в личку свой номер тлф, всенародно обязуюсь перечислить туда 500р. за твой труд (по крайней мере за V1).

vadimka29

Блин… блин… не голосуйте за Единую Россию… блин… Домодедово… блин…

sotikov
vadimka29;bt46194

не голосуйте за Единую Россию

Это и так давно понятно…😆

JoniM

Автору агромное спасибо за прошивку V1, почитал монуал все понятно в отличии от стандартной. Аппа тока в пути надо будет програматор прикупить и залить сразу норм прошивку. Жду не дождусь рускоязычной V2. Кстати энтузиазм автора до сих пор поражает. На бесплатной основе делать такие замичательные весчи)).
Может быть вы скинете сюда ваш номер wmr кошелька, да благодарные люди вам спонсорскую помошь будут давать. Я 2-й в их числе после Вадима Камоцкий.

ВитГо
vadimka29;bt46167

ОООО!
Не в обиду - Сэр - Прошу не держать меня за идиота от Чехова! Моими прошивками пользуются пол-страны для добычи нефти-газа в бюджет… Последняя публикация hex. файла работает аналогично предыдущей… Есть ли пользователи,влившие прошивку со мной вместе?

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

НАРОД!! залейте кто нить vcm.hex - у вас работает меню ?!!

p.s. у меня все в порядке…

ВитГо
JoniM;bt46241

Автору агромное спасибо за прошивку V1, почитал монуал все понятно в отличии от стандартной. Аппа тока в пути надо будет програматор прикупить и залить сразу норм прошивку. Жду не дождусь рускоязычной V2. Кстати энтузиазм автора до сих пор поражает. На бесплатной основе делать такие замичательные весчи)).
Может быть вы скинете сюда ваш номер wmr кошелька, да благодарные люди вам спонсорскую помошь будут давать. Я 2-й в их числе после Вадима Камоцкий.

у меня нет кошелька… для особо желающих могу сказать номер карты ВТБ24 (ее пополнять можно из любого отделения банка по номеру, правда еще паспорт с собой нужно брать)… могу пообещать что все полученные деньги на дальнейшую разработку и пойдут (задумок то еще много… тот же FrSky прикрутить в мыслях для полноценной телеметрии прямо на экране аппы)…

P.s. а вообще я пишу прошивки не за деньги, а просто потому что мне это занятие нравиться… сейчас правда у меня небольшой отпуск от кодевижна… чтото заморили меня последние менюхи 😃))

sotikov
ВитГо;bt46243

у меня нет кошелька… для особо желающих могу сказать номер карты ВТБ24

Сообщи, если не лень. Как раз со своей карты ВТБ кину. Будет на что прикупить ещё железа для экспериментов 😛.

George164

Ремонт - это когда весь коридор завален стройматериалами и жена очень косо смотрит на компьютер. Поэтому пока мало чем помогу.
Переменные шрифты - хорошая идея. Посмотреть можно в Paint, выберите шрифт Microsoft Sans Serif и Microsoft Serif, размер 7. Набрать в масштабе Обычный, потом увеличить. Все корявости сразу видны и их можно исправить в редакторе.
Я хоть и рисую менюшки на тачскринах последние десять лет, но помочь тоже могу мало. Опыта нет. Надо взять для образца хорошую аппу. Нельзя перегружать экраны в рабочем режиме. Только самое необходимое. Логика тоже должна быть общая и интуитивно понятная. Почему числа изменяются Up и Down, а не + и - непонятно.
Куда делся Switch error? Хотелось бы подтверждение модели при включении. Есть печальный опыт.
Крайние пиксели практически не видно, может оставить пустыми?

George164

А у нас железо одинаковое?
Я загрузил оттранслированный исходник и кнопки у меня явно срабатывают не по отпусканию, а по нажатию. Если нажать и держать, будет скакание по меню.
Может текущие последние прошивки выложить где-нибудь на видном месте?

ВитГо

гм… в vcm.hex навигация по меню только при нажатии и отпускании кнопки !!! не может быть скакание по меню при удержании !! прошу проверьте еще раз !!
скакание по меню было в первом кодере (VCoder)…

ВитГо
George164;bt46252

Ремонт - это когда весь коридор завален стройматериалами и жена очень косо смотрит на компьютер. Поэтому пока мало чем помогу.

Сочувствую… я это проходил 3 года назад 😃

George164;bt46252

Переменные шрифты - хорошая идея. Посмотреть можно в Paint, выберите шрифт Microsoft Sans Serif и Microsoft Serif, размер 7. Набрать в масштабе Обычный, потом увеличить. Все корявости сразу видны и их можно исправить в редакторе.

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

George164;bt46252

Логика тоже должна быть общая и интуитивно понятная. Почему числа изменяются Up и Down, а не + и - непонятно.
Куда делся Switch error? Хотелось бы подтверждение модели при включении.

С логикой в железе тяжко… я вот никак не могу привыкнуть что плюс слева а минус справа !! ну блин убейте меня, но в школе учили что влево шкала уменьшает значение а в право - увеличивает !!! в первом кодере сделал как на кнопках (увеличение кнопкой + (слева), уменьшение кнопкой - (справа)) - так потом сам не мог пользоваться !! у меня влево это минус, а вправо это плюс !!
кстати есть некоторые меню в которых изменение значения происходит нажатием кнопок +\-… - обычно это субменю…
пока пусть будет как есть в дальнейшем если останеться места в программной памяти сделаю изменение через внешний simple-edit (это тот через который происходит изменение параметров кнопок, экрана, включение\выключение звука и т.д.) - просто для него приходиться расходовать доп. память на подсказки, а ее я начал экономить… останеться - перекину редактирование параметров на него (тем более что это не сильно усложняет код - у меня такие вещи реализуются через стек вызовов (call\ret) - так что все по взрослому 😃))

по поводу switch error - гм… а меня наоборот бесил… - подумаю над этим… может быть сделаю описатель первоначальных положений органов управления для модели по которым будет проверяться аппа после загрузки модели… -просто это дополнительный расход очень маленького ЕЕПРОМа который итак расходоваться будет раза в 2 больше чем в первом кодере…

George164;bt46252

Крайние пиксели практически не видно, может оставить пустыми?

крайние слева или справа ?

George164

а меня наоборот бесил…

Всех бесит, но ручки длинные. Вроде бы ничего не трогал, а несколько штук переключились. Полезная вещь. И модели можно забыть переключить. Я бы себе напоминание при включении поставил.
Скачут менюшки в первой версии, я же ее загрузил.

не могу привыкнуть что плюс слева а минус справа

Но Up то сверху!!! Пусть + будет слева, при подъеме руля сам летит вниз, а вверх ногами наоборот. Привыкнем.

кстати есть некоторые меню в которых изменение значения происходит нажатием кнопок +\-.

Я об этом и говорю. Это недопустимо. Либо так, либо так.

  • и - можно использовать и для хождения по столбцам меню, т.е. как стрелки, и для изменения значений. Это нормально и интуитивно понятно. Значения, после выделения, можно менять всеми 4-мя кнопками.
    Про пиксели погорячился, это от бокового освещения.
George164

залейте кто нить vcm.hex - у вас работает меню ?!

Залил. Работает.
У кнопки Exit (по крайней мере) слишком длинное время срабатывания. Т.е. постоянно приходится нажимать ее два раза.
Замыкание оно и в Африке замыкание. Достаточно его однократного обнаружения. Временем отпускания ликвидируем дребезг (у меня обычно 0.2 -0.3 сек, подбираю опытным путем). Т.е. лучше пусть не сработают два быстрых нажатия подряд (редко это надо), чем не сработает одно короткое нажатие.
Наверно, еще привычка влияет. Сейчас уже лучше работает.
Чем различаются “сохранение модели” от “записи модели”? Вроде по-русски, а интуитивно непонятно. (Инструкцию не читаю специально, должно быть понятно без нее)

MrHot

Всё, я технически полностью готов к фотографированию менюх. Завтра начну долбить…
Всё удалось на славу.

ВитГо
George164;bt46280

Залил. Работает.
У кнопки Exit (по крайней мере) слишком длинное время срабатывания. Т.е. постоянно приходится нажимать ее два раза.

Кнопка EXIT отдельно не обрабатывается… это конструктивный глюк… у меня плохо нажимается на аппе кнопка MENU (причем на штатной прошивке тоже - иногда даже не могу войти в меню ! не хватает нажатия), с EXIT все впорядке…

George164;bt46280

Замыкание оно и в Африке замыкание. Достаточно его однократного обнаружения. Временем отпускания ликвидируем дребезг (у меня обычно 0.2 -0.3 сек, подбираю опытным путем). Т.е. лучше пусть не сработают два быстрых нажатия подряд (редко это надо), чем не сработает одно короткое нажатие.

Этот параметр регулируется пользователем через меню “НАСТРОЙКА ПЕРЕДАТЧИКА” - “НАВИГАЦИЯ ПО МЕНЮ” - “ЗАДЕРЖКА НАВИГАЦИИ”
ставьте минимальные значения - это и будет время для регистрации нажатия…

George164;bt46280

Наверно, еще привычка влияет. Сейчас уже лучше работает.

😃

George164;bt46280

Чем различаются “сохранение модели” от “записи модели”? Вроде по-русски, а интуитивно непонятно. (Инструкцию не читаю специально, должно быть понятно без нее)

“СОХРАНЕНИЕ МОДЕЛИ” - это обновление информации о модели на диске - то есть поднастроили и сохранили изменения… запроса нового места для сохранения модели не происходит.
“ЗАПИСЬ МОДЕЛИ” - это запись модели на диск с запросом нового места (например запись модели в другое место чтобы иметь возможность поэксперементировать с настройками, но и чтобы не потерять уже настроенную модель)

ВитГо
MrHot;bt46284

Всё, я технически полностью готов к фотографированию менюх. Завтра начну долбить…
Всё удалось на славу.

Да, действительно классно получилось !! очень ровная подсветка… посмотрел и захотел себе такую же ! 😃))

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

George164

Никогда бы не догадался. 😃
Как-то привык к Новая, Сохранить, Копировать. В крайнем случае Сохранить Как, хотя это уже излишек.
Сейчас смотрю прошивку ER9X.
Кажется новые прошивки становятся самоцелью. 😃

MrHot
ВитГо;bt46336

Да, действительно классно получилось !! очень ровная подсветка… посмотрел и захотел себе такую же ! 😃))

Придётся разбить любимый IPhone, или ограбить ближайший ремонт сотиков… 😃

ВитГо;bt46336

Кстати, а сколько потребляет аппа с передающим модулем и сколько отдельно модуль подсветки ?

Чуть выше писали:

Petr;bt46038

Замерил поточнее потребление аппы, Без подсветки потребляет 120 мА, с включенной подсветкой, при изменении U от 7.0 В до 8,4 В, ток меняется от132 мА до 143 мА

Про свой ток подсветки - я писал в соей ветке. У всех - будет по-разному.

ВитГо;bt46336

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

Вариант выбора такой нужен. Это 100%.
Я планирую подсветку сделать независимой пока. А то фоткать я устану. Только фокус взял на фотике - херак, а она гаснет. Ну что за дерьмо ?!!!

sotikov
MrHot;bt46340

Я планирую подсветку сделать независимой пока. А то фоткать я устану. Только фокус взял на фотике - херак, а она гаснет. Ну что за дерьмо ?!!!

На тумблер вешать будете?

MrHot
sotikov;bt46347

На тумблер вешать будете?

Ответил в теме, чтобы не плодить тут оффтоп.

George164

Скачал исходник для ER9X. Файлы имеют расширение .cpp и транслируются в пакетном режиме WINARV.
Есть ли возможность транслировать их codevisionov? Чем их просматривать и редактировать посоветуете?

ВитГо

возможность всегда есть… просто править придется много скорее всего…
синтаксис немного у кодевижна отличается от winavr…

George164

Виталий, где у вас в новой прошивке фонты, сколько их и какой формат? В старой шрифты просматриваются легко, а в новой я их не вижу, а с битами играть времени нет.

ВитГо

гм… что значит где они ? шрифт это по 5 байт на символ… я как то особо не задумывался куда их компилятор засовывает…
выше были ссылки на файл шрифтов и программу для их редактирования… если есть желание править- используйте программу - я потом вставлю шрифт в прошивку

George164

Нужда в перекодировке bin hex и обратно не прошла? Софт к моему программатору делает это. В открытом доступе.
www.argussoft.ru/vendors_list/argussoft/…/asisp
или на сайте разработчика www.as-kit.ru
Эти действия софт делает без платы. Может кто надумает поменять свои “пять проводочков”.

КОМЮ
ВитГо;bt46335

“СОХРАНЕНИЕ МОДЕЛИ” - это обновление информации о модели на диске - то есть поднастроили и сохранили изменения… запроса нового места для сохранения модели не происходит.
“ЗАПИСЬ МОДЕЛИ” - это запись модели на диск с запросом нового места (например запись модели в другое место чтобы иметь возможность поэксперементировать с настройками, но и чтобы не потерять уже настроенную модель)

А не удобнее будет:
“РЕДАКТИРОВАТЬ МОДЕЛЬ” - т.е. обновить/исправить существующую информацию по настройкам модели, и “СОЗДАТЬ МОДЕЛЬ” - т.е. создань новую ячейку с настройками модели (заново или/и на основе имеемой)

ВитГо

гм. редактировать в меню сохранения данных ? помоему будет еще большая путаница…

КОМЮ
ВитГо;bt47677

гм. редактировать в меню сохранения данных ? помоему будет еще большая путаница…

Ну… СОХРАНЕНИЕ и ЗАПИСЬ как-то, действительно, не совсем очевидно.
Хотя - дело привычки. Наверное такая “неочевидность” идет от привычки пользоваться ПО на РС. Там бы это действительно звучало бы как СОХРАНИТЬ, и СОХРАНИТЬ КАК.

ВитГо

МОжет тогда обозвать - “сохранить” и “сохранить как” ?

Индюков_Кирилл

Так лучше… Тем более как то привычно даже выглядит

minc

Поддерживаю

ВитГо

Очередная версия для тестов vcm.hex.html

При сохранении модели назвал пункты меню: СОХРАНИТЬ и СОХРАНИТЬ КАК…

Что скажите про новый редактор кривых ?
не дописаны пока только экспоненты (у меня нет матрицы экспоненты, как найду допишу)
Реализованы:

  • выбор количества точек кривой: 3,5,7,9
  • выбор кривой из шаблонов
  • настройка кривой вручную
    Будет дописано - наложение экспоненты

По шаблонам кривых:
кому какие кривые нужны ?
сейчас самое время сказать мне об этом… а лучше описать в следующем формате
Так что давайте коллегиально решайте какие кривые нужны… всего возможно по 8 кривых на каждый вид (3,5,7,9 точек)
числовые значения соответственно в процентах… в целых числах !
диапазон как и в vcoder от -100% до +100%
как выглядят некоторые шаблоны можно посмотреть в прошивке ссылку на которую я дал вначале сообщения (смотрите в трехточечных кривых)

В общем жду массива в формате:

flash const signed char preset_curves[4][8][9]={
 { // кривые из трех точек
   //        |            ------------------------------
   { -100,   0,   0,   0,   0,   0,   0,   0,   0 },
//     1      2     3    +--+--+---+----+--+----- не используется на 3х точках
//              |
//              +----- центр для трех точечной кривой
   {    0,   0, 100,   0,   0,   0,   0,   0,   0 },
   {  100,   0,-100,   0,   0,   0,   0,   0,   0 },
   {  100,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,-100,   0,   0,   0,   0,   0,   0 },
   {  100,   0, 100,   0,   0,   0,   0,   0,   0 },
   { -100,   0,-100,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 }
 },
 { // кривые из 5 точек
   //             |           --------------------
   { -100,   0,   0,   0, 100,   0,   0,   0,   0 },
   {  100,   0,   0,   0,-100,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 }
 },
 { // кривые из 7 точек
   //                  |                 ----------
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 }
 },
 { // кривые из 9 точек
   //                       |
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 },
   {    0,   0,   0,   0,   0,   0,   0,   0,   0 }
 }
};

Ищу матрицу экспоненты по максимальному числу точек…
в виде описания координат точек… - по этому можно здесь, можно в личку

p.s. начал писать редактор микшеров… но пока чтото не вытанцовывается он у меня по простому… а то что есть не очень нравиться…

man-bis
ВитГо;bt46243

(задумок то еще много… тот же FrSky прикрутить в мыслях для полноценной телеметрии прямо на экране аппы)… 😃))

Ну О-Очень интересно!!!
Нужно бросить клич среди юзателей FrSky и читателей/писателей в профильной теме rcopen.com/forum/f4/topic186091/705
Думаю, обладатели турниг-флайскаев-имаксов и пользующие телеметрийные комплекты FrSky поклонятся Вам в ноги и может деньжат подкинут на тесты железа в указанной связке.
Ведь отказ от доп монитора это ж как минимум экономия на его стоимости ~~ 20$

ВитГо

посмотрим… пока кидать рано… прошивка еще ппм не генерит 😃 соответственно пока телеметрия и не нужна (самолет управляемый ее - не полетит 😃))
Сначала сделаю генерацию ппм (В принципе из подготовительных мероприятий доделать редактор микшеров, ну и собрать модуль чтения\сохранения моделей на vdisk), потом по плану стоит захват ппм с тренерского разъема (давно уже обещал… в принципе и алгоритм себе накидал, так что только вживить и протестировать), а вот потом уже телеметрию бум вживлять (Если места в 64-ой меге хватит… а то уже сейчас 55% занимает прошивка…)

man-bis
ВитГо;bt48049

(Если места в 64-ой меге хватит… а то уже сейчас 55% занимает прошивка…)

Сорри если чего не дочитал в Вашем дневнике, но ИМХО в памяти пульта достаточно иметь 3-8 моделей, а остальные хранить на компе, все равно в поле редко кто выезжает с 3 и более моделями под один пульт. За счет этого может найдете место для связки Фрскаевской телеметрии с сабжем. Если чё сморозил - не бейте.

hudognik

совершенно согласен по поводу экономии места за счет разумного количества файлов моделей . У меня вопрос по поводу мультиплексирования, что это такое?, в документации к действующей прошивке 0.99b ,про это мало информации . Насколько я понял в один канал можно вложить еще какуюто команду , расширив 8 каналов на большее количество, было сказано что нужен мультиплексатор ,что это ,и как он работает? Спасибо.

NVS
hudognik

… расширив 8 каналов на большее количество…

Это оно и есть. По одному каналу можно передавать несколько.

hudognik

было сказано что нужен мультиплексатор

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

hudognik

это случайно не оно? www.hobbycity.com/hobbycity/…/M_Fswitch.jpg

ВитГо
man-bis;bt48050

Сорри если чего не дочитал в Вашем дневнике, но ИМХО в памяти пульта достаточно иметь 3-8 моделей, а остальные хранить на компе, все равно в поле редко кто выезжает с 3 и более моделями под один пульт. За счет этого может найдете место для связки Фрскаевской телеметрии с сабжем. Если чё сморозил - не бейте.

А я не о памяти для моделей говорил…
Моделей планирую штук 6-8 уместить…
Речь идет о программной памяти… ее расходую очень быстро… поэтому приходиться возвращаться и переписывать код с целью оптимизации по размеру

ВитГо
hudognik;bt48062

это случайно не оно? www.hobbycity.com/hobbycity/…/M_Fswitch.jpg

Нужно по описанию смотреть…
возможно что это железка похожего функционала - но работать с фильтром MULTI вряд ли будет…

В кратце- фильтр MULTI делает следующее:
передает стартовый маркер - это длительность канального импульса около 800 мкс (могу позже посмотреть точнее),
следом, в четырех следующих пачках передаются последовательно данные по 4м каналам
каждый мультиплексированный канал будет обновляться с частотой 50\(4 канала + 1 маркер)= 10 гц…
конечно для управления полетом использовать его нельзя… а вот для открытия всяких бомболюков, мигания лампочками и прочего функционала (например управления камерой для FPV) - пойдет за глаза…

По количеству каналов можно получить разные варианты:
7 каналов-RT + 1 канал-MULTI = 7+4= 11 каналов с 8ми канального приемника
6 каналов-RT + 2 канала-MULTU = 6+2*4= 14 каналов с 8ми канального приемника
естественно можно будет использовать и 6ти канальные приемники:
5 каналов-RT + 1 канал-MULTI = 5+4= 9 каналов с 6ти канального приемника
4канала-RT + 2 канала-MULTU = 4+2*4= 12 каналов с 6ти канального приемника
и даже трех и четырехканальные 😃 правда для самолета наверное RT каналов будет уже маловато… хотя иногда возможно на канале Тяги использовать MULTI канал…

Соответственно демультиплексор это устройство собранное на микроконтроллере (pic, avr) - которое берет данные с одного канала, и дешифрует их на 4…
алгоритм есть выше.
если кто попробует сделать его - буду очень рад, у меня сейчас к сожалению на это времени нет (хотя задача не такая уж и сложная)…

либо у меня есть предложение - если кто нить соберет мне железку по схеме (я могу ее попробовать нарисовать) - и вышлет (готов оплатить железку и доставку) - то могу попробовать начать писать прошивку демультиплексора…
сам к сожалению уже давно ничего не паяю кроме проводков для программирования к аппе…

vadimka29

Может, я чего не понял… 4 мульти-канала умещаются по времени в один канал RT (2мсек)? Если нет, то общее время передачи пачки всех каналов увеличивается и выходит за 20 мсек?

Stepan_M

Виталий, по поводу кривых - это конечно экспонента “+” и " -", V образная.

ВитГо
vadimka29;bt48175

Может, я чего не понял… 4 мульти-канала умещаются по времени в один канал RT (2мсек)? Если нет, то общее время передачи пачки всех каналов увеличивается и выходит за 20 мсек?

да, непонял 😃

четыре канала передаются в 5-и пачках !!!
1 пачка - все каналы как положено, мульти канал 800 мкс
2 пачка - все каналы как положено, мульти канал - значение первого мультиплексируемого канала
3 пачка - все каналы как положено, мульти канал - значение второго мультиплексируемого канала
4 пачка - все каналы как положено, мульти канал - значение третьего мультиплексируемого канала
5 пачка - все каналы как положено, мульти канал - значение четвертого мультиплексируемого канала

То есть общая длина пакета будет стандартная… передается всегда в пачке 8 каналов (для 8 канального приемника)… просто в например в последнем, 8ом канале поочереди будет появляться маркер в 800 мкс, и потом каналы…
потому и обновление по MULTI каналам происходит с частотой не 50 а 10 гц…

ВитГо
Stepan_M;bt48180

Виталий, по поводу кривых - это конечно экспонента “+” и " -", V образная.

такой ответ мне не нужен…
выше есть массивы для описания кривых - вот в его формате и нужно…

vadimka29

V-образные кривые, образованные экспонентами при k=1, 2, 3, 4 (Виталий знает, о чем речь), рогами вверх и вниз.
{ // кривые из 9 точек
// |
{ 100, 44, 15, 2, 0, 2, 15, 44, 100 },//k=1
{ 100, 47, 17, 4, 0, 4, 17, 47, 100 },//k=2
{ 100, 51, 21, 6, 0, 6, 21, 51, 100 },//k=3
{ 100, 58, 29, 10, 0, 10, 29, 58, 100 },//k=4
{ -100, -44, -15, -2, 0, -2, -15, -44,-100 },
{ -100, -47, -17, -4, 0, -4, -17, -47,-100 },
{ -100, -51, -21, -6, 0, -6, -21, -51,-100 },
{ -100, -58, -29, -10, 0, -10, -29, -58,-100 }
}

V-образные кривые, образованные экспонентами при k=-1, -2, -3, -4 , рогами вверх и вниз.
{ // кривые из 9 точек
// |
{ 100, 98, 86, 56, 0, 56, 86, 98, 100 },//k=-1
{ 100, 96, 83, 53, 0, 53, 83, 96, 100 },//k=-2
{ 100, 94, 79, 49, 0, 49, 79, 94, 100 },//k=-3
{ 100, 90, 71, 43, 0, 43, 71, 90, 100 },//k=-4
{ -100, -98, -86, -56, 0, -56, -86, -98,-100 },
{ -100, -96, -83, -53, 0, -53, -83, -96,-100 },
{ -100, -94, -79, -49, 0, -49, -79, -94,-100 },
{ -100, -90, -71, -43, 0, -43, -71, -90,-100 }
}

Подразумевается, что точки по горизонтали равно-отстоящие друг от друга.

vadimka29

Нет, все-таки собака где-то определенно зарыта…
Залил последний релиз vcm.hex, вижу “Главное меню”
ЧТЕНИЕ/ЗАПИСЬ МОДЕЛЕЙ
РЕДАКТИРОВАНИЕ МОДЕЛИ
НАСТРОЙКА ПЕРЕДАТЧИКА

но реакции на кнопки нету, ничем не могу заставить сдвинуться курсор с места или войти в фокусный (первый) пункт. Подсветка горит постоянно.
Точно ли для кнопок используются те же порты, что и в V1? Кто нибудь еще заливал V2 прошиву в Турнигу 9х?

ВитГо
vadimka29;bt48286

Нет, все-таки собака где-то определенно зарыта…
Залил последний релиз vcm.hex, вижу “Главное меню”
ЧТЕНИЕ/ЗАПИСЬ МОДЕЛЕЙ
РЕДАКТИРОВАНИЕ МОДЕЛИ
НАСТРОЙКА ПЕРЕДАТЧИКА

но реакции на кнопки нету, ничем не могу заставить сдвинуться курсор с места или войти в фокусный (первый) пункт. Подсветка горит постоянно.
Точно ли для кнопок используются те же порты, что и в V1? Кто нибудь еще заливал V2 прошиву в Турнигу 9х?

Гм… странное поведение…
порты точно такие же у меня тестовая аппа - Турниги V2

может криво скачалась прошивка или залилась в аппу ?
еепром никакой не заливали ? (он не нужен)

ВитГо

Новая версия для тестов vcm.hex.html

Добавлен механизм экспонент в кривые…
теперь кривая экспоненты может быть одна от -100 до +100 %%,
или быть разбитой на две кривой от -100 до 0 и от 0 до +100%
каждый отрезок разбитой кривой может иметь положительную или отрицательную зависимость (индивидуально), и свое значение коэффициента влияния (такие прикольные горбики можно делать !)
при включении экспонент у пункта меню “ЭКСПОНЕНТА” появляется “+” (задана экспонента)

внутри меню:

ТИП [ 1-0-2, 2-0-4, 3-0-2, 1-0-4, ЕД.32, ЕД14 ] - типы кривой,
первые 4 типа - это сдвоенные кривые, два отрезка с влиянием экспоненты управляемые отдельно, в кодировке задано нахождение отрезков кривой по квадратам координат
1 2
3 4
соответственно 1-0-2 - это кривая левая часть которой находится в квадрате 1, потом идет в 0 (центр), потом идет в квадрат 2 - это вторая кривая
соответственно 3-0-4 - это кривая которая слева находится в квадрате 3, потом 0, и потом квадрат 4 - это вторая кривая…

для таких кривых задается положительное или отрицательное влияние каждой из кривых (левой и правой) в параметре:
ЗНАК [ +/+, +/-, -/+, -/- ] - cоответственно первый знак - для левой кривой, второй для правой

и далее идет два коэффициента кривых (левой и правой) - которые задают процент влияния экспоненты на кривую… обращаю внимание знак указывается в пункте ЗНАК !! поэтому коэффициенты всегда положительные !

Для кривых с типом ЕД.32 и ЕД.14 - это единая кривая с экспонентой ! соответственно через центр (0) - график не проходит ! - обычно такие кривые нужны для канала тяги

соответственно ЗНАК у такой кривой может быть только в 2х вариантах либо +/+ либо -/-…

так же коэффициент влияния экспоненты тоже только один…

далее, как всегда, нажатие на MENU - сохраняет график, нажатие EXIT - возврат без изменения кривой (останется та которая была до входа в редактор экспонент)
при изменении количества точек кривой (по умолчанию 9) - экспоненты отключаются…
так же полученный график экспоненты можно редактировать вручную - но при этом через меню экспоненты - график редактировать уже нельзя (так как это не экспонента - будет предложено создать график заново)

в общем попробуйте - очень интересный редактор получился… может быть вживить его в VCoder ?

p.s. прочитал сейчас описание - в реале редактор быстрее прочувствуете без мануала… по крайней мере понять нужно только как задает местонахождение графикой экспонент (это про 1-0-4 и т.д.), знаки, коэффициенты - интуитивны…

p.p.s. вместо того чтобы спать ночью - до 2х часов писал этот редактор… кстати использование памяти уже 60%… блин, нужно чтото срочно оптимизировать !

ооо!! чуть не забыл !! за экспоненты ОГРОМНОЕ СПАСИБО Вадиму Камоцкину (vadimka29), это он мне прислал небольшой модуль расчета экспоненты и пару скриншотов я лишь навернул на точки рассчитанные его модулем функционал редактирования !

vadimka29
ВитГо:

может криво скачалась прошивка или залилась в аппу ?
еепром никакой не заливали ? (он не нужен)

Может и так… на сайте размер файла 115.13кб (новый), скачал - размер=117.893 кб, а какой размер на самом деле? После стирания чипа епром должен почиститься, но пробовал и старый вставлять - и в том и в другом случае результат одинаковый… Попробую еще IE скачать, может Мозилла чего-то тупит? Щас только обнаружил в свойствах файла - указано, типа, скачан с другого компа и ныне заблокирован, разблокировать? Что бы это значило? Размер разблокированного файла не изменяется…

ВитГо:

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

Конечно вживить! А то там нужную кривую - только руками, на глазок…

ВитГо

размер нового файла 117 893…
кстати мозила иногда действительно на скачивание с народа глючит (У меня при использовании внешней качалки… - поэтому качаю файлы только ее… такая фигня только на народе)

ну чтобы вживлять- сначала потестируйте, а то вдруг не понравится !

ВитГо

ОО! кстати, фюзы не меняли ??
такие глюки обычно бывают с неправильными фюзами !!!
проверьте !!

я давал картинку фюзов в соседней ветке дневника про программирование аппаратуры… либо еще картинку фюзов давайл Алексей в своей ветке про альтернативку Focus/MSV

vadimka29

Нет, фьюзы не трогал… Как были с родной прошивкой, так и остались. С картинкой сравнил - ОК. Конечный адрес в КодеВижн определяется 0х51DA (16-раз слов), что хорошо стреляется с последним символом в hex файле 0хA3B5 (0x51DA*2+1), т.е. декодируется правильно. Правда, в редакторе бинарника вижу коды младшим байтом вперед, в AVR такая адресация слов, видимо…
Епром заливал FF-ками… Сравнивал залитый флэш с файлом - ОК. Даже не знаю, что и думать… 😦
P.S. Виталий, нельзя ли выложить рабочий бинарный файл (в архиве)?

Texnik

Залил последнюю. На кнопки реагирует. Главное меню всегда остается?

vadimka29
Texnik

Главное меню всегда остается?

Да, стоит как вкопанное. Сергей, не могли бы вы считать залитую прошиву, сохранить ее как бинарный файл и выложить мне для проверки и сравнения… Потом осциллографом полезу выяснять…

ВитГо

Вадим, а вы после прошивки отключаете программатор от аппы ?
возможно что ваш программатор удерживает линию и поэтому кнопки меню не работают…

p.s. у меня при подключенном программаторе иногда вообще аппа не показывает ничего… отключаю его - и все ОК…

vadimka29

Поверьте, всяко уж делал…
Друзья! Кто нибудь, пожалуйста, посмотрите осциллографом на работающей V2 время выхода из 0 в 1 на кнопке MENU, эта цепь выходит на разъем программатора на вывод SCK.
У меня в Турниге 9х на портах кнопок стоят RC подавители, где R=1к (102), С=0.1мкф, в результате время выхода из 0 в 1 (отпускание кнопки) составляет около 5мсек до 2V, до 4V выходит за 15мсек. Что-то у меня большие сомнения по поводу 1к, должно быть (сам бы так сделал) 100-200 ом.

А V1 у меня и льется и работает прекрасно!

ВитГо

блин… статистики мало… нужно чтобы народ по заливал VCM и ответил работает навигация по меню или нет…
тогда и будет понятно - проблема только твоего железа или в коде…

кстати скорее всего проект vcm будет свернут 😦
сейчас еще кое что отрабатываю и начинаю полностью рефакторить… мне вообще не нравиться интерфейс… а так как нравиться я не умещаюсь в 64-мегу…
сейчас усиленно читаю про асм для avr…

man-bis

Ну вот тебе и на:( В вопросах написания программ я профан и понимаю, что Вам видней, наверно возможности меги64 и так на пределе.
НО. Виталий, если начнете новый проект прошивки, оч хотелось бы минимального вмешательства в железо сабжа!!! Ну не знаю… доп платы с доп атмегой128 что ли. Иначе новая прошивка (сколь ни была бы она привлекательной) в массы не пойдет.ИМХО. Ногами не пинайте.

ВитГо

поэтому и перейду наверное на ассемблер - это как раз и позволит остаться в том же железе !
а иначе уже нужно паять в аппу 128ю мегу… (если использовать текущий код написанный на СИ)

man-bis

Фух!! перепугали насмерть. Удачи в священнодействе!😁

vadimka29

Ой, Виталий… окстись… запаришься ведь, не дойдя до ОС… а там еще математика, бесконечный ручной оверлей, стек, и прочее… отвлекаться нельзя ни на день (для полного контроля)… Хотя, по-большому - лучше асм-контроля не придумаешь! Переживаю за Ваше самочувствие… 😃

ВитГо
vadimka29;bt48778

Ой, Виталий… окстись… запаришься ведь, не дойдя до ОС… а там еще математика, бесконечный ручной оверлей, стек, и прочее… отвлекаться нельзя ни на день (для полного контроля)… Хотя, по-большому - лучше асм-контроля не придумаешь! Переживаю за Ваше самочувствие… 😃

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

crown
ВитГо;bt48771

блин… статистики мало… нужно чтобы народ по заливал VCM и ответил работает навигация по меню или нет…
тогда и будет понятно - проблема только твоего железа или в коде…

Пробовал залить VCM, навигация по меню не работает, нет действий на нажатие кнопок, первая версия работает без проблем

ВитГо
crown;bt49138

Пробовал залить VCM, навигация по меню не работает, нет действий на нажатие кнопок, первая версия работает без проблем

😦 плохо…

ладно, все равно переписывать все 😃 спасибо за тесты !

George164

Залил VCM от 14.02 . Все работает. Курсор гуляет неправильно, но об этом где-то уже написано.

Strekoz

Не могу понять, вторая версия прошивка доделана или нет?

ВитГо

нет… второй прошивки еще нет…

George164

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

man-bis

а не хотите сохранить сходство меню с родной прошивкой. Вроде бы сразу получите серьезное конкурентное преимущество.

Не совсем понятен ход Ваших мыслей. Прошивка пишется русскоязычная. Максимальный фунционал и прочие фкусности.
ИМХО конкуренции ТАКОЙ прошивке от ув. АФТОРА нет и не предвидится, как бы он ни оформил меню. Скорей бы уже

Владимир_Балабардин

Есть нескромное предложение:
может всем миром скинемся и простимулируем.
Ведь труд огромный, а любой труд должен быть оплачен!
Ато у нас ИЖДИВЕНЧЕСТВО какоето получается.
Прям неудобно както…

Strekoz

Владимир Балабардин, +1

sotikov
Владимир Балабардин;bt49746

Есть нескромное предложение:
может всем миром скинемся и простимулируем.
Ведь труд огромный, а любой труд должен быть оплачен!
Ато у нас ИЖДИВЕНЧЕСТВО какоето получается.
Прям неудобно както…

Предложение уже звучало, но что-то не пошло…
Лично я за!

Владимир_Балабардин

Думаю надо дождатся ответа Виталия.

Юрий05
sotikov;bt49750

Предложение уже звучало, но что-то не пошло…
Лично я за!

Присоединюсь,хоть и не
шибко дружу с программатором

ВитГо
George164;bt49741

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

Думал об этом… но блин, какой же русский язык красивый… и длинный 😦
Да и идея программирования модели отличается сильно от родной прошивки…
так что: к сожалению пока не вижу как это можно сделать…
если кто сможет предложить - то я с удовольствием рассмотрю варианты ! (в принципе вроде бы на мою “глухоту” к пожеланиям никто не жаловался 😃

ВитГо

В общем как обещал - переписываю движок…

с учетом пожеланий переписал и движок меню и драйвер клавиатуры
по клавиатуре вряд ли вы заметите разницу. (хотя она есть !)

по меню - сделал и цикличный переход, и смещение меню только на краю экрана…

в общем попробуйте, чтобы потом не выявилось что у кого то кнопки не работают… 😃 а то я весь моСК сломал почему VCM не у всех работала…

A-Coder.hex.html

George164

в принципе вроде бы на мою “глухоту” к пожеланиям никто не жаловался 😃

Скорее наоборот. Есть со времен IBM OS2 понятие “эффект второй системы”. khpi-iip.mipk.kharkiv.edu/library/extent/…/V.htm Если до этого не читали, прочитайте. Еще есть басня Михалкова-папы “Ералаш”. Иногда наступаете на те же грабли.
Русский язык он такой. Когда у нас еще не было рок-музыки (конец 60-х начало 70-х), многие на полном серьезе утверждали, что она у нас в принципе невозможна именно по этой причине - слова длинные. Как-то рассосалось.

msl_272

Имею некий опыт создания интерфейсов на подобных строчных индикаторах. На самом деле сильно придумывать не надо. Все уже сделано и неплохо. Берем любой мобильник, фотоапарат, навигатор и т.п. и смотрим там как движется курсор, какие клавиши и как использовать… Мне в плане меню нравятся современные мобильники SAMSUNG - очень доступная навигация.
Залил A-Coder. При первом взгляде главное меню воспринимается как один обзац текста, пока не вчитаешься. Чтоб такое впечатление не возникало стороки в меню надо обязательно разделять.
Можно так:

Или хотя бы так:

>
>
>
Взгляни беглым взглядом на мой пост и сразу видно где текст, а где меню.
Навигация по меню тоже должна быть быстрой и удобной. В мобильных устройствах принято навигацию делать джойстиком плюс две клавиши для подтверждения/отмены.
У нас надо аналогично. Вверх/вниз мы двигаем правильно. а для выхода/входа в пункт меню надо использовать клавиши +/-. Клавиши меню/выход в общем случае могут дублировать +/- (как сделано сейчас) и дополнительно только они должны использоваться для “критических” операций.
Это чтоб не было такого как в предыдущей версии. Поставил курсор на “FORMAT VD”, и нажал MENU (ну может чуток и передержал). А она мне пишет - отформатированно успешно…

ВитГо

для меня проще вход в меню делать все таки по нажатию кнопки MENU и выход по нажатию кнопки EXIT…
чтобы небыло путаницы при изменении каких то параметров - которые как раз будут меняться кнопками +\-…

На счет критических нажатий - это в существующем драйвере кнопок меню не возможно… если заметили нажатия на кнопки меню во второй версии теперь разные:

  • есть нажатие Push\Up - нажали и отпустили, только после этого возможна генерация следующего срабатывания кнопки
  • и есть нажатие Push\Hold - это с прошлой версии, нажали и пока удерживаем идет срабатывание кнопки…

первый тип нажатия (Push\Up)- используется при навигации в меню, подтверждениях (MENU\EXIT), изменения параметров с малым количеством значений (например количества каналов PPM)

второй тип нажатия (Push\Hold) - используется при изменении параметров с большим количеством параметров (подстройка процентных значений, изменения длительности пауз)

так что теперь передержать кнопки навигации или подтверждения просто не возможно 😃

msl_272

Да, дело привычки штука серьезная. Чтобы понять лучшее - его надо попробовать.
Пока у тебя экспериментальный вариант попробуй продублировать MENU\EXIT на кнопки +/-. А мы посмотрим. Я думаю управление одним пальцем гораздо удобнее чем двумя руками. Тут надо немного попользоватся и обратно уходить уже не захочется. Путаницы быть тож не должно, наоборот все логичнее получается. +/- только для входа/выхода из меню. Изменение значений параметров клавишами Up/Down - сразу понятно где увеличение, где уменьшение (при этом изменяемый параметр надо предварительно выбрать клавишей “-” и выделить изменяемое значение инверсией. Возврат к меню клавишей “+”. ).

Давай сделаем - пусть народ понажимает и скажет как действительно удобней.

msl_272

По клавиатуре опять мы делаем серьезную ошибку. Во первых ты усложняешь программу, во вторых опять получается не совсем логично. Посмотри как работает комповая клавиатура. Любое нажатие сразу генерит символ (именно сразу, а не при отпускании) если клавиша осталась нажатой еще какое-то время то начинается переодический повтор. Все просто и главное - всем нравится.
Ни в коем случае нельзя делать по отпусканию. Мы так устроены, что нажав кнопку сразу должны услышать желаемый “пик”. Если мы его не слышим или даже слышим с задержкой - то первая реакция людей это посильнее надавить на кнопку. У меня доходило до поломок оборудования…

Извини, что немного критикую. Но мне кажется - Вы пытаетесь клавиатурными наворотами как раз решить некоторые нелогичности интерфейса. В итоге получаем только усложнение. Клавиатурный драйвер должен быть отдельной процедурой. Нельза интерфейс подгонять под различные типы нажатий и т.п.

На самом деле многие мобильные устройства ипользуют различные варианты нажатий. Это делается для возложения нескольких функций на одну кнопку. Например можно сделать долгое нажатие EXIT как выход сразу в главное меню из любого пункта. Но нам итак памяти мало. Все должно быть максимально просто и удобно.

George164

Ни в коем случае нельзя делать по отпусканию. Мы так устроены, что нажав кнопку сразу должны услышать желаемый “пик”.

“Пик” называется “feedback”.
Обработку “по отпусканию” удобно применяеть, когда мы ходим по меню и когда мы используем длительные нажатия. Если делать “по нажатию”, то тогда надо потом все равно ждать отпускания, а это потеря времени. Чтобы с уверенностью различать дребезг контактов и отпускание надо выжидать до трети секунды. Это очень неэффективный способ.
При плохом качестве кнопок простым способом различить быстрое двойное нажатие и дребезг контактов практически невозможно.
Тактовые кнопки, применяемые в аппе плохого качества. У меня уже сдохла Down. И с дребезгом там наверняка паршиво. Так что “по отпусканию” вынужденное разумное простое решение.
Но там, где это не вызовет противоречий можно применять и по нажатию. Вызов меню - по нажатию, навигация по меню - по отпусканию.
Обработка по нажатию и потом отслеживать отпускание и удержание при нехватке памяти излишество. При качестве кнопок в аппе надо ориентироваться на нажатие кнопок не чаще двух раз в секунду.

msl_272

Тактильные кнопки тем и знамениты что дребезга на них практически нет! Вот надежность - это несколько другой вопрос. А кнопок с дребезгом в 0.3 сек я думаю вообще в природе не бывает.
Более того дребезг есть при нажатии и при отпускании. Поэтому программе обсолютно “фиолетово” что отслеживать. Это решает только программист.
И еще. На входе коннтроллера на всех кнопках стоят RC цепочки. Они специально предназначены эффективно подавлять любой дребезг.

ВитГо

гм… мужики а вы попробовали a-coder который я выложил ?
 в нем как раз и сделано срабатывание по нажатию, а не по отпусканию (В отличие от vcm)

в меню НАСТРОЙКА ПЕРЕДАТЧИКА \ НАСТРОЙКА КНОПОК МЕНЮ есть три параметра:
Задержка Push\Up - это задержка при нажатии кнопки до генерации кода… генерация по умолчанию идет после 10 мс… потом ждем отпускания кнопки (то есть для пользователя срабатывание кнопки будет именно по нажатию а не по отпусканию)

Задержка Push\Hold
- это как раз задержка между генерацией кодов кнопок… то есть нажали и держим и каждый период генерируется код кнопки… по умолчанию значение 10… но наверное стоит увеличить хотя бы до 15 чтобы комфортно изменять некоторые значения…

Кстати, я не знаю что за цепи стоят на кнопках - но дребезга там за глаза… 😦

ВитГо
msl_272;bt50130

По клавиатуре опять мы делаем серьезную ошибку. Во первых ты усложняешь программу, во вторых опять получается не совсем логично. Посмотри как работает комповая клавиатура. Любое нажатие сразу генерит символ (именно сразу, а не при отпускании) если клавиша осталась нажатой еще какое-то время то начинается переодический повтор. Все просто и главное - всем нравится.

Так реализовано в VCoder’e, но как показала практика это не всегда удобно… примеры когда нечаянно пролетали 2 уровня меню и стирали модель в памяти (а после этого канал 3 = 1500 мкс - двигатели модели на середину тяги!!) уже были… нечаянно форматировали V-Disk - тоже не самое приятное если EEPROM не сохранен…
да сейчас это пофиксино на уровне доп. запроса на действие… но сам осадочек остался…
поэтому я решил сделать навигацию по меню по нажатиям с отпусканием… кстати попробуйте прошивку, даже при минимальных значениях задержки Push\Up работать очень комфортно… по крайней мере мне (а вот ваших отзывов жду)

msl_272;bt50130

Извини, что немного критикую. Но мне кажется - Вы пытаетесь клавиатурными наворотами как раз решить некоторые нелогичности интерфейса. В итоге получаем только усложнение. Клавиатурный драйвер должен быть отдельной процедурой. Нельза интерфейс подгонять под различные типы нажатий и т.п.

Драйвер клавиатуры и есть отдельная процедура…
просто для нее задается какие кнопки отрабатывать в режиме Push\Hold а какие в режиме Push\Up. кстати на удивление на асме все получается достаточно компактно (или это я так асм люблю…) так что потерю около 50 байт на расширенный функционал драйвера я себе простил 😃

msl_272;bt50130

На самом деле многие мобильные устройства ипользуют различные варианты нажатий. Это делается для возложения нескольких функций на одну кнопку. Например можно сделать долгое нажатие EXIT как выход сразу в главное меню из любого пункта. Но нам итак памяти мало. Все должно быть максимально просто и удобно.

Чтобы отрабатывать долгое нажатие кнопок нужно делать реакцию на отпускание (чтобы замерить как долго была нажата кнопка) - а мы уже от этого отказались… (буквально один абзатц выше… правда я его поскипал 😃

ВитГо
msl_272;bt50129

Да, дело привычки штука серьезная. Чтобы понять лучшее - его надо попробовать.
Пока у тебя экспериментальный вариант попробуй продублировать MENU\EXIT на кнопки +/-. А мы посмотрим. Я думаю управление одним пальцем гораздо удобнее чем двумя руками. Тут надо немного попользоватся и обратно уходить уже не захочется.

Угу… привычка хуже неволи… все ведь так и привыкли в VCodere что кнопка влево (+) уменьшает значение, а кнопка вправо (-) увеличивает 😃)
прямо и не знаю стоит ли вернуться к значкам на кнопках или оставить как было в первом VCodere 😃) пока сделал как на кнопках (то есть + это увеличние, а - это уменьшение)

msl_272;bt50129

Путаницы быть тож не должно, наоборот все логичнее получается. +/- только для входа/выхода из меню. Изменение значений параметров клавишами Up/Down - сразу понятно где увеличение, где уменьшение (при этом изменяемый параметр надо предварительно выбрать клавишей “-” и выделить изменяемое значение инверсией. Возврат к меню клавишей “+”. ).
Давай сделаем - пусть народ понажимает и скажет как действительно удобней.

Вот этот путь как раз мне не понравился…
как то показалось привычнее встал на пункт и если у него одинарное значение то кнопками + или - меняем значение…
если значение двойное, тройное (это будет в настройках каналов) - то нажатием MENU проваливаемся в подменю и там уже настраиваем каждый параметр в отдельности…

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

параллельно практически додумал как решить задачку которую подбросил в приват diwski с настройкой реверсивного регулятора (там все изменения идут от 1000 до 1500 в одну сторону и от 1500 до 2000 в другую - но проблема в том что нужно либо первый либо второй диапазон растягивать на весь ход ручки), ну и решиться проблема с возникновением нежелательного диференциала рулей при изменении положения средней точки (а вот крайние менять то нельзя !)…

в общем наконец то у меня в голове кирпичики складываются… а когда они складываются я начинаю писать очень быстро…

p.s. вчера еще нашел небольшую мат. библиотеку для умножения\деления чисел на асме… ! (спасибо радиокоту)

ВитГо

Вчера накидал структуру меню A-Coder.hex.html
теперь буду добавлять редактирование параметров…

p.s. кстати ищу примеры кода работы с Flash памятью (памятью программ)… многие параметры работы прошивки буду хранить не в eeprome (которой ой как не хватает в 64меге) а прямо в программной памяти…

msl_272

В недалеком прошлом написал несколько десятков программных проектов для метро. И не разу не столкнулся с таким понятием как дребезг. Первые усторойства уже лет 10 на вагонах почти круглосуточно колесят.
Поделитесь в кратце. Как Вы обрабатываете нажатие? И с какой переодичностью опрашиваются кнопки?

ВитГо

если кнопки опрашивать в прерывании - то с дребезгом проблемы редко возникают…
а вот если стоит задача максимально облегчить прерывания - то получаем непрерывный опрос кнопок в главном цикле
прерывание используется только как генератор счетчика с частотой 100 гц…
чтобы не быть голословным - вот что в прерывании:

; Прерывания

TIMER0_INT: ; Внутреннее прерывание
; Используется как счетчик временных периодов
PUSH temp

IN temp , SREG
PUSH temp ; сохранили значения регистров

LDS temp , COUNTER100 ; увеличим значение счетчика
INC temp

CPI temp , 99 ; если значение счетчика меньше 100
BRLO TIMER0_INT_M1 ; то сохраним его
CLR temp ; иначе сбросим счетчик в ноль
TIMER0_INT_M1:
STS COUNTER100 , temp ; сохраним значение счетчика

CLR temp ; установим начальное значение счета
OUT TCNT0 , temp

LDS temp , BEEP_CURR ; уменьшаем счетчик звучания бипера
CPI temp , 0 ; если его значение не нулевое (если
BREQ TIMER0_INT_M2 ; звук звучит)
DEC temp ;
STS BEEP_CURR, temp ;

TIMER0_INT_M2:
POP temp
OUT SREG , temp
POP temp

RETI

то есть ничего кроме генерации последовательности в прерывании не делаем ! ну еще следим за звуковым счетчиком…

А вот чтение нажатых кнопок вызываем непрерывно в главном цикле программы…
Loop: CALL MNKR_READER
… ; здесь печать меню или полетного экрана, чтение стиков,
… ; расчет пачек PPM и все остальное !
RJMP Loop

Сейчас главный цикл за секунду успевает выполниться больше 1000 раз… но конечно это не показатель так как пока нет обсчета математики… но ориентировочно на 50 гц выйти хочеться…
все временные задержки при чтении значений кнопок меню считаются относительно счетчика который изменяется в прерывании (COUNTER100)…
поэтому задержки отрабатывают верно и при вызове процедуры чтения кнопок меню 1000 раз в секунду и при 10 разах в секунду…

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

Strekoz

Здравствуйте! Спасибо за первую версию! Интересно, когда вторая выйдет?

vadimka29

Тактильные кнопки тем и знамениты что дребезга на них практически нет! Вот надежность - это несколько другой вопрос. А кнопок с дребезгом в 0.3 сек я думаю вообще в природе не бывает.
Более того дребезг есть при нажатии и при отпускании. Поэтому программе обсолютно “фиолетово” что отслеживать. Это решает только программист.
И еще. На входе коннтроллера на всех кнопках стоят RC цепочки. Они специально предназначены эффективно подавлять любой дребезг.

Друзья! Прошу обратить внимание на то, что дребезг-дребезгу рознь! Нажатие на кнопку в нашем случае означает МГНОВЕННЫЙ уровень нуля на соответствующей кнопке. Отпускание же подавляет любой дребезг в течение примерно 5 мсек аппаратной схемой… Я уже писал об этих измерениях… Уровень перехода был взят 2V. Прошу учитывать эти аппаратные возможности клавиатуры.

msl_272

по структуре опроса написал на мыло.

msl_272

Да верно. Емкость 0,1 мкф + сопр 200 Ом + внутр сопр в меге = дадут задержку в несколько миллесекунд при отпускании кнопки.

msl_272

A-Coder. Заходим в
Настройка передатчика/Настройка V-Disk
нажимаем UP и зависаем.

msl_272

Кнопки вроде нормально жмутся. Пробовал при 5, 10 все отлично. При 15 и 20 чувствуется небольшая тормознутость. При 30 иногда появляются пропуски. Даже и не понимаю зачем нужен этот параметр. Ставишь 5 (т.е. срабатывание по нажатию как я и предлагал) и все работает просто замечательно. Как не дави хоть быстро, хоть медленно , все отрабатывается сразу и четко.

А вот повтор слишком быстрый даже на максимальном значении зажержки.

George164

А кнопок с дребезгом в 0.3 сек я думаю вообще в природе не бывает.

Это не дребезг кнопок. Это задержка. Т.е. считалось, что чаще чем три раза в секунду кнопки не нажимаются. Там где это делалось не было даже ассемблера. Программный аналог микросхем логики.
Что такое тактильные кнопки? В аппе они вроде бы называются тактовые.

ВитГо
msl_272;bt50286

A-Coder. Заходим в
Настройка передатчика/Настройка V-Disk
нажимаем UP и зависаем.

опс… наверное в описании пункта в указателях ошибочка… сейчас гляну…

гм… по описанию вроде все верно… вечером гляну… 😃

ВитГо
msl_272;bt50289

Кнопки вроде нормально жмутся. Пробовал при 5, 10 все отлично. При 15 и 20 чувствуется небольшая тормознутость. При 30 иногда появляются пропуски. Даже и не понимаю зачем нужен этот параметр. Ставишь 5 (т.е. срабатывание по нажатию как я и предлагал) и все работает просто замечательно. Как не дави хоть быстро, хоть медленно , все отрабатывается сразу и четко.

А вот повтор слишком быстрый даже на максимальном значении зажержки.

Повтор увеличу возможность поставить значение до 50…

vadimka29

Залил, проверил - кнопки работают на славу!

Strekoz
vadimka29;bt50370

Залил, проверил - кнопки работают на славу!

Так, что, уже есть прошивка новая?

ВитГо
ВитГо;bt50320

опс… наверное в описании пункта в указателях ошибочка… сейчас гляну…

гм… по описанию вроде все верно… вечером гляну… 😃

A-Coder.hex.html

полтергейст какой то… или я исправил ошибку в векторах как то мимоходом когда другие вещи редактировал… - в меню V-DISKа все работает во все стороны 😃

p.s. кстати написал я все таки модуль самопрограммирования atmega64… так что теперь все настройки передатчика будут храниться в программной памяти и не будут кушать ценный EEPROM… ну а если останется место - то в программной памяти умещу еще и FLASH-диск для хранения уже настроенных моделей… 😃

ВитГо
Strekoz;bt50439

Так, что, уже есть прошивка новая?

Новая прошивка еще пишется… причем стадия очень ранняя… можно даже сказать что ее скорее нет чем она есть 😃

msl_272

Глюк в меню ушел. 5 в задержке по умолчанию это нормально. 50 для повтора вполне достаточно будет.
больше изменений не заметил.

ВитГо

Выходные прошли 😃
А-Соder еще немного написался - A-Coder.hex.html

  1. Настройки передатчика сохраняются во FLASH… для этого нужно выбрать пункт меню НАСТРОЙКИ ПЕРЕДАТЧИКА \ СОХРАНИТЬ НАСТРОЙКИ

  2. Сделаны настройки для дисплея… сейчас это Контрастность и Сдвиг изображения (центровка)… введена переменная для подсветки - но пока функционал самой подсветки не написан (еще нет обработки нажатий триммеров, поэтому не стал писать сейчас)

  3. ПОложено начало универсальному редактору параметров… так что такие блоки как Редактирование каналов ppm, Редактирование внешних значений, редактирование настроек каналов и так далее - теперь отрабатывается одним редактором… Пока все разделы работают только на просмотр (редактор второй очереди еще пишется)

  4. Еще что то по мелочи написано и исправлено

Очень много изменений в коде - но как правило пока эти изменения скрыты от глаз и носят скорее обеспечительную функцию для будущего функционала…

кстати размер кода около 8 кб… - очень мало по сравнению с тем же объемом функционала написанного на СИ… но вот при записи в аппу - запаситесь терпением - функционал записи переменных во FLASH расположен в конце FLASH памяти меги - поэтому программатор упорно записывает в мегу все 64 кб кода 😃))

diwsky

Виталий, привет!
Уж не знаю как, но сделай, пожалуйста, работу триммеров НЕ как в первой прошивке.
Ну ты понимаешь про что я:

  1. про смещение нуля экспоненты при триммировании;
  2. само триммирование происходит по экспоненте, те при глубокой экспоненте триммирование очень и очень вялое.
ВитГо
diwski;bt50659

Виталий, привет!
Уж не знаю как, но сделай, пожалуйста, работу триммеров НЕ как в первой прошивке.
Ну ты понимаешь про что я:

  1. про смещение нуля экспоненты при триммировании;
  2. само триммирование происходит по экспоненте, те при глубокой экспоненте триммирование очень и очень вялое.

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

в принципе готов реализовать функционал который опишите вы…
соотсвественно от вас - описание по шагам - что куда отклоняем, что изменяется и на сколько…
только обязательно проверяйте свою идею на нескольких моделях (как минимум на самолете тренере (4 канала), пилотажном (5-6 каналов - по 2 канала на РВ и Элероны), копии (+ закрылки, предкрылки и так далее), ЛК… чтобы не было потом частных случаев

diwsky
ВитГо;bt50660

триммер - это как бы отклонение стика…

Триммер - это смещение нуля стика!
Решишь этот вопрос, остальное всё нормально наложится.

ВитГо;bt50660

в принципе готов реализовать функционал который опишите вы…
соотсвественно от вас - описание по шагам - что куда отклоняем, что изменяется и на сколько…
только обязательно проверяйте свою идею на нескольких моделях (как минимум на самолете тренере (4 канала), пилотажном (5-6 каналов - по 2 канала на РВ и Элероны), копии (+ закрылки, предкрылки и так далее), ЛК… чтобы не было потом частных случаев

Посмотри EEPROM Editor for er9x
Там симулятор есть, можно покрутить повертеть 😉

man-bis

Виталий!
Залез тут на рцгрупс и нашел вот это:
www.rcgroups.com/forums/attachment.php?attachmenti…
там целая тема на этот счет.
Вы как то в своих коментах оговаривались о том, что возможно прикрутите телеметрию от FrSky к новой прошивке. Думаю, что кроме меня найдется немало заинтересованных в том, чтобы Acoder был максимально совместим с телеметрией этого бренда.

=V=simon

Здорово! Жаль, что вчера вышел передатчик с приёмником но без телеметрии, так как посчитал, что нафик не нужна если нет дисплея на который выводятся данные, а тут такое(((( А отдельно покупать дисплей за 30 у.е. не хоца.

msl_272

Нам бы пока основную прошивку победить надо…
А ужо с примочками как нибудь потом разберемся.

ВитГо
diwski;bt50781

Триммер - это смещение нуля стика!
Решишь этот вопрос, остальное всё нормально наложится.

Именно!
так оно и сделано - триммер просто смещает ноль стика…

ВитГо
man-bis;bt50807

Виталий!
Залез тут на рцгрупс и нашел вот это:
www.rcgroups.com/forums/attachment.php?attachmenti…
там целая тема на этот счет.
Вы как то в своих коментах оговаривались о том, что возможно прикрутите телеметрию от FrSky к новой прошивке. Думаю, что кроме меня найдется немало заинтересованных в том, чтобы Acoder был максимально совместим с телеметрией этого бренда.

Видел 😃
и еще кучку док видел… и даже где то примеры кода…
это пока планы на будущее…
в текущей прошивки захваченные каналы будут доступны через отдельные переменные “ЗАХВАТ[X]”, где X - номер захваченного канала
а вот телеметрия будет реализована через функции… - их можно будет в прошивке читать, выводить на экран, в зависимости от их значения - менять параметры модели “на лету” (например делать корректировку кривой газа в зависимости от просадки батареи по времени полета)

ВитГо
msl_272;bt50899

Нам бы пока основную прошивку победить надо…
А ужо с примочками как нибудь потом разберемся.

победим 😃
сейчас полным ходом пишу “универсальный редактор параметров” (который в VCoder все параметры менял) - после того как его напишу - интерфейс можно будет считать законченным и возьмемся за не меньшее “веселье” - целочисленную математику на ассемблере 😃))

ВитГо

Для тестов: A-Coder.hex

В прошлой версии не изменялась контрастность при изменении параметра (только при включении устанавливалась)…

кто нить попробовал сохранение параметров во FLASH ? у всех работает ?

ВитГо

по меню:

сейчас реализую следующий функционал редактора параметров (значений каналов, внешних переменных и т.д.)
выбираем строку кнопками UP \ DN
далее нажимаем MENU и будет появлятся подменюшка…
в зависимости от вида редактируемых и функций будет меняться набор и вид пунктов, общий список таков:
РЕДАКТИРОВАТЬ - редактировать параметр (все строку)
ВЫБРАТЬ - выбрать параметр (при необходимости выбора параметра из списка, об этом позже)
КОПИРОВАТЬ - копировать выбранный параметр
ВСТАВИТЬ - вставить скопированный параметр в место выделения курсором
УДАЛИТЬ - удалить строку выделенную курсором, пустое место удалить со смещение нижестоящих параметров на 1 строку вверх
ОЧИСТИТЬ - очистить параметр в строке выделенной курсором

что то нужно переименовать… в этом меню ?

msl_272

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

vadimka29

При настройке длительности звука игнорируется первое нажатие на + или - при изменении направления регулировки (сначала жмем + несколько раз, затем жмем минус - это нажатие игнорируется, звука тоже нет).
Это справедливо и для настройки дисплея.
В “редактировании модели” такой эффект не наблюдается.

ВитГо
msl_272;bt50938

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

функционал подсветки наверное сегодня напишу… не брался еще из за того что не брался за триммеры… но наверное сегодня все таки напишу чтобы у вас была возможность потестить… 😃

ВитГо
vadimka29;bt50952

При настройке длительности звука игнорируется первое нажатие на + или - при изменении направления регулировки (сначала жмем + несколько раз, затем жмем минус - это нажатие игнорируется, звука тоже нет).
Это справедливо и для настройки дисплея.
В “редактировании модели” такой эффект не наблюдается.

ага… спасибо !! я тоже заметил чтото подобное, но не понял когда этот глюк проявляется !!
я помоему знаю в чем проблема… попробую исправить!!
спасибо за указание на ошибку !

ВитГо

Продвигаемся A-Coder.hex.html

почти дописал редактор параметров…
посмотреть можно на Настройке каналов…
выбираем нужный канал, жмем MENU, выбираем РЕДАКТИРОВАТЬ (и ничего другого!!) и получаем построчное редактирование записи о канале…
теперь тренируюсь писать настроечные таблицы для других редакторов… ничего сложного, просто мороки много когда из за одного параметра меняется формат других…

с кнопками помоему разобрался - посмотрите, оцените

George164

Все на редкость хорошо. Меню интуитивно понятно. Перескакиваний нет. Срабатывание четкое.
Поменяй фонт буквы “ь”. Сдвинь ее вправо или лучше сделай пузо побольше. Сейчас она смотрится как пробел.

msl_272

Китайцев понять можно. Они пишут и читают справа налево. Поэтому у них и знак “+” слева получился. Но мы то не китайцы?
Предлагаю сразу интерфейс правильный делать, а не китайский. Даже на первой версии правильнее было!

Ну окройте же в винде/мобиле/фотике/МП3 и т.д. любую регулировку или проигрыватель. Всегда движение вверх или вправо ведет к увеличению.

НАРОД! Ну скажите наконец удобно или нет правой кл уменьшать, а левой увеличивать?

Strekoz

Нет, не удобно. +1 к тому что Вы предложили, ну и пусть на кнопке будет +, мы то знаем что там минус.

lexash

А на крайняк, и кнопочки местами поменять можно. +1, присоединяюсь к предыдущему предложению.

Новое меню, действительно, понятно, хотя со временем, все же не помешает составить если не инструкцию, то справочник функций. И еще, может это не глюк, но в редактировании модели из пунктов “внешние значения”, “органы управления” и “условия и выражения” выбрасывает в главное меню.

ВитГо

Дааа… как переменчиво общественное мнение 😃
помню когда в VCodere я сделал +(влево) - уменьшение значения, а -(вправо) - увеличение - меня не поняли, и говорили что лучше сделать по людски, вернее по тому как это написано 😃))

Инструкцию в любом случае придется делать… просто вы еще не видите самого интересного (подменю “Действия”) - вот в нем без точного понимания всех “механики” настройки будет просто нечего делать…
по поводы выкидывания в главное меню из других пунктов (кроме Фильтров и Каналов) - так и должно быть - там заглушки стоят потому что функционала пока нет…
усё будет… просто сейчас на работе запары… времени не особо много чтобы писать…

Chief
ВитГо;bt51403

Гм… Роман, я к сожалению плохо представляю себе что у вас за платформа…

опять таки, знающие меня люди уже говорят хором: “проблема любой самодельной конструкции в ее повторяемости”
сейчас с повторяемостью проблем нет (железо штатное)…
а какое у вас железо ?
😃

проц stm32f103rb (64 ножки, 128к flash, 20k sram) внешний eeprom, индикатор пока TIC154 (нормально будет использовать и индикатор из турниджи (в послед.режиме), апарат. USB для заливки прошивок и eeprom ( со стороны компа как флешка) , (возможно будет эмуляция джойстика для симуляторов).
Платы планирую заказать на заводе (двухсторонние с маской), пока с минимальными размерами (по типу fokus-msv), если все получится то будет еще 2 варианта плат под Sanwa VG400 и Turnigy (то что есть у меня).
По поводу програмирования : вся работа переферии (вывод на экран, формирофание PPM, захват хедтрекера, АЦП) через DMA контроллер.
По поводу повторяемости и доп.платки к turnigy: стоимость STM32 меньше чем mega128, и вместо доп.платы к turnigy я думаю проще просто заменить основную плату с более мощным процом, (например как народ делает здесь code.google.com/p/gruvin9x/wiki/PCB ), из минусов пока вижу только шаг ножек проца 0.5 (но при нормальной заводской плате паяется влет). С наличием процов тоже вроде проблем нету.

man-bis

Роман!
Все, что Вы делаете или планируете сделать заслуживает уважения. НО, Виталий делает прошивку именно для стокового железа. Это кредо, если хотите. Ведь очень немногие моделисты станут морочиться покупкой, сначала турниги или Флайскай, а потом заказом новой материнки от Грувин или от Вас. Сваять её самому доступно единицам… Многие владельцы аппаратур этого семейства вовсе не помышляют что-то менять и вполне счастливы.
Действительно у стоковой аппы не до конца раскрыт потенциал, но если начинать её апгрейдить ТАК как Вы, то лучше задуматься о покупке чего-нибудь более “брендового” с хорошим функционалом.
А ваши задумки достойны отдельной темы или обсуждения в дневнике. Недаром, соответствующие темы на рц групс имеют поддержку на отдельных соответствующих сайтах, специально для этого созданных.

msl_272

Очень многие проблеммы с функционалом может решить элементарная замена меги 64 на мегу 128. Причем замена 1 в 1, т. е. без переделки платы, обычной перепайкой. Но заниматься этим просто неохота. Это при том, что на работе я имею все необходимое оборудование. А у многих этого просто нет.
Я уж не говорю про полную переделку платы.
Более того под, новое железо надо написать совт. А это - время.
Виталий уже больше года совтину пишет, и мы как можем ему помогаем.

msl_272

Жаль что сервак грохнулся. Придется свой пост повторить.

В новой сборке появился счетчик строк в меню - это радует.
Но в тех меню, где он особенно необходим, для него нет свободного места и он отсутствует - это огорчает.
В нормальном и понятном интерфейсе все должно быть однообразно. Получается в таком виде счетчик строк для нас неприемлем. Выходов предлагаю два:

  1. как я писал ранее. выделить под настоящий скролл правое поле во всех строках. Немного сложновато, но максимально наглядно.
  2. Упрощенный вариант. В строке заголовка в правом углу выделяем место под 1-2 символа. В зависимости от положения курсора рисуем там значок или символ. Например, в крайнем правом поле, если есть невидимые строки внизу - рисуем стрелку вниз ▼. Если есть строки вверху - рисуем стрелку вверх. В предпоследнем правом поле можно ставить 1 - для первой строки, букву К - для последней строки.
    В итоге можно легко ориентироваться, и главное во всех менюхах можно сделать просто и однообразно.

Виталий! делай второй вариант. Если подумать и нарисовать несколько спец символов, то вполне можно обойтись одним знакоместом в правом верхнем углу. Наглядности будет достаточно.

NVS
man-bis;bt51399

Роман!
Все, что Вы делаете или планируете сделать заслуживает уважения. НО, Виталий делает прошивку именно для стокового железа. Это кредо, если хотите. Ведь очень немногие моделисты станут морочиться покупкой, сначала турниги или Флайскай, а потом заказом новой материнки от Грувин или от Вас. Сваять её самому доступно единицам… Многие владельцы аппаратур этого семейства вовсе не помышляют что-то менять и вполне счастливы.
Действительно у стоковой аппы не до конца раскрыт потенциал, но если начинать её апгрейдить ТАК как Вы, то лучше задуматься о покупке чего-нибудь более “брендового” с хорошим функционалом.
А ваши задумки достойны отдельной темы или обсуждения в дневнике. Недаром, соответствующие темы на рц групс имеют поддержку на отдельных соответствующих сайтах, специально для этого созданных.

+100
у Виталия с кодом под родную-то железку еще работы невпроворот…
Нельзя объять необъятное…

Chief

Кстати, если Виталий решит ставить доп.платку то можно перевести экран в послед.режим и освободится минимум 6 портов контроллера

man-bis

Виталий!
Может выложите тест-версию Acoder от 31.03 или следующую. А то ту, что Вы выкладывали, слопал глючный сервак.

ВитГо

A-Coder.hex.html

Сейчас придумываю как написать редактор Условий\Выражений - там структура сложная получилась…

msl_272

в настройках каналов лучше поставить:
ЗАДЕРЖКА УВЕЛИЧ
ЗАДЕРЖКА УМЕНЬШ

alex-ber

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

ВитГо
msl_272;bt51646

в настройках каналов лучше поставить:
ЗАДЕРЖКА УВЕЛИЧ
ЗАДЕРЖКА УМЕНЬШ

Эхх… я тоже об этом думал - но не нравиться мне такая формулировка 😦

ВитГо
alex-ber;bt51904

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

из готового только VCoder (из соседней ветки дневника)

вторая версия еще пишеться… использовать ее не возможно потому что функций генерации ppm там пока нет…

ВитГо

Какие то мелкие правки и устранения глюков: A-Coder.hex.html

alex-ber

Спасибо! Да про Vcoder я прочитал… В нем мне нехватает входа для тренера а так все классно (по описаниям - пока сам не пробовал). Вот и думаю - подождать эту прошивку или прошиться вначале VCoder
И еще вопросик - у меня програматор Мастеркитовский 910, не могли бы вы кинуть фотку какие резюки коротить…
Спасибо за Ваш труд!
С уважением Александр.

vadimka29

Главное - резюк на выходе RST короти… а лучше - все на выходных цепях, не ошибешься.

msl_272
alex-ber;bt51934

И еще вопросик - у меня програматор Мастеркитовский 910, не могли бы вы кинуть фотку какие резюки коротить…

Резисторы замкнуть. Диоды тож замкнуть. На вход ставить два стабилитрона.
Читайте ветку про программирование.

Strekoz

Да про Vcoder я прочитал… В нем мне нехватает входа для тренера а так все классно (по описаниям - пока сам не пробовал).
Удачно подключил на первой прошивке Spektrum DX6. Незнаю где Вы такие описания вычитали, у меня всё работает. Если будут вопросы по этому, то в ЛС.

alex-ber
Strekoz;bt51942

Да про Vcoder я прочитал… В нем мне нехватает входа для тренера а так все классно (по описаниям - пока сам не пробовал).
Удачно подключил на первой прошивке Spektrum DX6. Незнаю где Вы такие описания вычитали, у меня всё работает. Если будут вопросы по этому, то в ЛС.

Спасибо за предложение… Я в первой ветке по вкодер читал, что сам Виталий писал о том, что захвата ппм в прошивке нет… Может и ошибся… Вам я напишу чуть позже - у нас ШОК! Слежу за новостями…

ВитГо
msl_272;bt51941

Резисторы замкнуть. Диоды тож замкнуть. На вход ставить два стабилитрона.
Читайте ветку про программирование.

диоды можно не замыкать… достаточно резисторов… и если не поможет попробовать убрать кондер с цепи RESET у меги на плате аппы…
в принципе после этого я думаю никаких проблем быть не должно…

если же они есть - то настаиваю на неправильном подключении программатора !! (неплохо бы это проверить еще раз до того как начнете перемыкать и выкусывать 😃))

ВитГо

мучаю редактор Условий выражений… строчная запись косячит, а вот редактор вроде уже работает

A-Coder.hex.html

ВитГо

добил строчную запись в редакторе “Условия\Выражения” A-Coder.hex.html

кстати, кто то уже смотрел ? насколько понятно создание условий ?

по операциям наверное доп. комментарий нужен только по
PS - это модуль числа (позитивное значение)
NG - это инверсия логического значения

ВитГо

Теперь настало время поговорить о микшерах, потому что все наши грабли функционала потом идут от них.
пока такая структура у меня

MODEL_MIX:            .BYTE        64*8        ; 64 микшера по 8 байт
байт 1 MODE - режим микшера:
        7 6 5 4 3 2 1 0
        | | | | | | | +--- MIX_ON:      0 - микшер выключен, 1 - микшер включен
        | | | | | | +---- IFOP_ENABLE: 0 - без условия, 1 - есть условие работы микшера
        | | | | | +----- DEST_TYPE:   0 - получатель LCH, 1 - получатель тип значения
        | | | | +------ PROC.DN_TYPE:0 - PROC.DN число   1 - PROC.DN тип значения
        | | | +------- PROC.UP_TYPE:0 - PROC.UP число   1 - PROC.UP тип значения
        | | +-------- CURVE_ON:    0 - кривой нет      1 - есть кривая
        | +--------- CURVE_TYPE:  0 - задан номер кривой, 1 - номер из типа значения
        +---------- MIX_DEF:     1 - микшер задан, 0 - микшер не задан
байт 2 IFOP    - номер условия работы микшера если есть IFOP_ENABLE
байт 3 DEST - получатель микшера
байт 4 SOURCE - источник - тип значения
байт 5 PROC.DN - процент микширования вниз
байт 6 PROC.UP - процент микширования вверх
байт 7 СURVE   - кривая
байт 8 - резерв

Закладываю возможности

  1. включения\выключения отдельного микшера (через меню Действия)

  2. работу микшера по условию и без него (наподобие SW в VCoder)

  3. Спорный вариант - куда передавать результат микширования - в LCH или в какую то внутреннюю функцию - в принципе пока кроме LCH получателя не знаю… - над этим нужно подумать - возникает ли необходимость результат микширования передавать еще куда то, а не в канал ?

  4. Закладываю два отдельных процента микширования - от минимума к середине канала и от середины к максимуму - это нужно для построения миксов корректировки поведения модели например на РН - так как обычно есть неравномерность поведения модели при отклонении РН влево и вправо (нужны разные углы)

  5. Конечно процентные значения отклонения можно будет брать откуда угодно (значение типа)

  6. кривые теперь будут в микшерах, значения кривых будут накладываться на ИСТОЧНИК ! и после этого микшироваться - это чтобы расходы при использовании кривых регулировались правильно и не приходилось как в VCodere использовать промежуточные виртуальные каналы

  7. Номер кривой тоже можно будет задавать гибко во время полета

Чего еще не хватает ?
точку OFS нужно вводить ?

saaas
  1. В вертуальный канал.
  2. Очень правильно.
  3. Было бы очень полезно, когда после наложения экспонент (может не для п.6, но в тему), мах выходное значение не пересчитывалось по формулам, а было приравнено к +100 и -100% как и до применения экспонент. Это есть в заводской прошивке. Очень удобно.
    Точку OFFSET вводить обязательно!!!
ВитГо

За время отпуска удалось уделить время проекту

A-Coder.hex.html

Пока дошел до следующего способа настройки моделей:
будут разделы:

  1. Стандартная настройка
  2. Расширенная настройка

В стандартной настройке в зависимости от типа ЛА (Самолет, Вертолет, Планер) - будут свои параметры настройкий (сейчас пока написал варианты только для Самолета)…
Какие настройки есть у Самолета можно гнянуть уже сейчас… - зацените чтобы я понимал пойдет такой вариант или нет… еще добавлю наверное настройку двойных расходов (чтото выскочили они у меня на каком то этапе)

далее, если стандартные настройки сделаны, то можно через меню Расширенные настройки сделать дополнительные настройки модели… либо исправить стандартные…
в принципе для гурманов останется вариант полностью работать в Расширенных настройках без Стандартных, но сразу замечу что использование по максимуму стандартных настроек модели будет здорово экономить память при сохранении модели
Очень нужны варианты настроек для планеров и вертолетов… кто может написать?

ВитГо

Если кому влом качать и заливать прошивку - вот какие пункты настройки там уже есть

СХЕМА ЭЛЕРОНОВ - 1 РМ\2 РМ\ЛК (1 серва\2 сервы\Летающее крыло соответственно)
ЛЕВЫЙ ЭЛЕРОН - указывается канал для левого элерона, по умолчанию 1
ПРАВЫЙ ЭЛЕРОН - указывается канал для правого элерона, по умолчанию 6
При нажатии на кнопку MENU на пунктах ЛЕВЫЙ ЭЛЕРОН или ПРАВЫЙ ЭЛЕРОН - запускается меню настройки соответствующего канала (мин, середина, макс, реверс, задержки изменения)
НАСТРОЙКА ФЛАПЕРОНОВ - переход в меню настройки флаперонов, доступно только для схемы элеронов - 2 РМ
СХЕМА РУЛЯ ВЫСОТЫ - 1 РМ\2 РМ\V-ХВОСТ (1 серва\2 сервы\V-хвост соответственно)
ЛЕВЫЙ РУЛЬ ВЫСОТЫ - номер канала, по умолчанию 2
ПРАВЫЙ РУЛЬ ВЫСОТЫ - номер канала, доступно для схем руля высоты 2РМ и V-ХВОСТ, по умолчанию 8
настройка каналов так же нажатием кнопки MENU на соответствующем пункте
РУЛЬ НАПРАВЛЕНИЯ - номер канала, недоступно если выбрана схема руля высоты V-ХВОСТ, по умолчанию 4
МИКС ЭЛЕРОНЫ-РВ (КРЕН) - микс элеронов на РВ по крену
МИКС РВ-ЭЛЕРОНЫ (ФАЗА) - микс руля высоты на элероны, движение в одной фазе
МИКС РВ-ЭЛЕРОНЫ (ИНВ.) - микс руля высоты на элероны, движение в противофазе
МИКС РН-ЭЛЕРОНЫ - микс руля направления на элероны для предотвращения крена при работе рулем направления

сейчас по всем рулям добавлю настройку двойных расходов…
так же добавлю настройку номера канала газа…

меню НАСТРОЙКА ФЛАПЕРОНОВ выглядит так

ВЫКЛЮЧАТЕЛЬ - выключатель флаперонов
ВИД ЗНАЧЕНИЯ - откуда брать значение угла отклонения
ЗНАЧЕНИЕ - угол отклонения флаперонов

соответственно иду по функционалу флаперонов: сначала включили режим, затем установили угол - чтобы была возможность если это нужно - регулировать угол в полете…

druksel

Виталий, а есть возможность прикрутить прям щас выход ппм?? что бы хотя бы в симе попробовыать повертеть прошивку???

ВитГо

а что интересного есть в симе чтобы прямо сейчас делать выход ппм ?
схемы микширования для сима не нужны вообще.
мастера настроек тоже…

ВитГо

Регулировки двойного расхода… каркас + выбор канала для двигателя и настройка Глушения двигателя (тоже каркас) A-Coder.hex.html

ВитГо

Господа, у меня вопрос,

кривую применяем к значению источника, чтобы потом полученное значение смикшировать на получатель…

а OFS - куда прикручивать ? тоже к источнику ? (я так понимаю это смещение центра… ?)

ВитГо

Кстати, никто не видел на асме реализацию на алгоритме Брезенхейма рисования линии ?

msl_272

А что такое OFS?
Я вроде видел удобный функционал настроек границ и центров каналов. В последней версии его уже не стало?
Кривые однозначно регулируют плавность и диапазоны ходов стиков. Поэтому их накладывать на источники.

Менюхи становятся все более обширными и еще менее наглядными. Это печально, тем более об этом уже много писали…

ВитГо

то есть параметр смещения центра (OFS) не нужен ?

В последней версии все осталось… это меню “Расширенная настройка” - “Логические каналы”

а в меню “Стандартная настройка” можно выбрать номер канала для той или иной рулевой поверхности, и потом сразу перейти к редактированию канала нажав на кнопку MENU.

На счет менее наглядного - что именно не понятно ?

Просто неоднократно поднимался вопрос необходимости мастера настройки моделей… причем как самолетов так и вертолетов и планеров…
соответственно и появилось 2 варианта настройки моделей:

  1. Стандартная настройка, при выборе типа модели в меню “Стандартная настройка” будут предложены настройки именно под самолет, вертолет, планер… вариант настройки под самолет я уже указал выше…
    настройки позволяют полностью настроить параметры модели (номера каналов, настройки каналов, необходимые микшеры, значения органов управления и т.д.)
    если этих настроек недостаточно - то всегда можно произвести более точную настройку параметров моделей через меню “Расширенная настройка” - например внести изменения в стандартные микшеры или добавить свои…

Для “гурманов” останется возможность настройки модели без мастера (с нуля)… хотя я сейчас стараюсь в меню “Стандартные настройки” учесть все часто необходимые варианты настройки - это позволит и память экономить да и упрощает рутиные действия

что именно не наглядно лучше говорить сейчас…

p.s. русский язык вообще очень длинный 😃 иногда очень трудно подобрать синонимы…и одновременно не хочется писать по английски потому что в этом случае теряется весь смысл “русской” прошивки…

ВитГо

вчера все таки написал процедуру рисования линии по алгоритму Брезенхейма… так что теперь можно делать редактор кривых

msl_272

Я наверно торможу, но я так и не понял что такое OFS и для чего он нужен.
Как и в прошлой прошивке, в последовательноти математики разбираетесь только Вы. Возможно для Вас многие вещи кажутся очевидными, но мы их не знаем. Именно для этого я настойчиво предлагаю рисовать диаграммы или блок схемы. Только так мы можем понимать друг друга.
И сложного то ничего нет. Рисуем параметр (стик), добавляем среднюю точку, вводим значение калибровки, ставим ограничитель, блок наложения кривых, вводим значение триммеров, ставим OFS и т.д. Уже получается наверняка неверная последовательность. Попробуй потом разберись что на что влияет.

Многие русские слова очень хорошо сокращаются. и в этом нет ничего плохого. Если, к примеру, слово количество заменить на кол-во страшного абсолютно ничего не случится.
Чтобы написать хороший интерфейс надо сначала разработать его структуру. Прикинуть сколько символов надо отвести под название, сколько под значение. И в дальнейшем четко придерживаться этой структуры. Сейчас все плывет совершенно непонятным образом.
Например, мы выделяем верхнюю строку под название группы параметров. Если надпись поместили в начало стороки, то во всех остальных меню должно быть строго аналогично!.

По поводу функционала (например упрощенные настройки)- тут личное дело разработчика. Главное чтоб было удобно и правильно работало.

ВитГо

OFS это смещение центра источника…
то есть например если у нас у органа управления заданы параметры:
min 100
mid 500
max 900
то при OFS=10%
при микшировании параметры органа управления будут следующими
min 100
mid 580 (500+(900-100)*10%)
max 900

то есть при установленном в центр органе управления (значение 500) - поскольку значение центра будет взято 580 - микширование будет как будтно орган управления сдвинут от центра в сторону уменьшения…

блин… как бы объяснить по понятнее…

lexash
ВитГо;bt56279

OFS это смещение центра источника…
блин… как бы объяснить по понятнее…

Т.е. Offset - это аналог механического триммера, но с учетом конечных точек.

vadimka29

Т.е. Offset - это аналог механического триммера, но с учетом конечных точек.

Если оффсет будет возможен в каждом микшере, то это очень нужная штука… и триммер для каждого полетного режима становится не нужным…

msl_272

Математически теперь про OFS все понятно. Спасибо.
А вот то что это вещь необходима я сильно сомневаюсь. Не скажу точно за вертолеты, а самолетам точно не нужен.
Дело в том, что смещая среднюю точку пересчитываются углы наклона характеристик вверх и вниз. В Виталеном примере вниз отклонение будет на 480, а вверх на 320 при одинаковых отклонениях стика. Т.о если отриммировать модель с помощью OFS мы получим нессиметричные чувствительности в средних положениях.
Еще проще говоря - ставим OFS на элероны. При неполных отклонениях стика вправо и влево модель будет в одну сторону крутиться больше чем в другую. Это очень нехорошо.

vadimka29

Еще проще говоря - ставим OFS на элероны. При неполных отклонениях стика вправо и влево модель будет в одну сторону крутиться больше чем в другую. Это очень нехорошо.

Это все легко подстраивается в крайних точках (как в Vcoder1). Кроме того, если нет возможности поставить рычаг сервы строго перпендикулярно и на защелках тяг уже нет резьбы - то оффсет единственный выход… и пусть будет несимметрия (которую легко поправить), главное чтоб оффсет стал расчетной серединой диапазона и от НЕГО отсчитывались кривые и прочие смешения.

saaas

параметр смещения центра (OFS) не нужен ?

Нужен! Обязательно!!!

кривую применяем к значению источника, чтобы потом полученное значение смикшировать на получатель…

Наверное лучше на источник. Но только с пересчетом на -100 +100 значение. Т.е. наложив, например, на источник экспоненту и увеличив его значение до обычных 100% получим экспоненту, а мах значения источника останутся на том же уровне.

saaas
msl_272;bt56302

то что это вещь необходима я сильно сомневаюсь. Не скажу точно за вертолеты, а самолетам точно не нужен.

Еще как нужен!!! Именно в самолетах. Без Оффсета теряется смысл работы микшеров в стандартной прошивке. Их просто невозможно использовать! Просто через ж…

смещая среднюю точку пересчитываются углы наклона характеристик вверх и вниз. В Виталеном примере вниз отклонение будет на 480, а вверх на 320 при одинаковых отклонениях стика.

Нет! Меняется точка перехода нуля!!! Углы меняются от значений плюсового и минусового коэф-нта. Конечно, меняя только оффсет углы также изменятся, но это вторичное его действие. Еще раз скажу - он для точки ноль!

ставим OFS на элероны…модель будет в одну сторону крутиться больше чем в другую. Это очень нехорошо.

Оффсет можно ставить куда угодно. На элероны тоже. Все зависит от задачи. Хорошо это или плохо, каждому - свое. Для меня это просто прекрасно!!! 😎 Без оффсета-грусно… 😦

msl_272

Похоже никто меня и не понял.
Смещать среднюю точку стика необходимо. Это важно для последующего наложения кривых и правильной работы микшеров. Я с этим даже и не спорю - это нужно.
Вопрос в том - как расчитывать математику в крайних точках. Предлагается два способа:

  1. Линейное смещение центра на определенную величину. Тут получается, что смещая центр происходит ограничениние максимально возможного диапазона. Пример: сместив центр на 25% мы на эту же величину ограничим максимальное отклонение, но отклонения остаются линейными в обе стороны.
  2. Смещение центра с перерасчетом крайних точек, как предложил Виталий. Сместив центр максимальные отклонения останутся неизменными, но возникает сильная нелинейность при отклонениях в одну и другую строну. Пример: Делаем смещение на 25%. Отклоняем стик вправо на половину - рулевая машинка уходит на 12,5%. Отклоняем стик влево, тоже на половину - рулевая машинка уйдет на 37,5%.

А теперь и подумайте какой вариант лучше и как вообще второй вариант можно использовать на элеронах?

msl_272

Еще раз объясню на реальном примере. Пусть мы имеем серву которая отклоняется на +/- 30 градусов от центра. Допустим мы ее прицепили на руль направления и получили его отклонение на +/- 30 градусов.

Теперь представим что мы неправильно отрегулировали тягу и чтобы выставить ноль мы смешаем машинку на +10 градусов.
Так вот, в положительную сторону больше чем на +20 градусов мы отклонения получить не сможем никогда!
А с отрицательным отклонением как раз и есть два варианта:

  1. Линейное. Отклонение будет до - 20 градусов. Общий диапазон от +20 до - 20 град.
  2. Нелинейное. Отклонение можно сделать до -40 градусов. Общий диапазон от +20 до - 40 град.
    Ну и как при втором варианте летать можно?
ВитГо

гм… вообще-то с OFS все немного не так…

В следующем блоке я не правильно описал работу OFS… прошу прощения:

использование OFS для источника работает немного по другому…
это просто аналог тримера органа управления… причем работающий только в одном микшере (где задан OFS)…

применять можно в разных местах… например при включении флапперонов нам нужно чуть брать РВ на себя… применение OFS при включенных флаперонов даст именно эффект дачи РВ на себя…
причем этот микшер отработает именно для флапперонов… отключаем флаппероны - микшер отключается, и все как и прежде… min mid max…

по поводу хода РМ. не совсем корректно говорить про разный ход РМ при движении стика вверх и вниз… - ведь именно для этого OFS и ввели чтобы не отклонять стик вручную… возникнет некоторый дифференциал отклонения рулей - но так для этого OFS и задали… гм… кстати, а какой вариант можете предложить вы ? в принципе еще не поздно сделать по другому…

опять таки остается возможность коррекции не только параметра OFS но и параметров конечных точек каналов (для того чтобы убрать неравномерность)… причем коррекция конечных точек возможна в зависимости от включенного режима полета (а не только при настройке модели)…

vadimka29

опять таки остается возможность коррекции не только параметра OFS но и параметров конечных точек каналов (для того чтобы убрать неравномерность)… причем коррекция конечных точек возможна в зависимости от включенного режима полета (а не только при настройке модели)…

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

saaas
ВитГо;bt56323

гм… вообще-то с OFS все немного не так…

Нашел у себя инструкцию на пульт. Со страницы 47 начинается разбор микшеров. Стр 50 показывает работу офсета.
файл 8мб.

на стр 32 2 рисунка линейной и эксп. зависимости. Это то, что я просил Виталия.

saaas
msl_272;bt56317

…имеем серву которая отклоняется на +/- 30 градусов…
…мы неправильно отрегулировали тягу и чтобы выставить ноль мы смешаем машинку на +10 градусов.
Так вот, в положительную сторону больше чем на +20 градусов мы отклонения получить не сможем никогда!

Вы описали не оффсет, а триммирование или субтриммирование.

ВитГо
saaas;bt56406

Нашел у себя инструкцию на пульт. Со страницы 47 начинается разбор микшеров. Стр 50 показывает работу офсета.
файл 8мб.

на стр 32 2 рисунка линейной и эксп. зависимости. Это то, что я просил Виталия.

Сейчас гляну !

hudognik

Добрый,день ! Внимательно слежу за процессом создания новой версии v-coder2 , сейчас благополучно летаю по камере , используя первую версию . Судя по темпам разработки, новая версия может появиться наверное уже к следующему сезону, если у Виталия не пропадет желание доводить это благородное и уважаемое дело до конца . В текущей версии всё устраивает ,работает очень хорошо , правда не очень нравится что результаты триммирования сделаные в полёте ,пропадают ,если их специально не сохранить ,но к этому можно привыкнуть. Если всё будет хорошо, очень хочется всётаки хедтрекер , ну чтоб вообще)) . Вопрос к автору ,не забыл ли он об этой вкусняшке для нашего фпвшного брата? )))

msl_272

Так в чем же отличие оффсета?
В приведенной таблице я увидел семейство абсолютно линейных характеристик с начальным смещением средней точки. При смещении ручки газа от -100% до +100% мы имеем значение на выходе:
от 0 до 100 при оффсет=100
от 50 до 150 при оффсет=0
от 100 до 150 при оффсет=-100 (должно быть 200, но на 150 наступает ограничение).

Никакого перерасчета на крайние точки нет. Об этом я уже говорил и считаю это правильным.
Вот только триммер дает абсолюно аналогичный результат. Для чего спрашивается огород городить?

vadimka29

Так в чем же отличие оффсета?

Совершенно согласен - никакого…

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

Так ведь триммер к микшеру не присобачишь… а полетные режимы опять?

msl_272

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

Виталий! раскажи в итоге, по какой математической формуле ты считаешь смешение оффсета.

vadimka29

С другой стороны для каждого полетного режима выставляются свои значения триммеров. Опять получается тот же эффект. Ну разве что диапазон у триммеров поменьше будет.

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

msl_272

Да впринципе я не против оффсета. Я уже об этом писал. Мне не совсем понравилась формула представленная Виталием. Это касательно пересчета на крайние точки.

saaas
msl_272;bt56415

…триммер дает абсолюно аналогичный результат. Для чего спрашивается огород городить?

  1. Триммер сдвигает значение канала на очень небольшую величину. Офсет - на полный диапазон значений.
  2. На значение триммера накладываются последующие изменения и вычисления. На офсет - нет.
  3. Например мне нужно привязать изменение канала от 0 до +100% (или еще хуже от +20 до +100%) от мастер - канала “ГАЗ”. Который меняется от -100% до +100% Как это сделать без ОФСЕТ? Никак!!! Никакими триммерами не сделать! (по правде сказать, криво и через задницу, можно сделать только подобие , но от таких действий слеза наворачивается…)
  4. Офсет с неизменными значениями величин на границах диапазона значений, ИМХО, считаю более удобным.
vadimka29;bt56435

необходимость оффсета вряд ли должна вызывать сомнения…

Совершенно согласен!

ВитГо
saaas;bt56406

Нашел у себя инструкцию на пульт. Со страницы 47 начинается разбор микшеров. Стр 50 показывает работу офсета.
файл 8мб.

на стр 32 2 рисунка линейной и эксп. зависимости. Это то, что я просил Виталия.

Курил-курил я табличку… не совсем понял 😦

Давайте объясню как это планируется сделать…

Начнем как это не странно с микширования как оно сделано в VCoder

у нас есть следующие параметры микширования
DEST - канал получатель значения микшера
SOURCE - источник микширования (LCH или UCH)
PROC - значение процента микширования

выключатель микшера и регулируемых микшер сейчас не рассматриваем - они всего лишь частные случаи…

как вычисляется микшер

определяем точки диапазонов получателя
DEST_MIN, DEST_MID, DEST_MAX - для канала получателя (надеюсь понятно что первое это минимум, далее средняя точка и далее максимум)

определяем точки диапазонов источника
SOURCE_MIN, SOURCE_MID, SOURCE_MAX - соответственно мин, середина, макс источника… - поскольку и у LCH и у UCH есть эти параметры нам все равно что будет выступать в качестве источника (это я закрываю частный случай когда источником выступает LCH а не UCH)

ВНИМАНИЕ!
использованная точка диапазона SOURCE_MID в новом кодере на этом этапе будет скорректирована при помощи OFS (как расчитывается OFS смотрите ниже в моем ответе msl_272)

далее, определяем значение SOURCE_VAL - вернее даже определяем не значение источника а в каком промежутке оно находиться MIN_MID или MID_MAX
пусть значение источника находиться в промежутке MIN_MID (то есть ручка управления например тягой находиться между нижним и средним положением)

определив диапазон источника запоминаем границы диапазона
SOURCE_START=SOURCE_MIN
SOURCE_FIN=SOURCE_MID

теперь давайте под итожим что у нас получилось и переведем дух (с микшерами я мучался долго)
у нас:
SOURCE_VAL - значение источника
SOURCE_START - минимум источника (SOURCE_MIN)
SOURCE_FIN - максимум источника (SOURCE_MID)

теперь чуть вернемся назад… и посмотрим какие значения у нас получились если бы SOURCE_VAL находилось в диапазоне MID_MAX
SOURCE_START=SOURCE_MID
SOURCE_FIN=SOURCE_MAX

надеюсь что у вас получилось то же самое что и у меня 😃

теперь, передохнув глотнем воздуха и идем дальше:

смотрим на знак процента микширования

ВитГо

если PROC > 0 то диапазоны получателя берем те же что и у источника для первого случая (SOURCE_MIN<SOURCE_VAL<SOURCE_MID):
DEST_START=DEST_MIN
DEST_FIN=DEST_MID

для второго случая (SOURCE_MID<SOURCE_VAL<SOURCE_MAX):
DEST_START=DEST_MID
DEST_FIN=DEST_MAX

теперь второй случай: PROC < 0 - мы берем противоположный диапазон !
то есть:
для первого случая (SOURCE_MIN<SOURCE_VAL<SOURCE_MID):
DEST_START=DEST_MID
DEST_FIN=DEST_MAX

для второго случая (SOURCE_MID<SOURCE_VAL<SOURCE_MAX):
DEST_START=DEST_MIN
DEST_FIN=DEST_MID
 еще раз отмечу это для PROC<0

теперь рассчитаем:
RES = (DEST_FIN-DEST_START) * SOURCE_VAL * PROC) \ ( (SOURCE_FIN-SOURCE_START) * 100)

соответственно это значение и будет значением микшера… его мы прибавим к значению канала DEST

ВитГо

Теперь о триммерах:
триммер это коррекция положения ручки UCH…
то есть мы получаем SOURCE_VAL и потом просто прибавляем к ней значение триммера
SOURCE_VAL=SOURCE_VAL + TRIM_VAL

значение центра канала (SOURCE_MID) здесь не меняется !!!
мы просто микшируем значение как бы дополнительно отклоненную на TRIM_VAL ручку канала…
так же здесь не меняется и значение центра канала получателя (DEST_MID)

Теперь значение OFS
фактически это сдвиг именно средней точки источника, то есть SOURCE_MID… посмотрите как измениться микширование !! особенно если SOURCE_VAL до OFS находиться в диапазоне SOURCE_MIN<SOURCE_VAL<SOURCE_MID, а после OFS в диапазоне SOURCE_MID<SOURCE_VAL<SOURCE_MAX
тем более что в новой прошивке проценты микширования для каждого из диапазонов будут свои (PROC_MIN_MID, PROC_MID_MAX)

ВитГо

Соответственно написанному мною выше попробую прокоментировать то что вы писали о работе OFS и Триммеров

saaas;bt56452
  1. Триммер сдвигает значение канала на очень небольшую величину. Офсет - на полный диапазон значений.

НЕТ !!
триммер всего лишь изменяет текущее значение органа управления !!! никаких значений (параметров каналов) он не изменяет, это делается в микшерах
в принципе ничего не мешает сделать диапазон триммеров еще большим… хоть до всего диапазона органа управления… - вопрос только “зачем?”, триммер нужен лишь для коррекции органа управления (а не управления вместо органа управления !)

saaas;bt56452
  1. На значение триммера накладываются последующие изменения и вычисления. На офсет - нет.

НЕТ !!!
просто эти параметры по разному влияют на вычисление в микшере.
триммер фактически изменяет значение органа управления, а OFS изменяет точку отсчета для микширования

saaas;bt56452
  1. Например мне нужно привязать изменение канала от 0 до +100% (или еще хуже от +20 до +100%) от мастер - канала “ГАЗ”. Который меняется от -100% до +100% Как это сделать без ОФСЕТ? Никак!!! Никакими триммерами не сделать! (по правде сказать, криво и через задницу, можно сделать только подобие , но от таких действий слеза наворачивается…)

это обычно делается изменением диапазона канала… MIN=0%, MID=50%, MAX=100%…
для второго варианта: MIN=20%, MID=60%, MAX=100%
никаких извратов 😃
но нужно учитывать что такие настройки канала будут для всех микшеров… а вот как раз этого иногда нужно избежать…
либо можно это сделать через кривые которые будучи включенные в микшеры позволят сделать подобное…

ВитГо
msl_272;bt56434

Получается оффсет это смещение средней точки канала по сути полный аналог триммера.

НЕТ!
OFS - это точка отсчета при микшировании… а триммер это корректор значения органа управления

msl_272;bt56434

Разница в том, что оффсет расположен в микшере и может быть включен/выключен при изменении полетных режимов.
С другой стороны для каждого полетного режима выставляются свои значения триммеров. Опять получается тот же эффект. Ну разве что диапазон у триммеров поменьше будет.

НЕТ!!
См. выше

msl_272;bt56434

Виталий! раскажи в итоге, по какой математической формуле ты считаешь смешение оффсета.

ООО!! это я как то упустил…
смещение OFS это фактически смещение средней точки источника
файтически это будет
SOURCE_MID + ( SORCE_MAX - SOURCE_MIN ) * OFS / 200

Обращаю внимание делю всё именно на 200 !! это не моя опечатка… потому что у меня возможны точки -100%, 0, +100%

ВитГо
vadimka29;bt56419

Совершенно согласен - никакого…

Так ведь триммер к микшеру не присобачишь… а полетные режимы опять?

ЭЭэ… и еще… я вас наверное немного расстрою… но полетных режимов в привычном понимании теперь не будет…
они просто будут не нужны

ВитГо
hudognik;bt56413

Добрый,день ! Внимательно слежу за процессом создания новой версии v-coder2 , сейчас благополучно летаю по камере , используя первую версию . Судя по темпам разработки, новая версия может появиться наверное уже к следующему сезону, если у Виталия не пропадет желание доводить это благородное и уважаемое дело до конца . В текущей версии всё устраивает ,работает очень хорошо , правда не очень нравится что результаты триммирования сделаные в полёте ,пропадают ,если их специально не сохранить ,но к этому можно привыкнуть. Если всё будет хорошо, очень хочется всётаки хедтрекер , ну чтоб вообще)) . Вопрос к автору ,не забыл ли он об этой вкусняшке для нашего фпвшного брата? )))

в новой версии будет захват внешнего PPM сигнала…
а уж что это будет ученический передатчик или хедтрекер - это уже ваше дело…

кстати все таки не оставляю мыслей для FPV сделать возможность управления камерой при помощи стиков в режиме джойстика (то есть отклонил стик вправо - камера начала двигаться вправо, отпустил стик - камера остановилась в том месте до которого дошла (а не вернулась вслед за стиком)

lexash

Виталий, может быть, конечно, глупый вопрос задам… Я понимаю, что форматы EEPROM и самих файлов настроек модели будут кардинально отличаться от 1-й версии, но реально ли как-то конвертировать старый EEPROM в новый формат, чтобы не перенастраивать все модели с нуля? Или это в принципе невозможно?
И еще, что там со схемой декодера для мультиплексированных каналов?

ВитГо
lexash;bt56524

Виталий, может быть, конечно, глупый вопрос задам… Я понимаю, что форматы EEPROM и самих файлов настроек модели будут кардинально отличаться от 1-й версии, но реально ли как-то конвертировать старый EEPROM в новый формат, чтобы не перенастраивать все модели с нуля? Или это в принципе невозможно?
И еще, что там со схемой декодера для мультиплексированных каналов?

гм… боюсь что конвертировать будет нечего… вторая версия прошивки имеет очень много отличий…
с другой стороны - во второй версии планируются мастера настроек, так что настройка моделей значительно упроститься…
я уже указывал выше будут настройки схемы ЛА, каналов для той или иной плоскости управления, режимы ее… в общем вручную создавать нужно будет минимум типа таймеров или каких то извращенных функций…

ВитГо

Кстати, если кто знает какие настройки, режимы, и т.д. требуются для планеров и вертолетов - то предлагаю начать излагать здесь…
примеры настроек для самолета уже есть в моих сообщениях на 9-ой странице (сообщение Виталий Горбуков (ВитГо) - 04.07.2011 10:21)…

msl_272

Все вычисления Виталия рисуются элементарным графиком. Нарисовал его от руки и отправил Анатолию. Если он картинку выложит я ее постараюсь прокомментировать.

msl_272

Да блин… Чем дальше в лес тем, круче партизаны…
С триммерами все понятно, на графике я это народу покажу.
А вот с ОФСетом полная засада выходит. Математически получается ты сдвигаешь source_mid. Следовательно входной сигнал тебе надо пересчитать под новый диапазон. В итоге переменные взаимосокращаются и мы получаем чисто линейную функцию, которая от офсета вообще никак не зависит!!!

ВитГо

вот картинак

ВитГо

только по картинке мы меняем MID у UCH !!!

msl_272

На картинке внизу красной линеей обозначен ход стика от -100 до +100%. Из него получаем входной сигнал для микшера source от мин до мах. Далее с помощью Виталиных формул мы пересчитываем входной сигнал source в выходной сигнал dest.
Красной линией я нарисовал стандартный вариант когда центры равноудалены от концов мин и мах. Синей линеей я изобразил вариант когда центр выходного сигнала смещен на 50% вверх.
Пунктирная линия будет в случае отрицательного процента микширования proc=-100%.
Все кривые изображены для микшира в 100%. Если процент микширования меньше, то вых сигнал надо умножить на это число. Т.е. линии будут более пологими.
Это я наглядно объяснил график далее сделаем анализ.

msl_272

С красной линией все понятно. Любое отклонение стика от 0% вызывает линейное отклонение выходного сигнала DEST от его средней точки mid1.
Теперь смотрим на синюю линию. Здесь мы сместили среднюю точку выхода mid на 50% вверх. В итоге мы получаем кривую с изломом в центре. Отклонения стика вправо и влево имеют абсолютно разные результаты. Отклоним стик вправо на 50% (от нуля вправо на три клетки) получим отклонение выхода на 25% (вверх от mid на одну клетку). А если отклоним стик влево на ту же величину, выходной сигнал упадет на 3 клетки вниз!!!
А теперь представьте, что этот стик управляет элеронами или рулями. Вправо одно, влево совершенно другое!

vadimka29

если PROC > 0 то диапазоны получателя берем те же что и у источника

Т.е. сначала формируем диапазоны источника, тогда source_mid будет изменен на значение OFS и только затем новые диапазоны будут присвоены DEST получателю. Тогда на графике будем передвигать MID на оси SOURSE на величину OFS.

В итоге мы получаем кривую с изломом в центре.

В этом случае излома не будет (в 50-ти %-ном диапазоне).

msl_272

Добавляя триммер мы сдвигаем начальное положение стика на некоторую величину. Т. е. начальная точка будет не в точке 0%, а чуть правее или левее. Соотв выходной сигнал при центральном положении стика будет чуть выше или ниже средней выходной точки dest mid.

vadimka29

Именно так, только триммер войдет в выходной сигнал с учетом всех процентов и кривых, т.к. SOURSE_VAL изменен на значение триммера и

теперь рассчитаем:
RES = (DEST_FIN-DEST_START) * SOURCE_VAL * PROC) \ ( (SOURCE_FIN-SOURCE_START) * 100)

vadimka29

Т.е. меняя режим (кривые) или микшер мы меняем влияние триммера на отклонение сервы.

msl_272

Все мои предыдущие посты были комментарием к приведенным формулам.
А теперь рассмотрим ОФС.
Данную кривую я на графике пока не нарисовал, пидется представить ее мысленно. Дорисую и положу чуть позже.
Пусть выходной диапазон симметричен, имеем точки на графике DEST min, mid1, max. Вводим ОФС равным 50%, т.е. смещаем точку source mid на три клетки вправо. На пересечении с горизонталью DEST MID1 ставим точку и от начальных точек рисуем наш график.
Ну и кто говорил что излома не будет? Ситуация получается еще более идиотская. При введении положительного ОФС выходной сигнал DEST будет уменьшаться. При отклонении стика влево выходной сигнал будет линеен. При отклонении вправо сигал будет проходить через точку излома и результа будет похож на введение экспоненты.

vadimka29

На пересечении с горизонталью DEST MID1 ставим точку и от начальных точек рисуем наш график.

Это не совсем корректно, точку ставим на пересечении с красной линией, мы ведь изменили ВХОДНЫЕ диапазоны, а MID1 мы сформируем из полученного SOURSE_MID источника…
Стоит, наверное, еще напомнить, что изначально у получателя (DEST) нету ни концов, ни середины… пока мы не сформировали диапазоны источника.

msl_272
vadimka29;bt56596

Это не совсем корректно, точку ставим на пересечении с красной линией, мы ведь изменили ВХОДНЫЕ диапазоны, а MID1 мы сформируем из полученного SOURSE_MID источника…
Стоит, наверное, еще напомнить, что изначально у получателя (DEST) нету ни концов, ни середины… пока мы не сформировали диапазоны источника.

получатель DEST это физическая величина выхода микшера. Без концов и середины его существовать не может. Красная линия это как раз частная характеристика связывающая мин/макс источника с мин/мах выхода dest.

vadimka29
Вячеслав Мягков

получатель DEST это физическая величина выхода микшера. Без концов и середины его существовать не может.

Т.е. как это не может? Ниже четко указано, в какой момент и как образуются концы у DEST…

если PROC > 0 то диапазоны получателя берем те же что и у источника для первого случая (SOURCE_MIN<SOURCE_VAL<SOURCE_MID):
DEST_START=DEST_MIN
DEST_FIN=DEST_MID

для второго случая (SOURCE_MID<SOURCE_VAL<SOURCE_MAX):
DEST_START=DEST_MID
DEST_FIN=DEST_MAX

Вячеслав Мягков

Красная линия это как раз частная характеристика связывающая мин/макс источника с мин/мах выхода dest.

Совершенно верно! Только зачем же Вы настойчиво выдергиваете MID точку их этой частной характеристики? Это не по правилам проекции…

msl_272

Ну Вы же сами совершенно верно написали. Мы имеем абсолютно четко заданные точки DEST_MIN, DEST_MID и DEST_MAX. Эти точки однозначно задают диапазон выходного сигнала. Они заранее определены и не подлежат изменению при расчетах.
Далее смотрите синюю линию на моем графике. Она имеет излом в центре. Поэтому вычисления результата справа и слева от излома будут отличаться. Для получения универсальной формулы Виталий вводит две временные переменные start и fin. Далее он определяет в какой точке мы находимся (справа или слева от излома) и на этой основе делает присвоения для start fin и считает результат.

msl_272

msl_272

Здесь я еще раз показал механизм работы. Отклонение стика пересчитывается в значение сигнала UCH (от -100 до +100% по умолчанию). Далее этот сигнал попадает на вход микшера как сигнал source. При помощи красной кривой значение source пересчитывается в значение DEST. В дальнейшем значение dest даст величину ширины импульса в сигнале PPM (по умолчению от 1000 до 2000 мкс). Поэтому точки DEST_min DEST_max должны быть однозначно определены.
Красных кривых я нарисовал две. одна для 100% и вторая для 50% коэффициента микшера.

msl_272

Если мы сместим точку source_mid т.е. вводим офсет в Вашем понимании. Согласно математики при сигнале source_mid мы обязательно должны получить значение dest_mid. На графике это будет смещение точки 2 по горизонтали до пересечения source_mid и dest_mid. отсюда получаем излом кривой со всеми вытекающими…

vadimka29

Опять ввод в заблуждение… Согласно логике формирования:

диапазоны получателя берем те же что и у источника

т.е. dest_min=sourse_min
dest_mid=sourse_mid
dest_max=sourse_max

Все, края и середина с этих пор определены, никаких изменений наклонов 50%-ных еще нету. Это линия 1-3 на графике. Это перевод из SOURSE в DEST. Все.
Теперь строим второй график, где по горизонтали располагаем DEST с полученными на предыдущем шаге концами и серединой, по вертикали откладываем RES (выходной сигнал):

RES = (DEST_FIN-DEST_START) * SOURCE_VAL * PROC) \ ( (SOURCE_FIN-SOURCE_START) * 100)

Вот тут, и только тут, мы получаем новый тангенс угла наклона, зависящий от PROC.

msl_272

Вадим! В принципе, Вы представляете все верно. Хотя как то слишком длинным путем. Два графика здесь совершенно не нужны.

Ваши присвоения dest_min=sourse_min dest_mid=sourse_mid dest_max=sourse_max категорически неверны. Так делать нельзя. И у Виталия такого нет.

Мы имеем всего одну входную переменную SOURCE_VAL. Она характеризует значение на входе микшера.
И мы имеем всего одну переменную результата RES.
И есть всего одна формула по которой из первой переменной получается вторая:
RES = (DEST_FIN-DEST_START) * SOURCE_VAL * PROC) \ ( (SOURCE_FIN-SOURCE_START) * 100)
Мой график и отображает эту формулу графически. И не более того.
Т.К. в формуле есть коэффициент PROC, его влияние я тоже изобразил.

msl_272

Считаю что немного мы отошли от главной темы. Не думаю что Виталию наша болтовня интересна.
Сейчас я достал русское описание передатчика от FUTABA. Там параметр offset имеется. Есть электонная версия этого описания, но из-за большого размера она не идет по мылу. На днях я его добуду.
Так вот - там все сделано абсолютно логично, да и не думаю что с мировым брендом кто то спорить будет.
Заодно и пальцами вживую поковырять этот передатчик планирую. Скоро отпишусь.

vadimka29

Не думаю что Виталию наша болтовня интересна.

Почему же? Выяснилось, например, что один и тот же триммер имеет разное влияние на результат в разных микшерах…

Мой график и отображает эту формулу графически. И не более того.

Отображал бы, если б был смещен вправо на OFS от середины sourse… вся прямая, а не только точка 2…

ВитГо
msl_272;bt56706

Считаю что немного мы отошли от главной темы. Не думаю что Виталию наша болтовня интересна.
Сейчас я достал русское описание передатчика от FUTABA. Там параметр offset имеется. Есть электонная версия этого описания, но из-за большого размера она не идет по мылу. На днях я его добуду.
Так вот - там все сделано абсолютно логично, да и не думаю что с мировым брендом кто то спорить будет.
Заодно и пальцами вживую поковырять этот передатчик планирую. Скоро отпишусь.

Очень интересная ! хочеться сделать так как будет нужно всем !!!

по поводу мануала можно кидать на gorbukov@yandex.ru или выложить на народ (там нет всяких приколов как в ishare или depositfiles и подобных (у меня мобильный интернет - мне постоянно отвечают что мол уже качаешь файл, поэтому тебе скачивать нельзя 😦((

ВитГо

В выходные подключил опять свой многострадальный AVR910 и немного поработал над A-Coder.hex.html

можете посмотреть функционал РЕДАКТИРОВАНИЕ МОДЕЛИ - СТАНДАРТНАЯ НАСТРОЙКА (для самолетов !! для вертолетов и планеров читайте ниже в этом же сообщении)

пока не до конца написаны только микшеры…
микшеров для самолета у меня получилось пока 4

  1. микшер по крену элероны->рв (когда у нас 2 РМ на РВ)
  2. микшер по тангажу рв-элероны (фаза) (когда у нас 2 РМ на элероны) - движение РВ и элеронов в одной фазе
  3. микшер по тангажу рв-элероны (инв.) (когда у нас 2 РМ на элероны) - движение РВ и элеронов в противофазе
  4. микшер увода рн-элероны - для компенсации крена возникающего при работе РН

Микшеры флаперонов есть…
вопрос какие микшеры еще нужны ?

вообще посмотрите что еще для самолета нужно ?

кстати насколько нужно отключение микшеров вообще (то есть их не использование) ? а то я сделал что каждый из микшеров может включаться или выключаться выбираемым выключателем… но микшеры всегда есть (если нет дополнительных условий их существования вроде 2ух РМ на элероны или РВ)

p.s. все еще жду описание настроек для вертолетов и планеров… выбираться настройка будет соответствующим типом ЛА и далее так же СТАНДАРТНАЯ НАСТРОЙКА (сейчас выбирается но внутри для вертолета и планера просто шаблонные пункты без смысла)

ВитГо
msl_272;bt56626

картинка не информативна…
для того чтобы понять как работает OFS лучше взять разные проценты микширования левой и правой сторон относительно MID

например слева взять процент микширования 50% а справа 100%…
тогда OFS будет точкой “перелома”, точкой смены процента микширования !

ВитГо

Желаю поделиться проблемой интерфейса…

пытаюсь придумать как отображать экран с настройками микшеров
имею следующую структуру:

байт 1    MIX_SET            - микшер есть\нет
байт 2    IFOP            - условие работы микшера
байт 3    SOURCE_TYPE        - источник микшера (тип значения)
байт 4    SOURCE_VAL        - источник микшера (значение)
байт 5    DEST_TYPE        - получатель (тип значения)
байт 6    DEST_VAL        - получатель (значение)
байт 7    PROC_DN_TYPE    - процент микширования вниз (тип значения)
байт 8    PROC_DN_VAL        - процент микширования вниз (значение)
байт 9    PROC_UP_TYPE    - процент микширования вверх (тип значения)
байт 10 PROC_UP_VAL        - процент микширования вверх (значение)
байт 11    OFS_TYPE        - смещение микширования (тип значения)
байт 12 OFS_VAL            - смещение микширования (значение)
байт 13    CURVE_NUM        - номер кривой для источника
байт 14 MIX_MASK        - номер шаблона микшера
байт 15 MIX_EDIT        - признак ручного редактирования микшера

Как ее лучше отображать на экране с размером строки в 25 символов из которых 3 символа номер микшера ?
в принципе такие конструкции как:
байт 3 SOURCE_TYPE - источник микшера (тип значения)
байт 4 SOURCE_VAL - источник микшера (значение)
влазиют в 8 символов…
в принципе паузу между колонками можно делать и в пол-символа (3 пиксела).
повторюсь общая ширина 125 пикселов минус 10 пикселов на номер микшера и еще 5 пикселов интервал ( интервал можно уменьшить до 3)

пока в голову пришла только возможность движения по строке (горизонтальный скроллинг) и соответственно накидал примерно такие заголовки

"NN DEST5678 SOURCE78 УСЛ."  - это первоначальный вид
"УСЛ. DN_PROC8 UP_PROC8   "      - один раз нажали "-" (вправо)
"UP_PROC8 OFS45678 CURVE  "    - второй раз нажали "-" (вправо)

ну и так далее, чтобы при каждом нажатии влево\вправо сдвигаться к последнему столбцу который отображался на экране до этого…

может быть ктонить придумает что нить лучше ?
желательно строчную запись в одну строку (это движок меню рисует, не хочеться еще что то писать дополнительно)

vadimka29

А если графически? Стрелка влево-вправо источник-приемник, вверх-вниз проценты, <> - OFS, кривая - $. Короче не станет?

ВитГо

гм… а как графически отобразить например источник ?
или приемник ?
да и источники процентов тоже не знаю как изобразить (особенно если проценты например устанавливаются крутилкой или еще хуже - вычисляются условием\выражением)…

ВитГо

наверное я непонятно написал… проблема не в том виде как написать в заголовке - а как вообще расположить…

ncbelov

ВитГО!
Я пытался на первой прошивке реализовать программу для вертолета,но забросил это дело т.к количество микшеров там переваливает за 18-22.И не все можно реализовать просто и доходчиво.Разобраться в таком количестве микшеров на поле просто не реально.Если делать вертолетную программу то обязательно с заготовленными микшерами автоматов перекоса 90,120,180.
Тогда от этого будет толк!!!

msl_272

Читаю описание Футабы. Пока только на бумаге.
Для установки рулей у них вводится два понятия. Триммер и субтриммер.
Субтриммер - это установка нейтрального положения каждого сервопривода. Используется для выставления рулувых поверхностей после подключения тяг.
Триммер - тут все понятно. На каждый триммер задается свой шаг и максимальный диапазон.
Еще у каждого триммера есть очень интересный переключатель режима COMB/SEPA. COMB - это когда триммируются одновременно все полетные режимы. SEPA - значение триммера в каждом полетном режиме будет своё. ИМХО вещь очень нужная. В первой версии кодера мне ее очень нехватает.