DIY: Sabre de luz com som

imagem

Olá pessoal! Desde a infância, gosto do universo de Guerra nas Estrelas. Quando eu tinha 7 anos de idade, assisti aos episódios 4-6 tantas vezes que pude recontar o conteúdo em detalhes.

Sem dúvida, as impressões mais vívidas dos filmes são as batalhas de sabres de luz. Há dois anos, tropecei na Internet em um pequeno artigo sobre a escolha de um sabre de luz como presente, fiquei interessado e estudei esse tópico em detalhes.

No final do ano, sai o episódio 8, 4 de maio está chegando e, na véspera do dia internacional de Guerra nas Estrelas, decidi escrever este artigo.

Abaixo, vou compartilhar informações sobre fabricantes de sabres de luz e falar sobre como criar uma espada de orçamento com som baseado no Arduino.

Agora, na Internet, existem muitos fabricantes comerciais de sabres de luz, os mais notáveis ​​na minha opinião:

● ● ● Genesis Custom Sabres - Alças personalizadas de alta qualidade, o preço de uma espada personalizada de elite com som varia entre 1500 e 3000 USD.

● ● ● O Sabre Forge é uma ótima opção, os preços são mais acessíveis, mas as espadas não são tão autênticas quanto no Genesis CS. O preço de uma espada com um som de cerca de 300 USD.

● ● ● Ultrasabers é uma das lojas mais humanas em termos de preço. Uma espada com um som de base custa cerca de 160 USD. Você pode solicitar componentes individuais para o seu projeto.

● ● ● The Custom Saber Shop - Um site com uma loja e um designer para construir sua espada.

Existem outros fabricantes de sabres de luz, por exemplo, Makoto Tsai , que faz as espadas mais brilhantes com base em tiras de LED caseiras.

Mas e se você não quiser gastar muito dinheiro, mas realmente quer um sabre de luz? Só há uma saída: acumular 5.000 rublos e fazer uma espada para você.

Na época do início do meu projeto, eu praticamente não tinha experiência em programação, o conhecimento em eletrônica estava completamente ausente. Talvez eu tenha feito algo que não foi da melhor maneira, mas continuo estudando e ficarei feliz com o seu conselho.

Ao descrever o processo de criação de uma espada, tentarei descrever todas as principais dificuldades.

Então, vamos começar. Aqui está uma lista de tudo que eu usei:

  1. Arduino Pro micro 5v ~ 250 rublos em Ali
  2. Módulo de som WT588D-U ~ 250 rublos em Ali
  3. Passo 3-5V ~ 100 rublos em Ali
  4. Alto-falante Ø28mm, 8ohm, 2W ~ 40 rublos em Ali
  5. Acelerômetro ADXL335 ~ 200 rublos em Ali
  6. N-MOSFET IRF530N x2 ~ 40 rublos em Amperka
  7. Rebelde LED Luxeon 3W ~ 70 rublos em Ali
  8. Lente para LED 8 ° ~ 50 rublos em Ali
  9. Bateria CR123A x2 3.7V ~ 400 rublos em Ali
  10. Bateria Krona 9v para alimentação do Arduino
  11. Suporte da bateria ~ 15 rublos em Ali
  12. Botão anti-vandalismo ~ 100 rublos em Ali
  13. Interruptor de alavanca ~ 50 rublos em Ali
  14. Tubo de policarbonato branco de 1 ”a 800 rublos em Moscou (há muitas lojas, elas estão no Google)
  15. Tubo de PVC para fabricação de alças

Você também precisará de fios, um parafuso para fixar o tubo de policarbonato na alça e uma tampa para o tubo de policarbonato com um refletor.

Encomendei um boné com um refletor na loja de sabres personalizados a partir de US $ 7, a entrega para itens pequenos custa US $ 14.

Você também precisará obter sons para a espada em algum lugar, geralmente um conjunto de sons liga / desliga, ruído de operação (hum), sons de oscilações (balanço), sons de colisões (choque).

Comprei um conjunto de sons no site do Sabrefont por US $ 7, mas tenho certeza que você pode encontrar sons gratuitos.

O total de componentes sai cerca de 5.000 rublos se você comprar sons, se não, na região de 4.000.

