Remapeado de recursos en Betaflight
Bueno, esto del remapeado de recursos suena a algo geoestratégico por lo menos, y cuanto menos misterioso. Luego existe un mapa y en él hay recursos! Casí parece que estamos a punto de descubrir un tesoro.
En cierto modo es así, porque el remapeado de recursos te va a permitir instalar un buzzer que quizás tu FC no soporta, y con ello vas a conseguir evitar perder tu dron, que es casi lo mismo que encontrar un tesoro.
Para los principiantes, el remapeado de recursos es particularmente útil, porque no es infrecuente cometer algún error al soldar los distintos componentes en el FC, como por ejemplo alterar el orden de los motores. También puede ocurrir que el puerto designado para un componente concreto no pueda ser utilizado porque el conector estorba, o por cualquier otro motivo.
El remapeado de recursos de betaflight te permite solucionar todo este tipo de problemas de una forma extremadamente sencilla. Si eres un friki programador y estás sufriendo síndrome de abstinencia porque esto de los drones no te proporciona tu dosis habitual de líneas de código, aquí tienes una dosis pequeñita para que veas que existe todo un mundo de comandos inexcrutables aún por descubrir.[/box]
Remapeado de recursos en Betaflight. Cambiando el orden de los motores y moviendo los pines.
El remapeado de recursos es una potente función de Betaflight que permite alterar las salidas de los pines en un controlador de vuelo.. Se pueden conseguir muchas cosas con el remapeado de recursos, por ejemplo, se puede cambiar el orden de los motores, re ubicar pines en tarjetas que tengan un pad de soldadura desprendido o dañado, etc.
Por qué podrías necesitar un remapeado de recursos
Podrías necesitar un remapeado de recursos porque:
- No tienes suficientes UARTs
- PADs de soldadura dañados
- Necesitas más salidas de motores para una configuración de hexacóptero
- No tienes la entrada PPM del receptor
- No tienes el pin de salida para los LEDs programables
- No tienes una salida para un servo
- Quieres cambiar el orden de las salidas de los motores
Cómo funciona el remapeado de recursos en Betaflight
Hay muchos pines en un procesador, y a cada uno de ellos se le puede asignar una función específica con Betaflight. El remapeado de recursos permite básicamente asignar a estos pines una actividad diferente.
Esta función está disponible en Betaflight V3.1 y versiones posteriores.
En el CLI del configurador Betaflight teclea “resource”, y nos devolverá las funciones disponibles que pueden ser cambiadas y su asignación de pines actual:
# 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
El formato es como sigue:
resource [Function] [Index] [Port]
Tecleando «resource list» se obtiene un listado completo de los recursos del FC: los asignados y también todos los pines libres.
Para cambiar la función de un pin, debes utilizar el mismo formato y añadir “save” en una nueva línea al final.
Pasaremos ahora a mostrar alguno de los usos comunes para el remapeado de recursos de Betaflight.
Una nota importante sobre esto: algunos de los pines del procesador podrían no estar utilizados y no conectarse con ninguno de los puntos de soldadura del controlador de vuelo. El puerto que quieres utilizar debería idealmente tener un pin de salida en el FC, algún sitio en el que sea fácil realizar una soldadura. De otro modo, podrías necesitar soldar un cable a una pata extremadamente pequeña del procesador, algo que es muy difícil de hacer, incluso para un soldador experto.
Cómo cambiar el pin de salida para la tira de LEDs
Por ejemplo, si quisiéramos cambiar la tira de LEDs al pin A09, simplemente teclearíamos en el CLI:
resource LED_STRIP 1 A09 save
Cómo cambiar el orden de los motores en un controlador de vuelo
Como ejemplo, imagina que tuviéramos un cuadracóptero con un orden de los motores equivocado porque sin advertirlo soldaste los cables de los variadores en posiciones cambiadas o porue quizás rotaste la tarjeta al montarla (aunque hay otra forma más sencilla de solucionar esto en Betaflight). No te preocupes, no es necesario rehacer tu trabajo de cableado y soldadura, Puedes arreglarlo fácilmente con el remapeado de recursos.
Pongamos que este es el orden de los motores que has :
3 4 \ / / \ 1 2
El orden correcto de los motores es, como todos sabemos:
4 2 \ / / \ 3 1
Teclea “resource” en el CLI de Betaflight, y copia el resultado para que en caso de error siempre puedas volver atrás. Debes localizar las cuatro lineas que especifican la asignación de pines de los motores:
resource MOTOR 1 B07 resource MOTOR 2 B06 resource MOTOR 3 B05 resource MOTOR 4 B04
Para controlar la reasignación, puedes escribir el orden actual de los motores con el número de pin junto a ellos:
3(B05) 4(B04) \ / / \ 1(B07) 2(B06)
Ahora está mucho más claro qué pines debes cambiar:
B06 debería ser “motor 1”, B04 debería ser “motor 2”, etc…
Teclea en el CLI
resource MOTOR 1 B06 resource MOTOR 2 B04 resource MOTOR 3 B07 resource MOTOR 4 B05 save
Y eso es todo
Cómo cambiar el pin del buzzer
Es tan simple como los ejemplos anteriores, pero no puedes simplemente asignar cualquier pin al buzzer, debes hacer algo más.
Esto se debe a que el buzzer puede consumir una cantidad de corriente considerable (más de la que el procesador STM32 puede manejar). Por ello, normalmente hay un transistor asociado al pin del buzzer. El transistor maneja la corriente del procesador y es controlado por una señal de éste. Si conectases directamente el buzzer al procesador STM32, es muy posible que lo dejes frito.
Probablemente no es buena idea cambiar el pin del buzzer considerando cuanto trabajo implica, pero si decidieses mover el buzzer a otro pin, es necesario construir un sistema externo de potencia, o de otro modo, como ya hemos dicho, lo más probable es que frías la tarjeta controladora de vuelo. Tenemos una explicación detallada de cómo hacerlo en otro tutorial que puedes encontrar aquí.
Múltiples funciones compartiendo el mismo pin
Algunas veces, un único pin puede ser empleado para múltiples funciones en Betaflight. Si ésta no es tu intención, es mejor liberar a los pines de tareas que no son imprescindibles.
Para comprobarlo, simplemente teclea “resource” en el CLI.
En este ejemplo, puedes ver cómo el pin C08 está compartido por dos funciones: LED_STRIP y CAMERA_CONTROL.
Si no estás usando la tira e LEDs, pero sí el control de cámara, puedes liberar el pin C08 introduciendo el siguiente comando en el CLI
resource LED_STRIP 1 none
Y esto es todo!