Índice:
- Etapa 1: Requisitos 1/3 - Hardware
- Etapa 2: Requisitos 2/3 - Componentes para seu circuito
- Etapa 3: Requisitos 3/3 - Software
- Etapa 4: Circuito de entrada
- Etapa 5: Circuito de Saída
- Etapa 6: [OPCIONAL] Criando Borad de Circuito Impresso e Componentes de Solda
- Etapa 7: Configuração do SoC
- Etapa 8: Programação C HPS
- Etapa 9: Aquisição digital do ADC do cartão
- Etapa 10: Cálculo FFT
- Etapa 11: Exibindo o FFT
- Etapa 12: Montagem
- Etapa 13: efeitos sonoros
- Etapa 14: [OPCIONAL] Fazendo o capacete
Vídeo: Capacete Spartan Voice Changer: 14 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
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
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
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
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
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
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
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
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
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
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
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
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
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.
- O circuito de entrada enviará o sinal de áudio capturado pelo microfone, amplificado, filtrado e deslocado.
- 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.
- 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
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
Aqui estamos na etapa mais manual do projeto:
- Primeiro, colamos as diferentes partes impressas em 3D do capacete.
- Para preencher as lacunas entre as peças coladas, adicionamos um acabamento usando uma caneta 3D.
- Polimos os interstícios preenchidos com a caneta e o capacete de forma mais geral para que a pintura se mantenha bem depois.
- 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.
- Finalmente imprimimos o logotipo da nossa escola na lateral do capacete
Recomendado:
Capacete de segurança Covid Parte 1: uma introdução aos circuitos do Tinkercad !: 20 etapas (com fotos)
Capacete de segurança Covid Parte 1: uma introdução aos circuitos do Tinkercad !: Olá, amigo! Nesta série de duas partes, aprenderemos como usar os circuitos do Tinkercad - uma ferramenta divertida, poderosa e educacional para aprender como os circuitos funcionam! Uma das melhores maneiras de aprender é fazendo. Então, vamos primeiro criar nosso próprio projeto: o
Capacete de disco para impressão em 3D !: 11 etapas (com fotos)
Capacete Disco 3D para impressão !: Inspirado no capacete clássico Daft Punk 'Thomas'. Ilumine o ambiente e cause inveja a todos os seus amigos com este incrível capacete disco com Arduino! Você precisará de acesso a uma impressora 3D e um ferro de solda para concluir este projeto
Capacete de LED para bicicleta: 6 etapas (com fotos)
Capacete de LED para bicicleta: aqui está como adicionar LEDs de segurança ao seu capacete de bicicleta usando tinta condutora. Eu estava sempre perdendo aquelas luzes que você prendia na bicicleta, e elas não eram baratas ou de boa qualidade. Materiais: tinta condutora epóxi condutora epóxi de 5 minutos (cola quente para crescimento
Capacete de ciclismo com ar condicionado (feito de computadores reciclados): 5 etapas (com fotos)
Capacete de ciclismo com ar condicionado (feito de computadores reciclados): Este capacete com os ventiladores nos orifícios suga o ar da sua cabeça e você pode senti-lo subir pelo rosto e descer pelos lados da cabeça! Muito bom para andar de bicicleta em dias de sol e muito calor. Os LEDs também ajudam nas pedaladas noturnas! Todas as partes
TECHNO VIKING! Chifres de LED em um capacete Viking espacial: Indicador de volume + Capacete Viking transucente: 6 degraus
TECHNO VIKING! Chifres de LED em um capacete Viking espacial: Indicador de volume + Capacete Viking Transucente: Sim! Este é um capacete para Space Vikings. *** Atualização, deveria ser renomeado Capacete Techno Viking *** Mas é outubro de 2010 e eu acabei de aprender sobre o Techno Viking hoje. Bem atrás da curva de meme. Whateva 'Aqui está ele com maior productio