Existem dois tipos principais de iluminação da “lâmina” - um poderoso LED na base do tubo de policarbonato, cuja luz é refletida por uma tampa no final do tubo e o segundo tipo é uma faixa de LED segmentada caseira. São necessários segmentos para girar suavemente a espada, como nos filmes.

Por exemplo, Makoto usa várias fitas segmentadas em suas espadas mais brilhantes.

imagem

Eu recomendo usar um LED poderoso para a primeira compilação, é muito mais simples e bastante brilhante.

Quero dizer imediatamente que as espadas no vídeo parecem mais brilhantes do que na vida, porque a matriz da câmera acumula luz, diferente dos nossos olhos. Não espere que sua espada brilhe como nos filmes.

Proponho iniciar a montagem do protótipo com as configurações de som.

A parte mais difícil do projeto foi lidar com o som, o módulo WT588D no meu caso acabou sendo uma opção ideal, pois Ele fornece reprodução contínua de arquivos de áudio, não requer uma unidade flash.

Antes de enviar arquivos para o WT, tive que editá-los um pouco, para isso você pode usar o programa gratuito Audacity .

É necessário abrir cada arquivo por vez, selecionar a área com som (tive alguns segundos de silêncio no final de cada arquivo); no canto inferior esquerdo da tela, é necessário definir a frequência de 16000 a 22000 Khz. Se a frequência for maior que 22000, a WT não permitirá o download do arquivo. Próxima exportação selecionada - 16 bits.
Para baixar arquivos para o WT588D, você precisará de um programa para baixar sons do fabricante do módulo - Waytronic (ele funciona apenas no Windows, eu o executei no MAC via BootCamp).

Você precisa executar o software e selecionar inglês nas configurações. Existem vários modos de operação no WT588D, eu escolhi o modo de uma linha, porque Requer um mínimo de solda, o módulo se comunica com o Arduino através de um pino.

O campo de trabalho é dividido em 3 partes, à esquerda há uma lista de arquivos carregados no módulo, no meio há uma lista de listas de reprodução, à direita há uma lista de arquivos em uma lista de reprodução.

Para baixar arquivos, clique com o botão direito do mouse na lista de arquivos baixados e selecione Carregar - encontre e selecione o arquivo de áudio processado no Audacity. Repita para todos os arquivos.

Em seguida, você precisa criar listas de reprodução, adicionando muitos sons repetidos do ruído do trabalho após o som da inclusão e os sons de oscilações / colisões. Isso é necessário para não escrever um código para mudar para ruído depois de ligar / deslizar.

Ligaremos para o número de listas de reprodução mais adiante em nosso esboço. Depois de baixar sons e preparar listas de reprodução, você precisa conectar a energia ao WT, conectar um alto-falante e conectar o pino de dados do WT ao Arduino. Conecte também um botão para ligar / desligar a luz / som e um LED através do MOSFET ao Arduino.

Aqui está o meu diagrama de conexão:

imagem

Alimento o WT a partir de uma bateria separada de 3,7V via MOSFET, usando intensificação de até 5v, nesse caso, obtenho o volume máximo de saída.

Primeiro, você precisa registrar tudo o que será usado no esboço:

#define WT588D_SDA 8 //      WT588D //          const int xpin = A0; const int ypin = A1; const int zpin = A2; int oldtime; int newtime; int ADXL = 3; int BUTTON_PIN = 7; //     int LED_PIN = 9; //MOSFET  int WT_MOSFET = 6; //MOSFET WT588D int i = 0; byte file_count = 1; bool saberon; bool swingsound; void setup() { Serial.begin(9600); pinMode(BUTTON_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT); pinMode(ADXL, OUTPUT); pinMode(WT_MOSFET, OUTPUT); pinMode(WT588D_SDA, OUTPUT); digitalWrite(ADXL, LOW); digitalWrite(LED_PIN, LOW); digitalWrite(WT588D_SDA, HIGH); digitalWrite(WT_MOSFET, LOW); saberon = false; swingsound = false; oldtime = analogRead(xpin) + analogRead(ypin) + analogRead(zpin); //    } 

