В этой статье вы узнаете, как сделать Конвертер SBUS в USB для FPV симулятора своими руками! Для чего это нужно? Для того, чтобы вы могли тренировать в FPV симуляторах без проводов, используя любой приемник с SBUS и пульт управления. Все, что вам потребуется, это дешевая плата разработки STM32F1 и программатор.
Вы также можете управлять в симуляторе через беспроводную свзяь, использую полетный контроллер, вместо STM32F1, если, конечно, у вас есть запасной. Если нет, то дешевле купить плату STM32F1.
Источник: oscarliang.com
SBUS приемник
Для сборки конвертер SBUS в USB вы можете использовать любые приемники с SBUS от FrSky: R-XSR, XM, X4R и другие, все они должны работать. В этой статье в качестве примера я буду использовать FrSky RX8R с пультом Taranis QX7.
STM32F1 — плата разработки
Это микроконтроллер, «мозг» нашего конвертера, который будет работать как конвертер SBUS в USB. Он будет кодировать сигнал SBUS в понятный компьютеру «язык» и работая как виртуальный джойстик на вашем ПК.
Хорошей новостью будет то, что вам не нужно будет писать самим код для работы, вам просто нужно будет скопировать код, который я размещу в этой статье и загрузить его в плату.
Эти платы недорогие, обычно стоят от 3 до 7$. Купить можно здесь:
Прошивка платы STM32F1
Плату STM32F1 нельзя прошить просто через USB, для это требуется адаптер-программатор Serial FT232RL FTDI:
Это очень полезная штука, например, этот адаптер используется и для прошивки minimOSD и может потребоваться для прошивки полетного контроллера, если вдруг USB порт сломан, прошивать зарядные устройства, в общем, очень нужный адаптер.
У меня такой:
Обычно этот адаптер должен работать «из коробки», но иногда компьютер может не увидеть USB-Serial даже с помощью автоматического поиска драйверов (Windows 7 и 10), то можете скачать драйвера здесь: https://www.ftdichip.com/Drivers/D2XX.htm
Как соединить провода:
- Вывод FTDI 5V на вывод 5V платы STM32;
- Вывод FTDI GND на вывод GND платы STM32;
- Вывод FTDI RX на вывод PA9 платы STM32;
- Вывод FTDI TX на вывод PA10 платы STM32;
- Подключите USB FT232RL FTDI к вашему ПК.
Программное обеспечение
- Прошивка SBUSJoystick для платы STM32: https://drive.google.com/file/d/1CV5EEQCmvf_3wkNwQGufK9_xdfX4frkG/
- Для прошивки, необходимо также скачать флэш-загрузчик STM32: https://www.st.com/en/development-tools/flasher-stm32.html
Чтобы скачать флэш-загрузчик, необходимо зарегистрироваться (это быстро и бесплатно) на ST.COM
Прошивка
1. Подключите плату FTDI к плате STM32F1 и установите перемычку Boot0 в верхнее положение (светло-желтая штука по центру):
2. Теперь подключите FTDI плату к компьютеру, затем запустите демо-версию программы STM32 FlashLoader.
3. Нажмите кнопку сброса на плате STM32F1.
4. В программе FlashLoader выберите COM-порт вашего FTDI (в моем случае это COM9) и нажмите «Далее».
Если на этом шаге у вас ошибка, проверьте еще раз перемычку Boot0, установлена ли она в верхнем положении, затем выключите и включите плату, затем снова нажмите Сброс и попробуйте снова.
5. Выберите STM32F1_Med-density_128K во вкладке Target и нажмите Next.
6. Выберите Download to device и выберите файл SBUSJoystick.bin, который вы скачали с гугл-диска.
Если не видите файл, проверьте, сохранилось ли расширение файла при сохранении в *.bin
7. Жмем Next и ожидаем начала процесса прошивки.
8. Теперь переместите перемычку Boot0 снова в нижнее положение и отсоедините плату FTDI и убедитесь, что она выключена (не должны гореть светодиоды).
Если вы не выполните шаг 8, прошивка автоматически удалится, когда вы отключите питание и вам придется все выполнять сначала.
Инвертируем SBUS
Исходный сигнал SBUS с приемника FrSky инвертированный, но плата STM32F1 не имеет встроенного инвертора сигнала, поэтому нам теперь нужно инвертировать SBUS самим. Есть 2 способа это сделать:
Способ 1. Рекомендуемый.
Минуя встроенный инвертор SBUS приемника (инвертор не требуется).
Подробнее здесь: https://oscarliang.com/uninverted-sbus-smart-port-frsky-receivers/
Рекомендуется, потому что вам не нужно дополнительное оборудование и пайка выглядит чище.
Способ 2.
Сделать цепь последовательного инвертора.
NPN-транзистор общего назначения + 2 резистора в следующей конфигурации цепи:
Я спаял эту схему на плате VERO, добавил разъемы (мама) для монтажа на плате STM32F1 и добавил дополнительные разъемы для контактов: 5v, GND, PA9, PA10 — контакты программирования на случай, если в будущем мне потребуется повторно прошить / обновить прошивку.
- Transistors: Aliexpress | Banggood
- Resistors: Aliexpress | Banggood
- Proto Board: Aliexpress | Banggood
- Female Pin Headers: Aliexpress | Banggood
- Male Pin Headers: Aliexpress | Banggood
Подключение приемника к конвертеру
Чтобы подключить приемник к плате STM32F1, сделайте следующее соединение контактов:
- Приемник 5V на STM32F1 5V контакт
- GND приемника к выводу STM32F1 GND
- «Неинвертированный» выход SBUS на PB11 STM32F1
Настройки пульта управления
После соединения и включения питания конвертеру и пульту управления, убедитесь, что каналы CH1-6 на пульте выдают значения примерно 1000-2000.
Порядок выходных каналов должен быть таким:
- CH1: Throttle
- CH2: Roll
- CH3: Pitch
- CH4: Yaw
- CH5: AUX1 (больше 1800 включит виртуальную кнопку 1)
- CH6: AUX2 (больше 1800 включит виртуальную кнопку 2)
Проверка работы
Пользователи Windows могут проверить выходные данные устройства здесь:
Пуск => Поиск «Настройка игровых USB-контроллеров».
Вы увидите список контроллеров, найдите контроллер с названием «Maple«. В новом окне перейдите во вкладку «Тест» (Test) и подергайте в разные стороны стики на пульте, они должны дублироваться значениями в окне выше.
После этого, можете перейти к тренировкам в FPV симуляторах.