Índice:

Capacete Spartan Voice Changer: 14 etapas (com fotos)
Capacete Spartan Voice Changer: 14 etapas (com fotos)

Vídeo: Capacete Spartan Voice Changer: 14 etapas (com fotos)

Vídeo: Capacete Spartan Voice Changer: 14 etapas (com fotos)
Vídeo: Brian without Fur 😨🤢 #comedy 2024, Novembro
Anonim
Capacete trocador de voz espartano
Capacete trocador de voz espartano
Capacete trocador de voz espartano
Capacete trocador de voz espartano

Olá! Somos uma equipe de 4 alunos da Escola Politécnica da Universidade Sorbonne:

  • Louis Buchert
  • Bilal Melehi
  • Bao Tinh Piot
  • Marco Longépé

Este projeto é realizado como parte de nossos estudos, e visa levar em mãos uma série de ferramentas, bem como demonstrar nossos avanços teóricos.

O famoso objeto assume a aparência de um capacete que lembra o do herói de um certo videogame cujo nome se perderá. Para o lado do design, também temos uma tela que exibe a transformada de Fourier do sinal de áudio que sai do alto-falante. O objetivo deste fone de ouvido é alterar a voz da operadora em tempo real usando uma série de efeitos selecionáveis.

Objetivos educacionais:

  • Capture o som de um microfone
  • Amplifique, filtre, digitalize o sinal
  • Perceba o FFT de um sinal
  • Mostrar este FFT em uma tela
  • Síntese de sinal
  • Tirar o som de um alto-falante
  • Perceba efeitos no som de áudio (reverberação, eco, etc …)

Agora que colocamos o background e apresentamos o projeto, é hora de colocar as mãos nele!

Etapa 1: Requisitos 1/3 - Hardware

Requisitos 1/3 - Hardware
Requisitos 1/3 - Hardware

Para construir seu capacete com sucesso, precisaremos de alguns hardwares para executar o dispositivo.

  • DE0-Nano-SoC Development Board da Terasic + Adafruit TFT LCD Screen (Arduino)
  • Acesso a uma impressora 3D para fazer o capacete (se você for um estudante universitário, mude para mais perto de sua universidade, alguns têm laboratórios acessíveis aos alunos)
  • Um computador com conexão à Internet e um mínimo de conectividade (USB, Ethernet). Seu computador também precisa de um processador forte, pois a compilação de programas no Qsys leva muito tempo.
  • (Não obrigatório) Uma impressora que faz Placas de Circuito Impresso (PCB) a partir de arquivos Gerber para diminuir o tamanho do circuito + um ferro de solda para colocar os componentes na PCB.
  • (Fortemente recomendado): Um bom café para desfrutar do seu trabalho com o nosso Instructable:)

Etapa 2: Requisitos 2/3 - Componentes para seu circuito

Requisitos 2/3 - Componentes para o seu circuito
Requisitos 2/3 - Componentes para o seu circuito
Requisitos 2/3 - Componentes para o seu circuito
Requisitos 2/3 - Componentes para o seu circuito
Requisitos 2/3 - Componentes para o seu circuito
Requisitos 2/3 - Componentes para o seu circuito

Aqui estão os componentes necessários para o seu circuito:

  • Amplificador de áudio classe Texas Instrument LM386 AB
  • BreadBoard
  • Conjunto de cabos Macho-Macho, Macho-Fêmea
  • Conversor digital para analoh LM358P (DAC)
  • Alto falante
  • Microfone pequeno usado em circuito analógico
  • Um jogo de resistores de 1kOhm a 220kOhm
  • Capacitor 1.5nF
  • Capacitor 50nF
  • Capacitor 100nF
  • Capacitor 100uF
  • Capacitor 220uF
  • x4 Capacitores 10uF

Etapa 3: Requisitos 3/3 - Software

Requisitos 3/3 - Software
Requisitos 3/3 - Software
Requisitos 3/3 - Software
Requisitos 3/3 - Software

