Índice:

Torre do Portal 2 - Controle da Torre Mestre: 9 etapas (com imagens)
Torre do Portal 2 - Controle da Torre Mestre: 9 etapas (com imagens)

Vídeo: Torre do Portal 2 - Controle da Torre Mestre: 9 etapas (com imagens)

Vídeo: Torre do Portal 2 - Controle da Torre Mestre: 9 etapas (com imagens)
Vídeo: CENAS FORTES DE POSSESSÃO DURANTE O SONO! #medo #horrorstories #sobrenatural #paranormal #vida 2024, Julho
Anonim
Image
Image

Este projeto é uma extensão ou remix do meu Portal Turret original no Instructables (Portal-2-Turret-Gun). Ele também pode ser usado como um controlador barato para controlar qualquer coisa que use o chip de rádio nRF24L01. A tela LCD é particularmente útil ao personalizar.

(Acontece que é bastante útil para verificar quando meus rádios estabelecem e perdem conexões com outros nRF24L01 na "rede". Posso andar por aí e ver a tela do visor mostrar o status de conexão dos rádios! Muito útil para ajustar as configurações e verificar faixa!)

Depois de completar a Torre do Portal, vi um breve videoclipe da cena da ópera Cara Mia no final do Portal 2. Eu pensei: “Ei, eu construí algumas torres agora. Eu posso fazer isso! Bem, eu tinha as torres, mas para que funcionassem, elas agora precisariam se comunicar umas com as outras ou com algum outro dispositivo. Depois de pensar um pouco e pensar que o controle manual também seria legal, acabei decidindo que construiria um Master Turret Controller, ou um MTC.

Ok, então como fazer isso? Bem, eu não queria modificar muito as torres, então isso era uma restrição. Eu tinha alguns chips de rádio nRF24L01 que ainda não tinha usado e pensei que isso iria manter o meu objetivo de usar componentes baratos e confiar no projeto mecânico e no código para fazer esse trabalho. Eu teria que construir um controlador e comecei a refletir sobre o que ele conteria e o que exatamente eu poderia fazer com as torres. Cara Mia já estava na agenda, mas o que mais?

Controle manual: assim que as asas estiverem abertas, gostaria de controlar o arremesso e o pivô. 2 eixos = um joystick, portanto, controle de joystick e alguns botões. Apertar o botão 1 dispararia a torre, e talvez apertar o botão 2 faria com que ela dissesse uma de suas palavras. Soa bem! Simples o suficiente…

Chat: Recentemente, vi a rotina “Who’s on First” - Abbott e Costello novamente, e uma luz se apagou na minha cabeça! Eu também faria uma rotina de esquetes cômicas usando todos os ditados, usando várias torres !! Ok, este não foi totalmente resolvido, mas tenho certeza de que o resolveria assim que minha construção estivesse em andamento.

Eu também queria que esse MTC fosse sem fio, então optei por uma opção simples de bateria de 9 V e projetei o controlador para ser alimentado pelo miniplugue USB através do Nano na parte traseira. Útil para atualização também.

Etapa 1: Incorporando o rádio nas torres

Comecei por fazer o rádio funcionar com alguns Nanos vazios, para ter certeza de que poderia fazê-lo funcionar e enviar informações entre vários dispositivos. Feito isso, foi uma questão de incorporar o rádio às torres existentes. Hmm, adicionar o PCB físico à torre foi muito fácil. Acabei de modificar o suporte do chip para incluir o nRF24L01, o Nano e o chip mp3. OK. Uma parte física modificada, com alguma fiação.

O porta-chip modificado já faz parte das peças impressas da torre agora. Acabei de deletar a opção de não rádio das partes impressas dessa compilação. Não fará diferença se alguém quiser construir a variante sem rádio. Apenas não inclua o chip de rádio nRF24L01.

Etapa 2: (Re) fiação das torres

(Re) fiação das torres
(Re) fiação das torres
(Re) fiação das torres
(Re) fiação das torres
(Re) fiação das torres
(Re) fiação das torres
(Re) fiação das torres
(Re) fiação das torres

