Índice:

Sintonizador Ukelele usando LabView e NI USB-6008: 5 etapas
Sintonizador Ukelele usando LabView e NI USB-6008: 5 etapas

Vídeo: Sintonizador Ukelele usando LabView e NI USB-6008: 5 etapas

Vídeo: Sintonizador Ukelele usando LabView e NI USB-6008: 5 etapas
Vídeo: Afinador de Guitarra (Auto Tuner) - Anteproyecto Ingeniería Mecatronica 2024, Novembro
Anonim
Sintonizador Ukelele usando LabView e NI USB-6008
Sintonizador Ukelele usando LabView e NI USB-6008
Sintonizador Ukelele usando LabView e NI USB-6008
Sintonizador Ukelele usando LabView e NI USB-6008

Como um projeto de aprendizagem baseado em problemas para o meu curso de LabVIEW e Instrumentação no Humber College (Tecnologia de Engenharia Eletrônica), criei um afinador de ukulele que receberia uma entrada analógica (tom de corda do ukulele), encontraria a frequência fundamental e decidiria que nota estava tentando para ser afinada e diga ao usuário se a corda precisava ser ajustada para cima ou para baixo. O dispositivo que usei para traduzir a entrada analógica em digital foi o National Instruments USB-6008 DAQ (dispositivo de aquisição de dados), e a interface do usuário foi implementada com LabVIEW.

Etapa 1: ajuste de Ukelele padrão

Ajuste Ukelele Padrão
Ajuste Ukelele Padrão
Ajuste Ukelele Padrão
Ajuste Ukelele Padrão

O primeiro passo foi descobrir as frequências fundamentais das notas musicais e em que extensão as cordas do ukulele são normalmente afinadas. Usei esses dois gráficos e decidi que faria meu tom variar entre 262 Hz (C) e 494 Hz (Alto B). Qualquer coisa abaixo de 252 Hz seria considerada muito baixa para o programa decifrar qual nota estava tentando ser tocada, e qualquer coisa acima de 500 Hz seria considerada muito alta. O programa, entretanto, ainda diz ao usuário quantos Hz eles estão longe da nota decifrável mais próxima, e se a corda deve ser afinada para cima (nota muito baixa) ou para baixo (nota muito alta) para alcançar uma nota disponível.

Além disso, criei intervalos para cada nota, em vez de apenas uma única frequência, para que fosse mais fácil para o programa encontrar a nota que estava sendo tocada. Por exemplo, o programa diria ao usuário que um C está sendo tocado se a nota tivesse uma frequência fundamental entre 252 Hz (meio para B) e 269 Hz (meio para C #), mas para decidir se ela precisava ser afinada ou para baixo, ainda compararia a nota tocada com a frequência fundamental de C, que é 262Hz.

Etapa 2: Criação de um modelo teórico puramente digital

Criando um modelo teórico puramente digital
Criando um modelo teórico puramente digital
Criando um modelo teórico puramente digital
Criando um modelo teórico puramente digital

Antes de mergulhar no lado analógico do projeto, eu queria ver se poderia criar um programa LabVIEW que fizesse pelo menos o processamento principal de uma amostra de som, como ler uma amostra de áudio.wav, encontrar a frequência fundamental e fazer as comparações necessárias com o gráfico de frequência para descobrir se o som deve ser ajustado para cima ou para baixo.

Usei o SoundFileSimpleRead. VI disponível no LabVIEW para ler um arquivo.wav de um caminho que designei, coloquei o sinal em um array indexado e alimentei esse sinal no HarmonicDistortionAnalyzer. VI para encontrar a frequência fundamental. Também peguei o sinal do SoundFileSimpleRead. VI e o conectei diretamente a um indicador de gráfico de forma de onda para que o usuário pudesse ver a forma de onda do arquivo no painel frontal.

Criei 2 estruturas de caso: uma para analisar qual nota estava sendo tocada e a outra para determinar se a corda precisava ser aumentada ou diminuída. Para o primeiro caso, criei faixas para cada nota e, se o sinal de frequência fundamental do HarmonicDistortionAnalyzer. VI estivesse nessa faixa, ele diria ao usuário qual nota estava sendo tocada. Uma vez que a nota foi determinada, o valor da nota tocada foi subtraído pela frequência fundamental real da nota, e então o resultado foi movido para o segundo caso que determinou o seguinte: se o resultado estiver acima de zero, então a corda precisa ser afinada; se o resultado for falso (não acima de zero), o caso verifica se o valor é igual a zero e, se verdadeiro, o programa notifica o usuário de que a nota está afinada; se o valor não for igual a zero, significa que deve ser menor que zero e que a string precisa ser ajustada. Peguei o valor absoluto do resultado para mostrar ao usuário quantos Hz eles estão longe da nota verdadeira.

Decidi que um indicador de medidor seria o melhor para mostrar visualmente ao usuário o que precisa ser feito para tornar a nota afinada.

Etapa 3: a seguir, o circuito analógico

Em seguida, o Circuito Analógico
Em seguida, o Circuito Analógico
Em seguida, o Circuito Analógico
Em seguida, o Circuito Analógico
Em seguida, o Circuito Analógico
Em seguida, o Circuito Analógico

O microfone que usei para este projeto é o microfone de eletreto condensador CMA-6542PF. A folha de dados para este microfone está abaixo. Ao contrário da maioria dos microfones condensadores deste tipo, não precisei me preocupar com a polaridade. A ficha técnica mostra que a tensão de operação para este microfone é 4,5 - 10 V, mas 4,5 V é recomendado, e seu consumo de corrente é 0,5 mA máximo, então isso é algo para se ter cuidado ao projetar um circuito de pré-amplificador para ele. A frequência de operação é de 20 Hz a 20 kHz, o que é perfeito para áudio.

Implementei um design de circuito de pré-amplificador simples na placa de ensaio e ajustei a tensão de entrada, garantindo que não houvesse mais do que 0,5 mA no microfone. O capacitor é usado para filtrar o ruído DC que pode ser acoplado junto com os sinais elétricos (saída), e o capacitor tem polaridade, então certifique-se de conectar a extremidade positiva ao pino de saída do microfone.

Depois que o circuito foi concluído, conectei a saída do circuito ao primeiro pino de entrada analógica (AI0, pino 2) do USB-6008 e conectei o aterramento da placa de ensaio ao pino de aterramento analógico (GND, pino 1). Eu conectei o USB-6008 ao PC com um USB e era hora de fazer ajustes no programa LabVIEW para obter um sinal analógico real.

Etapa 4: Leitura de sinais analógicos com DAQ Assistant

Leitura de sinais analógicos com DAQ Assistant
Leitura de sinais analógicos com DAQ Assistant
Leitura de sinais analógicos com DAQ Assistant
Leitura de sinais analógicos com DAQ Assistant

Em vez de usar SoundFileSimpleRead. VI e HarmonicDistortionAnalyzer. VI, usei o DAQ Assistant. VI e o ToneMeasurements. VI para lidar com a entrada analógica. A configuração do DAQ Assistant é bastante simples, e o próprio VI o conduz pelas etapas. O ToneMeasurements. VI tem muitas saídas para escolher (amplitude, frequência, fase), então usei a saída de frequência que fornece a frequência fundamental do tom de entrada (do DAQ Assistant. VI). A saída de ToneMeasurements. VI teve que ser convertida e colocada em um array antes que pudesse ser usada nas estruturas de case, mas o resto da programação / indicadores do LabVIEW permaneceu o mesmo.

Etapa 5: Conclusão

Conclusão
Conclusão

O projeto foi um sucesso, mas definitivamente havia muitas falhas. Quando eu estava operando o sintonizador em uma sala de aula barulhenta, era muito difícil para o programa determinar o que era ruído e qual era o tom que estava sendo tocado. Isso provavelmente se deve ao fato de o circuito do pré-amplificador ser muito básico e o microfone ser muito barato. Quando estava quieto, no entanto, o programa funcionava com boa confiabilidade para determinar a nota que estava tentando ser tocada. Devido a limitações de tempo, não fiz nenhuma alteração adicional, mas se fosse repetir o projeto, compraria um microfone melhor e gastaria mais tempo no circuito do pré-amplificador.

Recomendado: