Índice:

Cronógrafo Nerf e cadência do tambor: 7 etapas
Cronógrafo Nerf e cadência do tambor: 7 etapas

Vídeo: Cronógrafo Nerf e cadência do tambor: 7 etapas

Vídeo: Cronógrafo Nerf e cadência do tambor: 7 etapas
Vídeo: [NERF MOD] Elite Infinus 2024, Julho
Anonim
Image
Image
Cronógrafo Nerf e Barril de cadência de tiro
Cronógrafo Nerf e Barril de cadência de tiro

Introdução

Como um consertador, é sempre muito gratificante ver os resultados numéricos de seus consertos. Muitos de nós já modificamos armas Nerf antes e quem não ama jogar pedaços de espuma pela casa a mais de 100fps?

Depois de modificar muitas armas Nerf ao longo da minha vida, desde quando eu tinha cerca de 10 anos com meu pai até agora, quando eu e meus colegas de quarto continuamos jogando espuma um no outro, eu sempre quis saber exatamente quão rápido os dardos estão voando e quantos dardos por segundo meus colegas de quarto disparam o Rapid-Strike. Existem cronógrafos comerciais disponíveis para Nerf e Airsoft, mas os de alta precisão são caros e é divertido construir um por conta própria. Se você quiser comprar um, Nerf lançou um barril quase idêntico ao apresentado neste projeto (com algum desenho industrial melhor) e pode ser encontrado aqui:

Nerf Modulus Ghost-Ops Chrono Barrel

A versão Nerf também é alimentada por bateria e exibe um contador de dardos disparados. O Instructable aqui também inclui uma tela e um botão de reset, no entanto, depende do comprimento do dardo para cálculo de velocidade e não parece usar interrupções. O foco principal deste projeto será a comunicação serial (já que um exemplo simples como este não foi o mais fácil de encontrar online), e o uso de interrupções para sincronismo preciso. Isso provavelmente pode ser facilmente convertido em um cronógrafo de airsoft pelos mesmos motivos, com uma caixa mais apertada e um sistema de montagem melhor para armas de airsoft. Sem usar interrupções, o código pode ser mais lento e menos eficiente, também é muito mais difícil cronometrar com precisão em relação aos microssegundos, pois os milissegundos não produzirão valores precisos para a velocidade do dardo.

Não vou me concentrar muito no design do gabinete, embora os arquivos STL estejam disponíveis no GitHub, porque qualquer pessoa pode simplesmente comprar a versão Nerf, que é definitivamente melhor para o jogo real, mas uma versão futura pode atenuar os resultados.

Princípios básicos (resultados de aprendizagem):

  • Tem a forma de um Barril Nerf padrão
  • Uso de fototransistores como portões de temporização para o dardo.
  • Mostra o uso de interrupções Adruino para cronometragem
  • Uso de processamento com Arduino para comunicação serial

Escopo do Projeto:

Pretendo abordar principalmente os aspectos específicos deste projeto com algumas breves visões gerais e recomendo a leitura das referências para Arduino e Processsing para obter informações mais específicas. Isso não vai te ensinar como soldar, mas mais como integrar o Arduino e o Processing e usar interrupções. Muito desse aprendizado será através da leitura do código comentado real, portanto, certifique-se de ler todo o código antes de carregá-lo cegamente e tentar fazê-lo funcionar.

