Índice:

Controle de robô de combate barato do Arduino: 10 etapas (com imagens)
Controle de robô de combate barato do Arduino: 10 etapas (com imagens)

Vídeo: Controle de robô de combate barato do Arduino: 10 etapas (com imagens)

Vídeo: Controle de robô de combate barato do Arduino: 10 etapas (com imagens)
Vídeo: Nosso melhor robô de todos os tempos! #ManualMaker Aula 10, Vídeo 2 2024, Novembro
Anonim
Controle de Robô de Combate Arduino Barato
Controle de Robô de Combate Arduino Barato
Controle de Robô de Combate Arduino Barato
Controle de Robô de Combate Arduino Barato
Controle de Robô de Combate Arduino Barato
Controle de Robô de Combate Arduino Barato

O ressurgimento dos Battlebots nos Estados Unidos e da Robot Wars no Reino Unido reacendeu meu amor pela robótica de combate. Então, encontrei um grupo local de criadores de bots e mergulhei de cabeça.

Nós lutamos na balança de formigas do Reino Unido (limite de peso de 150 gramas) e eu rapidamente percebi que a maneira tradicional de construir um robô envolvia equipamento RC: um transmissor RC caro, um receptor volumoso ou caro e ESCs (controladores eletrônicos de velocidade) que são caixas mágicas que pode lidar com muito mais corrente do que o necessário para um bot desse tamanho.

Tendo usado o Arduino no passado, eu queria tentar fazer as coisas de forma diferente e definir para mim mesmo uma meta de um sistema Arduino que pode receber um sinal legal de combate e controlar dois motores de acionamento por cerca de US $ 5 (metade do custo de um ESC barato)

Para ajudar a atingir esse objetivo, remixei este carro RC instrutível, reduzindo o peso / custo do receptor e gerando 4 sinais PWM para rodar um chip h-bridge barato

Este instrutível se concentrará no sistema de controle do Arduino, mas acrescentarei informações adicionais para ajudar novas pessoas a construir seu primeiro bot

Isenção de responsabilidade:

Mesmo em uma construção / combate de robôs de combate em pequena escala pode ser perigoso, empreenda por sua própria conta e risco

Etapa 1: O que você precisa

Materiais:

Para o sistema de controle:

  • 1x Arduino pro mini 5v (US $ 1,70)
  • Módulo 1x nRF24L01 ($ 1,14)
  • 1 módulo regulador de 3,3 V ($ 0,32)
  • 1 módulo de ponte H dupla * ($ 0,90)

Para o resto de um bot wedge básico:

  • 2 micro motorredutores ** (versão barata, versão confiável)
  • 1 bateria de polímero de lítio 2s
  • 1 carregador de equilíbrio
  • 1x saco de carga lipo
  • 1x switch
  • 1x conector de bateria
  • fio misc (usei alguns fios de jumper do Arduino que tinha por aí)
  • parafusos pequenos
  • (opcional) epóxi
  • (opcional) Alumínio (de lata de refrigerante)
  • (opcional) LEDs extras

Para um controlador básico:

  • 1x Arduino pro mini 5v
  • Módulo 1x nRF24L01
  • 1x módulo regulador de 3,3 V
  • 1x Arduino-joystick

Ferramentas:

  • Chave de fenda
  • Ferro de solda
  • Alicate
  • Impressora 3D (opcional, mas torna a vida mais fácil)

* ao olhar para os módulos h-bridge, procure um módulo com todas as 4 entradas de sinal próximas umas das outras, isso tornará mais fácil anexar ao Arduino mais tarde

** confira a etapa final para obter algumas dicas sobre como escolher as velocidades do motor

Etapa 2: imprimir um chassi

Imprimir um chassi
Imprimir um chassi

Antes de começar a usar o sistema de controle, observe o design do bot a ser construído. É sempre melhor projetar um bot a partir da arma para fora. Para um iniciante, sugiro começar com uma cunha básica, eles são projetados para serem robustos e empurrar os oponentes para fora do caminho, o que significa que você tem menos probabilidade de ser destruído em sua primeira luta, além de ser mais fácil sentir como está dirigindo quando você não não precisa se preocupar com uma arma ativa.

Eu projetei um robô de cunha: "Slightly Crude", que foi testado em batalha com armadura e sem armadura. É um bom primeiro bot, fácil de imprimir e pode ser montado com 8 parafusos. Confira no Thingiverse para um design diferente de topo

Se você não possui uma impressora 3D, tente uma biblioteca local, hackerspace ou maker space

Adicionar armadura adicional é fácil de fazer recém-saído da impressora, lixe a cunha e a lata de refrigerante de alumínio com uma lixa, escove qualquer poeira de lixa, aplique epóxi tanto no plástico quanto no alumínio, prenda-se com grampos ou elásticos por 12-24 horas

No momento, não tenho um projeto de roda pública, pois tenho usado pneus de borracha de um kit educacional de robótica em cubos impressos em 3D. Nas próximas semanas, estarei projetando um cubo que usará anéis de vedação para aderência. Assim que as rodas estiverem prontas, irei atualizar esta página e a página Thingiverse

Etapa 3: prepare a ponte H

Prepare a ponte H
Prepare a ponte H

Diferentes drivers de motor h-bridge vêm em configurações diferentes, mas o módulo vinculado na lista inicial vem com 2 blocos de terminais como saída. Esses blocos de terminais são pesados e volumosos, portanto, é melhor removê-los.

A maneira mais fácil de fazer isso é aquecer as duas almofadas ao mesmo tempo com um ferro de solda e cuidadosamente mexer os blocos com um alicate

Antes de prosseguir, decida se deseja trocar os motores em sua configuração. Nesse caso, os cabos jumper do Arduino podem ser soldados na saída do módulo e, em seguida, o cabo oposto pode ser soldado ao motor, tornando-os removíveis conforme necessário.

Etapa 4: Fiação dos Módulos

Fiação dos Módulos
Fiação dos Módulos
Fiação dos Módulos
Fiação dos Módulos
Fiação dos Módulos
Fiação dos Módulos

A fiação dos módulos pode ser feita de 3 maneiras diferentes, por isso a etapa de design é crítica. A escolha da arma afetará a forma do bot e a escolha da fiação.

as 3 opções são:

  1. Fios soltos (leves, mas mais frágeis) (imagem 1)
  2. Perfboard (mais pesado do que 1, mas mais robusto com uma pegada maior) (imagem 2)
  3. Placa de circuito personalizada (mais pesada que 1, mas robusta com uma pequena pegada) com design de placa anexado (imagem 3)

independentemente da escolha feita, as conexões reais são as mesmas.

Faça as seguintes conexões duas vezes (uma para o controlador e uma vez para o receptor)

nRF24L01 (imagem 4 da numeração do pino **):

  • Pino 1 -> GND
  • Pino 2 -> fora do pino do módulo 3.3v
  • Pino 3 -> Arduino pino 9
  • Pino 4 -> Arduino pino 10
  • Pino 5 -> Arduino pino 13
  • Pino 6 -> Arduino pino 11
  • Pino 7 -> Arduino pino 12

Módulo 3.3v:

  • Pin Vin -> Vcc *
  • Pino de saída -> pino 2 nRF (como acima)
  • Pino GND -> GND

Arduino:

  • Pinos 9-13 -> conecte ao nRF como acima
  • Raw -> Vcc *
  • GND -> GND

Faça as seguintes conexões uma vez para diferenciar entre controlador e receptor

Para o controlador:

Controle de video game:

  • + 5v -> Arduino 5v
  • vrx -> Arduino pino A2
  • vry -> Arduino pino A3
  • GND -> GND

Para o receptor:

Módulo h-bridge:

  • Vcc -> Vcc *
  • B-IB -> Arduino pino 2
  • B-IA -> Arduino pino 3
  • A-IB -> Arduino pino 4
  • A-IA -> Arduino pino 5
  • GND -> GND

Isso é feito mais facilmente substituindo os pinos do Vcc e GND por fio, virando a placa de cabeça para baixo e soldando os pinos diretamente no Arduino. Isso simplifica a soldagem e cria uma montagem segura para o driver do motor

* para que um robô de combate seja legal, um ponto de isolamento (interruptor ou link removível) deve ser adicionado entre a bateria e o circuito. Isso significa que o positivo da bateria deve ser conectado a um switch, então o switch conectado ao Vcc

** imagem de https://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo que é um ótimo recurso para o módulo nRF24L01

Etapa 5: Configurando o controlador