Uh oh …

Isso não estava parecendo bom. Eu precisava adicionar 5 conexões ao Nano e já estava com poucos pinos disponíveis. Depois de examinar isso um pouco, percebi quais conexões tinham precedência e reconheci que, para fazer esse trabalho, eu teria que remapear a maioria das conexões Nano existentes.

Para quem quer fazer um “Radio Turret” e já construiu a geração anterior… Desculpe…

Agora, eu fiz essa mudança algumas vezes e descobri que o processo não é tão ruim. Envolve voltar, mas fui capaz de desfazer as conexões existentes com o Nano e reconectar aos pinos apropriados sem muito sofrimento. Adicionei os 7 fios do chip de rádio ao nRF24L01 (5 fios de comunicação, 3v e GND) e conectei as outras extremidades ao Nano.

Porém, há mais fios lá agora, então é muito mais importante manter as coisas arrumadas ao passar os fios.

IMPORTANTE: Ao montar, certifique-se de que os fios não pressionem o botão de reset do Nano na placa !! Isso aconteceu comigo em um e me jogou em um loop desnecessário!

Portanto, a construção da torre agora tem 2 esquemas de fiação: a opção "sem rádio" de legado antigo e a opção "torre de rádio" revisada. Se construir uma torre “sem rádio” hoje, eu ainda usaria o esquema e o código do rádio. Basta excluir ou comentar as partes do rádio, se essa for a rota escolhida ou não. A torre ainda deve funcionar por conta própria, sem o rádio.

Etapa 3: Componentes elétricos do MTC

Componentes elétricos MTC
Componentes elétricos MTC
Componentes elétricos MTC
Componentes elétricos MTC
Componentes elétricos MTC
Componentes elétricos MTC

Com as torres resolvidas, era hora de fazer um CTM.

O MTC usa os seguintes componentes, todos fornecidos pela Amazon ou Baggood ou Ali Express, etc. Estou mostrando os números de peça da Amazon que mencionei para referência, uma vez que esses itens estão comumente disponíveis e com preços razoáveis (e eu não precisei espere mais de 2 semanas para colocar minhas mãos no que eu precisava antes de começar o projeto mecânico!)

  • Arduino Nano LCD de 0,96”, (SSD1306) Usei a versão azul / amarela
  • Joystick pequeno (HW-504) Módulo de joystick 5V PS
  • Chave seletora (dx-004) 22 mm * 13 mm
  • Rádio - (nRF24L01)
  • Botões de pressão de 12 mm (CLT1088 para botões coloridos, PBS-33B para preto)
  • Parafusos de 2 mm (conjunto de parafusos auto-roscantes M2, variedade de cabeça rotativa de unidade cruzada)
  • LEDs de 5 mm à sua escolha para indicadores. (Não use LEDs brilhantes !!)
  • Conector de bateria de 9 V genérico com rabichos
  • Bateria de 9 V (use uma boa, não uma das variedades da loja do dólar que nem sempre pode fornecer energia suficiente para esses projetos!)
  • Usei fio com bainha de silicone. Gosto de usá-lo para esses projetos.

Eu originalmente usei alguns LEDs brilhantes, mas descobri que eram muito bons. Eles estavam me cegando! Acabei usando alguns LEDs velhos e fracos, e isso fez mais sentido para esta aplicação.

Etapa 4: peças impressas em 3D

Peças impressas em 3D
Peças impressas em 3D
Peças impressas em 3D
Peças impressas em 3D
Peças impressas em 3D
Peças impressas em 3D

Projetei o MTC usando Fusion, semelhante à forma como fiz o design da torre.

A montagem impressa requer apenas 3 peças:

  • Painel superior (versão 1 ou 2)
  • Alojamento inferior
  • Pulseira de LCD

O chip nRF, o Nano, a bateria de 9 V, a chave seletora e os LEDs são instalados na placa superior sem fixadores. Os LEDs simplesmente pressionam a placa e são mantidos no lugar por guias. Eles devem apenas se encaixar, mas não exagere. A placa superior é projetada para prender o Nano e o chip nRF deve ser inserido com cuidado. Cuidado com a pequena aba nRF; é pequeno e é dobrado para trás para abrir e solto para capturar o chip. Mesmo que suas viagens sejam limitadas, seja gentil aqui.