Por último, mas não menos importante, você precisará do software:

  • Quartus 15.1: versão Lite
  • Um compilador C (gcc por exemplo)
  • Altium para design de PCB
  • Conjunto integrado SoC da Altera para se comunicar com o mapa SoC

  • Massa

Etapa 4: Circuito de entrada

Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada
Circuito de entrada

Vamos construir o circuito. Use a imagem acima do circuito para montá-lo em sua placa de ensaio. Você também verá a imagem do BreadBoard e do circuito interno para ver como os pinos estão conectados. Todo o circuito é alimentado por uma corrente contínua de 5 V (CC). Para isso, pode-se usar bateria de 5V com conversor USB-B ou gerador de funções.

Alguns lembretes:

  • Fonte de alimentação 5V e o aterramento são conectados em linhas horizontais separadas da placa de ensaio
  • Se você deseja conectar 2 componentes em paralelo, coloque-os em uma linha comum da placa de ensaio
  • Se você deseja conectar 2 componentes seriais, os componentes devem apenas um pino em uma linha comum da placa de ensaio.

Não hesite em assistir o tutorial dedicado sobre como usar uma placa de ensaio e construir um circuito nela. Também não se esqueça de ler atentamente a posição do pino do Amplificador de Áudio LM358P (veja a imagem acima)

Etapa 5: Circuito de Saída

Circuito de Saída
Circuito de Saída
Circuito de Saída
Circuito de Saída
Circuito de Saída
Circuito de Saída
Circuito de Saída
Circuito de Saída

As mesmas instruções da Etapa 4. As quatro entradas: SDI, não CS, SCK, não LDAC são da placa DE0-Nano-Soc. Veremos mais tarde como gerá-los.

Não se esqueça de ler atentamente as posições dos pinos do Amplificador de Áudio LM386 (veja a imagem acima)

Etapa 6: [OPCIONAL] Criando Borad de Circuito Impresso e Componentes de Solda

[OPCIONAL] Criando Borad de Circuito Impresso e Componentes de Solda
[OPCIONAL] Criando Borad de Circuito Impresso e Componentes de Solda
[OPCIONAL] Criando Borad de Circuito Impresso e Componentes de Solda
[OPCIONAL] Criando Borad de Circuito Impresso e Componentes de Solda
[OPCIONAL] Criando Borad de Circuito Impresso e Componentes de Solda
[OPCIONAL] Criando Borad de Circuito Impresso e Componentes de Solda

Se você tiver a sorte de possuir uma impressora de placa de circuito ou usar uma, criaremos nossa própria placa de circuito impresso (PCB). Observe que esta etapa é opcional. Esta etapa consiste apenas em mover seu circuito de uma placa de ensaio para um PCB.

Você precisará desses 2 arquivos GERBER.

Esses arquivos foram feitos em Altium. Use-os no software da impressora PCB para imprimir seu PCB. Depois de obter seu PCB, certifique-se de que ele esteja limpo e que as trilhas sejam impressas corretamente.

Agora vem o verdadeiro negócio: soldagem. As 2 fotos acima são o mapa do circuito no PCB. Cada componente tem nomes (R6, C4, MK1 etc.). As imagens nas etapas 4 e 5 mostram os parâmetros dos componentes (resistência, condutância..). Coloque cada componente da placa de ensaio no PCB de acordo com seus nomes.

Depois de soldar tudo com o ferro de soldar, teste todos os componentes com um voltímetro para verificar se há algum curto-circuito.

Etapa 7: Configuração do SoC

Configuração SoC
Configuração SoC
Configuração SoC
Configuração SoC

Com relação à configuração do SoC, você precisará executar alguns comandos e scripts incluídos no conjunto integrado do SoC em um terminal. Para fazer isso, você precisará adicionar algum $ PATH. PATH são usados dentro de um terminal para dizer para procurar um arquivo nos diretórios fornecidos por path quando você está executando um comando. Para fazer isso, digite a seguinte linha de comando:

