LRS модуль Expert RC 433 MHz

baychi
Expert:

8 байт сжимать?

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

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

Expert

причем тут структура пакета, Вы скажите как сжать, а уж как передать я придумаю

laser

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

baychi
Expert:

причем тут структура пакета

Нужно знать, может ли пакет быть переменной длины, как Вы кодируте биты (я имею в виду размазывание по спектру, если оно есть), и метод скремблирования данных (если используется)?

Syberian

В приближенном виде, хотя бы так: в номинале 2 байта, два канала, в сумме 16 бит. В четном пакете передаем полный 1 канал, и 4 бита разницы 2-го, в нечетном - наоборот. В итоге посылаем уже 12 бит за раз.
Если использовать какой-нибудь law типа мю или альфа и предсказание след. положения (пример - звуковой кодек ADPCM, который работает даже на ATmega), получим сжатие еще больше. Реально ведь ни один пилот не сможет перекладывать ручки туда-сюда каждые 20 мс. Зато можно увеличить таким образом разрядность мелких перемещений на 20% бесплятно 😉 (до 1024 положений, как во фхутабе)

8 бит реально дерготня, даже “на куске пены с метровыми зазорами”, и сервы постоянно жужжат из-за ошибок квантования.

Expert

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

baychi

Еще простейщая идея - разделить каналы на полноценно аналогове (4-6) и псевдо дискретные (все равно в FPV половина команд управляюще, на 2-8 положений). Первые кодировать 12-ю битами остальные 3-мя.

Expert
Syberian:

В приближенном виде

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

baychi
Expert:

ничего такого нет,

А битстаффинг хотя бы есть? Плохо себе представляю как можно долго удерживать битовую синхронизацию на вырожденных данных (типа все нули)?

binomax

“Первые кодировать 12-ю битами остальные 3-мя.”
Идея хорошо подходит для ФПВ. ну или сделать настраиваемыми какие каналы псевдодискретные.

Все равно телеметрия иглов (2 тумблера), фишка - это все дискретные каналы… по идее полноценных нужно 4-5 всего то.

Дима, прокоментируй плиз эту идею.

Expert

в принципе да, тока не 12 а 10 максимум бит -заглаза.

binomax

тогда хотим 😃 на 10 бит первых 5 каналов согласны, остальные 3 бит дискретные будут за глаза.
Если что подправить потом кому нибудь прошивку на ±1 полноценный канал это раз плюнуть, зато общий объем передаваемых данных даже меньше будет чем все каналы по 8 бит а выигрыш налицо.
Только надо сразу как-то защититься чтобы при потерях связи эти дискретные каналы не прыгали и не переключали телеметрию!

laser
binomax:

тогда хотим на 10 бит первых 5 каналов согласны

точно. и еще останется битов под простенькую коррекцию ошибок.

baychi
laser:

и еще останется битов под простенькую коррекцию ошибок.

Для пакета длиной порядка 100 бит, длина корректирующего кода Рида-Соломона = log2(N)+1, то есть 8 бит. Позволяет исправлять одиночные ошибки. Но на каналах с BER > 10-3 практически бесполезен.

Expert
binomax:

на 10 бит первых 5 каналов согласны

на газ и рудер зачем например 10 бит? я бы понял на трекер чтоб камера плавно шла

binomax

по поводу канала газа согласен, можно и 8 бит оставить, а руддер я бы всеже сделал 9-10 бит. и 2 канала на трекер. и того надо 6 пропорциональных выходит.

плюс еще надо като учесть, что могут быть аппы в которых первые управляющие каналы (THR ELEV RUD AIL) не первые по очереди.
Может сразу имеет смысл заложить возможность настройки разрядности каналов в пределах заданного количества бит.

Yanchak

Из пожеланий еще б ГУИ, хотяб со временем - всетаки удобнее чем таскать шпаргалку “какой регистр за что отвечает”.

Brandvik
Expert:

не работает, и вообще не врубаюсь зачем вторая апа?

Expert:

Второй под Трекер? проблем воткнуть трекер нет, для этого есть PPM микшер на том же ХК, другой вопрос, юзать 8 канальную апу с трекером и 12 канальным приёмником на борту-это отдельная тема.

Вторая аппа в параллель как я уже писал может понадобиться оператору сьемки для руления камерой и т.д
А что за ППМ микшер на хобби? я порылся ничего не нашел…

Речь именно про это и идет -> юзать 8 канальную апу с трекером и 12 канальным приёмником на борту

По поводу кодирования, а кто мешает передавать только N канала + его состояние, если состояние канала не меняется то ничего не передаем. Таким образом можно оставить все каналы 9-10 бит При этом в эфир будут уходить только каналы которые изменяются в данный момент, а это от 0 до 4-6ти каналов макс. А если еще какой нить метод сжатия предложенный выше применить… 😉

Expert
Brandvik:

сли состояние канала не меняется то ничего не передаем.

а если мы пакет не приняли…он так и не поймет что состоянии изменилось!