Меняем порядок моторов и назначение портов с помощью ремаппинга ресурсов в Betaflight

stm32-f303-chip-pin-out-pinout

Ремаппинг ресурсов (Resource Remapping) — это просто офигенная функция в Betaflight, она позволяет менять местами некоторые контакты в полетном контроллере. Используя ремаппинг можно сделать очень многое: поменять порядок моторов, переназначить контакты, на случай отвалившихся контактных площадок и т.д!

Как в 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, с использованием самых надежных компонентов, но на всякий случай стоит проконсультироваться производителем вашего ПК.

buzzer-beeper-flight-controller-transistor-circuit-stm32-processor

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.