Firmwares e Protocolos dos ESCs

Todo motor elétrico sem escovas (brushless) precisa ser controlado por um ESC. ESC significa “Electronic Speed Controller”, ou “Controlador eletrônico de velocidade” em português.

Por ser eletrônico, todo ESC possui um chip “microcontrolador”.

Todo chip Microcontrolador precisa ser programado para funcionar, e este programa nada mais é do que um software criado especificamente para este chip desempenhar o papel ao qual foi destinado.

Firmwares

Ao software que roda no microcontrolador nós damos o nome de “Firmware”. Portanto todo microcontrolador precisa de um Firmware para funcionar. E o microcontrolador do ESC não é diferente.

Existem diversos tipos de ESC no mercado, cada um com aplicações específicas, e cada um rodando um Firmware específico.

ESCs para multi-rotor (drones) possuem quase sempre um dos três firmwares a seguir:

  • SimonK
  • BLHeli
  • BLHeli_S

SimonK

O SimonK é o tipo mais antigo de Firmware para ESCs de multirotor. Ele ainda é amplamente utilizado em drones de 300mm ou maiores, para drones de filmagem e fotografia.

O Firmware SimonK suporta apenas um protocolo de comunicação, que é o PWM. Vou detalhar o funcionamento dos protocolos mais adiante.

BLHeli

BLHeli foi até pouco tempo atrás o Firmware mais comum para ESCs de mini-drones de corrida e freestyle. Ele possui algumas vantagens em relação ao SimonK.

A primeira, e mais óbvia, é que ele funciona com protocolos PWM, OneShot 125, e em alguns ESCs mais modernos, funciona também com OneShot 42 e MultiShot. Todos estes protocolos serão detalhados mais adiante.

O BLHeli também permite o uso de um recurso chamado “Damping Light”, que literalmente “freia” o motor quando recebe um comando para desacelerar. Normalmente, o motor só desacelera por causa do atrito interno dos rolamentos e por causa do arrasto aerodinâmico da hélice. Com o Damping Light, o motor “liga ao contrário” para forçar a desaceleração quando necessário, e isso agiliza a resposta física ao comando da controladora, o que se traduz em mais estabilidade e respostas mais rápidas.

BLHeli_S

É a evolução do BLHeli, foi portado para funcionar nos microcontroladores BB1 e BB2. Neste firmware, todos os protocolos são suportados (inclusive DShot), e o Damping Light vem ativo por padrão (e não pode ser desativado).

Protocolos

Protocolo é o conjunto de instruções que um dispositivo usa para se comunicar com outro dispositivo. No caso dos drones, é a forma como a controladora envia instruções para o ESC.

Para que a controladora consiga controlar a velocidade do motor, ela precisa informar ao ESC a velocidade desejada. E para que isso seja possível, a controladora precisa conversar com o ESC usando um protocolo que ele seja capaz de entender. Os protocolos mais comuns são os seguintes:

PWM

PWM significa “Pulse Width Modulation”, ou “Modulação por largura de pulso”. É um protocolo analógico de comunicação que utiliza o “tempo de pulso” para determinar a velocidade com que o motor deve girar.

No PWM, a controladora envia pulsos elétricos para o ESC, e a duração destes pulsos determina o quanto o ESC deve acelerar o motor. Esta duração é medida em microssegundos.

Praticamente todos os ESCs suportam PWM, que é a forma com que os receptores de rádio se comunicam com ESCs e com Servos desde muito antes dos drones. Quando o pulso tem apenas 1000 microssegundos de duração, o ESC entende que o motor não deve girar (comando mínimo), e quando o pulso tem 2000 microsegundos de duração, o ESC entende que o motor deve girar na velocidade máxima (comando máximo). Qualquer pulso com duração entre 1000 e 2000 é considerado proporcional e o ESC vai ajustar a velocidade do motor de acordo com esta proposção (1500 será 50%, 1750 será 75%, e assim por diante).

Este protocolo antigo tem suas limitações. A primeira, e mais óbvia, é que a taxa de atualização é baixa, o que torna este protocolo muito lento para drones que exigem respostas mais rápidas (como os drones de corrida e freestyle). Para uso em drones maiores, que levam câmeras, o PWM é suficientemente rápido. Mas ainda assim, é cada vez menos utilizado em detrimento de outros protocolos mais rápidos.

OneShot 125 e OneShot 42

O OneShot 125 e OneShot 42 tem funcionamento muito semelhante ao PWM. São protocolos analógicos que foram introduzidos pelo Firmware BLHeli.

A diferença (comparando com o PWM) é que a taxa de atualização é muito mais rápida, e a forma como o pulso é modulado também agiliza a comunicação.

No OneShot 125, um pacote tem entre 125 e 250 microssegundos de duração, enquanto que o OneShot 42 o pacote tem entre 42 e 84 microssegundos de duração.

Portanto o OneShot 125 4x mais rápido que o PWM, e o OneShot 42 é quase 10x mais rápido que o PWM.

Nem todos os ESCs que tem BLHeli suportam o OneShot 42. Alguns não tem velocidade de processamento suficiente, e funcionam apenas com o OneShot 125.

MultiShot

O MultiShot também é um protocolo analógico de funcionamento similar ao PWM, introduzido no Firmware BLHeli, com a diferença de que a taxa de atualização é incrivelmente mais rápida.

Cada pacote tem duração entre 5 e 25 microssegundos. O que é 20x mais rápido que o PWM.

Nem todo ESC que roda BLHeli suporta Multishot. O microcontrolador do ESC precisa ser extremamente rápido para conseguir atingir esta velocidade de comunicação. Além disso, este protocolo está muito mais sujeito a interferência, já que é um protocolo analógico e extremamente rápido. O uso de fios de alta qualidade, ou de blindagem eletromagnética nos fios de sinal do ESCs ajudam a eliminar problemas de sincronia.

DShot

DShot é o primeiro protocolo de comunicação digital para ESCs. Foi introduzido pelo firmware BLHeli_S e pode funcionar em diversas velocidades diferentes.

A principal vantagem do DShot sobre os outros protocolos é justamente o fato de ele realizar a comunicação de forma digital. Isso elimina erros de comunicação, reduz drasticamente os problemas de interferência e aumenta a precisão do sinal. Além disso, a resolução da informação é maior, e ele possui bit de correção de erros (CRC) em cada pacote.

Os números depois do nome indicam a velocidade da comunicação (em kilobits por segundo). Portanto:

DShot 150 = 150.000 bits por segundo
DShot 300 = 300.000 bits por segundo
DShot 600 = 600.000 bits por segundo
DShot 900 = 900.000 bits por segundo
DShot 1200 = 1.200.000 bits por segundo

A maioria dos ESCs com microcontrolador BB1 ou BB2 pode funcionar com DShot de até 600kbps. Para velocidades maiores, é necessário um microcontrolador mais rápido, como o SMT32F0.

Velocidade

Veja também