export PATH = / cygdrive / c / altera_lite / 15.1 / quartus / sopc_builder / bin: $ PATH

Em seguida, digite a linha de comando para gerar cabeçalhos de um arquivo sof. Você obtém o arquivo sof compilando seu projeto no Quartus. Para fazer isso, digite:./generate_header.

Etapa 8: Programação C HPS

Programação C HPS
Programação C HPS

Precisamos perceber 2 coisas nesta parte, ou seja, ler, ler o valor do ADC e escrevê-lo no SPI.

1. Leia o valor do ADC

O endereço da memória na qual o ADC está contido não é diretamente acessível, na verdade o sistema Linux presente no cartão configura uma abstração da memória. Para realmente acessar o endereço ADC, usaremos a função mmap.

"h2p_lw_spi_addr = virtual_base + ((longo sem sinal) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (longo sem sinal) (HW_REGS_MASK));"

Esta instrução permite que um deslocamento seja adicionado no início do endereço base para atingir o endereço da memória alocada para o ADC, e realizar no endereço resultante uma lógica E para levar em consideração o mascaramento.

Depois disso, só será necessário desreferenciar o ponteiro no programa para obter seu valor.

2. Escreva o valor do ADC no SPI

A manipulação é idêntica, desta vez damos ao mmap o deslocamento para pousar no endereço alocado pelo SPI. Ao escrever no SPI, a documentação técnica especifica que você deve escrever para o endereço + 1 o valor do adc.

"* (h2p_lw_spi_addr + 1) = ((0x1 << 12) | * h2p_lw_adc_addr);"

Esta instrução permite que você grave no SPI. Na verdade, o bit 4, portanto 1 << 12, é o bit que permite ativar o SPI. Com um OR lógico, damos, portanto, o bit de ativação e o valor do ADC ao SPI.

Etapa 9: Aquisição digital do ADC do cartão

Aquisição digital do ADC do cartão
Aquisição digital do ADC do cartão
Aquisição digital do ADC do cartão
Aquisição digital do ADC do cartão
Aquisição digital do ADC do cartão
Aquisição digital do ADC do cartão
Aquisição digital do ADC do cartão
Aquisição digital do ADC do cartão

Em primeiro lugar, você terá que definir o endereço IP Ethernet do seu computador através do Painel de Controle -> Rede -> Parâmetros da Placa. Selecione a interface ethernet da placa, propriedade, endereço ipv4 e insira um IP fixo, uma máscara etc …

Em seguida, conecte o cartão do lado do conector de alimentação com o cabo micro USB. Abra o programador Quartus e inicie a exportação. Esta manipulação será refeita após cada desligamento do cartão.

Troque o cabo de plugue micro USB, para conectar desta vez ao lado do conector Ethernet. Agora, com o Putty será necessário conectar a placa por link serial. A configuração está visível nas fotos, a ideia é substituir COM5 por COM seguido do número que você encontra no seu gerenciador de dispositivos (clique com o botão direito no logotipo do Windows para abri-lo).

Pressione Enter, você está conectado.

Informações para reiniciar o projeto: - Fixe o ip ethernet correspondente à placa - Ligue a placa, cada vez que ligar a alimentação, é necessário colocar com "programa" sob quartus o projeto compilado na placa. Isso é feito através da porta micro-USB - Para poder exibir o resultado do programa, usamos mais micro USB, mas UART - Com massa configurada para serial COM5 (ou 6 watch gestinnaire periph) Conecte ao cartão. - Defina uma senha (passwd) - Defina o endereço IP ifconfig ethxx IPchoice (IP não muito longe daquele para o eth do PC) - Gere o cabeçalho de acordo com Qsys com o terminal embutido (exportar PATH) - make - scp l exec no map - execute sob o putty o prog

Etapa 10: Cálculo FFT

Cálculo FFT
Cálculo FFT

Para obter a Transformada Rápida de Fourier em nosso programa C, usaremos uma biblioteca escrita por Mark Borgerding: Kiss FFT. Você pode baixar a biblioteca aqui: https://kissfft.sourceforge.net/. Aplicar um FFT em um sinal é necessário para modificar e aplicar efeitos de sinal. Também pode servir para exibir o espectro de um sinal.

O primeiro passo em seu programa C consiste em alocar memória para armazenar o resultado FFT. O tamanho da memória depende do número de pontos usados para calcular o FFT. Quanto mais pontos você tiver, mais exigirá o FFT. No entanto, o programa será executado mais lentamente e usará mais memória. Observe que você obterá duas matrizes da função kiss_fft: a entrada e a saída da função (cx_in e cx_out)

Uma vez que nosso array é preenchido com novos valores FFT, ou seja, quando r = Win - 1, estamos processando o FFT. Em relação ao display, estamos exibindo apenas a parte positiva do espectro, pois existe uma simetria entre a parte negativa e a positiva.

No que diz respeito ao eixo horizontal, estamos reduzindo os valores de pico em 100 * altura / (altura²) a fim de distinguir os picos das frequências principais.

Estamos usando a chamada de sistema usleep para definir uma frequência de leitura para os valores de ADC. Esta frequência está atualmente definida em 1, 5 Hz.

Etapa 11: Exibindo o FFT

Exibindo o FFT
Exibindo o FFT
Exibindo o FFT
Exibindo o FFT

Baseado em um exemplo dado na tela LCD TFT da Adafruit disponível aqui: https://www.terasic.com/downloads/cd-rom/de0-nano-s… nós programamos o NIOS de nossa placa para que ele seja capaz de ler o valor ADC.

Portanto, o registro ADC é compartilhado entre o NIOS e o HPS porque os valores ADC serão usados para exibir o FFT na tela do NIOS, e esses mesmos valores serão escritos no SPI para serem emitidos da placa e finalmente convertidos pelo DAC para obter um sinal analógico.

Etapa 12: Montagem

conjunto
conjunto

Estamos quase terminando! Você precisará montar todas as partes do projeto (circuito de entrada, circuito de saída e placa). Certifique-se de conectar as peças aos pinos corretos de acordo com o Projeto Quartus.

  1. O circuito de entrada enviará o sinal de áudio capturado pelo microfone, amplificado, filtrado e deslocado.
  2. O programa C presente no cartão fará a leitura dos valores do ADC como vimos anteriormente, e o escreverá no SPI para que possamos recuperar o valor no GPIO do cartão.
  3. Então a saída GPIO do SPI irá transmitir as informações que serão decodificadas pelo nosso DAC e amplificadas ao correr até chegar ao alto-falante.

Etapa 13: efeitos sonoros

Efeitos sonoros
Efeitos sonoros
Efeitos sonoros
Efeitos sonoros

O único passo que resta são os efeitos sonoros.

Os efeitos disponíveis são:

  • Filtro de alta frequência
  • Filtro de baixa frequência

Você pode alternar entre os efeitos graças a um botão. Este botão mudará uma variável em nosso programa C, para que possa aplicar o efeito correto.

Etapa 14: [OPCIONAL] Fazendo o capacete

[OPCIONAL] Fabricação do capacete
[OPCIONAL] Fabricação do capacete
[OPCIONAL] Fabricação do capacete
[OPCIONAL] Fabricação do capacete
[OPCIONAL] Fabricação do capacete
[OPCIONAL] Fabricação do capacete

Aqui estamos na etapa mais manual do projeto:

  1. Primeiro, colamos as diferentes partes impressas em 3D do capacete.
  2. Para preencher as lacunas entre as peças coladas, adicionamos um acabamento usando uma caneta 3D.
  3. Polimos os interstícios preenchidos com a caneta e o capacete de forma mais geral para que a pintura se mantenha bem depois.
  4. Pintamos o capacete com 2 camadas: a primeira em preto antracito, de perto, e a segunda de verde primário de longe para dar tons de verde mais escuro.
  5. Finalmente imprimimos o logotipo da nossa escola na lateral do capacete

Recomendado: