Construa uma Arma Turret Portal 2 Real com Arduino – Movimento 3 Eixos e Áudio
Componentes e materiais
| Arduino Nano R3 | 1 |
Ferramentas e máquinas necessárias
- Impressora 3D (genérica)
Sobre o projeto
A história
Neste Natal, decidi projetar e construir uma arma turret funcional do jogo Portal 2. Para mim, foi um exercício de modelar toda a montagem no Fusion 360 antes de construir qualquer coisa. Este design usa um Arduino Nano, um chip player MP3, sensor de distância, servos, LEDs e peças impressas em 3D.
O objetivo era fazer com que se movesse em 3 "eixos", com sons falados do jogo e LEDs para simular disparos.
- Abrir as "asas" se detectar alguém à frente. Usar mecanismo de manivela com deslizadores, apenas porque.
- Se a pessoa ainda estiver lá após abrir, atirar até que ela saia. LEDs e som de metralhadora.
- Se a pessoa não estiver mais lá, executar uma pequena rotina de varredura.
- Fechar e entrar em modo sleep até outra pessoa aparecer.
- Usar sons e vozes da turret do jogo.
Tomei algumas liberdades no design, tentando torná-lo apreciavelmente igual ao visto no jogo, mas funcional e imprimível. Com alguns esboços básicos encontrados online, comecei a modelar e planejar...
Os sons são armazenados em um cartão microSD, acessível pela parte traseira para que possam ser atualizados ou alterados posteriormente. Fica alinhado com a faixa de preenchimento preto, tornando-o essencialmente invisível uma vez instalado. 18 expressões e sons individuais usados nesta versão.
O sensor lidar (time-of-flight) está em um chip com perfil retangular. Este sensor é quase invisível pela frente uma vez montado.
Passo 1: Modelagem no Fusion 360
O design começou a partir de esboços encontrados online. Usando estas imagens como telas, comecei a esboçar os contornos das 3 vistas. Depois, foi questão de extrudi-los em 3D, fazer o shell da forma geral e fazer cortes. Todos os eletrônicos foram construídos no Fusion como componentes que foram inseridos e posicionados onde fazia sentido. Parâmetros orientadores:
- Arduino Nano precisava ter conector acessível para atualização após montagem completa
- Cartão microSD precisava ser acessível da mesma forma, e idealmente invisível uma vez instalado
- Sensor time-of-flight também deveria ser invisível
- Conector elétrico 2.1mm para energia na traseira
- Peças impressas o maiores possível (não muitas peças pequenas)
- Imprimir sem suportes
Após adicionar componentes (Nano, outros chips, servos) à forma básica, eles foram movidos e posicionados conforme necessário, e as estruturas de suporte foram construídas para sustentá-los dentro do shell.
O mecanismo de abertura das asas era uma manivela e mecanismo deslizante. Por que? Porque eu queria usar um mecanismo de manivela! Isso adicionou algumas complicações, mas também teve benefício; uma vez determinada a geometria, a repetibilidade operacional seria garantida e os limites mínimo e máximo eram praticamente garantidos.
Uma vez que todo o modelo foi construído e confiei que funcionaria, imprimi as partes e construí um protótipo. Depois que funcionou, voltei ao modelo e fiz alguns ajustes para melhorar aparência e montabilidade. Este modelo é o resultado dessas mudanças.
Foi bastante trabalhoso, pois realmente não há muitas formas quadradas neste objeto, e ele fecha bem apertado, sem acesso real para ajustes após montado. Aprendi bastante neste projeto, como usar componentes embutidos dentro de outros componentes. Isso facilitou manipular e manter sub-montagens vinculadas para acesso rápido. No final, valeu o esforço!
Passo 2: Peças impressas em 3D

O arquivo Portal turret v4.zip está atualizado e deve conter todas as peças impressas necessárias para construir a turret mais recente.
--- nova "Perna traseira de teste". Não é fiel ao original, mas fica na traseira e permite usar conector mini-USB reto direto para cima. ---
Estas foram impressas em uma Prusa Mk2, usando PLA para todas as peças. A orientação de impressão deve ser bem evidente. O corpo foi impresso na posição vertical, sem suportes. Há um grande vão nas laterais que precisa ser feito ponte, mas não tive grandes problemas com configurações padrão, exceto pelo "bump". O bump na frente e atrás pode ser virtualmente eliminado com bom filamento e boas configurações de impressão. Descobri que 0.2mm funcionou bem no slicer e produziu resultado decente. Qualquer valor maior e aberturas começaram a aparecer no corpo perto da faixa de preenchimento.
O design de canais e protuberâncias foi feito com chanfros de 45 graus, então elementos "pendurados no espaço" serão mínimos.
Tive pouca limpeza para montar o conjunto. As faixas de preenchimento que deslizam nos canais agora são bem diretas, com largura reduzida e espessura consistente. Acredita-se que se poderia usar um material preto fino cortado em tiras em vez dessas peças impressas (impressas na borda).
A área que requer finesse são os pinos deslizantes no frame de pitch. Pinos retos (pregos) nos furos que são alargados com broca de 1/8" e lubrificante ajudarão muito.
Arquivos STL incluídos: Lens+v3b.stl, Body-RHS+v4.stl, Body-LHS+w+components+v4.stl, Wing+RH+bottom+v4.stl, Wing+RH+top+v4.stl, Wing+LH+bottom+v4.stl, Wing+LH+top+v4.stl, Pitch+Frame+v4.stl, Leg+-+REAR+v4.stl, Infill+strips+v3.stl, Leg+-+REAR+test.stl, Pitch+Frame+-+modified+1.stl, wings+v6.zip, Arduino+Base+w+Radio.stl, Portal+Turret+v4.zip
Passo 3: Componentes
V4 (turret vermelha) tem ponte menor, requerendo asas v4 e frame de pitch.
As asas v6 são uma opção que permite diferentes "armas" coloridas. Não fiz uma pessoalmente assim, mas deve funcionar bem.
Uma vez que o modelo estava completo e eu estava feliz com o protótipo, imprimi a rev 2 com os componentes plásticos como mostrado. Tudo aqui é PLA, com preto e cor de design (azul neste caso), e um pouquinho de PLA translúcido para a "Lente" central ou olho laser.
Passo 4: Eletrônica
A construção usa os seguintes componentes:
- Arduino Nano (1)
- DFPlayer Mini MP3 player (ou MP3-TF-16P) (1)
- Sensor VL53L0X Time-of-Flight (1)
- Servos micro SG90 genéricos (3)
- LEDs vermelhos 5mm (5)
- Resistores 220 Ohm para LEDs (5)
- Resistor 1kOhm (1)
- Alto-falante 4cm, 4Ohm, 3 Watt (1)
- Conector de energia 2.1mm (1)
- Pregos de estrutura 3" (4)
- Parafusos M2 x 6 (8)
- Parafusos M2.5 x 8 (2)
- Parafusos M3 x 8 (4)
- Parafusos M3 x 12 (4)
- Parafusos M3 x 16 (2)
- Tubo termorretrátil
- Pequenas abraçadeiras
Todos os componentes estão prontamente disponíveis na Arduino, Amazon, Banggood e outras fontes.
Passo 5: Montagem Mecânica

A maior parte da montagem mecânica é razoável. As peças impressas são impressas com os furos maiores rosqueados onde necessário, então uma rápida passagem com parafuso antes da montagem final será útil e tornará a montagem dos componentes parafusados bem fácil.
O Arduino e o chip MP3 encaixam no berço sem hardware. O VL53LOX desliza no shell frontal sem fixadores. Teste o encaixe primeiro, depois remova e instale após a fiação.
A montagem do slider usa 4 pregos de estrutura como trilhos deslizantes. Eles têm cerca de 1/8" de diâmetro, com as cabeças cortadas. Foram tirados de uma tira de pregos DeWalt usados com sua pregadeira elétrica. Pregos lisos são obrigatórios.
Os servos montam como mostrado. Orientação é importante. Os servos de pitch e pivot estão "centralizados" ao instalar em suas peças. A manivela é instalada de forma que, na posição aberta, fechará girando no sentido anti-horário, visto da frente. Posição aberta é hastes e manivela em linha reta, com mais 10 graus de rotação até travar.
A montagem da perna é a parte mais fácil. Parafusos 2-2.5mm, com as tampas das pernas encaixando sobre os cotovelos de cada perna. Use fixadores que não sobressaiam acima do topo da chapa da perna. Assim, o corpo giratório não travará se você ajustar o alcance de rotação.
Todas as conexões dos servos às peças impressas são feitas usando o pequeno braço branco que vem com os servos. Estes braços apenas pressionam nas peças impressas. Tentei imprimir o furo estriado nas peças que conectavam a cada servo, mas tive sucesso limitado e repetível. Muito mais fácil usar os braços que vêm com os servos.
A montagem da manivela usa os parafusos 2.5mm mais longos. As hastes da manivela não devem ser apertadas entre as metades da manivela. Na verdade, você poderia tentar usar parafusos mais curtos sem a peça Crank2. Isso também deve funcionar (esperançosamente sem torque apreciável aqui se as asas deslizarem livremente).
O alto-falante é capturado por uma montagem de servo (2 peças) que capturam o alto-falante. Alto-falante entre estas "pernas", e mantido em posição fixando-as ao servo de pitch. Este servo então conecta à montagem de pitch (slider), seguida pela montagem da manivela com hastes. Tudo isso é montado antes de ser instalado no corpo LHS com 4 parafusos pequenos.
Uma vez que as entranhas principais estão instaladas, com o Arduino e MP3 player temporariamente localizados, começa a diversão - fiação!
Passo 6: Fiação