Configurando o controlador
Configurando o controlador

Depois que tudo estiver conectado, é hora de algum código.

Começando com o controlador, alguns valores de potenciômetro são necessários para garantir que o joystick exato conectado funcionará com o código de transmissão.

Carregue o código "joystickTestVals2". Este código é usado para ler os valores do potenciômetro e exibi-los em série

Com o código em execução e uma janela serial aberta, comece observando o valor "PARA CIMA", empurre o joystick para a posição totalmente para frente, o valor "PARA CIMA" provavelmente irá pular entre alguns números grandes, escolha o menor dos valores que você vê, subtraia 10 dele (isso garantirá que empurrar o manche até o fim dará potência total) e anote como "Up Max" permite que o joystick pule de volta para o centro. Agora escolha o maior valor que você vê, adicione 20 a ele e anote como "UpRestMax". Repita o processo empurrando o stick para baixo e invertendo a adição / subtração registrando os valores como "UpMin" e "UpRestMin"

Repita todo o processo novamente para a esquerda e a direita, começando empurrando o manche para a direita, gravando "SideMax" e depois "SideRestMax" conforme ele salta para trás e empurrando para a esquerda para gravar "SideMin" e "SideRestMin"

Esses valores são super importantes, especialmente todos os valores que contenham a palavra "Rest". esses valores criam a "zona morta" no centro do stick de forma que o bot não se mova quando o stick estiver descansando no centro, certifique-se de que quando o stick está centrado os valores caem entre "restMin" e "restMax" para ambos os eixos

Etapa 6: Código

Código
Código
Código
Código

O código fornecido faz tudo para um wedge-bot básico com uma estrutura no local para permitir que um valor pwm de arma seja enviado também.

Bibliotecas necessárias:

  • Biblioteca nRF24L01 daqui: GitHub
  • Software PWM a partir daqui: Google Code

Configure seu controlador:

abra o código txMix e altere os valores limite do stick para os valores que você anotou na última etapa. Isso garantirá que o código reaja corretamente ao seu joystick (Imagem 1)

Personalize o tubo:

Para garantir que você não esteja interferindo com ninguém em seu evento, você precisará trocar o tubo do rádio. Na verdade, este é um identificador e o receptor só atuará nos sinais do tubo correto, portanto, certifique-se de alterar o tubo em ambos os códigos para a mesma coisa.

Na imagem, 2 dígitos hexadecimais do tubo foram destacados. Esses são os dois dígitos que precisam ser alterados para personalizar o tubo. Altere "E1" para qualquer outro valor hexadecimal de 2 dígitos e anote-o para que você possa facilmente compará-lo com os tubos oponentes em um evento

Envio:

  • txMix para o controlador
  • receba para o módulo receptor

Análise do código:

txMix:

O código é lido na posição do joystick como um valor "PARA CIMA" e um valor "lateral". esses valores são limitados com base no valor máximo fornecido para garantir que a potência total seja fornecida na posição máxima do manche.

Esses valores são então verificados para garantir que o stick saiu da posição neutra, se não houver zeros são enviados.

Os valores são então misturados individualmente em duas variáveis, uma para a velocidade do motor esquerdo e outra para a velocidade do motor direito. Nessas variáveis, um valor negativo é usado para indicar que o motor está girando para trás, pois simplifica a mistura.

Os valores de velocidade esquerdo e direito são então separados em quatro valores pwm, um para cada: motor à direita para a frente, motor à esquerda para a frente, motor à direita para trás, motor à esquerda para trás.

Os quatro valores pwm são então enviados ao receptor.

receber:

Simplesmente recebe sinais do controlador, verifica se o sinal não contém valores pwm para frente e para trás em um único motor e aplica o pwm.

O receptor também falha na proteção dos motores desligados quando um sinal não é recebido do controlador

Etapa 7: aparafusando tudo alternadamente

Aparafusando tudo Togheter
Aparafusando tudo Togheter
Aparafusando tudo Togheter
Aparafusando tudo Togheter
Aparafusando tudo Togheter
Aparafusando tudo Togheter

Solde os conectores nos motores ou solde os motores diretamente na ponte-h. (Eu prefiro conectores para que eu possa simplesmente trocar os plugues se eu tiver conectado os motores incorretamente)

Solde o fio positivo do conector da bateria ao pino do meio do switch e um dos pinos externos do switch ao Vcc dos módulos conectados.

Solde o cabo negativo do conector da bateria ao GND dos módulos conectados.

(Opcional) adicione LEDs adicionais entre Vcc e GND. Todos os robôs de combate requerem uma luz acesa enquanto o sistema está energizado, dependendo dos componentes que este sistema possui LEDs no Arduino, no módulo 3.3v e na ponte-h, desde que pelo menos um deles seja visível de fora do bot esta regra foi cumprida. LEDs adicionais podem ser usados para garantir que esta regra seja cumprida e para personalizar a aparência

Ligeiramente cru é simples de aparafusar, primeiro aparafuse os suportes do motor no lugar, adicione os componentes eletrônicos e, em seguida, aparafuse a tampa no lugar, uma pequena quantidade de velcro ajudará a segurar o interruptor na tampa

O controlador é seu para projetar e imprimir. Para teste, tenho usado o controlador anexado que foi modificado do controlador BB8 V3 de James Bruton

Etapa 8: Uma palavra sobre as regras de combate de robôs

Uma palavra sobre as regras de combate de robôs
Uma palavra sobre as regras de combate de robôs

Diferentes países, estados e grupos realizam eventos de combate de robôs com regras diferentes.

Eu criei este sistema e escrevi-o para ser o mais geral possível, ao mesmo tempo que obedeço às principais regras que pertencem aos sistemas RC (principalmente o sistema deve ser digital de 2,4 GHz e ter um ponto de isolamento de bateria). Para executar este sistema e / ou projetar seu primeiro bot, é melhor entrar em contato com seu grupo local e obter uma cópia de suas regras.

As regras que o seu grupo local administra são absolutas, não acredite na minha palavra neste ponto, instrutível sobre as regras do seu grupo.

Como este sistema Arduino é novo para a comunidade, você provavelmente será solicitado a testá-lo antes de usá-lo em um evento. Eu testei este sistema repetidamente contra equipamento RC padrão e contra ele mesmo sem quaisquer problemas de interferência, então ele deve passar em qualquer teste, entretanto, os organizadores do seu evento local têm a palavra final, respeite sua decisão. Se eles rejeitarem seu uso, pergunte se há um bot de empréstimo com o qual você possa lutar ou peça um esclarecimento sobre o motivo da rejeição e tente consertar o problema para o próximo evento

Etapa 9: Informações adicionais sobre motores

Informações adicionais sobre motores
Informações adicionais sobre motores

Os micro-motores de engrenagens usados na classe das formigas vêm em uma grande variedade de velocidades e são marcados usando RPM ou relação de engrenagem. Abaixo está uma conversão aproximada.

A maioria dos bots usa motores entre 75: 1 e 30: 1 (com algumas exceções usando 10: 1). Bots com grandes armas giratórias podem se beneficiar de motores 75: 1 mais lentos, pois a velocidade mais lenta permite mais controle. Cunhas ágeis, levantadores e nadadeiras são melhores em 30: 1 nas mãos de um motorista habilidoso. Eu recomendo motores 50: 1 em uma cunha para as primeiras lutas apenas para se acostumar com o sistema e direção

  • 12 V 2000 RPM (ou 6 V 1000 RPM) -> 30: 1
  • 6 V 300 RPM -> 50: 1

Etapa 10: atualizações e melhorias

Já se passaram alguns anos desde que publiquei este 'ible e aprendi muito sobre este sistema, então é hora de atualizá-los aqui. O mais importante é a escolha do componente, os componentes originais funcionavam relativamente bem, mas às vezes falhavam durante o combate. Os 2 grandes perpetradores são o H-Bridge e o módulo nrf24l01, porque eu escolhi as peças absolutamente mais baratas que consegui encontrar. Isso pode ser corrigido por:

  • Atualizando a ponte H de 0,5 A para uma ponte H de 1,5 A, como esta: ponte H de 1,5 A
  • Atualizando o módulo nrf24l01 para um design totalmente SMD: Abra o NRF24l01 inteligente

Junto com as novas atualizações de componentes, desenvolvi alguns novos PCBs que ajudam a compactar o RX e adicionar mais recursos ao TX

Também tenho algumas alterações de código chegando, portanto, fique atento a essas

Recomendado: