Em muitos projetos de aeromodelismo, automodelismo e nautimodelismo, queremos utilizar o rádio controle para fazer muito mais do que simplesmente controlar motor e direção.
Imagine algumas possibilidades:
acender e apagar LEDs;
acionar uma bomba d’água;
ligar uma buzina;
movimentar um mecanismo;
acionar um relé;
ligar um pequeno motor;
controlar algum efeito especial do modelo.
Uma maneira simples de fazer isso é utilizar um Arduino ligado diretamente a um canal disponível do receptor do rádio controle.
O Arduino interpreta o sinal recebido e, a partir dele, pode comandar praticamente qualquer função eletrônica que conseguirmos implementar.
No projeto original utilizei um rádio Turnigy, o canal 5 do receptor e um Arduino para demonstrar justamente esse princípio.
Por que utilizar Arduino com rádio controle?
Um receptor RC normalmente é utilizado para controlar equipamentos próprios do modelismo, como:
servos;
ESCs;
controladores específicos.
Mas suponha que você queira simplesmente acender um conjunto de LEDs utilizando uma chave existente no transmissor.
Uma solução seria utilizar um servo.
O servo se movimentaria e acionaria mecanicamente uma chave.
Funciona.
Eu mesmo descrevi essa possibilidade no projeto original.
Mas existe uma maneira muito mais interessante:
fazer tudo eletronicamente.
A solução com servo é eletromecânica
Imagine:
Chave do transmissor
↓
Receptor
↓
Servo
↓
Movimento mecânico
↓
Chave elétrica
↓
LED
O rádio movimenta o servo.
O braço do servo pressiona uma chave.
A chave liga o LED.
Embora funcione, estamos transformando um comando eletrônico em movimento mecânico apenas para transformá-lo novamente em um comando elétrico.
Com Arduino podemos eliminar a parte mecânica
A ideia passa a ser:
Transmissor
↓
Receptor
↓
Arduino
↓
Saída eletrônica
↓
LED
Agora não existe servo movimentando uma chave.
O Arduino recebe o sinal do receptor, interpreta esse sinal e decide se deve ligar ou desligar sua saída.
Foi exatamente essa a proposta da montagem original.
Como o receptor conversa com o Arduino?
O receptor RC entrega em seus canais um sinal de controle que normalmente seria utilizado por um servo ou ESC.
Quando movimentamos um stick ou acionamos uma chave do transmissor, modificamos esse sinal.
O Arduino pode medir a duração dos pulsos recebidos e tomar decisões de acordo com o valor encontrado.
Assim podemos transformar uma chave física do rádio em uma entrada para nosso programa.
O sinal RC é baseado em pulsos
Em sistemas RC tradicionais, a posição de um canal é representada pela largura de um pulso.
Valores típicos ficam aproximadamente na região de:
1.000 µs → uma extremidade
1.500 µs → posição central
2.000 µs → outra extremidade
Esses números podem variar conforme rádio, receptor, configuração, endpoints e outros ajustes.
Por isso, em um projeto real, é interessante primeiro medir os valores que o seu próprio receptor está produzindo.
Uma chave de duas posições fica muito fácil de interpretar
Imagine que uma chave do rádio produza aproximadamente:
posição 1 → 1.000 µs
e
posição 2 → 2.000 µs.
Podemos programar algo conceitualmente parecido com:
se sinal < 1.500 µs → saída desligada
se sinal > 1.500 µs → saída ligada
Pronto.
Transformamos a chave do rádio em um interruptor eletrônico remoto.
No meu caso utilizei o canal 5
Na montagem original configurei o canal 5 do transmissor.
Esse era o canal associado à chave utilizada para o trem de pouso.
Depois liguei o Arduino ao canal 5 do receptor.
A lógica era muito simples:
aciono a chave no rádio
↓
o canal 5 muda
↓
o receptor envia o novo sinal
↓
o Arduino detecta
↓
a saída muda de estado.
Podemos começar simplesmente com um LED
O LED é excelente para fazer a primeira experiência porque permite enxergar imediatamente o resultado.
Acionamos a chave.
LED acende.
Acionamos novamente.
LED apaga.
Antes de tentar controlar bombas, motores e outros equipamentos, vale fazer o sistema funcionar primeiro com uma carga simples.
O Arduino não deve alimentar qualquer carga diretamente
Esse é um ponto extremamente importante.
Uma saída digital do Arduino pode fornecer apenas uma corrente limitada.
Ela foi projetada para produzir sinais lógicos, e não para alimentar motores de potência.
Portanto, não faça:
Arduino → motor grande
diretamente.
O Arduino deve comandar um dispositivo apropriado para controlar a carga.
Podemos utilizar um transistor
Para cargas DC pequenas, uma possibilidade é utilizar um transistor adequado.
Teríamos:
Arduino
↓
Transistor
↓
Carga
O Arduino fornece apenas o sinal de controle.
A energia utilizada pela carga vem de uma fonte apropriada.
Para cargas maiores podemos utilizar um MOSFET
Um MOSFET apropriado pode ser utilizado para controlar cargas DC maiores com eficiência.
Nesse caso:
Receptor → Arduino → MOSFET → carga
A carga pode ter sua própria alimentação.
Isso permite que um pequeno sinal proveniente do Arduino controle uma corrente muito maior.
Também podemos utilizar um relé
No artigo original mencionei justamente que, no lugar do LED, poderíamos utilizar um relé. Com o relé seria possível controlar equipamentos que exigissem correntes maiores, como motores.
A lógica seria:
Rádio
↓
Receptor
↓
Arduino
↓
Circuito de acionamento do relé
↓
Relé
↓
Carga
É importante lembrar que a bobina de um relé também não deve ser ligada indiscriminadamente diretamente a uma saída do Arduino. Normalmente utilizamos um estágio de acionamento apropriado e, em relés eletromecânicos, proteção contra a tensão induzida pela bobina.
O relé permite separar os circuitos
Essa é uma característica interessante.
Os contatos do relé podem comandar outro circuito.
Assim, o Arduino fica responsável pela decisão:
ligar ou desligar.
E os contatos do relé ficam responsáveis por efetivamente conectar ou interromper a alimentação da carga.
Imagine uma bomba d’água em um barco RC
Essa aplicação combina perfeitamente com nautimodelismo.
Imagine um rebocador ou barco de bombeiros.
Queremos controlar uma pequena bomba remotamente.
Podemos ter:
Chave no transmissor
↓
Canal auxiliar do receptor
↓
Arduino
↓
MOSFET ou relé
↓
Bomba
Agora, durante a navegação, acionamos uma chave no rádio e o barco começa a lançar água.
Podemos controlar iluminação
Outra aplicação muito interessante é controlar LEDs.
Imagine um nautimodelo com:
luzes de navegação;
faróis;
iluminação da cabine;
refletores;
luzes decorativas.
Podemos utilizar diferentes canais ou diferentes posições de um mesmo canal para controlar essas funções.
Um canal pode fazer mais do que apenas ligar e desligar
Essa é uma das grandes vantagens de colocar um microcontrolador entre o receptor e os acessórios.
O Arduino não precisa interpretar apenas:
ligado
ou
desligado.
Ele pode interpretar diferentes faixas do sinal.
Imagine uma chave de três posições.
Podemos programar:
posição 1 → tudo apagado
posição 2 → luzes de navegação
posição 3 → todas as luzes acesas.
Também podemos utilizar potenciômetros do rádio
Se o transmissor possuir um potenciômetro associado a um canal auxiliar, podemos obter diferentes valores ao longo de seu movimento.
Agora temos um comando proporcional.
Isso abre outras possibilidades.
Por exemplo:
controlar intensidade de iluminação;
definir velocidade de um mecanismo;
ajustar determinada posição;
selecionar diferentes modos de funcionamento.
O Arduino pode interpretar o sinal de várias maneiras
Uma das formas mais simples em pequenos projetos é medir a largura do pulso recebido.
Conceitualmente, o programa faz:
aguardar pulso
↓
medir duração
↓
comparar valor
↓
executar ação.
Se o valor estiver acima de determinado limite, liga uma saída.
Se estiver abaixo, desliga.
Primeiro descubra o sinal real do seu rádio
Em vez de assumir que seu rádio fornece exatamente 1.000 e 2.000 µs, faça um teste.
Ligue o receptor ao Arduino.
Leia o sinal.
Envie o valor para o monitor serial.
Acione a chave do transmissor.
Observe os valores.
Imagine encontrar:
posição A → 1.090 µs
posição B → 1.915 µs.
Agora podemos escolher um limite intermediário, por exemplo:
1.500 µs.
Isso torna o programa muito mais confiável para aquela configuração.
O transmissor precisa estar configurado
No projeto original, expliquei justamente que é necessário ajustar um canal do transmissor para realizar a função de liga e desliga. No meu caso utilizei o canal 5.
Dependendo do rádio, talvez seja necessário entrar no menu e associar uma determinada chave ao canal auxiliar.
Depois disso, observe no receptor qual saída corresponde àquele canal.
A ligação possui três referências importantes
Em um canal convencional do receptor normalmente encontramos:
sinal;
positivo;
GND.
Para o Arduino interpretar corretamente o sinal, precisamos prestar muita atenção principalmente ao:
sinal
e ao
GND comum.
O GND comum é fundamental
Se Arduino e receptor estiverem trabalhando no mesmo sistema, o sinal precisa possuir uma referência elétrica comum.
Podemos pensar:
GND do receptor ↔ GND do Arduino
e:
sinal do canal → entrada do Arduino.
Sem uma referência comum adequada, a leitura do sinal pode ficar incorreta ou simplesmente não funcionar.
Cuidado com a alimentação
Não ligue tensões ao Arduino sem verificar os limites da placa utilizada.
Também não assuma que qualquer terminal de alimentação do receptor pode ser conectado a qualquer ponto do Arduino.
Antes da montagem, identifique:
tensão do receptor;
tensão fornecida pelo BEC;
modelo do Arduino;
forma escolhida para alimentar a placa.
A alimentação precisa ser planejada.
O receptor normalmente recebe alimentação do BEC
Em muitos modelos elétricos, o próprio ESC possui um BEC — Battery Eliminator Circuit.
Podemos ter:
Bateria
↓
ESC/BEC
↓
Receptor
↓
Servos
O BEC fornece uma tensão adequada para o receptor e demais dispositivos compatíveis.
Quando acrescentamos Arduino ao sistema, precisamos verificar se a alimentação disponível é adequada e se o BEC possui capacidade suficiente para todas as cargas conectadas.
Não alimente motores através do receptor
Se você pretende controlar um motor adicional, não tente retirar toda a corrente necessária do conector do canal do receptor.
O canal deve fornecer o sinal de comando.
A potência do motor deve vir de uma alimentação dimensionada para ele.
Assim:
Receptor → informação
e:
Bateria/fonte → potência.
Essa distinção é fundamental.
Arduino pode controlar vários acessórios
Depois que conseguimos interpretar um canal do receptor, podemos expandir bastante o projeto.
O Arduino possui várias entradas e saídas.
Podemos utilizar uma entrada para receber o comando RC e diferentes saídas para controlar:
LEDs;
relés;
MOSFETs;
buzzers;
módulos;
outros circuitos.
Podemos criar sequências de iluminação
Imagine que uma única chave do rádio acione uma sequência.
Você muda a chave para ON.
O Arduino executa:
farol acende
↓
luzes laterais acendem
↓
luz da cabine acende
↓
LEDs começam a piscar.
Não precisamos limitar o comando a simplesmente copiar o estado da chave.
Podemos programar um comportamento.
Podemos criar efeitos de pisca
Um exemplo seria simular luzes de emergência.
O transmissor apenas envia:
ATIVAR
Mas o Arduino executa continuamente:
LED esquerdo acende
↓
apaga
↓
LED direito acende
↓
apaga
↓
repete.
É justamente aí que utilizar um microcontrolador começa a ficar muito mais interessante do que utilizar apenas uma chave eletrônica.
Podemos controlar o radar de um barco
Imagine um pequeno radar instalado na cabine de um nautimodelo.
Ao acionar uma chave do rádio:
Arduino liga o mecanismo do radar.
Ao desligar:
Arduino interrompe.
Também poderíamos programar velocidades ou comportamentos diferentes.
Podemos controlar um gerador de fumaça
Outro efeito comum em nautimodelismo é a simulação de fumaça na chaminé.
Novamente:
chave no rádio → receptor → Arduino → estágio de potência → dispositivo.
O Arduino não fornece necessariamente a energia necessária para o gerador.
Ele apenas controla o estágio responsável por alimentar o dispositivo.
Podemos controlar som
Um canal auxiliar pode também ser utilizado para acionar:
buzina;
sirene;
som de motor;
efeitos sonoros.
Dependendo do módulo utilizado, o Arduino pode até selecionar diferentes sons.
Uma chave de três posições poderia representar:
posição 1 → silêncio
posição 2 → buzina
posição 3 → sirene.
Podemos combinar mais de um canal
Não existe obrigação de utilizar apenas um canal.
Imagine:
canal 5 → iluminação
canal 6 → bomba
canal 7 → buzina
O Arduino pode ler diferentes entradas e executar diferentes ações.
A limitação passa a depender dos canais disponíveis no sistema de rádio, das entradas do microcontrolador e da maneira como programamos o projeto.
Também podemos criar combinações de comandos
Aqui aparece uma possibilidade muito interessante.
Suponha que todos os canais do rádio estejam ocupados.
O Arduino poderia reconhecer uma combinação específica de comandos.
Por exemplo, determinada sequência poderia ativar uma função especial.
Isso precisa ser feito com cuidado para não interferir na pilotagem, mas demonstra o poder de utilizar software no modelo.
Podemos acrescentar temporização
Imagine uma bomba que não deve permanecer ligada indefinidamente.
O Arduino pode receber o comando:
LIGAR
e executar:
bomba ligada durante 5 segundos
↓
bomba desligada automaticamente.
Mesmo que o piloto esqueça a chave na posição ligada, o programa pode interromper a função.
Podemos implementar proteções
O programa também pode impedir determinadas combinações.
Imagine que um mecanismo só possa funcionar quando outro estiver desligado.
O Arduino verifica a condição antes de permitir o acionamento.
Agora deixamos de ter simplesmente um interruptor remoto.
Temos uma pequena lógica de automação dentro do modelo.
Podemos controlar funções diferentes conforme a posição do acelerador
Outra possibilidade seria ler também o canal do acelerador.
Imagine que determinado acessório só possa ser acionado quando:
motor principal estiver parado.
O Arduino pode verificar:
acelerador próximo do mínimo?
Se sim:
permite o acionamento.
Se não:
ignora o comando.
Isso permite criar intertravamentos simples.
O sistema também pode ser utilizado em aeromodelismo
Embora muitas aplicações sejam particularmente divertidas em barcos, o princípio funciona também em aeromodelos.
Podemos controlar:
luzes;
faróis de pouso;
strobes;
mecanismos;
câmeras;
outros acessórios.
Sempre considerando peso, alimentação e segurança.
No automodelismo também existem possibilidades
Em um carro RC poderíamos controlar:
faróis;
luzes de freio programadas;
setas;
buzina;
sirene;
guincho;
outros mecanismos.
Um microcontrolador permite criar comportamentos muito mais sofisticados do que simplesmente ligar cada LED diretamente à alimentação.
Arduino Uno, Nano e outras placas
O princípio não depende exclusivamente de uma única placa.
Um Arduino Uno é excelente para experimentar na bancada porque é fácil de trabalhar.
Depois, quando o projeto estiver funcionando, podemos utilizar uma placa menor, desde que seja compatível com aquilo que desenvolvemos.
Em um modelo RC, tamanho e peso podem ser importantes.
Comece na bancada
Antes de colocar tudo dentro do barco, carro ou avião, monte o circuito sobre a bancada.
Faça:
rádio → receptor → Arduino → LED.
Teste.
Acione a chave dezenas de vezes.
Observe se funciona sempre.
Depois pense em acrescentar o estágio de potência e a carga definitiva.
Uma boa sequência de montagem
Podemos desenvolver o projeto gradualmente:
- Instale o ambiente de programação do Arduino no computador.
- Conecte o Arduino pela USB.
- Grave um programa simples de teste.
- Configure um canal auxiliar no transmissor.
- Identifique o mesmo canal no receptor.
- Ligue o sinal do receptor a uma entrada do Arduino.
- Estabeleça a referência de GND adequada.
- Leia os valores produzidos pelo canal.
- Acione a chave e observe a mudança.
- Defina um valor de decisão no programa.
- Utilize uma saída para controlar um LED.
- Teste repetidamente.
- Depois substitua o LED pelo estágio apropriado à carga que deseja controlar.
- Faça a instalação definitiva no modelo.
No projeto original, depois de compilar e gravar o programa na placa, o Arduino podia ser retirado da USB e utilizado diretamente no circuito.
Um exemplo de lógica
Imagine que o Arduino esteja recebendo o canal 5.
Podemos ter:
pulso < 1.500 µs
↓
LED desligado
e:
pulso > 1.500 µs
↓
LED ligado.
A ideia é extremamente simples.
Mas a partir dela podemos construir sistemas muito mais elaborados.
E se o sinal do rádio for perdido?
Esse é um ponto interessante quando começamos a criar sistemas mais sofisticados.
O programa pode prever uma condição de segurança.
Se o Arduino deixar de receber pulsos válidos durante determinado período, podemos definir:
todas as funções auxiliares desligadas.
Assim, uma perda de sinal não deixa necessariamente um motor auxiliar ou outro dispositivo permanentemente acionado.
Pense sempre no estado seguro
Pergunte:
Se o Arduino reiniciar, o que deve acontecer?
Se o receptor perder sinal, o que deve acontecer?
Se o fio de sinal se soltar, o que deve acontecer?
Para muitas cargas, a resposta desejável será:
desligar.
Podemos então escrever o programa pensando nesse comportamento.
Evite funções críticas para o voo no primeiro projeto
Se você está aprendendo Arduino e rádio controle, comece com acessórios.
LEDs são perfeitos.
Não utilize sua primeira experiência para controlar uma função essencial à segurança do aeromodelo.
Primeiro compreenda bem:
sinal;
alimentação;
programação;
falhas;
reinicialização.
Depois avance gradualmente.
O Arduino transforma o receptor em uma fonte de comandos para seus projetos
Essa é a ideia mais importante.
Normalmente pensamos no receptor como um equipamento que serve apenas para conectar:
servos e ESCs.
Mas seus canais contêm informações produzidas pelos comandos do piloto.
Se conseguimos interpretar essas informações eletronicamente, podemos utilizá-las em nossos próprios circuitos.
Foi justamente essa ideia que explorei na montagem original: utilizar o sinal que sai do receptor, fazer o Arduino interpretar essa informação e então acionar uma saída.
Um simples LED é apenas o começo
Começamos com:
chave → LED.
Depois percebemos que poderia ser:
chave → relé.
Ou:
chave → MOSFET → motor.
Ou:
chave → Arduino → sequência de LEDs.
Ou:
chave → Arduino → bomba por 5 segundos.
Ou:
potenciômetro → Arduino → controle proporcional.
A partir daí, rádio controle e microcontroladores começam a trabalhar juntos.
Veja a montagem no vídeo
No vídeo da página mostro a montagem e os detalhes necessários para utilizar o rádio controle com o Arduino.
O exemplo utiliza o canal 5 do receptor, associado à chave do trem de pouso no transmissor, para enviar o comando ao Arduino. A placa interpreta o sinal e controla o LED.
O LED é apenas uma demonstração.
Como expliquei no conteúdo original, a saída pode ser utilizada para controlar um relé e, a partir dele, cargas de maior corrente.
Rádio controle e Arduino formam uma combinação muito poderosa
O mais interessante nesse projeto não é simplesmente conseguir acender um LED à distância.
Um módulo pronto poderia fazer isso.
O interessante é perceber que conseguimos criar nossas próprias funções para o rádio controle.
Temos:
entrada física no transmissor
↓
comunicação por rádio
↓
receptor
↓
Arduino
↓
programa criado por nós
↓
ação no mundo real.
É uma excelente combinação entre programação, eletrônica e modelismo.
Quer aprender eletrônica aplicada ao rádio controle?
Quando começamos a modificar nossos próprios modelos, aparecem perguntas que vão muito além de simplesmente pilotar:
Como funciona o sinal do receptor?
Como alimentar corretamente um circuito?
Como acionar um LED?
Como controlar um relé?
Como ligar um motor sem sobrecarregar a saída?
Como utilizar transistores e outros componentes para controlar cargas?
Assim, você deixa de utilizar o rádio apenas para controlar os equipamentos prontos do modelo e começa a entender como integrar eletrônica aos canais do receptor para criar suas próprias funções e acessórios de controle remoto.