Ремаппинг ресурсов (Resource Remapping) — это просто офигенная функция в Betaflight, она позволяет менять местами некоторые контакты в полетном контроллере. Используя ремаппинг можно сделать очень многое: поменять порядок моторов, переназначить контакты, на случай отвалившихся контактных площадок и т.д!
Оригинал: Changing Motor Order and Moving Pins Around with Betaflight Resource Remapping
Как в Betaflight работает Resource Remapping
У микроконтроллера (процессора) очень много контактов (пример показан на заглавной картинке), каждый из них может выполнять какие-то функции. Ремаппинг по сути говорит полетному контроллеру какой порт будет использоваться для какой функции.
Этот функционал доступен в Betaflight начиная с версии 3.1.
В консоли (CLI) Betaflight наберите «resource», в результате вы получите список функций, которые можно поменять и соответствующие им контакты.
# resource resource BEEPER 1 C15 resource MOTOR 1 B07 resource MOTOR 2 B06 resource MOTOR 3 B05 resource MOTOR 4 B04 resource PPM 1 B03 resource PWM 1 B00 resource PWM 2 B01 resource SONAR_TRIGGER 1 B00 resource SONAR_ECHO 1 B01 resource SERIAL_TX 1 A09 resource SERIAL_TX 2 A14 resource SERIAL_TX 3 B10 resource SERIAL_TX 11 B01 resource SERIAL_RX 1 A10 resource SERIAL_RX 2 A15 resource SERIAL_RX 3 B11 resource SERIAL_RX 11 B00 resource LED_STRIP 1 A08
Вот формат команды
resource [Function] [Index] [Port]
Чтобы поменять функцию назначенную на определенный контакт, просто используйте эту команду, и сохраняйте изменения после неё.
Дальше мы покажем вам несколько типовых вариантов использования Betaflight Resource Mapping.
Важное замечание, некоторые контакты процессора нельзя использовать, они просто ни к чему не подключены на плате полетного контроллера. Порт, у которого вы собираетесь менять функцию, в идеале должен иметь контактную площадку на плате (место куда можно легко припаять провод). Иначе придется паять проводок к очень тонкой «ноге» проца, а это очень сложно.
Как поменять контакт для подключения светодиодов (LED Strip Pin)?
Например, если вы хотите назначить порт A09 для подключения светодиодов, то просто наберите в CLI:
resource LED_STRIP 1 A09 save
Как поменять порядок подключения моторов в полетном контроллере (поменять местами выходы на моторы)
В этом примере, представьте себе, что у нас квадрик, на который мы неправильно поставили полетный контроллер, повернув его на 90 градусов по часовой стрелке. Не парьтесь, не придется все переделывать и перепаивать, все очень просто исправляется при помощи ремаппинга!
3 4 \ / / \ 1 2
Правильный порядок моторов должен быть такой:
4 2 \ / / \ 3 1
Набираем «resource» в CLI, делаем копию полученных результатов (на случай каких-либо проблем, или если захочется все вернуть обратно). Находим 4 строки, описывающие порядок контактов для моторов.
resource MOTOR 1 B07 resource MOTOR 2 B06 resource MOTOR 3 B05 resource MOTOR 4 B04
Чтобы проще было разобраться, запишем порядок расположения моторов с указанием номер используемого порта:
3(B05) 4(B04) \ / / \ 1(B07) 2(B06)
Теперь ведь значительно понятнее какие порты нужно поменять?
B06 должен быть «motor 1», а B04 — «Motor 2» и т.д…
Введем в консоли:
resource MOTOR 1 B06 resource MOTOR 2 B04 resource MOTOR 3 B07 resource MOTOR 4 B05 save
Всё!
Как поменять контакт на который подключена пищалка
Всё также просто, как и в примерах выше, НО!
Нельзя просто назначить произвольный контакт для использования с пищалкой.
Причина в том, что пищалка потребляет значительный ток (больший, чем может выдать порт процессора STM32), следовательно, нужен транзистор. Транзистор управляет током, и контролируется процессором. Если вы подключите пищалку напрямую к процу, ко скорее всего сожжете его.
На сам деле переносить пищалку не самая хорошая идея, из-за сопряженных с этим проблем. Если все же вы решитесь на это, тогда придется собрать небольшую схему. Это пример схемы для ПК CC3D, с использованием самых надежных компонентов, но на всякий случай стоит проконсультироваться производителем вашего ПК.
Очень помог для ремапинга моторов, спасибо!