Índice:

DIY 3D Controller: 8 etapas (com imagens)
DIY 3D Controller: 8 etapas (com imagens)

Vídeo: DIY 3D Controller: 8 etapas (com imagens)

Vídeo: DIY 3D Controller: 8 etapas (com imagens)
Vídeo: Новый ИИ Nvidia превращает текст в трехмерные объекты видеоигр в 8 раз лучше, чем Google 2024, Novembro
Anonim
DIY 3D Controller
DIY 3D Controller

Faça uma interface 3D usando seis resistores, folha de alumínio e um Arduino. Faça isso, Wii. Update: uma explicação muito mais completa deste projeto está disponível na Make Magazine. Pode ser mais fácil seguir suas instruções, e acho que seu código está mais atualizado. O objetivo básico aqui era fazer um sistema 3D de detecção da posição da mão que a maioria das pessoas pudesse construir, enquanto ainda preservava alguma aparência de funcionalidade. Para ter uma ideia de possíveis aplicações, confira o vídeo de demonstração. Se você acha que pode construir um que seja mais simples e igualmente preciso, ou um pouco mais complexo e mais preciso, compartilhe nos comentários! Faça você mesmo: Interface 3D: Jogo da velha de Kyle McDonald no Vimeo.

Etapa 1: Materiais

Materiais
Materiais
Materiais
Materiais

Ferramentas

  • Arduino
  • Em processamento
  • Cortadores de arame
  • Ferro de solda
  • Cortador de caixa

Materiais

  • (3) resistores de 270k
  • (3) resistores de 10k
  • Solda
  • Arame
  • Folha de alumínio
  • Cartão

