Tanques a laser Leap Motion!
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
O objetivo deste projeto era criar um conjunto de tanques robóticos para a batalha onde os operadores tivessem uma sensação mais realista de controlar os veículos usando o controlador Leap Motion. Eu queria criar os tanques do robô de maneira econômica, para que as pessoas pudessem replicar o projeto o mais facilmente possível.
O corpo do tanque é feito de placas e tijolos de Lego genéricos. A fonte de alimentação é um bloco simples de 4 baterias recarregáveis AA. O controlador do tanque é um Arduino Uno R3. "Propulsão" são dois motores DC simples com rodas na parte traseira e um único rodízio na frente usando um único circuito integrado L293D. O "armamento" é uma única luz LED IR e a "armadura" é um conjunto de sensores IR que detectam acertos dos LED IR dos tanques oponentes. O "heads up display" é um único LED multicolorido que informa sobre qualquer ação que ocorra no tanque, incluindo o status da armadura. Finalmente, o "controle" do tanque é feito sem fio por meio de um Raspberry Pi 2 executando NodeJS conectado por meio de um módulo sem fio RF24 com o qual cada tanque também está equipado.
Usando as mãos do operador, o Leap Motion controla o tanque usando o SDK Javascript do Leap Motion. Usando o SDK para detectar o movimento da mão, o javascript se comunica com o servidor NodeJS no Raspberry PI 2, que por sua vez se comunica com o tanque por meio do módulo RF24. Ambas as mãos para frente, o tanque se move para frente. Ambas as mãos para trás, o tanque se move para trás. Mão esquerda para a frente, mão direita para trás, o tanque gira para a direita. Mão direita para a frente, mão esquerda para trás, o tanque vira para a esquerda. Ambas as mãos na posição "nuetral" irão parar o tanque. Uma mão para a frente (esquerda ou direita) enquanto deixa a outra mão "dispara" a arma do tanque.
Aqui está uma rápida demonstração da arma, armadura e display heads up do Tanks.
Usando a armadura avançada omnidirecional e as caixas de papelão como abrigo, Laser Tanks se torna um jogo de caça e evasão.
Etapas de configuração do projeto:
1) Monte os tanques e faça a fiação usando os esquemas abaixo. Baixe as bibliotecas Arduin necessárias (consulte o README no repositório github), compile e faça upload do esboço do Arduino para tank1 para um tanque e tank2 para o outro tanque.
2) Conecte o transceptor RF24 ao Raspberry Pi. Instale o Raspbian OS e o nó JS no Pi.
3) Baixe, configure e construa (veja README no repositório github) a biblioteca RF24 no Pi.
4) Baixe o software do servidor NodeJS do site do github, configure e inicie o servidor de aplicativos / servidor da Web (consulte README no githubrepository).
5) Instale o Leap Motion e os drivers em seu computador. Abra um navegador e carregue a URL para o servidor Raspberry Pi Rest / Web para carregar a página web (veja README no repositório github) para controlar o tanque um ou tanque dois.
6) Clique no botão calibrar e mantenha suas mãos sobre o movimento de salto para que ele detecte duas mãos e saiba sua posição neutra. Assim que a calibração estiver concluída, você pode controlar o tanque com as mãos.
Nota rápida sobre o chassi do tanque:
O corpo dos tanques é montado a partir de legos simples que foram "gorila colados" às partes (motores, tábuas de pão, etc.) do tanque para ajudar a mantê-lo unido. Aqui está uma apresentação de slides para mostrar como isso foi feito.
Uma nota rápida sobre LEDs infravermelhos:
Os controles remotos infravermelhos são muito funcionais quando você quer se sentar no sofá, no chão ou na cadeira e poder mudar o canal de sua TV de qualquer lugar. Os LEDs infravermelhos são construídos para que o feixe de luz vá em todas as direções possíveis para melhorar a cobertura. Mas, se você quiser controlar o feixe do LED para ser menor para dificultar o acerto do sensor remoto (como em um jogo de batalha de tanques) é um pouco mais difícil. Em minhas leituras, descobri que, usando uma lente de aumento muito simples no final de um tubo, você pode focalizar o feixe infravermelho. Aqui está um diagrama que mostra o que estou falando:
Acabei comprando uma lupa de bolso muito barata em uma drogaria, tirando a lente dela e construindo um tubo ao redor dela e tendo o LED infravermelho na outra extremidade do tubo, e isso funcionou perfeitamente para estreitar o feixe do LED IR para ser mais preciso.
Uma nota rápida sobre 360 graus de sensores infravermelhos
Um sensor infravermelho é capaz de detectar sinais de um LED infravermelho quando esse LED está diretamente na frente dele ou a cerca de 90 graus de foco. Se um LED infravermelho estiver atrás do sensor, ele não será capaz de detectar o sinal enviado.
Para atingir 360 graus completos de ângulo de detecção, você precisava modificar a biblioteca de infravermelho para detectar sinais em 4 pinos diferentes de 4 sensores diferentes ou criar uma solução de hardware que permitisse que 4 sensores fossem encadeados para relatar em um único alfinete. Encontrei alguns artigos online que mostram como você pode conseguir isso com um circuito integrado E simples para conectar 4 sensores a um único pino de entrada. Quando qualquer um dos sensores infravermelhos detectou um sinal infravermelho, ele relatou naquele pino. Isso permitiu obter 360 graus de detecção, sem a necessidade de modificar a biblioteca de infravermelho ou usar até 4 pinos de entrada.
Código
Github de tanques de laser
Todos os arquivos de código personalizado para o projeto Leap Motion Laser Tankshttps://github.com/corky/LaserTanksEsquemas
Usando um LED infravermelho, o tanque dispara "códigos" que os outros tanques identificam como acertos. Usando um único sensor infravermelho, o tanque é capaz de detectar quando os sinais infravermelhos vêm de tanques opostos e registrá-los como exitos Usando 4 sensores infravermelhos, encadeados em série com um circuito integrado de porta AND simples (74HCT21), um tanque é capaz para identificar sinais infravermelhos do LED do tanque oposto como impactos de 360 graus ao seu redor. Usando um LED RGB, o tanque identifica seu status atual (quantos golpes ele levou) mudando a cor do LED. Além disso, o tanque muda a cor do LED para Verde a cada tiro que dispara. Usando um circuito integrado L293D e alguns motores CC simples, o tanque é capaz de se mover para frente, para trás e girar esquerda ou direita. Usando um transciever RF24 simples e barato, o tanque é capaz de se comunicar e receber comandos do operador. Usando um Raspberry Pi2, um transceptor RF24 simples e barato, e Node JS, o operador é capaz de se comunicar com cada tanque por meio de chamadas REST API.Processo de manufatura
- Guia para marcação a laser em alumínio
- Guia para marcação a laser
- O que é marcação a laser a fibra?
- Ponteiro Laser
- Laser semicondutor
- Laser de estado sólido
- Sistema de sensor de movimento infravermelho faça você mesmo para Raspberry Pi
- Sensor de movimento usando Raspberry Pi
- MOSMusic
- Três componentes principais da máquina de marcação a laser