V5 - Opção Rádio (fotos da turret vermelha). Inclui chip de rádio nRF24L01. Muda completamente a fiação dos pinos do Arduino para acomodar todas as conexões. Detalhes virão...
A embalagem final é apertada, então gastar tempo aqui calculando comprimentos de fio vale a pena. A maioria dos fios de interconexão ficou entre 3" - 4".
Os LEDs são conectados com resistores 220 Ohm diretamente, seguido por tubo termorretrátil, e alguma torção de fiação, então colocados de lado, após serem testados. Usei fiação de bitola leve aqui pois tinha alguns por aí (tipo fiação de comunicação CAT5) e não queria fiação visível obstrutiva.
As partes mecânicas são encaixadas no shell, então o roteamento de fios é descoberto, então cortar e preparar os fios é o próximo passo.
Construí os conectores dos servos para que eu pudesse conectar e substituir servos se alguma vez estragasse algo e descascasse as engrenagens. Isso foi definitivamente útil após estragar durante meu primeiro protótipo.
Uma vez satisfeito com a maior parte da fiação, os LEDs foram soldados no final. Então é hora de enfiar cuidadosamente a montagem fioada em uma metade do shell. O último passo é soldar o conector de energia aos fios de energia uma vez que tudo está dentro.
-- Nota importante: Certifique-se de que a fiação enfiada atrás do Nano não esteja pressionando o botão de reset!! Isso obviamente causará problemas e impedirá que a unidade opere corretamente. --
Neste ponto, toda a fiação está feita, mas antes da montagem final, é importante fazer upload do código para o Nano e ligá-lo para garantir que LEDs, servos e MP3 player funcionem como projetado. Depois disso, é hora de juntar o resto das partes mecânicas.
Passo 7: Código Arduino
Código atualizado! Limpei e fiz alguns ajustes.
O arquivo anexado é o que desenvolvi para controlar a unidade como mostrado nos vídeos. Continuarei ajustando para mudar o caráter da Turret e a forma como ela se comporta. Muitas opções aqui.
Estruturei o código usando sub-rotinas que chamo conforme necessário. Mantém o corpo principal limpo e foi bastante útil quando estava brincando com diferentes características. Me ajudou a manipular o código para diferentes comportamentos.
Também usei muitas variáveis no início que me ajudaram a ajustar posições de estacionamento e ranges mínimos e máximos, por exemplo.
Usei a biblioteca DFMiniMP3 no meu código. Tentei outras bibliotecas, como a da DFRobot, mas tive problemas, então voltei a esta. Significou que tive que manter as partes 'static void' para mantê-la funcional. Estas não são necessárias para a operação, mas ei, não sou mestre em codificação. Adoraria ouvir sobre outra biblioteca que seja igualmente simples e limpa como a biblioteca VL53LOX. Avise se encontrar uma maneira melhor!
Quanto aos sons, a implementação é feita de forma simples, tendo uma pasta chamada "mp3" no cartão SD, com arquivos nomeados 0001.mp3, 0002.mp3, etc. Os primeiros quatro dígitos devem estar neste formato, mas você pode adicionar qualquer sufixo depois para ajudar a identificar os sons particulares. Veja https://www.dfrobot.com/blog-277.html para um exemplo. Incluí uma foto dos nomes dos meus arquivos como usados na pasta. Os números correspondem às chamadas no código.
Os arquivos de som retirei da página da Wikipedia sobre sons da Portal Turret. O código escolhe um arquivo de som aleatório (1 de 2 ou 3 sons) para evitar que fique repetitivo.
Passo 8: Montagem Final do Corpo
Esta parte é um pouco complicada por causa das faixas de preenchimento pretas. A escala da montagem final é pequena o suficiente para que as faixas e ranhuras receptoras sejam minúsculas. Isso exigiu alargar o canal com um ponteiro ou outro pequeno instrumento de raspagem para garantir que as faixas encaixassem com pouca resistência antes de tentar colocar o outro lado.
Amarrar os fios ordenadamente e usar abraçadeiras conforme necessário tornará isso muito mais fácil.
Montei alguns destes agora e acho mais fácil juntar as duas metades primeiro, depois inserir as faixas de preenchimento. Insere um lado na metade com a "prateleira" que impede a faixa de preenchimento de cair, depois abra levemente e pressione suavemente. Não é tão ruim agora.
Foi uma das partes mais complicadas. Talvez um dia eu repense esta montagem, mas gosto da aparência quando pronto, e é bastante robusto.
Passo 9: Montagem das Asas

Agora que o corpo está junto, com os LEDs das asas saindo, é hora de preparar as asas e montar.
É imperativo que os furos do slider sejam alargados com broca de 1/8", depois limpos. Corte as cabeças dos pregos usando alicate de corte, grifo, serra ou ferramenta favorita de corte de pregos. Os pinos do slider (pregos cortados) são instalados nas asas por encaixe por pressão em cada peça da asa. Pregos retos, desbastados e lisos são a chave para fazer isso funcionar. Os sliders e furos das asas devem ser lubrificados e testados antes de conectar as hastes da manivela e rodar. Grafite seco, ou outro lubrificante adequado para PLA é recomendado. Acho que um pequeno tubo de lubrificante pessoal funciona muito bem, e é barato. É realmente escorregadio. Também requer alguma 'explicação' quando seu parceiro ou pai entra e pergunta o que exatamente você precisa daquilo na bancada!!
Comece descobrindo qual peça da asa vai onde, e teste deslizar essa peça primeiro. Então encaixe as metades superior e inferior uma vez que os pinos estejam instalados, aplique lubrificante (um cotonete funciona bem para isso) e certifique-se de que as asas deslizam bem. Isso pode ser complicado, mas sem garantir que as asas deslizem sem esforço, sem travar, você terá um tempo frustrante. Confie em mim...
Uma vez que as asas estão boas, é só deslizá-las no lugar, localizar a haste de conexão sobre o furo na asa e montar com um único parafuso. Então, os LEDs são inseridos nos furos das armas, os fios são acomodados contra a asa e você está pronto! Também pode usar cola quente para fixá-los no lugar uma vez que tudo testado.
Passo 10: Assuste e choque seus amigos!!
A última ressalva deste design é que um plugue angular é uma ótima ideia, pois não interfere na perna traseira ao girar. A perna traseira revisada (v3) foi esticada para dar um pouco mais de espaço.
Uma vez construída e ligada (5V ou adequado para Nano), ficará quieta até alguém ser detectado dentro da distância programada, então ganhará vida e eliminará qualquer um que entre em seu domínio!!
Avise se construir uma (ou mais) e se criar novos recursos ou conceitos!
Código
Código completo disponível na seção "Code" do projeto original (inclui controle via rádio nRF24L01).
Peças personalizadas e caixas
Arquivos STL listados na seção CAD do projeto original.
Esquemáticos

Processo de manufatura
- Âmbar: Da Resina Antiga ao Tesouro Científico — História, Propriedades e Usos Modernos
- A Guillotina: História, Design e Legado
- A Arte e Ofício das Lápides: História, Materiais e Fabricação Moderna
- A Evolução e Arte do Maiô Moderno: Das Piscinas Antigas aos Tecidos de Alta Tecnologia
- Silício: Propriedades, Produção e Perspectivas de Mercado
- Vodka: Da Destilação Antiga à Produção Moderna
- O Carrossel: De Passeios Giratórios Antigos ao Artesanato Moderno
- Sofá: Do Luxo Antigo ao Conforto Moderno — Guia Completo
- Ferro: Propriedades, História e Aplicações Cotidianas
- Revólver de Extremidade Reduz Tempo de Ciclo para Produção de Eixos de Precisão