Телеметрия (часть 2)

Pavel_E
Dikoy:

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

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

Brandvik:

Суть идеи, собирается коробочка похожая на хед-трекер, в нее заводится сигнал ППМ а из нее выходит обратно сигнал ППМ, но один канал постоянно плавает (если хотите может плавать по синусу и ли скокать дискретно) 0.6-1.9мс с частотой 1-2 такта в секунду.

Это потребует не только сборки коробочки, но и залезания в схему передатчика. Она же на передачу должна этот плавающий PPM отдавать. Собственно, более простой вариант с микшером я предлагал чуть раньше. Идея со сравнением каналов работать будет, но видимо, не очень целесообразна. Потому что PPM есть возможность проверить и так, PCM в большинстве случаев и проверять не надо - включение фейлсейва будет видно по установлению заранее известного значения в одном из каналов (либо специально запрограммированного, либо газа).

maloii:

На самом деле все до нас уже придумано, испробовано и реализовано.

И даже обсуждено несколькими сообщениями выше, только в чуть более литературном тоне 😃

RSSI. Ну с этим вообще все плохо. Для файл сева не ГОДИТСЯ, а годится лиш для определения буйков за которые не стоит заплывать. Притом универсальный считыватель сделать трудно, у всех приемников все разное, плюс зависит от кривизны рук паяльщика который полезет в приемник.

А почему, собственно, не годится? Если есть свободный канал АЦП и возможность настройки порога включения автопилота по уровню сигнала на нем? Чем этот вариант хуже фейлсейва? Насколько он реально нужен - другой вопрос.

Dikoy
Pavel_E:

И если хоть в одном из каналов сигнал не влез - в топку всю пачку.

В процессе работы часто бывает, что канал не влезает. Из-за ошибок математики, таймера и т.п. Если херить всю пачку, самолёт в эпилептика превратится. Я пробовал, знаю 😉 По этому у меня каналы резутся индивидуально:
if( (measured_period_CH1 > MIN_LIM) && (measured_period_CH1 < MAX_LIM) ) {
OCR1A = (measured_period_CH1);
}

if( (measured_period_CH2 > MIN_LIM) && (measured_period_CH2 < MAX_LIM) ) {
OCR1B = measured_period_CH2;
OCR1C = measured_period_CH2; //mirror_value(measured_period_CH2);
}

Да и зачем??? Период между импульсами ОДНОЗНАЧНО определяет помеху и выключение передатчика, когда как период канального импульса ни о чё, собственно, не говорит. По крайней мере в моей системе, где измерение инициируется внешним прерыванием. По 2 лишние строчки в перывания, десяток в мейнлуп и чёткая работа.

Brandvik

Прошу простить, может я чего не знаю, но разве сигнал RSSI не останется на высоком уровне если появится сильная постоянная помеха частоте приемника?

Второе, в передатчик лезть не надо ,если только передатчик не древний и без тренерского порта.

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

smalltim

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

Пока идет война идей, выложу картинки, показывающие недавнее обновление комплекта телеметрии. Становится более причесанным продуктом 😃

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

Ыы !
1024 сообщения на форуме 😃

Artie
Pavel_E:

А почему, собственно, не годится? Если есть свободный канал АЦП и возможность настройки порога включения автопилота по уровню сигнала на нем? Чем этот вариант хуже фейлсейва?

Тем, что отсутствие полезного сигнала и наличие помехи - две разные вещи.

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

Pavel_E
Brandvik:

Прошу простить, может я чего не знаю, но разве сигнал RSSI не останется на высоком уровне если появится сильная постоянная помеха частоте приемника?

Да, похоже вы правы. rcgroups.com аналогичного мнения:
www.rcgroups.com/forums/showthread.php?t=923419

The pin outputs a DC voltage level is about .7V with the transmitter off and 2.2V when the transmitter is on. You can use this to tell the signal strength that the receiver is getting, but keep in mind that it doesn’t tell you anything about signal quality, or if it is your Tx it is hearing or some other guy’s Tx a mile away.

Т.е. уровень на выходе RSSI показывает уровень сигнала, а не наличия в нем помех.

Второе, в передатчик лезть не надо ,если только передатчик не древний и без тренерского порта.

Вам надо взять сигнал с одного канала, сделать над ним математику и отдать на передачу. Как это можно сдлеать через тренерский разъем? Как взять PPM пачку понятно. Как вернуть PPM пачку понятно. Но как это делать одновременно? Непонятно. Проще все-таки настроить микшер на отдельный канал и сравнивать их.

Dikoy:

По этому у меня каналы резутся индивидуально:
if( (measured_period_CH1 > MIN_LIM) && (measured_period_CH1 < MAX_LIM) )

Да и зачем??? Период между импульсами ОДНОЗНАЧНО определяет помеху и выключение передатчика, когда как период канального импульса ни о чё, собственно, не говорит.

Похоже, мы натолкнулись на интересный факт. Не все приемники одинаковы. Когда я игрался с PPM приемником, там было совершенно четко - любая помеха (искрил пьезозажигалкой на фоне слабого сигнала) или отсутствие/слабый сигнал (передатчик в кастрюле) приводила к появлению на выходе случайных сигналов со случайной длительностью. Длительность - от 0 до 20мс, но в основном - в диапазоне от 0 до 0.5 мс где-то. И их много. Т.е. измерение периода НИЧЕГО не даст (это я про “однозначность” намекаю 😃 ). А измерение длительности (одного канала) поможет определить помеху процентов на 90 (чисто по памяти, специально не мерял). Если следить по 2 каналам - то уже 99%. А если все каналы - то вообще без вопросов. Тем более, что в вашем алгоритме проверка влезания сигнала в диапазон по каждому каналу уже есть, осталось только вести подстчет количества дефектных сигналов и все.
К сожалению, сейчас нет того PPM приемника под рукой - мои только PCM и “умный” PPM, но картину того шума я помню хорошо.

baychi
smalltim:

Пока идет война идей, выложу картинки, показывающие недавнее обновление комплекта телеметрии. Становится более причесанным продуктом 😃

Тимофей, а программатором можно разжиться? А то на работе ни один пока не подошел.

Dikoy
Pavel_E:

А измерение длительности (одного канала) поможет определить помеху процентов на 90 (чисто по памяти, специально не мерял). Если следить по 2 каналам - то уже 99%.

Ну, может быть. Я только свой аппарат тестировал. Мне хватило так, + там же гистерезис - нужно потерять N сигналов чтобы перейти на автомат и словить N, чтобы вернуться. То есть разовые помехи не переключают его на авто.

Pavel_E
Dikoy:

Ну, может быть. Я только свой аппарат тестировал. Мне хватило так, + там же гистерезис - нужно потерять N сигналов чтобы перейти на автомат и словить N, чтобы вернуться. То есть разовые помехи не переключают его на авто.

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

Есть еще третий тип - приемники PPM с математической обработкой сигнала и неким фэйлсейвом. Определение факта пропажи сигнала в них - аналогично приемникам с простым PCM фэйлсейвом.

Brandvik

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

Pavel_E
Brandvik:

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

По-моему, хед-трекеры не пропускают пачку через себя, а генерируют свой сигнал прикидываясь “учеником”, из которого приемник берет нужные каналы (запрограммированные как ученические), подмешивает в пачку и передает в эфир.
Впрочем, сути вашей идеи это не меняет, она действительно будет работать независимо от типа приемника. Но тут возникнет сложность со стороны передатчика, т.к. не все передатчики умеют настраивать произвольные каналы на ученика, а отдавать один из основных, наверно, не совсем правильно. Думаю, что дешевле и надежнее, все-таки, использовать PCM приемник с программируемым каналом, который ставится в определенное значение при падении в fail-safe.

Brandvik

Да, вот тут может быть косячок.
Но смысл поисков решения сводится к универсальности, детектирование потери сигнала для любых типов приемников.
Есть еще одно предоложени. Ведь плата автопилота собирает кучу каналов. А что если их мониторить все? И в случае ухода в фаил-сейв каналы уйдут в холд. Соответственно как только прекратилось движение по всем каналам в течении 1-2-3-4-5с (подберется эксперементально) Автопилот берет управление на себя. Для обычных приемников там все просто, при потере сигнала, ППМ с выхода тоже исчезает собственно это уже реализовано.
Думаю должно работать, ибо в полете постоянно дергаешь то высоту, то элероны, то хвост, то газ… так что должно работать…

Pavel_E
Brandvik:

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

“Для любых типов приемников” - это хорошо, но “для любых типов передатчиков” - важнее.
Насчет PPM, поглядите чуть выше 😃 Мы с товарищем Dikoy чуть не поругались за PPM приемники. Нифига там может не изчезать 😃 Но детекцию пропадания нормального сигнала сделать можно.

Давайте еще раз:

  1. На PCM приемниках с программируемым fail-safe проблем нет вообще.
  2. На обычных PPM приемниках проблем нет (только алгоритм проверки сигнала надо додумать).
  3. Сложность тут: на умных PPM и простых (без настроек fail-safe) PCM. Как вариант можно определяться по “0” в канале газа и/или отсутствию шевеления по другим каналам. Это будет работать, если газ настроить так, чтобы он в 0 не становился при управлении. Насчет шевеления не уверен. Хорошо оттриммированный, устойчивый аппарат вполе себе может секунд 10 (20, 30) без управления лететь по прямой. И отсутствие шевеления не показатель.

Тут еще такой момент надо продумать. Как бы оно перед взлетом/после посадки само заводиться и лететь не начинало. А то стоит самолет с включенным бортом. Выключаем аппаратуру. И тут оно кааак полетит!..

Brandvik
Pavel_E:

И тут оно кааак полетит!..

Тут уже давно все продумано, ниже скольки-то метров автопилот не включается.

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

solderer

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

maloii
solderer:

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

Ну неужели сложно прочесть, выше все про это разжаловано, и много вариантов предложили.

Pavel_E
solderer:

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

Коллега, FailSafe - это режим работы приемника, когда сам приемник определяет факт получения дефектного сигнала. Если под “обычными” приемниками вы понимаете простые PPM приемники, то режима failsafe у них нет в принципе.

maloii
Pavel_E:

Коллега, FailSafe - это режим работы приемника, когда сам приемник определяет факт получения дефектного сигнала. Если под “обычными” приемниками вы понимаете простые PPM приемники, то режима failsafe у них нет в принципе.

Есть у них режим такой! Я летаю на таком www.webx.dk/rc/…/MultiplexRX7-SYNTH-DS-IPD.htm и все в нем есть!

Давайте уже прекратим этот флейм! А у кого нет FailSafe то вам не повезло!

solderer
Pavel_E:

Коллега, FailSafe - это режим работы приемника, когда сам приемник определяет факт получения дефектного сигнала. Если под “обычными” приемниками вы понимаете простые PPM приемники, то режима failsafe у них нет в принципе.

Да , я имел ввиду обычный приемник + автопилот.

Pavel_E
maloii:

Есть у них режим такой! Я летаю на таком www.webx.dk/rc/RX-measurement...NTH-DS-IPD.htm и все в нем есть! Давайте уже прекратим этот флейм! А у кого нет FailSafe то вам не повезло!

Камрад, у тебя ну НИКАК не обычный приемник! “Microcontroller decoder IPD” - это, знаешь ли, редкость. У меня тоже есть JETI REX MPD. И он тоже никак не “обычный”. И что? Ты сам-то почитай о чем речь и в чем человек заблуждается, а то только людей путаешь.

Хотя вот с этим:

maloii:

Ну неужели сложно прочесть, выше все про это разжаловано, и много вариантов предложили.

вынужден согласиться.

solderer:

Да , я имел ввиду обычный приемник + автопилот.

Камрады Dikoy и Pavel_E обсуждали именно этот вопрос на 55-й странице данной темы.

maloii
Pavel_E:

Камрад, у тебя ну НИКАК не обычный приемник! “Microcontroller decoder IPD” - это, знаешь ли, редкость. У меня тоже есть JETI REX MPD. И он тоже никак не “обычный”. И что? Ты сам-то почитай о чем речь и в чем человек заблуждается, а то только людей путаешь.

У меня спарка этого приемника с аппаратурой Futaba и поэтому никаких IPD там нет. Эта возможность включается только при использовании аппаратуры Multiplex. Могу в пример привести много приемников которые простой ppm но с режимом FailSafe, таже Корона!