Baychi OpenLRS - дружелюбная ЛРС с широкими возможностями )
Кстати, Александр, а вам-коптероводом, сколько обычно каналов требуется?
У меня получается так:
Четыре точных канала - управление.
Один трехпозиционник - полетные режимы.
Одна крутилка - настройка пидов.
Два двухпозиционных тумблера на доп режимы.
Одна крутилка на Тильт камеры.
Один тумблер на пищалку.
Еще один запасной тумблер. (Ракеты, мины, переключение камер).
При этом, обычно все каналы идут по ППМ, кроме трех последних.
Прежде чем приступать к новому “гибкому” протоколу, внес все последние изменения и дополнения на гитхаб, а так-же доделал режим 3 (обратный порядок 10-ти 11 битных каналов). Прошивки тоже перекомпилил, описания дополнил.
github.com/baychi/OpenExpertTX
github.com/baychi/OpenTinyRX
На выходных дошли у меня руки до прошивки моих модулей.Два передающих “оранжа” 0,1Вт и 1Вт(условно 😃),приёмники “оранжи” 2 шт и “хоки” 2 шт.Пришлось несколько раз прочитать и вникнуть в инструкции,перестроиться на особенность управления через терминал,чтобы примерно понять что есть что.Немного повоевал с программатором и ФТДИ-адаптером.Ардуиновская прога периодически не видела програматор.Первая попытка прошивки передающего модуля 0,1Вт оказалась неудачной,долго пытался связать модуль с приёмником,потом интуитивно понял, что проблема в модуле подозрение на криво вставшую прошивку или вообще загрузку,загрузил в него ардуиновский загрузчик(до этого стоял родной,только фьюзы подправлены были),почистил память,и загрузил прошивку по новой.Всё стало адекватно.Сначала я вбивал значения каналов в регистры приёмника такие же самые как и в соответствующих регистрах каналов передатчика.Передатчик предварительно был включён в режиме авто-настройки, т.е. он выбрал каналы на его усмотрение исходя из эфирной обстановки,после этого я переписал значения регистров отвечающих за каналы связи,чтобы вбить их в регистры приёмников.Значение регистра 2(подстройка частоты) на передатчиках и приёмниках было 199.В принципе всё работало,сервы шуршали,маяк работал и т.д.На дальность возможности проверить нет,погода плохая.В одноватный модуль я тупо скопировал значения регистров со 100-милливаттного и он тоже работает.
Но вот сегодня вечером после прошивки приёмника “хок” я решил попробовать “ребинд” приёмника,т.е. чтобы он сам нашёл передатчик.Предварительно на модуле 0,1Вт я занизил мощность(значение регистра =1),оттащил передатчик в другую комнату и приёмник никак не смог настроиться,хорошо принёс передатчик поближе и попытка номер два…Настроился,но значения регистров немного другие,номера каналов совпадают но номера регистров нет.Например регистр 11 на передатчике значение 92,а на приёмнике 63.63-й канал тоже есть но в передатчике он в регистре 17.Далее регистр подстройки частоты тоже поменял значение,вместо 199 стал 195.Попробовал забиндить другой приёмник,значения регистров отвечающих за каналы тоже отличаются и от передатчика и от первого приёмника(в смысле по другому перемешаны номера каналов),сами каналы совпадают просто стоят в других регистрах,регистр 2 имеет значение 192.При этом всё работает нормально,во всяком случае в пределах квартиры.
Так вот у меня вопрос.Как предпочтительней оставить значения регистров каналов и регистра подстройки частоты,вручную их установить или лучше чтобы они установились в автомате?В каком случае связь будет устойчивее?
Доброе время суток!
Во-первых, спасибо Александру (автору) за большой объем работы по доработке программной части модулей LRS!
Во-вторых, хотелось бы прояснить несоклько моментов по железу: есть у меня старенький передатчик WFLY FT-06, на модели Бикслера приемник Corona 35MHz, все работает вполне нормально. Хочу попробовать канал на 433 МГц, сам радиолюбитель с позывным и имею пару р/ст на 144, 433 МГц. Понимаю, что на эти частоты проще сделать направленную антенну, чем на 35МГц 😃
Вопросы такие:
- Я не нашел, какого типа сигнал PPM идет из моего передатчика (JR/Turnigy или Futaba совместимый). Соответственно, принципиально ли это? Планирую взять OrangeRX Open LRS 433MHz Transmitter 1W ( JR Compatible) на HK, паяльник в руках держать умею. Могут быть проблемы, если передатчик т.н. Futaba-compatibe? Если да, то как это можно проверить (осциллограф есть).
- Общий набор: OrangeRx Open LRS 433MHz 9Ch Receiver, OrangeRX Open LRS 433MHz Transmitter 1W ( JR Compatible), OrangeRX USB Firmware Update Kit for JR/Futaba Style Transmitter Module - является достаточным для того, чтобы на первых порах получить канал управления моделью на 433? Цена, к сожалению, не на последнем месте…
P.S. автопилот и ОСД Eagle Tree. Заранее благодарен за ответ
значения регистров немного другие,номера каналов совпадают но номера регистров нет
Это нормально. Набор каналов - это кольцо, у него нет начала, а важна только последовательность частот.
Далее регистр подстройки частоты тоже поменял значение,вместо 199 стал 195
И это правильно. У каждого своя модуля индивидуальная подстройка. В данном случа приемник подстроился под передатчик.
.Как предпочтительней оставить значения регистров каналов и регистра подстройки частоты,вручную их установить или лучше чтобы они установились в автомате?
Регистры частот - без разницы, лишь бы сохранялась последовательность. Подстройка частоты - лучше вычисленная при rebind.
- Я не нашел, какого типа сигнал PPM идет из моего передатчика (JR/Turnigy или Futaba совместимый). Соответственно, принципиально ли это?
Нет. Более того, подключив передатчик к модулю и включив на последнем отладку (R6=3), Вы увидете сколко каналов идет с РУ и какой у них диапазон, а следовательно и тип.
- Общий набор: OrangeRx Open LRS 433MHz 9Ch Receiver, OrangeRX Open LRS 433MHz Transmitter 1W ( JR Compatible), OrangeRX USB Firmware Update Kit for JR/Futaba Style Transmitter Module - является достаточным для того, чтобы на первых порах получить канал управления моделью на 433? Цена, к сожалению, не на последнем месте…
Почти. Нужно еще чем-то проверить и при необходимости поправить фьюзы Мег. Если в составе Update Kit есть SPI программатор, то все ОК, если нет, желательно что-бы где-то рядом такой был (правка делается один раз).
Спасибо, SPI программатор есть, это не проблема. Буду пробовать!
Александр,спасибо.Ещё один вопросец.В руководстве к передатчику есть фраза ,касающаяся подстройки частоты:“2 - Freq Corr – индивидуальная поправка частоты. Позволяет точно синхронизировать частоты приемников и передатчиков. Обычно лежит в пределах 180-220. Подстройку можно производить по параметру A= выдаваемым приемником, добиваясь близости значения к 0/255.”
Что это за параметр А?Где его смотреть?Или это аналоговый режим РССИ?
A= выдаваемым приемником
Приемник по UART выдаёт во время работы. Смотреть в терминале.
У меня тоже были проблемы с биндом, после замены RFM23BPS в передатчике, приёмник никак не хотел биндиться с передатчиком, в автомате ловил 1-2 канала только, процесс бинда не прекращался.
Помогло уменьшение регистра 2 в передатчике до 185-190, после этого бинд стал проходить быстро и чётко.
Подстройку можно производить по параметру A= выдаваемым приемником, добиваясь близости значения к 0/255."
Сейчас еще добавлена команда Fxxx на передатчик и удобнее всего при наличии рации (или частотометра), подстроить передатчик по рации. Например выбставить на ней 433.075 МГц (1-й канал LPD) с минимальным шагом. На передатчике дать команду F0 и по подстраивать смещение кнопками ‘<’ и ‘>’ по чистоте звука. Для запоминания нажать Enter. А приемник уже подстраивать под настроенный передатчик командой rebind или вручную.
Я тоже накопил парочку вопросов 😃
Александр, у вас в доке написано, что обычные значения регистра 2 “в пределах 180-220”. Я подстраиваю одноваттный орандж под сканнер в режиме частотомера и получаю лучший результат при значении регистра в 127. И при этом не дотягиваю до точного значения еще около 10кГц.
Соответственно, ребинд нормально не проходит. Находит один или два канала и все.
Если вписать каналы в приемник вручную - все работает, но непонятно как корректировать частоту, ведь команды Fx на приемнике почему-то нет.
Еще поэкспериментировал с таким приемником в качестве источника PPM (для ретранслятора).
Примерно от 0% до 30% стика газа передатчик вообще не реагирует на него, показывая 988. Выше - все ок.
Это какой-то нестандартный PPM? Как-то проверить без осциллографа можно?
ведь команды Fx на приемнике почему-то нет
По маяку и подстройка руками 2 регистра. Или можно приблизительно настроить, потом сделать на приемнике ребинд. И он сам подтянет 2 регистр.
Тут главное чтоб передатчик был хорошо настроен.
Код в регистре 9 (RFMки) влияет на частоту изменением емкости на кварце. Что бы этот механизм работал, старший бит должн быть 1. Так что реальный диапазон регулировки +/- 64 относительно 192-х. Я пока не встречал модулей с коррекцией менее 195 или больше 215. Либо у Вас на RFM ее кварц аномальный, либо кондеры, либо Ввы подстраиваете частоту под неверный источник. Можно попробовать что-то сделать аппаратно, или задействовать регистры поправки частоты.
Команды Fxxx на приемнике нет, но можно туда временно залить прошивку передатчика.
Насчет странного PPM: гляньте какие длительности выдает прошивка в режиме R6=3… Там от 800 мкс ловится.
Код в регистре 9 (RFMки) влияет на частоту изменением емкости на кварце. Что бы этот механизм работал, старший бит должн быть 1.
Да, я смотрел код и даташит, однако факт. Могу завтра показать табличку изменения частоты в зависимости от регистра 2.
Кажется, нашел источник моих проблем. Это мелкий баг в строчке 662 в rfm22b.ino
Serial.print(fCh%1000);
Вместо 433.075 рисует 433.75. Мне кажется у меня в маяке такой же баг возможен, надо будет проверить 😃
Отстроил с точностью до килогерца. Теперь все нормально, спасибо 😃
Вместо 433.075 рисует 433.75. Мне кажется у меня в маяке такой же баг возможен
Врядли дело в этом. 700 кГц разности - никаким 9м регистром не перекрыть…
А ошибочку в коде можно заткнуть строчкой
if(fCh < 100) Serial.write(‘0’);
перед
Serial.print(fCh%1000);
Врядли дело в этом. 700 кГц разности - никаким 9м регистром не перекрыть…
Ну почти перекрыл же. 😃
Завтра покажу табличку - на работе осталась.
Все завелось после того, как я стал настраивать на .075, а не .75.
Получилось 214 на передатчике и 198 на приемнике (с прошивкой передатчика).
Насчет странного PPM:
PPM5 mode: T=53 Tc=-3 M=324 A=31
988 1199 1200 1201 1753
Еще и не все каналы иногда ловит.
Насчет странного PPM: PPM5 mode: T=53 Tc=-3 M=324 A=31 988 1199 1200 1201 1753 Еще и не все каналы иногда ловит.
Надо смотреть осциллом.
При отлове логика простая. Все что длиннее 800 мкс и короче 2500 - считается импульсом. Импульс длиннее 2500 мкс - межпакетной паузой.
Вы через PPM через ICP ловите или по прерыванию?
Если по прерыванию вот в этом месте (ppmsbus.ino)
#ifndef USE_ICP1 // неправильный режим - использованиие прерывания
pCntr++; // так как наш драйвер ловит оба фронта
if(!(pCntr&1)) { // половину нужно игнорировать
lastP=pulse;
return;
}
pulse+=lastP;
#endif
попробуйте поменять четность: if(pCntr&1) вместо if(!(pCntr&1)), может что даст?
Код в регистре 9 (RFMки) влияет на частоту изменением емкости на кварце. Что бы этот механизм работал, старший бит должн быть 1. Так что реальный диапазон регулировки +/- 64 относительно 192-х.
Даташиты RFM и Si44 немного различаются. В даташите RFM сказано, что старший бит добавляет 3.7пФ к емкости, и по дефолту он в нуле (0x7F = ). А в даташите Si про него сказано только, что он нужен для грубой подстройки частоты и все. По дефолту тоже в нуле (0x40).
Вообще параметр крайне неочевидный: прерывный, нелинейный, да еще и имеет обратное действие: увеличивая значение (емкость), уменьшаем частоту.
Имхо лучше его вообще не трогать, ребинд подгонит его сам. 😃
Табличка.
Вы через PPM через ICP ловите или по прерыванию?
Если по прерыванию вот в этом месте (ppmsbus.ino)
По прерыванию. Поменял код, результат такой же.
Еще заметил, что пока стик газа в нуле (988) на остальные стики реакции нет.
Ладно, это неважно, все равно 6-ти канальный ретранслятор - вещь бесполезная 😃
Вообще параметр крайне неочевидный: прерывный, нелинейный, да еще и имеет обратное действие:
Да, пожалуй в новом проекте, надо будет перейти на подстройку частоты через Frequensy offset (0x73,0x74), там и точность повыше - 156.25 Гц и нелинейности нет.
Поменял код, результат такой же.
По логике и не должно было.
что пока стик газа в нуле (988) на остальные стики реакции нет.
Не меняется код на входе? Или на приемнике. У Вас случайно R4=1 не стоит? Это специальный режим для ретрансляторов = прекращает передачу при отсутствии исходного сигнала, о оно определяется по выходу любого канала за пределы 1000-1999 мкс (рассчитано на настройку FS ретранслятора). Но коль у Вас при нижнем положении стика 988 мкс - эту фичу использовать нельзя.
неважно, все равно 6-ти канальный ретранслятор - вещь бесполезная
Жаль, что загадка осталась. Кто-то еще писал про подобное. А мне повторить не на чем.
Есть один 6-ти канальный ретранслятор. Внизу у него все в порядке. Проблемма когда все 6 каналов на максиммум ставишь (2 мс), он межканальную паузу меньше 2 мс оставляет. 😦
А вобщем-то обычные приемники приемники с sbus или PPM выходом - лучшее решение для ретранслятора. 😃
Да, пожалуй в новом проекте, надо будет перейти на подстройку частоты через Frequensy offset (0x73,0x74), там и точность повыше - 156.25 Гц и нелинейности нет.
Вы AFC разве не используете? Они же вместе не работают.
А чем плохо просто прибавить поправку в герцах к центральной частоте?
Не меняется код на входе? Или на приемнике.
Смотрю на передатчике в отладке PPMа. R4=0. Передача не прекращается, просто все каналы замирают в своих положениях.
А вобщем-то обычные приемники приемники с sbus или PPM выходом - лучшее решение для ретранслятора.
Да, я прицелился на 9-ти канальный DSM2 оранж с SBUS 😃
Вы AFC разве не используете? Они же вместе не работают.
Хочу уйти от AFC в новом протоколе. ИМХО, достаточно будет посткорекции. Нам точность важнее оперативности.
А чем плохо просто прибавить поправку в герцах к центральной частоте?
Строго говоря там не смещение, а kx, и нужно пересчитывать поправку в зависимости от частоты. С другой стороны на RFM69 регистра прыжков вообще нет…
Напомните, пожалуйста, как доработать приемник чтобы показания RSSI не скакали постоянно.