Benefícios em projetos semelhantes:

  • Uso de interrupções para medição precisa de alta velocidade
  • Seção de depuração extensa para fototransistores
  • Cálculo da Taxa de Fogo (ROF) gerando Rodadas por Segundo (RPS)
  • Interface de computador em tela cheia - não é útil durante a batalha, mas é ótima se você quiser mostrar aos outros os resultados na transmissão ou no Youtube com um gravador de tela.
  • Potencial para ser adaptado para Airsoft ou Paintball pela modificação apenas do gabinete
  • Não há necessidade de PCBs personalizados (seria bom em uma atualização futura, mas qualquer um pode fazer isso por um custo relativamente baixo
  • Custo total de menos de US $ 10 quando as peças são separadas e se uma impressora 3D estiver disponível - a par com o custo comercial, com adição de ROF

Etapa 1: peças e ferramentas necessárias

Peças e ferramentas necessárias
Peças e ferramentas necessárias

Se você tiver uma impressora 3D, este será um ótimo projeto para você, pois irei fornecer os arquivos para o gabinete. Sinta-se à vontade para atualizar o gabinete. Eu não tinha nenhum LCD disponível, mas uma segunda versão terá um LCD e utilizará um WEMOS D1 ou placa compatível com WiFi / BT e uma bateria. Isso permitirá o registro de dados no celular e feedback em tempo real - por exemplo, quantos dardos faltam na arma. Recomenda-se alguma experiência de soldagem, se você não se sentir confortável eu recomendo seguir um Instructable para soldar e provavelmente comprar componentes eletrônicos extras apenas no caso.

Ferramentas necessárias:

  1. Ferro de solda
  2. Ventilador de ar quente / pistola de calor / isqueiro (se estiver usando termorretrátil)
  3. Decapantes de arame
  4. Cabo USB Mini-B (ou qualquer cabo necessário para o seu microcontrolador)
  5. Pistola de cola quente ou similar (usei uma caneta de impressão 3D para prender todos os componentes ao invólucro impresso em 3D)

Materiais requeridos:

  1. 22AWG Fio de núcleo sólido ex: Conjunto de fio de núcleo sólido 22AWG
  2. Arduino Nano (ou similar, usei um clone) ex: 3 x Arduino Nano (Clone)
  3. Kit de resistor (2 x 220 ohm, 2 x 220k ohm) Você pode conseguir usar resistores suspensos de valor inferior, como 47k, mas descobri que precisava desse valor para funcionar. O guia de solução de problemas descreve como determinar se o resistor suspenso é o valor correto para seu fototransistor específico e conjunto de LED. Por isso, recomendo obter um conjunto: ex: Conjunto de resistores
  4. 2 x LED IR ex: LED IR e conjunto de fototransistor
  5. 2 x fototransistor
  6. 1 x invólucro impresso em 3D - em um filamento opaco infravermelho (Hatchbox Silver Worked e foi a única cor que testei)
  7. Arquivos de projeto completos estão disponíveis aqui no GitHub, bem como no arquivo Zip anexado. Os STLs também estão disponíveis no Thingiverse aqui.

Etapa 2: teste de placa de ensaio

Teste de placa de ensaio
Teste de placa de ensaio
Teste de placa de ensaio
Teste de placa de ensaio

Uma vez que a parte eletrônica chega, a solda leva aos fototransistores e IR Leds ~ 20-30cm para depuração, eu recomendo reduzi-los a quente. Eu não tinha o termorretrátil de tamanho correto e tive que utilizar fita isolante para este protótipo. Isso permitirá que você os use para testes no gabinete. Se você imprimiu o gabinete e tem LEDs e transistores fotográficos nas posições corretas, você pode começar o teste.

Certifique-se de ter o Arduino e o Processing instalados.

O arquivo zip no início contém todo o código, bem como os arquivos STL para imprimir o invólucro.

Use o Arduino para depurar primeiro e só use o processamento para o teste final (você pode ver tudo no monitor serial do Arduino).

Você pode tentar simplesmente disparar um dardo Nerf através do cronógrafo com Chronogrpah_Updated.ino instalado no Arduino. Se funcionar, está tudo pronto. Se isso não funcionar, provavelmente você terá que ajustar os valores do resistor. Isso é discutido na próxima etapa.

Um pouco sobre como o código funciona:

  1. Interrupção para o código sempre que um dardo passa por um portão e determina o tempo em microssegundos
  2. A velocidade é calculada com isso e o tempo é armazenado
  3. O tempo entre os disparos é calculado e convertido em rodadas por segundo
  4. O tempo entre os portões é calculado e convertido em pés por segundo com base na distância do portão.

    O uso de duas portas permite melhores resultados com temporização idêntica (quanto do sensor deve ser coberto) e reduz a histerese

  5. A velocidade e a taxa de disparo são enviadas via serial separada por uma vírgula para o monitor serial no Arduino ou para o esboço de processamento, permitindo uma boa IU (foco no processamento quando todo o resto funciona!).

Etapa 3: teste e depuração

Se você não teve sucesso com o teste inicial, precisamos descobrir o que deu errado.

Abra o exemplo do Arduino AnalogReadSerial encontrado em Arquivo-> Exemplos-> 0.1 Basics -> AnalogReadSerial

Queremos garantir que os fototransistores estejam funcionando como esperamos. Queremos que leiam ALTO quando o dardo não os está bloqueando e BAIXO quando o dardo não está. Isso ocorre porque o código está usando interrupções para registrar o tempo em que o dardo está passando pelo sensor, e o tipo de interrupção que está sendo usada é QUEDA, o que significa que ela disparará quando passar de ALTO para BAIXO. Para garantir que o pino esteja ALTO, podemos usar os pinos analógicos para determinar o valor desses pinos.

Carregue o Arduino Example AnalogReadSerial e pule do pino digital D2 ou D3 para A0.

D2 deve ser o primeiro sensor e D3 deve ser o segundo sensor. Escolha 1 para ler e comece por aí. Siga o guia abaixo para determinar a solução correta com base nas leituras:

O valor é 0 ou muito baixo:

O valor deve ser em torno de 1000 inicialmente, se a leitura for um valor muito baixo ou zero, certifique-se de que seus LEDs estão conectados corretamente e não queimados, bem como alinhados. Queimei meus LEDs no teste ao usar um resistor de 100 ohms em vez de 220 ohms. É melhor consultar a folha de dados dos LEDs para determinar o valor correto do resistor, mas a maioria dos LEDs provavelmente funcionará com o resistor de 220 ohms.

LEDs funcionam, e o valor ainda é 0 ou muito baixo:

O problema é provavelmente o resistor pull down ter uma resistência muito baixa. Se você estiver tendo problemas com o resistor de 220k, talvez possa aumentá-lo mais do que isso, mas pode haver ruído. Você deve garantir que o foto transistor não está queimado.

O valor é uma faixa intermediária:

Isso causará uma grande quantidade de problemas, principalmente gatilhos falsos, ou nunca causando uma alta. Precisamos garantir que um HIGH seja recebido; para fazer isso, precisamos de um valor de ~ 600, mas vamos apontar para 900+ para ser seguro. Estar muito perto desse limite pode causar disparos falsos, portanto, queremos evitar quaisquer falsos positivos. Para ajustar este valor, queremos aumentar o resistor suspenso (220K). Já fiz isso algumas vezes no meu projeto e provavelmente você não terá que fazer isso, pois este é um valor muito grande para um resistor pull-down.

O valor é muito barulhento (pulando muito sem estímulos externos):

Certifique-se de que a fiação esteja correta com o resistor pull-down. Se estiver correto, pode ser necessário aumentar o valor do resistor.

O valor está preso em 1000+, mesmo ao bloquear o sensor:

Certifique-se de que o resistor pull-down esteja conectado corretamente; isso provavelmente ocorrerá se não houver pull-down. Se isso ainda for um problema, tente reduzir o valor do resistor pull-down.

O valor é alto e vai para zero ao bloquear a luz:

Isso deve ser suficiente para o sensor funcionar, no entanto, podemos não ser uma resposta rápida o suficiente quando o dardo cruza o caminho. Há alguma capacitância no circuito e com o resistor de 220K pode levar algum tempo para que a tensão caia abaixo do limite necessário. Se for esse o caso, reduza esse resistor para 100K e veja como os testes funcionam.

ASSEGURE-SE DE QUE QUALQUER ALTERAÇÃO DE RESISTOR SEJA CONSISTENTE ENTRE AMBOS OS SENSORES

Garantir circuitos idênticos para ambos os sensores mantém a mesma latência entre os resistores, o que permitirá a melhor precisão nas medições.

Se você tiver qualquer problema adicional, deixe um comentário abaixo e farei o possível para ajudá-lo.

Etapa 4: Montagem de Hardware

Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware

Solde os componentes no pequeno PCB como visto aqui:

Os fios dos LEDs e dos fototransistores devem ter um comprimento aproximado de _.

Solde o Arduino na placa e conecte os resistores do solo aos pinos acessíveis. Além disso, certifique-se de que os 4 fios positivos podem ser facilmente conectados juntos. Se você estiver tendo problemas com isso, pode descascar um pedaço do fio e soldá-lo em todos os cabos na extremidade.

Liguei os sensores ao lado oposto do gabinete, no entanto, fique à vontade para fazer a fiação, desde que mantenha os lados consistentes. Cortei os fios no comprimento e os soldei em cada um dos diodos por último. Eu atualizei um pouco o roteamento dos fios para fornecer mais espaço e menos preocupação por ter alguns fios sob o PCB e outros sobre ele para facilitar o uso. Os STLs estão no arquivo zip do projeto completo no início do projeto.

Etapa 5: Montagem final

Assembléia final
Assembléia final
Assembléia final
Assembléia final
Assembléia final
Assembléia final

Se os orifícios do seu PCB não coincidirem com os orifícios no corpo do cronógrafo principal, você provavelmente pode prender os componentes eletrônicos na caixa com um pouco de fita ou cola quente, descobri que não precisava ser presa após o fio e o USB estavam em vigor, no entanto, seus resultados podem variar. Ele é projetado para permitir a prensagem de filamento de 1,75 mm nos orifícios dos parafusos para fixação a quente; no entanto, o PCB também pode ser aparafusado ou colado. A parte mais importante aqui é garantir que a porta USB esteja acessível.

Cubra os componentes eletrônicos com a tampa dos componentes eletrônicos. Os arquivos atualizados devem se encaixar melhor do que os meus e, com sorte, serão pressionados no lugar, no entanto, usei uma caneta de impressão 3D para soldar as tampas no lugar. Agora você está pronto para atirar dardos!

Uma atualização futura pode usar roteamento interno para os fios, mas as tampas, neste caso, cedem ligeiramente à estética Nerf.

Etapa 6: cronógrafo em ação

Image
Image
Cronógrafo em ação
Cronógrafo em ação

Abrir o arquivo de processamento: Chronograph_Intitial_Release permitirá uma interface de usuário muito boa para o cronógrafo exibindo FPS e RPS (rodadas por segundo). Se você estiver tendo problemas para conectar, certifique-se de ter fechado o monitor serial do Arduino, você também pode ter que alterar a porta serial no código, mas isso está comentado e deve ser simples. Para redefinir os valores máximos, basta pressionar a barra de espaço no seu computador.

Um pouco sobre como o código funciona (a foto da IU pode ser vista acima):

  1. Recebe entrada do Arduino
  2. Compara isso com a entrada anterior para encontrar o valor máximo
  3. Exibe os valores atuais e máximos em tela cheia para um feedback visual fácil
  4. Redefine o valor máximo quando o espaço é pressionado

Etapa 7: Planos Futuros

Uma atualização futura para isso incluirá as seguintes melhorias. Se você quiser recursos adicionais, entre em contato e tentarei implementá-los.

  1. Incluir tela LCD
  2. Inclui baterias
  3. Pontos de anexo compatíveis com Nerf
  4. Gabinete atualizado
  5. Mira de ferro

Recomendado: