- Что особенного в crossfire?
- Почему fport лучше?
- «делим» один uart между smartaudio и телеметрией регуляторов
- Frsky telemetry — rssi и напряжение аккумулятора
- Антенны для приёмников
- История изменений
- Как настроить fport?
- Как настроить sbus / smartport на пк naze32 rev5 (f1)
- Как настроить и использовать soft serial?
- Как соединить smartport и naze32
- Напряжение аккумулятора
- Настраиваем betaflight для работы с crossfire
- Настраиваем lq и rssi в osd и в предупреждениях тараниса
- Настраиваем lua скрипты
- Настраиваем sbus и smartport на пк f4
- Настраиваем taranis для использования crossfire
- Настраиваем голосовые предупреждения
- Настраиваем приёмник в таранисе
- Настройка экранов телеметрии в taranis
- Настройка через betaflight/cleanflight configurator
- Недостаточно последовательных портов? давайте использовать led_strip для smartport
- Обновляем opentx
- Ограничения, связанные с использованием softserial
- Подключение телеметрии
- Полетные контроллеры
- Привязываем приёмник crossfire к передатчику
- Примеры использования softserial
- Решение проблем с fport
- Сколько человек может одновременно летать, используя crossfire?
- Ставим радиомодуль crossfire в taranis
- Устанавливаем антенну приемника
- Хакнутый, «неинвертированный» сигнал smartport (f4)
Что особенного в crossfire?
TBS Crossfire — это популярная система радиоуправления для полетов на дальние расстояния.
Одна из составных частей — внешний радиомодуль, который устанавливается в отсек аппаратуры управления типа Taranis или Nirvana (англ), так что вы сможете использовать весь функционал OpenTX.
Crossfire работает на частоте 900 МГц, более низкая частота означает, что сигнал лучше проходит через препятствия. По сравнению с традиционными системами, работающими на частоте 2,4 ГГц, это дает больший радиус работы и более надежный прием сигнала. Однако есть и недостаток — более длинные и крупные антенны.
Frsky Taranis с двухантенными приемниками (R-XSR и X4R-SB) теоретически дает до 1,5 км, чего более чем достаточно для большинства пилотов мини-коптеров. Однако, иногда хочется полетать подальше, или иметь более надежное управление в условиях, когда есть много деревьев или зданий; вот тут-то и пригодится Crossfire.
Ещё одно преимущество Crossfire над другими системами — меньшая задержка сигнала, что по словам многих известных пилотов заметно улучшает управляемость. Мы говорим о разнице, измеряемой миллисекундами, так что можете заметить, а можете и не заметить её.
Модули и комплектующие для Crossfire:
Не знаете какой модуль выбрать? Вот их сравнение.
Почему fport лучше?
Причины, по которым я предпочитаю использовать FPort, а не SBUS и SmartPort:
- FPort передает управляющий сигнал, телеметрию и RSSI по одному проводу.
- упрощается прокладка проводов и пайка
- экономится последовательный порт
- FPort — имеет неинвертированный сигнал, в общем, надеюсь, больше не понадобятся всякие трюки и хаки с инверсией сигнала на ПК с F4.
- FPort немного быстрее, чем SBUS (англ.)
- RSSI работает, не занимая отдельный канал управления
«делим» один uart между smartaudio и телеметрией регуляторов
Использование контактов TX и RX одного порта для двух устройств позволяет освободить целый порт для чего-нибудь другого.
Например, вы можете повесить телеметрию регулей на RX UART1 и настроить TX UART1 как SoftSerial для работы SmartAudio.
В консоли набираем «resource» и находим контакт для TX1, в нашем случае это A09.
Назначаем A09 на SoftSerial 1
resource SERIAL_TX 11 A09 save
Включаем фичу «SoftSerial» в Betaflight, теперь вы должны увидеть SoftSerial1 на закладке Ports. Выбираем «ESC» для UART1 и SmartAudio для SoftSerial1.
Возможно потребуется перезагрузить ПК, выдернув USB кабель и аккумулятор, и затем подключить все обратно.
Frsky telemetry — rssi и напряжение аккумулятора
Телеметрия от FrSky имеет впечатляющий список возможностей и способна передавать разные типы данных о полете. Например, мы покажем вам, как настроить прием RSSI (англ, Signal strength indication — уровень принимаемого сигнала), напряжение аккумулятора и как отобразить эти данные на экране передатчика.
Кто-то может задать вопрос: «зачем использовать телеметрию, когда можно подключить пищалку-сирену и OSD?» Ок, сирену бывает сложно услышать на расстоянии. OSD — очень полезная штука, но не помешает еще один механизм для увеличения надежности и безопасности.
Необходимые шаги для настройки телеметрии в D4R-II:
- Подключить пин RX от телеметрии к полетному контроллеру
- Настроить ПК в приложении Betaflight/Cleanflight (запускается через Chrome)
- Настроить Taranis на получение телеметрии
Если хотите, можно модифицировать Таранис и поменять звуки.
Антенны для приёмников
Вот статья, в которой мы сравниваем две популярные дальнобойные системы Crossfire и Frsky R9M.
История изменений
- Декабрь 2023 — первая версия статьи для F1 Naze32 Rev5
- Апрель 2023 — обновлены инструкции для F3
- Июль 2023 — Обновлены ссылки, настройка SmartPort на F4 без инвертора
Как настроить fport?
Контакт «SmartPort» приемника после перепрошивки начинает работать как «FPort».
Как настроить sbus / smartport на пк naze32 rev5 (f1)
Настройки SBUS и SmartPort очень похожи на разных полетных контроллерах в Cleanflight, разница в оборудовании. Очевидно, что Naze32 (на процессоре F1) требует немного больше усилий и работы руками чем в случае контроллеров на процессорах F3 (Tornado, Dodo и т.п.). Но нет ничего невозможного.
Как мы уже ранее объясняли в статье про сравнение PPM и SBUS, сигнал SBUS на выходе приемника FrSky инвертирован (т.е. перевернут) и некоторые полетные контроллеры не могут его распознать и понять.
Существует множество способов инвертировать сигнал, например, использовать самодельный инвертер сигналов.
Заметим, что только платы Rev5 и более старые требуют этого, rev6 распознает SBUS без инверторов.
Как настроить и использовать soft serial?
Проще всего продемонстрировать это на примерах. Но в вкратце, всего 2 шага:
- Включить SoftSerial feature
- Назначить SoftSerial TX|RX на свободные порты при помощи Betaflight Resource Remapping
Руководство по использованию Resource Remapping.
После перезагрузки ПК увидите новый последовательный порт — SoftSerial.
Как соединить smartport и naze32
Для телеметрии вам снова понадобится последовательный порт. Однако на Naze32 вы этого сделать не можете, потому что там всего 2 аппаратных UART, и они уже используются: один для подключения SBUS, а второй зарезервирован для подключения по USB. Кое-кто писал, что этот способ подойдет и для Rev6 (но у меня ее нет, так что не могу ни проверить, ни опровергнуть).
Однако хорошая новость в том, что есть возможность использовать SoftSerial (software serial, программную эмуляцию последовательного порта) для подключения SmartPort. Контакты RC5 и RC6 доступны для SoftSerial на плате Naze32.
Замечу, что RGB светодиоды подключаются к RC5, то при использовании SoftSerial, придется отключить LED_strip.
Имейте ввиду, что нужно соединить 2 контакта вместе (RC5 и RC6). Марсело сделал разъем в котором контакты спаяны друг с другом. Другой конец кабеля подключен к SmartPort порту приемника (на картинке зеленый провод).
Причина, по который SmartPort использует только один провод для приема и передачи в том, что протокол полудуплексный. Именно это и эмулируется замыканием TX и RX и включением SoftSerial.
С приемником D4R-II RX вам нужно подключить телеметрию только к RC6 (softSerial TX), но очевидно, что есть разница с X4R-SB, на котором SmartPort нужно подключить к обоим контактам – RC5 и RC6. Марсело пытался, но у него не получилось, пока он не соединил контакты вместе.
В конфигураторе CleanFlight вы должны выбрать Telemetry и SoftSerial на вкладке Configuration.
Затем на вкладке Ports выберите SoftSerial1 и SMART PORT, AUTO.
К консоли (CLI) наберите Telemetry Invert = ON или 1, в зависимости от версии CleanFlight. В последней версии используются значения ON и OFF вместо 0 и 1.
И еще раз проверьте в консоли включены ли эти функции.
Как мы узнаем, что SmartPort телеметрия работает?
Итак, чтобы проверить сдвиньте контроллер в любом направлении, и посмотрите меняются ли значения AccX и AccY (если вы не отключили акселерометр). Если постоянно показывается 0, то это может значить как то, что акселерометры выключены, так и то, что телеметрия не работает.
Для отображения правильной высоты, вы должны вначале включать коптер, и только затем Taranis (передатчик). Если вы вначале включите Taranis, он покажет неправильные значения.
Отметим, что в старых версиях прошивки Taranis напряжение основного аккумулятора показывалось как Cells, но теперь это не работает, новое значение – Vfas.
Naze32 с подключенными SBUS и Smartport будет выглядеть примерно так:
На этом все! Если у вас есть что сказать – пишите в комментариях.
Напряжение аккумулятора
Чтобы активировать мониторинг напряжения, подключите контакт VBAT полетного контроллера к аккумулятору или подобный контакт на PDB. Убедитесь, что соблюдаете полярность.
В наши дни есть очень много ПК, которые можно питать напрямую от LiPo аккумулятора, что позволяет сразу контролировать напряжение, следовательно, дополнительный проводок VBAT уже не нужен.
Настраиваем betaflight для работы с crossfire
Заключительный этап — настройка Betaflight.
Переходим на вкладку Ports в Betaflight Configurator, включаем «Serial RX» на том порту, куда подключен Crossfire приемник. Нажимаем «Save«.
Открываем вкладку «Configuration«, в разделе «Receiver» выбираем «Serial-based receiver«, и затем, ниже, «CRSF«.
Не забудьте включить телеметрию (Telemetry) и нажать «Save«.
Последний шаг, переходим на вкладку «Receiver«, тут вы должны видеть реакцию на движения стиков. Это значит, что приёмник работает! Если реакции нет, тогда попробуйте проверить и поменять «Channel Map» (см выше).
Проверяем конечные точки (1000 и 2000), затем средние точки (1500), читаем тут про настройку.
Стики не двигаются? Возможно, включена инверсия сигнала. Попробуйте дать команду в консоли:
set serialrx_inverted = OFF
Если ничего не работает, возвращаемся к началу инструкции и проверяем провода, настройки Output Map, и параметры Betaflight.
На этом всё, Betaflight настроена для работы с Crossfire! 🙂
Чтобы убедиться в правильности работы телеметрии перейдите на страницу Telemetry в аппаратуре управления, затем выберите пункт «Discover new sensors», после этого должны появиться новые данные, включая VFAS — напряжение аккумулятора.
Настраиваем lq и rssi в osd и в предупреждениях тараниса
Вот руководство, в котором объясняется что такое LQ и RSSI, и как их отобразить на экране (англ).
Настраиваем lua скрипты
На пульте можно запустить LUA скрипты для изменения кучи параметров Betaflight, например: PID, рейты, looptime, параметры фильтров, канал видеопередатчика и его выходную мощность!
Настройка практически такая же, как и для SmartPort, только не нужно менять настройки Betaflight, т.к. мы это уже сделали (например, включили телеметрию). Единственная вещь, которую нужно сделать — загрузить LUA скрипты в Таранис!
Настраиваем sbus и smartport на пк f4
Некоторые полетные контроллеры на F4 не поддерживают Smart Port напрямую, потому что в них нет аппаратной инверсии сигнала. Следовательно, вам придется еще раз инвертировать сигнал, чтобы SPort заработал.
Вот инструкция как получить неинвертированный SBUS и SmartPort на приемниках FrSky.
Если на вашем ПК c F4 имеются специальные порты для SBUS и SmartPort, то процесс подключения аналогичен ПК на F3 (см выше).
Настраиваем taranis для использования crossfire
Создаем новую модель в передатчике. Проще всего сделать копию существующий и переименовать ее, например, в Crossfire. Если хотите создать модель с нуля — вот инструкция (англ).
Кратко нажимаем Menu, переходим на страницу Model Setup, перемещаемся вниз до «Internal RF» (внутренний модуль) и выбираем режим «OFF» (отключить).
Далее настраиваем параметр «External RF» (внешний модуль), ставим «CRSF» и меняем параметр Channel Range (диапазон каналов) на «CH1-16«.
После того, как вы это сделали и вышли из меню, модуль Crossfire должен включиться (на нём загорятся светодиоды).
Настраиваем голосовые предупреждения
Очень полезная функция Тараниса — возможность сообщать что-то голосом, по умолчанию установлен приятный женский голос. Передатчик может передавать вам информацию проговаривая её прямо во время полета, так что не придется смотреть на экран. Мы можем настроить переключатели чтобы запросить напряжение аккумулятора, или настроить так, чтобы передатчик предупредил нас голосом, когда RSSI становится очень низким и критическим.
Я использую 3 «голосовых» сценария:
- Таранис предупреждает меня, когда напряжение аккумулятора падает ниже 3,44 В
- После арминга коптера, Таранис каждую минуту напоминает мне напряжение аккумулятора
- Если тумблер SH включен, то Таранис проговаривает текущее напряжение
Чтобы этого добиться, я создал логический тумблер L1 (Logical Switch L1) со значением Cell = 3,44. В настройках функций (special functions) я создал SF1, которая постоянно смотрит за значением L1, и если он активен, то проигрывает звук (низкий заряд аккумулятора).
Также я создал SF2, чтобы проговаривать текущее напряжение, когда SH нажат. Переключатели SF3 и SF4 нужны для моего таймера. SF5 — проговаривает напряжение каждые 60 секунд, если тумблер арминга включен, в моем случае — это SF в нижнем положении.
Настраиваем приёмник в таранисе
После привязки приёмника можно настраивать как передатчик, так и приёмник при помощи LUA скриптов. Если вы не видите пункта «XF Micro/Nano RX», это значит, что приёмник не привязан или выключен.
Первое что нужно сделать — это настроить выходы на приёмнике, чтобы он мог обмениваться данными с полетным контроллером.
Чтобы это сделать, выбираем «XF Micro/Nano RX«, прокручиваем вниз до «Output Map» (карта выходов) и выбираем «Output 1» = «CRSF TX«, а для «Output 2» ставим «CRSF RX«. Всё! 🙂
Теперь настраиваем передающий радиомодуль.
Самое важное — убедиться, что выбран правильный частотный диапазон, в США это 915 МГц, а в Европе — 868 МГц. Если использовать не тот диапазон, то результат будет не очень надежным, а сигнал слабым и некачественным.
Для типичной конфигурации коптера в большинстве случаев будет достаточно 250 мВт выходной мощности. А автоматическое изменение мощности (Dyn. power) можно отключить.
Начиная с версии 2.4. максимальная выходная мощность Micro-модуля увеличена со 100 мВт до 250 мВт (англ).
Параметр Mode — задает число каналов, при использовании 8 каналов задержка при передаче сигнала будет меньше, чем при использовании 12 каналов. Убедитесь, что телеметрия включена, а failsafe в режиме Cut, т.е. моторы остановятся в случае пропадания сигнала, а коптер просто упадет, что минимизирует риски.
Настройка экранов телеметрии в taranis
Передатчик нужно настроить чтобы:
- показывать напряжение
- предупреждать о низком напряжении
- предупреждать о слабом сигнале (RSSI)
- показывать дополнительную информацию (высоту и т.д.)
В меню моделей Тараниса переходим к телеметрии, долгим нажатием кнопки Page. У телеметрии есть три экрана, и мы можем выбрать как информацию будет на них отображаться.
В примерах выше я настроил экран 1 для показа значений числами: напряжение аккумулятора, побаночное напряжение и RSSI (помимо телеметрии значение RSSI можно получить в свободном PPM канале).
Экран 2 будет показывать те же значения, но в виде графиков (столбцов). Минимальное значение 3,3 В, а максимальное 4,1. Tmr1 — это таймер, поставленный на 7 минут — моё обычное время полета.
Параметры на экранах телеметрии:
- Cells — напряжение аккумулятора
- Cell — напряжение аккумулятора, деленное на число ячеек
Общее напряжение измеряется полетным контроллером, так что невозможно получить напряжение каждой банки по отдельности. Значение Cell используется в уведомлениях о низком заряде.
Настройка через betaflight/cleanflight configurator
При использовании плат на F3, F4 или F7 нужно настроить телеметрию через конфигуратор.
На закладке «Ports«, выберите «FrSky» в выпадающем списке «Telemetry» у того последовательного порта, к которому вы подключили телеметрию.
Не забудьте активировать функцию «Telemetry» на закладке «Configuration»
Недостаточно последовательных портов? давайте использовать led_strip для smartport
Если на вашем ПК имеется контакт LED_Strip и вы не подключили светодиоды, тогда можно превратить этот контакт в порт SoftSerial и использовать его для SmartPort или SmartAudio.
В консоли набираем «resource» и видим, что LED_Strip — это B06.
Назначаем B06 на SoftSerial 1, для этого вводим:
resource LED_STRIP 1 none resource SERIAL_TX 11 B06 save
Включаем фичу «SoftSerial» в Betaflight, теперь вы должны увидеть SoftSerial1 на закладке Ports. Выбираем «SmartPort» в столбце «Telemetry Output».
Если что-то не работает, см советы в первом примере.
Обновляем opentx
Чтобы избежать ненужных проблем и багов, установите свежую версию OpenTX. Вот инструкция для Тараниса.
Ограничения, связанные с использованием softserial
Нет ничего идеального, при использовании SoftSerial появляются некоторые ограничения:
- SoftSerial не подходит для задач, которые требуют частого обмена большим объемом информации, например OSD или SerialRX
- SoftSerial потребляет много процессорного времени:
- на ПК с F1 не получится включить SoftSerial в Betaflight, просто не хватит ресурсов проца
- возможно не лучший вариант и на платах с F3, особенно если вы хотите сократить время цикла (looptime), и использовать некоторые другие ресурсоёмкие функции
- на некоторых ПК, softSerial отключен в официальных прошивках, но его можно включить в кастомной прошивке
- Можно включить всего 2 SoftSerial одновременно
Подключение телеметрии
У D4R-II имеется внешний порт для аналоговой телеметрии. В комплекте с приемником есть 4-х контактный кабель — черный, белый, красный и зеленый провода.
Мы будем использовать только черный и зеленый провода, т.е. землю и RX. Белый и красный нужны для других целей, нам они сейчас не важны. Их можно вытащить из разъема или обрезать. В принципе, можно использовать только зеленый провод, без черного (земля).
Если ПК на F3, F4 или F7, просто подключите телеметрию (зеленый провод) к контакту TX свободного последовательного порта (UART).
В случае плат на F1, типа Naze32:
- Зеленый провод к Telemetry « »
- Черный провод к «-«
Если провода подключены правильно, то Taranis сможет получать данные. Замечу, что при использовании Naze32 телеметрия будет доступна, только после арминга.
Полетные контроллеры
ПК на F3, F4 или F7 со свободным последовательным портом. Убедитесь, что у вас свежая версия Betaflight.
Привязываем приёмник crossfire к передатчику
Привязка приёмников Crossfire делается очень просто (в большинстве случаев), активировать режим привязки можно при помощи LUA скрипта. Такие скрипты поставляются с OpenTX начиная с версии 2.2., так что ничего не придется качать. 🙂
Пошаговая инструкция для привязки приемников Crossfire:
- Включаем приёмник, должен мигать зеленый светодиод, это значит, что он ждет начала процедуры привязки (если горит красный, тогда нажмите кнопку bind на приёмнике)
- Включаем передатчик и запускаем Crossfire LUA скрипт:
- Долгое нажатие на Menu, входим в Radio Setup (настройки передатчика). Нажимаем Page чтобы добраться до страницы «SD Card«
- Выбираем папку CROSSFIRE и долго жмем enter на файле crossfire.lua, в меню выбираем «execute» (выполнить)
- На следующем экране выбираем XF Micro TX
- Далее выбираем Binding (как показано на картинке)
- Появится сообщение «Binding…», сам процесс привязки займет несколько секунд
- Если в приемнике слишком старая прошивка, тогда вам предложат её обновить, это займет несколько минут. После перепрошивки приемник будет быстро мигать зеленым (загрузка), затем зеленые светодиоды на приемнике и передатчике перестанут мигать и будут гореть постоянно.
- После привязки T16 автоматически переходит в обычный режим, а светодиод на приемнике перестает мигать и постоянно горит зеленым.
Выходим из меню, нажав Exit. Переходим к настройке приёмника.
Примеры использования softserial
Вот несколько типичных примеров использования. Во всех примерах я использую ПК Betaflight F4, но большинство шагов и примеров подойдет и для других полетников.
Решение проблем с fport
Если у вас приемник привязан к передатчику, а Betaflight не реагирует на стики, тогда попробуйте поменять инвертирование сигнала в настройках (on или off):
set serialrx_inverted = ON save
Если не работает телеметрия, тогда попробуйте разные значения (on и off):
set serialrx_halfduplex = ON save
Ещё можно попробовать сделать новый поиск сенсоров в Таранисе (Rediscover Sensor).
Сколько человек может одновременно летать, используя crossfire?
Согласно данным от TBS — одновременно может летать до 50 человек. В тесте летало 12 человек, связь была заметно хуже, но все равно можно было летать, так что TBS не рекомендует превышать это значение 🙂
Ставим радиомодуль crossfire в taranis
Радиомодуль просто вставляется в отсек позади пульта. Ставьте его аккуратно, не повредите контакты.
Crossfire полностью совместим с Taranis X9D и Jumper T16. Работает с Taranis QX7 и Horus X10S, но есть небольшие недостатки, например, нельзя использовать макс. скорость передачи, что вызывает сообщение о потере телеметрии.
Устанавливаем антенну приемника
Если вы уже использовали другие системы радиоуправления, то вы удивитесь необычно крупной антенне и столкнетесь с проблемой — как её крепить? Вот статья (англ.) с описанием способов крепления антенн Crossfire.
Там несколько примеров с разными антенными: включая стоковый диполь и не убиваемую «Immortal T».
Чтобы добиться максимально возможного радиуса уверенного приема постарайтесь располагать антенну так, чтобы рама её не затеняла. Не сгибайте антенну и старайтесь правильно её ориентировать.
Антенну можно поставить практически в любое место на коптере, главное, чтобы её не повредили винты, все очень сильно зависит от рамы. Не забудьте поискать 3Д-печатный крепеж на Thingiverse.
Хакнутый, «неинвертированный» сигнал smartport (f4)
Если у вас полетный контроллер на F4 и нет выделенного пина для SmartPort (со встроенным инвертором), тогда читаем вот это руководство и находим «неинвертированный» сигнал в приемнике.
Приемник R9MM — первый приемник с неинвертированным SmartPort сигналом. Надеюсь, они и дальше будут выпускать новые приемники без инверсии.
Пишем в консоли
set serialrx_halfduplex = ON set serialrx_inverted = OFF save
Если у вас ПК F4 имеет встроенный инвертор, и вы используете оригинальный, инвертированный сигнал с приемника, тогда вводим вот это:
set serialrx_halfduplex = OFF set serialrx_inverted = ON save