Opcional:

  • Fita (por exemplo: uísque)
  • Fio blindado (por exemplo: cabo coaxial, ~ 3 ')
  • (3) pinças de crocodilo
  • Cabeçalho de 3 pinos
  • Zip-tie
  • Tubo plástico termoencolhível ou cola quente

Etapa 2: fazer as placas

Faça as Pratos
Faça as Pratos
Faça as Pratos
Faça as Pratos

Este sensor funcionará usando circuitos RC simples, com cada distância de detecção de circuito em uma dimensão. Descobri que a maneira mais fácil de organizar três placas capacitivas para esse propósito é no canto de um cubo. Eu corto o canto de uma caixa de papelão em um cubo de 8,5 e, em seguida, corto um pouco de papel alumínio para caber em quadrados um pouco menores. A fita nos cantos os mantém no lugar. Não prenda todo o perímetro, vamos precisar. mais tarde para prender as pinças jacaré.

Etapa 3: Faça os conectores

Faça os conectores
Faça os conectores
Faça os conectores
Faça os conectores
Faça os conectores
Faça os conectores

Para conectar o Arduino às placas, precisamos de algum fio blindado. Se o fio não for blindado, os próprios fios agem de forma mais óbvia como parte do capacitor. Além disso, descobri que as pinças de crocodilo tornam muito fácil conectar as coisas ao alumínio - mas provavelmente há muitas outras maneiras também.

  • Corte três comprimentos iguais de cabo blindado. Eu escolhi cerca de 12 ". Quanto mais curto, melhor. O cabo coaxial funciona, mas quanto mais leve / mais flexível, melhor.
  • Retire a última meia polegada ou mais para revelar a blindagem e o último quarto de polegada para revelar o fio.
  • Torça as presilhas jacaré nos fios e solde-os.
  • Adicione um pouco de tubo termorretrátil ou cola quente para manter as coisas juntas.

Etapa 4: faça o circuito

Faça o circuito
Faça o circuito
Faça o circuito
Faça o circuito
Faça o circuito
Faça o circuito
Faça o circuito
Faça o circuito

O "circuito" consiste de apenas dois resistores por peça de alumínio. Para entender por que eles estão lá, é útil saber o que estamos fazendo com o Arduino. O que faremos com cada pino, sequencialmente, é:

  • Defina o pino para o modo de saída.
  • Escreva um "baixo" digital no pino. Isso significa que ambos os lados do capacitor estão aterrados e ele irá descarregar.
  • Defina o pino para o modo de entrada.
  • Conte quanto tempo leva para o capacitor carregar, esperando o pino ficar "alto". Isso depende dos valores do capacitor e dos dois resistores. Como os resistores são fixos, uma mudança na capacitância será mensurável. A distância do solo (sua mão) será a variável primária que contribui para a capacitância.

Os resistores de 270k fornecem a tensão para carregar os capacitores. Quanto menor o valor, mais rápido eles cobrarão. Os resistores de 10k afetam o tempo também, mas não entendo completamente sua função. Faremos esse circuito na base de cada fio.

  • Solde o resistor de 10k na extremidade do fio oposto à garra jacaré
  • Solde o resistor de 270k entre a blindagem e o fio (placa). Vamos proteger o fio com os mesmos 5 V que usamos para carregar os capacitores

Etapa 5: Concluir e anexar o conector

Concluir e anexar o conector
Concluir e anexar o conector
Concluir e anexar o conector
Concluir e anexar o conector
Concluir e anexar o conector
Concluir e anexar o conector

Assim que os 3 conectores estiverem prontos, você pode adicionar um tubo termorretrátil ou cola quente para isolá-los um do outro, porque você estará soldando os pontos de blindagem / 5 V juntos.

Para mim, foi mais fácil soldar os dois conectores externos e adicionar o terceiro. Depois de soldar os três conectores, adicione um quarto fio para fornecer a blindagem / 5 V.

Etapa 6: conectar e carregar o código

Código de conexão e upload
Código de conexão e upload
Código de conexão e upload
Código de conexão e upload
  • Conecte o conector ao Arduino (pinos 8, 9 e 10)
  • Encaixe as pinças jacaré nas placas (8: x: esquerda, 9: y: inferior, 10: z: direita)
  • Forneça energia conectando o quarto fio (meu fio vermelho) ao 5 V do Arduino
  • Conecte o Arduino, inicie o ambiente do Arduino
  • Faça upload do código para a placa (nota: se você estiver fora da América do Norte, provavelmente precisará alterar #define mains para 50 em vez de 60).

O código do Arduino é anexado como Interface3D.ino e o código de processamento é anexado como TicTacToe3D.zip

Etapa 7: Faça algo legal

Se você olhar para a janela serial no ambiente Arduino, você notará que ela está emitindo coordenadas 3D brutas a 115200 baud, a aproximadamente 10 Hz = 60 Hz / (2 ciclos completos * 3 sensores). O código faz medições tantas vezes quanto possível em cada sensor durante o período de dois ciclos da frequência da rede elétrica (que é surpreendentemente estável) para cancelar qualquer acoplamento. A primeira coisa que fiz com isso foi criar um simples Tic 3D Interface Tac Toe. Se você quiser começar com uma demonstração funcional, o código está disponível aqui, basta soltar a pasta "TicTacToe3D" em sua pasta Processing sketches. Três coisas úteis que o código do jogo da velha demonstra:

  • Lineariza os dados brutos. O tempo de carga na verdade segue uma lei de potência em relação à distância, então você tem que tirar a raiz quadrada de um ao longo do tempo (ou seja, distância ~ = sqrt (1 / tempo))
  • Normaliza os dados. Ao iniciar o esboço, mantenha o botão esquerdo do mouse pressionado enquanto move sua mão para definir os limites do espaço com o qual deseja trabalhar.
  • Adicionando "momentum" aos dados para suavizar quaisquer tremores.

Na prática, usando esta configuração com folha de alumínio, posso obter uma faixa da maior dimensão de folha (a maior peça que testei tem 1,5 pés quadrados).

Etapa 8: Variações e notas

Variações

  • Construir sensores enormes
  • Otimize os resistores e codifique coisas que vibram rapidamente e use-os como um captador / microfone
  • Provavelmente existem outros truques para desacoplar o sistema do ruído AC (um enorme capacitor entre as placas e o solo?)
  • Eu experimentei proteger as placas na parte inferior, mas isso só parece causar problemas
  • Faça um seletor de cores RGB ou HSB
  • Controle os parâmetros de vídeo ou música; sequenciar uma batida ou melodia
  • Superfície grande e ligeiramente dobrada com várias placas + um projetor = interface de "Relatório Minoritário"

Notas

O playground do Arduino tem dois artigos sobre detecção de toque capacitiva (CapSense e CapacitiveSensor). No final, eu fiz uma inversão de um projeto que encontrei na cópia de um amigo de "Physical Computing" (Sullivan / Igoe) descrevendo como usar RCtime (o circuito tinha o capacitor e um resistor fixos, e mediu o valor de um potenciômetro). O tempo de microssegundo foi obtido usando um código ligeiramente otimizado dos fóruns do Arduino. Mais uma vez: começando com toneladas de esquemas theremin que não entendo completamente, estou bem ciente de que existem maneiras melhores de fazer detecção capacitiva de distância, mas eu queria fazer algo o mais simples possível, mas ainda funcional. Se você tem um design igualmente simples e funcional, poste nos comentários! Obrigado a Dane Kouttron por tolerar todas as minhas perguntas básicas sobre eletrônica e me ajudar a entender como um circuito simples heteródino de theremin funciona (originalmente, eu iria usá-los - e, se ajustado corretamente, provavelmente seria mais preciso).

Primeiro prêmio no concurso The Instructables Book

Recomendado: