С приходом весны появились первые проталины, с дорог сошёл асфальт, повылазили самокатчики. @Yandex, не рано ли? У многих людей сейчас в самом разгаре весеннее обострение.
Дата, время, координаты на регистраторе верные. Место действия: Мурино, ул. Шоссе в Лаврики, перекрёсток с мостом через Охту.
Езда по встречке до перекрёстка, там же действует знак "обгон запрещён", езда в центре полосы, проезд под знак "движение электросамокатов запрещено" и это менее чем за минуту.
Очень надеюсь на то, что мошенникам не оставили никаких лазеек, вводя такую услугу. В противном случае черный цвет можно будет менять на сами знаете какой. https://spb.beeline.ru/customers/products/onenumber/
Доброго времени суток, пикабушники, любители дронов и просто любители технопорно. В этом посте пойдёт речь о приёмнике для FPV изделия R9 Slim+ OTA, а именно о том как его подключить к полётнику на примере SoloGood F405 V4. Сразу скажу, хорошо подумайте перед покупкой R9, во-первых, необоснованно дорого, во-вторых, ресурсозатратно с точки зрения подключения к полётнику. Нужно два отдельных UART, для приёма данных и отправки телеметрии. Ну, а если вы уже счастливый обладатель этого девайса, то надеюсь, мой пост вам чем-нибудь поможет.
Полётный контроллер с контроллерами моторов
Приёмопередатчик R9 Slim+ OTA
Распиновка из мануала приёмопередатчика
Приёмник у нас имеет два разъёма подключения CON1 и CON2, мы будем использовать CON1. Приемник поддерживает двунаправленные протоколы SBUS и S.Port. Если подключать напрямую к UART-ам микроконтроллера, то нам потребуется инвертировать сигнал для подключения к полётнику на базе F405, однако приёмник уже имеет выводы TX1, RX1 специально для такого случая (нет инвертора на плате полётника, нет отдельной платы инвертора, полётник не на базе F7, H7). Варианты подключения могут быть такими:
1) Подключить только SBUS. Так мы сможем управлять дроном без телеметрии.
2) Подключить S.Port и SBUS, так мы сможем получить телеметрию на свой пульт. Но в этом случае сигнал RSSI мы будем получать на пульт и отправлять обратно на приёмник коптера для отображения через OSD, занимая один из каналов управления.
3) Подключить S.Port, SBUS, и аналоговый RSSI выход. RSSI сразу будет отображаться через OSD, минуя путь до пульта и обратно к дрону.
SBUS IN мы подключать не будем, так как он используется в качестве входа телеметрии с резервного приёмника.
Пойдём по третьему пути, так как он геморройный и на нашем полётнике нет аналогового RSSI входа. Ток и напряжение батки есть, а RSSI разработчики зажали.
Плата полётного контроллера
Посмотрим теперь на наш полётник. Можно отметить наличие отдельной площадки SBUS. Рядом находится UART2 и UART3 (площадки TXn, RXn, где n - номер UART). Подключим к этой периферии микроконтроллера наш приёмник. От площадки SBUS идёт дорожка на инвертор, собранный на N-канальном MOSFET-е. Выход инвертора соединён с площадкой RX2 и ногой микроконтроллера UART2 RX.
Инвертор на N-Channel MOSFET
Имея вышеперечисленные входные данные, приступим к ремапингу аналогового входа АЦП для RSSI на свободную площадку полётника, но не на абы на какую. Для начала определимся с подключением приёмника по SBUS и S.Port. Так как на плате мы уже имеем инвертор, то вывод SBUS OUT приёмника можем соединить с площадкой SBUS полётника, заняв тем самым RX2. Для S.Port нам так же нужен инвертор, которого нет на плате полётника, но у нас есть инвертированный вход RX1 на плате приёмника. Соединяем RX1 пин приёмника с площадкой TX3 полётника, занимая UART3 TX. Подключаем питание 4V5 и GND.
Теперь посмотрим занятые ресурсы в консоли BetaFlight конфигуратора. Нужные нам строчки:
resource ADC_BATT 1 C01
resource ADC_RSSI 1 C02
resource ADC_CURR 1 C03
resource PINIO 1 C02
Это означает, что используется ADC1 на порту C и пинах PC1, PC3. Звякнем мультиметром PC3 (11 нога контроллера) на площадку CUR. Да звониться, также звониться и PC1 на BAT через делитель напряжения (2 резистора и сглаживающий конденсатор). C02 на нашем полётнике переназначен и управляет включением выключением DC-DC на 10V, его выход обозначен 10-SW, отдельно пин IO не выведен на площадки. В противном случае мы бы могли перерезать дорожку управления DC-DC, повесить её на шину 3V3, и тогда DC-DC у нас бы был всегда включен, а площадку IO можно было бы использовать для RSSI, но не судьба.
Займёмся ремапингом аналогового входа АЦП. Для того того, чтобы понять что дальше будет происходить, я настоятельно рекомендую поставить программу STM32CubeMX для разработчиков принципиальных схем и прошивок. Данный софт вам поможет наглядно и быстро разобраться с тем, куда что можно подключить, а что нельзя. Конечно, можно использовать datasheet на микроконтроллер, но будет не так оперативно. И так, скачали, установили, запускаем. Выбираем селектор микроконтроллеров.
STM32CubeMX главное меню
Здесь в строке партийника вбиваем наш камень и выбираем в таблице поиска.
STM32CubeMX выбор микроконтроллера
STM32CubeMX микроконтроллер нашего полётника
Сделаем отметку для себя задействованных ресурсов, заодно посмотрим номера каналов АЦП. Кликнем по пинам PC1 и PC3 и назначим их как входы ADC1, заняв каналы IN11 и IN13.
Ток и напряжение на батке
При назначении ножки под RSSI не должно быть пересечения с уже выбранными каналами в пределах одного АЦП. После подключения приёмника у нас остались свободными выводы UART2 TX и UART3 RX. Смотрим ресурсы, относящиеся к UART:
resource SERIAL_TX 1 B06
resource SERIAL_TX 2 A02
resource SERIAL_TX 3 B10
resource SERIAL_TX 4 A00
resource SERIAL_TX 5 C12
resource SERIAL_TX 6 C06
resource SERIAL_RX 1 B07
resource SERIAL_RX 2 A03
resource SERIAL_RX 3 B11
resource SERIAL_RX 4 A01
resource SERIAL_RX 5 D02
resource SERIAL_RX 6 C07
Возможность вывода на PA2 и PA3
Нас интересует A02 - PA2, A03 - PA3, B10 - PB10, B11 - PB11. И только PA2 и PA3 можно использовать в качестве входов ADC1 с каналами 2 и 3 соответственно. PA3 у нас занят SBUS, остаётся PA2.
Итоговая конфигурация для подключения приёмопередатчика
В командной строке BetaFlight пишем:
#освобождаем ресурс
resource SERIAL_TX 2 NONE
#назначаем
resource ADC_RSSI 1 A02
#сохраняем
save
Теперь можно проверить работу АЦП для этого нам понадобится потенциометр сопротивлением желательно больше чем 1кОм (10кОм - оптимально). Крайние выводы нужно запаять к GND и к 3V3, средний вывод к TX2. 3V3 можно взять с питания микроконтроллера. Выводы питания можно посмотреть в STM32CubeMX. Паяться к ногам контроллера не советую, рядом с выводами питания стоят конденсаторы, можно аккуратно подпаяться тонким проводом к ним или к LDO преобразователю напряжения (оптимальный вариант), который формирует 3,3В. В BetaFlight ставим галочку использования аналогового RSSI. Вращая ручку потенциометра, наблюдаем, как изменяются показания RSSI от 0 до 100.
Подсоединяем RSSI OUT приёмника к TX2 полётника.
Схема подключения
С подключением закончили. Настройка в BetaFlight UART-ов стандартная. Дальше биндим и идём летать.
Ещё вариант подключения если у вас нет инвертора на плате полётника для SBUS. На своём полётнике я отключу его физически, выпаяв резистор из стоковой цепи MOSFET (точнее сдвинув с одного пада), таким образом инвертор не будет оказывать влияния на вход RX2 полётника.
Отключение резистора стоковой цепи (полётник уже обработан уретаном)
Конфигурация микроконтроллера для второго варианта подключения
Используем RX2 для ADC RSSI. В консоли пишем:
resource SERIAL_RX 2 NONE
resource ADC_RSSI 1 A03
save
Схема подключения для второго варианта
TX2 используем для передачи телеметрии (S.Port), соединяем его с RX1 приёмника. RX3 используем для приёма сигналов управления (SBUS), соединяем его с TX1 приёмника.
В настройках BetaFlight проставляем настройки для UART2 и UART3.