Para que o WT funcione, no esboço, você precisa declarar o comando WT_Send_Command (*); para isso, adicione o seguinte código ao final do esboço:

 void WT588D_Send_Command(byte addr) { digitalWrite(WT588D_SDA, LOW); delay(100); for (int i = 0; i < 9; i++) { digitalWrite(WT588D_SDA, HIGH); if (bitRead(addr, i)) { delayMicroseconds(600); digitalWrite(WT588D_SDA, LOW); delayMicroseconds(200); } else { delayMicroseconds(200); digitalWrite(WT588D_SDA, LOW); delayMicroseconds(600); } } digitalWrite(WT588D_SDA, HIGH); delay(50); } 

O próximo passo é escrever o código para que, quando o botão for pressionado, o LED acenda e a lista de reprodução seja reproduzida com o som ativado. Quando o botão foi pressionado novamente, o LED apagou e a lista de reprodução desligou.

Se você não possui experiência em programação, para entender melhor o código, recomendo que você leia os seguintes materiais:

Arduino Se tutorial
Tutorial booleano do Arduino
Tutorial do botão Arduino

Aqui está o meu código para reconhecer o estado de um botão e ativar / desativar os efeitos:

 if (digitalRead(BUTTON_PIN) == LOW) { if (saberon) { WT588D_Send_Command(*    ); delay(700); saberon = false; { analogWrite(LED_PIN, LOW); digitalWrite(WT_MOSFET, LOW); delay(1); } } else { digitalWrite(WT_MOSFET, HIGH); delay(100); WT588D_Send_Command(*    ); { analogWrite(LED_PIN, HIGH); delay(1); } saberon = true; } } 

Se tudo for feito corretamente, ao pressionar o botão, você ouvirá o som de ligar e o ruído, o LED acenderá. Quando pressionado novamente, o som é desligado e o LED deve apagar.

A parte principal do esboço está pronta, agora vamos conectar o acelerômetro e fazer o WT tocar os sons das ondas.

O ADXL335 é bastante fácil de usar, não precisa conectar nenhuma biblioteca. Aqui está o diagrama de conexão:

Para o acelerômetro funcionar, faremos duas medições e, com base na comparação das leituras, reproduziremos o som de uma onda.

Eu recomendo colocar o acelerômetro o mais próximo possível de uma extremidade da alça.

 newtime = analogRead(xpin) + analogRead(ypin) + analogRead(zpin); delay (100); if (newtime - oldtime >= 75 || newtime - oldtime <= -75) { if (swingsound) { swingsound = false; delay (50); } else { swingsound = true; WT588D_Send_Command(*    ); delay (150); } } Serial.print(oldtime); Serial.print("\t"); Serial.print(newtime); Serial.print("\t"); Serial.print(newtime - oldtime); Serial.println(); oldtime = newtime; 

Tudo, o protótipo está pronto. É hora de criar um identificador e colocar todo o material nele.

Fiz um cabo com tubos de PVC, uma pastilha para uma lâmina com um diâmetro de 28 mm.

Eu tive problemas com o identificador, como resultado, a primeira versão era muito pequena, agora estou fazendo uma nova.

Na fabricação de cabos de PVC, você é limitado apenas pela sua imaginação; só posso dar um conselho - antes de pintar, trate a superfície do tubo com uma lixa fina, caso contrário, a tinta não ficará bem.

Aqui está a primeira versão do meu cabo, na tampa, fiz os furos e coloquei um alto-falante, e a lâmina é fixada no tubo com quatro parafusos:

imagem

imagem

imagem

Não incluí o efeito de choque na minha espada, talvez eu consiga recuperar o atraso na próxima vez. Mas se você deseja ativar o confronto, precisará de um sensor de vibração ou uma configuração do acelerômetro para reconhecer acelerações curtas. Se alguém puder configurar o acelerômetro, não tenha muita preguiça de compartilhar o código, vou incluí-lo em um artigo mencionando você como autor.

Aqui está um pequeno teste de espada na rua à noite:



atualização:
Eu completei o identificador e trabalhei na sincronização de sons, adicionei um som de choque aqui está um vídeo atualizado:


Estou certo de que o Geektimes lê um grande número de pessoas muito talentosas e habilidosas, peço que compartilhe sua opinião, dê conselhos. É possível que, graças à colaboração, possamos simplificar / otimizar ainda mais o processo.

Não se esqueça de compartilhar seus resultados, é muito interessante ver o que você recebe!

Obrigado a todos pela atenção! E que a força esteja com você!

Source: https://habr.com/ru/post/pt402681/


All Articles