O joystick e o LCD precisam de parafusos de 2 mm (5 mm de comprimento) para prendê-los na placa superior. O PCB do joystick tem grandes orifícios, então achei que precisava de pequenas arruelas para garantir que os parafusos não passassem.

Eu descobri que o PCB e o LCD variam ligeiramente dimensionalmente de fabricante para fabricante, então optei por usar uma alça simples para prendê-lo no lugar em vez de presilhas ou ganchos.

Observe que o LCD pode ser fisicamente instalado na placa superior de qualquer maneira, mas a tela só aparece totalmente através da abertura em uma orientação! Por esse motivo, incluí uma segunda opção de placa superior ao usar a tela dividida em amarelo / azul. Uma versão tem o amarelo na parte superior e a outra mostra o amarelo na parte inferior, conforme mostrado nas minhas fotos.

Para a versão de LCD de uma cor, não importa qual é usada, pois você pode virar a tela usando o software.

Uma vez que toda a fiação é feita na placa superior, a parte inferior é efetivamente apenas uma tampa presa à placa superior com parafusos mais longos de 2 mm (qtd: 4).

Em vez de uma opção de “porta da bateria”, apenas incorporei a bateria na placa superior. Isso significa retirar os 4 parafusos que prendem de baixo para cima para trocar uma bateria, mas desde que também pode ser alimentado por cabo USB, não é o fim do mundo. A placa superior é feita com um sistema de suporte de bateria de 9V que deve ser resistente o suficiente para uso repetido, não é excessivamente complicado, mas evita que a bateria se mova.

Imprimi a placa superior em 2 cores conforme visto nas fotos. Eu uso um Prusa i3 Mk2 sem a opção de várias cores, mas uso sua ferramenta de impressão em cores (https://www.prusaprinters.org/color-print/) para alterar a cor no meio do processo. Verifique a camada em que o texto pára e se torna sólido e transforme-a na camada de transição. Voila! Texto colorido!

Imprimi as peças com uma camada de 0,35 mm de altura, pois não há necessidade de resolução mais precisa nessas peças planas. Também prefiro a forma como ela encara esta resolução. Ah, e imprime bem rápido também!

Etapa 5: Montagem elétrica

Montagem Elétrica
Montagem Elétrica
Montagem Elétrica
Montagem Elétrica
Montagem Elétrica
Montagem Elétrica
Montagem Elétrica
Montagem Elétrica

Os componentes elétricos são todos instalados na parte inferior da placa superior e toda a fiação é feita em conjunto. Os botões de pressão e alternância devem ser instalados primeiro, e o LCD, Nano, Joystick, rádio nRF podem ser todos pré-conectados antes de serem instalados na placa superior. Eu recomendo este método de pré-fiação dos componentes individuais e, em seguida, fazer as conexões finais ao Nano no final. Também recomendo fazer o upload do esboço para um Nano vazio primeiro, antes de concluir a fiação.

Não há nada mais satisfatório do que ligar o dispositivo e vê-lo ganhar vida como esperado quando terminar!

A única preparação da parte elétrica necessária era remover os pinos da plataforma do joystick para fazê-la caber sob a placa superior. A tela LCD pode ser adquirida com ou sem pinos instalados e funcionará de qualquer maneira. O Nano deve ser selecionado sem pinos de cabeçalho.

Etapa 6: Código

Código para MTC, torre vermelha, torre branca e torre azul agora

Bem, esta foi uma experiência de codificação! Eu tinha a torre funcionando de forma independente, mas incorporar o rádio foi mais difícil do que eu pensava inicialmente! Eu também me diverti fazendo a seção “Bate-papo” funcionar como desejado (mais sobre isso mais tarde).

O código MTC, uma vez totalmente descoberto, começou a sobrecarregar os limites de memória do Nano! Tive que fazer ajustes e economizar o código para ser mais eficiente em termos de memória. Outra boa experiência de aprendizado.

Eu incluí o código de "opção de rádio da torre w" correspondente nesta compilação, pois eles trabalham juntos. Construir a torre de opção de rádio de acordo com a página de construção da torre a deixará pronta para uso com o MTC ou para seu outro método de controle nRF24L01.

Além disso, fazer com que os sons funcionassem com este código demorou algum tempo e, como os sons foram retirados de outros sites de acesso público, incorporei todos os sons conforme os usei em alguns arquivos ZIP; um para a torre regular e um para a torre Defeituosa. O bom para você, caro leitor, é que você pode usar os sons dos seus cartões SD com os códigos escritos e pronto!

Etapa 7: Menu MTC - Navegação

Menu MTC - Navegação
Menu MTC - Navegação
Menu MTC - Navegação
Menu MTC - Navegação
Menu MTC - Navegação
Menu MTC - Navegação

O código MTC é inicializado com uma tela inicial personalizada e, em seguida, verifica o status das torres. Se nenhuma torre estiver presente, ele permanecerá lá até que as torres se conectem!

Se pelo menos uma torre estiver conectada, o menu principal será exibido e o LED “Pronto” acenderá, a menos que as torres sejam interrompidas ou estejam ocupadas “lidando com alguém”. Se eles estiverem ocupados, uma “tela Torres estão ocupadas” será exibida e o LED “Ocupado” acenderá.

Todas as torres ativamente conectadas devem estar no “Modo Pronto” antes que o MTC possa controlar as torres.

Use o joystick (para cima e para baixo) para percorrer as opções do menu:

  • Ária
  • Bate-papo
  • Manual

Selecione a opção desejada usando o botão ‘X’ ou pressionando o joystick.

Modo Aria - selecionar esta opção exibirá a tela “Modo Aria” e fará com que as torres executem a cena Aria no final do jogo Portal 2. Depois de concluídas, as torres se fecham e aguardam um comando ou alguém para acordá-las.

Modo de bate-papo - Selecionar esta opção exibirá a tela “Modo de bate-papo” e iniciará a sequência de bate-papo. Depois de concluídas, as torres se fecham e aguardam um comando ou alguém para acordá-las.

Modo manual - a seleção desta opção exibirá a tela “Modo manual”, iluminará o LED “Manual” e permitirá a operação manual das torres. Controle de pitch e pivô por joystick. Pressionar o botão 'X' ativará a sequência de tiro. Pressionar o botão ‘T’ fará com que eles “falem”, onde as torres falam um ditado aleatório de sua biblioteca.

Pressionar o botão ‘<’ ou voltar cancelará esses três modos, fechará as torres e voltará ao menu principal.

Se você gostaria de ver o status da conexão de seu enxame de torres (atualmente limitado a 3), pressione o botão ‘T’ quando estiver no menu principal. Você será levado à tela de “status da torre”, onde poderá ver o status de conexão de cada torre.

Quando estiver na tela de “status da torre”, você verá o status de cada torre.

  • Pronto - pronto para o controle
  • Ocupado - a torre está ocupada “cuidando” de alguém
  • Não disponível - MTC não pode se conectar a esta torre

Pressione o botão ‘<’ para retornar ao menu principal.

Etapa 8: Personalizando o Código

Personalizando o Código
Personalizando o Código

A captura de tela mostrada aqui mostra o que eu estava olhando por muito tempo … 4 esboços de cada vez! Quem disse que depurar não é divertido!

O código fornece o controle e as opções mostradas acima, mas e quanto a personalizá-lo?

Claro! Mas há muita coisa acontecendo aqui, então aqui estão algumas orientações ou dicas.

Dica1 - Modificar a sequência de “Chat”. Essa modificação ocorre no código da torre.

Tentei encontrar uma maneira de fazer o código funcionar para mim sempre que possível. Tornar a sequência de bate-papo mais editável (isso é uma palavra?) Para que eu pudesse me concentrar na história deu mais trabalho no início, mas tornou mais fácil de personalizar depois.

A alteração da sequência de bate-papo usando a estrutura de codificação fornecida pode ser feita de uma maneira bastante direta, desde que você siga o método usado no código. Usando os arquivos de som fornecidos, do jogo Portal 2, você só precisa alterar a tabela (chatSayings ).

Selecione o ditado para a torre regular ou torre com defeito. O ditado é o arquivo mp3 identificado por “00XX -” seguido por um texto que descreve o ditado. É o número que é a parte importante. A torre # 1 usaria este valor XX na tabela. A torre # 2 prefixaria o valor XX com um ‘1’, e a torre # 3 prefixaria o valor XX com um ‘2’. Assim, por exemplo, se você estivesse selecionando a expressão “0040 - desculpe”, e quisesse que a torre # 3 dissesse, você inseriria “240” na tabela na sequência correta. Se a torre # 1 dissesse isso, você inseriria “40” na tabela.

Faça o mesmo para a próxima expressão e assim por diante. Podem ser algumas expressões entre as torres, ou algumas. (Não estou ciente das limitações deste método, além da memória).

Você não precisa alterar os valores das outras tabelas, pois são os tempos que correspondem ao ditado na tabela. A única outra linha a ser alterada é em torno da linha 520.

if (i> = 43) {// fim da sequência

O valor de i aqui teria que ser definido como o número de frases na tabela chatSayings.

Para fazer provérbios totalmente personalizados (onde começa a verdadeira diversão!), Você precisaria configurar as expressões em arquivos numerados e saber o tempo necessário para reproduzir o arquivo. Salve o arquivo na pasta “mp3” no diretório raiz do cartão SD usando o método de quatro dígitos (“0001”, “0002”, etc.). Em seguida, registre o tempo em milissegundos que o arquivo leva para ser reproduzido. Insira esses valores na tabela apropriada.

Portanto, para uma expressão salva como "0037 - [sua expressão]", que leva 5400 milissegundos para ser reproduzida, você colocaria '37' na tabela chatSayings no local apropriado (e adicionaria o prefixo dependendo de qual torre está dizendo it), e 5400 na tabela NormaTimings no mesmo local (como o 5º item em cada tabela).

Agora, quando o valor de 'i' é incrementado, o código tocará 0037 por 5400 milissegundos.

Observe que adicionei uma variável "timeadder" que adiciona um pouco mais de tempo a cada frase durante o jogo. Isso dá uma pequena distância entre os ditos para que eles não pareçam se sobrepor.

A beleza desse método é que as tabelas concluídas são exatamente as mesmas em cada torre! Não há necessidade de personalizar essas tabelas para cada torre. Você só precisa classificar uma tabela, e o código descobre o que cada torre diz com base na mesma tabela.

Isso significa que você pode se concentrar na escrita do script em vez de na codificação!

Se alguém tiver uma maneira melhor de fazer isso, eu adoraria ouvir !!

Etapa 9: Resumo

Resumo
Resumo

Então, isso levou mais tempo do que eu pensava, mas estou bastante contente com o resultado. Algumas das rotinas de chat ainda me fazem rir!

Eu adoraria ouvir outros métodos de fazer as coisas que fiz dentro do meu código. Tenho certeza de que há seções que podem ser reescritas e usar menos memória, permitindo mais recursos ou opções.

Eu também adoraria ver outras ideias incorporadas ao MTC e ao controle das torres!

Espero ter fornecido uma plataforma para outros designers e programadores usarem / roubarem / aprenderem. Pude ver isso sendo usado para ajudar as pessoas a aprender a programar. Remova uma seção do MTC e / ou torre, como "modo manual", por exemplo, e faça com que os alunos desenvolvam sua própria maneira de incorporar o controle manual!

Aprendi muito com esta comunidade e com a web em geral. Ainda estou surpreso com a quantidade de pessoas que passam muito tempo descobrindo coisas e compartilhando-as com o mundo. Acho que devo pegar o que aprendi, aplicá-lo e, em seguida, compartilhar com você também!

Boa sorte e divirta-se construindo seu próprio exército de torres!

Recomendado: