Índice:

UChip - esboço simples para motores de controle remoto e / ou servos via rádio 2.4 GHz Tx-Rx !: 3 etapas
UChip - esboço simples para motores de controle remoto e / ou servos via rádio 2.4 GHz Tx-Rx !: 3 etapas

Vídeo: UChip - esboço simples para motores de controle remoto e / ou servos via rádio 2.4 GHz Tx-Rx !: 3 etapas

Vídeo: UChip - esboço simples para motores de controle remoto e / ou servos via rádio 2.4 GHz Tx-Rx !: 3 etapas
Vídeo: Single-chip, FHSS single-channel emulation transmitter in one chip! 2024, Julho
Anonim
Image
Image
UChip - esboço simples para motores de controle remoto e / ou servos via rádio 2.4GHz Tx-Rx!
UChip - esboço simples para motores de controle remoto e / ou servos via rádio 2.4GHz Tx-Rx!
UChip - esboço simples para motores de controle remoto e / ou servos via rádio 2.4GHz Tx-Rx!
UChip - esboço simples para motores de controle remoto e / ou servos via rádio 2.4GHz Tx-Rx!

Eu realmente gosto do mundo RC. Usar um brinquedo RC dá a sensação de que você está no controle de algo extraordinário, apesar de ser um pequeno barco, carro ou drone!

No entanto, não é fácil personalizar seus brinquedos e fazer com que eles façam tudo o que você quer que eles façam. Normalmente, você é obrigado a usar as configurações padrão do transmissor ou as combinações especificamente projetadas de interruptores e botões giratórios.

Controlar tudo como você realmente deseja é bastante difícil, principalmente porque o mundo RC requer um conhecimento profundo de programação em nível de hardware para obter o melhor dele.

Eu tentei muitas plataformas e configurações, mas sempre custou um grande esforço para ficar confortável o suficiente com o código antes de fazer alguma personalização real em meu brinquedo RC.

O que estava faltando é um esboço simples que eu pudesse carregar usando o IDE do Arduino e que me permitisse facilmente traduzir os valores vindos do Radio RX (receptor) para o controle Motor / Servo desejado.

Portanto, aqui está o que eu criei depois de brincar um pouco com o uChip e o IDE do Arduino: Um esboço simples para controlar motores e / ou servos remotamente via Rádio Tx-Rx de 2,4 GHz!

Lista de materiais

1 x uChip: placa compatível com Arduino IDE

1 Sistema de rádio xTx-Rx: qualquer sistema de rádio com receptor cPPM é bom (meu combo é um antigo Spectrum DX7 Tx + Orange R614XN cPPM Rx), certifique-se de seguir o procedimento de ligação correto para ligar o Tx e Rx.

1 x bateria: baterias de alta corrente de descarga são necessárias ao lidar com motores e servos.

Motores / Servos: de acordo com suas necessidades

Componentes eletrônicos para acionar os Motores / Servos: resistores simples, MOSFETs e Diodos permitem que você cumpra o propósito de condução.

Etapa 1: Fiação

Fiação
Fiação
Fiação
Fiação
Fiação
Fiação
Fiação
Fiação

Conecte os componentes conforme descrito nos esquemas.

O Rx é conectado diretamente ao uChip e não requer nenhum componente externo. Caso você esteja usando um receptor diferente, verifique se você precisa de um deslocador de nível ou não. Certifique-se de conectar o sinal cPPM ao uChip PIN_9 (que é PORTA19 no caso de você querer adaptar o código a outra placa SAMD21).

A fiação restante é necessária para acionar o motor e / ou o servo. O esquema em anexo representa o circuito básico para proteger o uChip de picos / overshoots que geralmente ocorrem durante a condução de cargas indutivas. O principal componente para preservar a segurança do uChip é o diodo Zener de energia de 5.1 V (D1 no esquema) que você precisa colocar em paralelo ao VEXT (pino 16 do uChip) e GND (pino 8 do uChip). Como alternativa, em vez de usar o diodo Zener, você pode optar pelo circuito opcional representado por D2, C1 e C2, que evita que picos reversos danifiquem os componentes do uChip.

Você pode acionar quantos motores / servos precisar, simplesmente replicando o esquema e alterando os pinos de controle (você pode usar qualquer pino, exceto os pinos de alimentação (PIN_8 e PIN_16) e o pino cPPM (PIN_9)). Lembre-se de que, embora você precise apenas de um circuito de proteção que é representado pelo diodo Zener (ou os componentes para o circuito opcional), os componentes elétricos relacionados ao motor / acionamento do servo devem ser replicados tantas vezes quanto o número de motores / servos que você pretende dirigir.

Como eu queria acionar pelo menos 2 motores e 2 servos, fiz uma pequena placa de circuito impresso que implementava os circuitos descritos e que você pode ver na foto. No entanto, o primeiro protótipo foi feito em uma protoplaca usando fios voadores.

Assim, você não precisa de nenhuma habilidade de design de solda / PCB para implementar este projeto simples:)

Etapa 2: Programação

Programação
Programação

Aqui está a magia! É onde as coisas começam a ficar interessantes.

Caso você tenha construído o circuito descrito no esquema anterior, você pode simplesmente carregar o sketch “DriveMotorAndServo.ino” e tudo deve funcionar.

Dê uma olhada no código e veja como funciona.

No início, existem alguns #define usados para definir:

- o número de canais do Rx (6Ch com o Orange 614XN)

- os pinos onde os motores / servos estão conectados

- Máx e min usados para os servo e motores

- Máximo e mínimo usados para alcance de canais de rádio

Depois, há a seção de declaração de variáveis onde as variáveis motores / servos são declaradas.

No caso de você dirigir mais de um motor e um servo anexado conforme descrito no esquema anterior, você precisa modificar o esboço e adicionar o código que trata dos motores / servos adicionais que você anexou. Você precisa adicionar tantos Servo, servo_value e motor_value quantos servos / motores você estiver usando.

Na seção de declaração de variáveis, também existem algumas variáveis voláteis usadas para a comparação de captura do sinal cPPM. NÃO ALTERE ESTAS VARIÁVEIS!

O que você precisa fazer a seguir é a função loop (). Aqui, você pode decidir como usar o valor dos canais de entrada.

No meu caso, conectei o valor de entrada diretamente ao motor e ao servo, mas você é mais que bem-vindo para alterá-lo de acordo com suas necessidades! No vídeo e nas fotos vinculadas neste tutorial eu conectei 2 motores e 2 servos, mas poderia haver 3, 4, 5, … até o máximo de pinos livres disponíveis (13 no caso do uChip).

Você pode encontrar o valor do canal capturado dentro da matriz ch [índice], cujo “índice” vai de 0 a NUM_CH - 1. Cada canal corresponde a um stick / switch / knob em seu rádio. Cabe a você entender o que é o quê:)

Por fim, implementei algumas funções de depuração para facilitar a compreensão do que está acontecendo. Comente / descomente o #define DEBUG para imprimir no SerialUSB nativo o valor dos canais.

DICA: há mais código abaixo da função loop (). Esta parte do código é necessária para definir os pinos de energia do uChip, lidar com as interrupções geradas pelo recurso de comparação de captura, definir os temporizadores e o propósito de depuração. Caso você se sinta corajoso o suficiente para brincar com os registradores, fique à vontade para modificá-los!

Editar: esboço atualizado, corrigido um bug na função de mapeamento.

Etapa 3: Jogue, dirija, corra, voe

Image
Image

Certifique-se de conectar corretamente o sistema Tx e Rx. Ligue-o conectando a bateria. Verifique se tudo funciona. Você pode expandir as funcionalidades ou alterar a função de cada canal como quiser, porque agora você está no controle total do seu futuro modelo RC.

Agora, construa seu modelo RC personalizado!

P. S.: uma vez que a encadernação pode ser muito chata de fazer, pretendo lançar em breve um esboço que permite encadernar seu sistema Tx-Rx sem ter que fazer isso manualmente. Fique ligado nas atualizações!

Recomendado: