Processamento de um sinal vindo de um módulo Node MCU ESP 8266 usando LabView.

1. Processamento de um sinal vindo de um módulo Node MCU ESP 8266 usando LabView.

Enio Vieira Soares
eniovieiraa

(usa Nenhuma)

Enviado em 29/03/2018 - 15:02h

Estou usando o módulo Node MCU ESP 8266 para fazer a leitura analógica de um sinal que possui componentes de até 40 Hz de um sinal de eletroencefalograma para um trabalho de iniciação científica da universidade. Estava com um problema de corte do sinal que consegui resolver acrescentando um delay no código. Desta forma, o módulo é programado para servir como ponto de acesso onde o meu computador (cliente) acessa usando o protocolo TC/IP. Assim quando um cliente acessa meu módulo, o mesmo passa a enviar as informações que serão recebidas pelo computador. Fiz um programa no Labview para receber essas informações e mostrar os dados brutos num gráfico, mas preciso aplicar alguns filtros digitais neste software e avaliar o espectro de freqüência deste sinal. Vou colocar aqui tanto meu código em linguagem arduino que programei o módulo, quanto o .VI para você entender melhor. Eu poderia usar um protocolo UDP mas não conseguir programar meu módulo para usar esse protocolo.
A forma como eu reduzi a taxa de amostragem acho que não é a da mais elegante, mas não consegui achar outra forma que eu pudesse, por exemplo, mudar o prescaler que faz mudar a taxa de amostragem desse módulo. Vou postar uma figura de um sinal senoidal mostrado no gráfico do LabView antes de eu colocar o delay. E com o delay a forma está sem esses cortes na senoide, ou seja, está mostrando uma senoide normal.
Pelo o que pesquisei e conversei com alguns professores, a taxa de amostragem estava muito alta, assim, caso algum pacote de dados não fosse enviado corretamente o módulo não tinha tempo suficiente para reenviar o pacote e receber os novos dados para um novo pacote de dados. Então começava dar erro e cortar o sinal no gráfico.
Agora o problema está em aplicar alguns filtros digitais neste software e avaliar o espectro de freqüência deste sinal. Pelo o que entendi do LabView, para realizar essas tarefas o sinal precisa ter uma taxa de amostragem do sinal fixa. Então fiz uma pequena rotina para ver se pelo menos a taxa de amostragem do sinal pelo módulo era constante e verifiquei que já ali não era. Vi leituras de tempo entre 160 us até 180 us entre uma amostra e outra sem o delay de 4ms que está no código. Acho que no envio das informações pode ocorrer alguma variação e até no LabView alguma variação nesses valores, tomara que eu esteja enganado.
Para tentar resolver esse problema tentei usar alguns blocos do LabView que pudessem me auxiliar na resolução deste problema e foram basicamente 3: Build Waveform, Align and Resample Express VI, Resample Waveforms (single shot). Minha idéia foi reconstruir minha forma de onda com uma taxa de amostragem pré-determinada por mim. Mas acho que não sei usar essas ferramentas corretamente. Tentei de várias maneiras e infelizmente não obtive êxito.

O link para baixar meu programa .VI e programa arduino é: https://drive.google.com/drive/folders/1_FItfUE8IW52u7Ec4WdggadKnMH7QR5O?usp=sharing


  


2. Pergunta.

Enio Vieira Soares
eniovieiraa

(usa Nenhuma)

Enviado em 29/03/2018 - 15:35h

Alguém pode me ajudar a resolver esse problema?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts