Muitos microprocessadores modernos, como o MSP430 da Texas Instruments, possuem recursos tais como memória Flash embutida, que permitem aplicações que envolvem o processamento de sinais em tempo real. Uma possibilidade importante que analisamos neste artigo é justamente a implementação de gravadores de voz de curta duração, os quais podem ser usados em diversos automatismos. Veja neste artigo como é possível usar um microprocessador como gravador de voz.

 

 

Microprocessadores como o MSP430 possuem memórias flash “in system programmable” ou ISP, as quais podem ser usadas em aplicações em envolvam o processamento de sinais em tempo real.

 

Uma dessas aplicações, muito solicitada por muitos desenvolvedores, é justamente o gravador de voz. Numa aplicação desse tipo, o microprocessador converte sinais analógicos, como o que corresponde aos sons captados por um microfone em sinais digitais que são armazenados na memória Flash integrada para que depois, a qualquer instante esses sinais possam ser recuperados por um conversor digital para analógico, amplificados e reproduzidos. Na figura 1 temos a estrutura básica de um gravador desse tipo, que vamos analisar neste artigo.

 

Tomamos como exemplo, para analisar o princípio de funcionamento de um gravador deste tipo, o microprocessador MSP430F149 que possui uma memória flash e um conversor ADC interno de 12 bits. Com esse microprocessador é possível implementar um gravador de voz com tempo de gravação de até 6 segundos, exigindo para a alimentação uma tensão de apenas 3 V. A corrente vai depender basicamente do amplificador de potência usado.

Para que o leitor entenda exatamente como um microprocessador pode ser usado nesta função será interessante analisarmos como sinais de áudio podem ser convertidos para a forma digital, armazenados e depois convertidos novamente para a forma analógica para reprodução.

 

 

Digitalizando um Sinal de Áudio

Um sinal de áudio é um sinal analógico que corresponde a uma tensão que varia de forma contínua em tempo real. Na figura 2 temos uma representação de um sinal de áudio que corresponderia à um instante de emissão da voz humana.

 

Para armazenar esse sinal na memória de um microprocessador precisamos convertê-lo para a forma digital. O que se faz então é dividir o sinal em instantes e tomar o valor da amplitude do sinal em cada um desses instantes. Esse valor é então convertido para a forma digital, ou seja, uma representação na forma de zeros e uns.

No entanto, para que o sinal possa ser registrado de uma maneira que depois possa ter sua forma de onda reproduzida com fidelidade ou próxima disso, em cada ciclo da freqüência máxima que ele pode assumir, devemos pelo menos ter 2 amostragens por ciclo, conforme mostra a figura 3.

Um número menor de amostragens não leva a possibilidade de se reproduzir o sinal original, pelo critério de Nyquist. Assim, se vamos digitalizar um sinal de áudio, convertendo-o a uma seqüência de valores binários (0 e 1), a taxa de amostragem, ou seja, a quantidade de vezes que tomamos os valores da amplitude deve ser pelo menos 2 vezes a freqüência máxima que o sinal de áudio a ser registrado assume. É claro que maior número implica em maior fidelidade.

Num CD, por exemplo, a taxa de amostragens é de 44,1 ksps (sps = samples per second – amostragens por segundo), o que leva a possibilidade de reproduzirmos sinais numa faixa que chega aos 20 kHz ou mesmo 24 kHz com fidelidade. Isso é mais do que suficiente para uma boa reprodução já que nossos ouvidos raramente alcança mais do que 18 kHz.

É evidente, que num microprocessador que tenha uma memória pequena, por exemplo, 10 k uma taxa de amostragem muito alta significaria uma redução do tempo de gravação. Por exemplo, se tivermos uma memória de 64 k e fizermos a amostragem numa taxa de 6 k sps para permitir a gravação de sons até uns 3 kHz que corresponde ao limite superior da faixa da voz humana, nosso tempo de gravação ficará limitado a pouco mais de 10 segundos, conforme mostra a figura 4.

 

Em outras palavras, o tempo máximo de gravação previsto está condicionado a dois fatores: a fidelidade (faixa passante) que desejamos e o tempo de gravação. Aumentando um, diminui o outro.

Mas, uma vez convertido para a forma digital, o sinal pode ser facilmente gravado na memória e ficar pronto para recuperação a qualquer momento. Se a memória for grande o suficiente para admitir uma divisão, podemos usá-la para mensagens diferentes que podem ser recuperadas em função de comandos externos, conforme mostra a figura 5.

 

Assim, num automatismo para carro, podem ser gravadas mensagens tipo “porta aberta”, “farol aceso”, “colocar cinto” que serão ativadas quando sensores apropriados enviarem seus sinais a CPU.

 

 

A Recuperação do Sinal

Nossos ouvidos e os transdutores que geram sons como os alto-falantes, são dispositivos analógicos. Para reproduzir a mensagem gravada na memória de um microprocessador precisamos fazer uma conversão digital para analógica.

Para isso, conforme mostra a figura 6, o sinal retirado da memória passa para um DAC e depois um filtro para finalmente ser amplificado e aplicado a um alto-falante.

 

Vamos analisar como funciona essa conversão. O sinal digital consta de valores instantâneos da amplitude do sinal que foram amostrados numa certa velocidade. Para que a recuperação do sinal seja perfeita, esse sinal deve ser reconvertido para a forma analógica na mesma velocidade com que foi amostrado. Pelo contrário teríamos diferenças na freqüência do sinal obtido.

Assim, o que o conversor digital para analógico faz é converter cada instante em que o sinal for amostrado numa tensão equivalente. O resultado é uma forma de onda com “degraus” que correspondem aos valores amostrados, conforme mostra a figura 7.

 

Evidentemente, essa forma de onda não corresponde ao sinal original, e os degraus, se aplicados a um amplificador seriam interpretados como uma forma de onda rica em harmônicas que se estenderiam até uma grama de freqüências indesejável e até capaz de causar problemas de funcionamento. Para que o sinal seja recuperado em sua forma de onda origina, ele deve antes passar por um filtro que “suaviza” as transições bruscas do conversor, aproximando assim o sinal da forma original, conforme mostra a figura 8.

 

Esse filtro é justamente calculado para permitir que o sinal recuperado ocupe somente uma banda de freqüências que se aproxime daquela ocupada pelo sinal original e mais do que isso, que possa ser trabalhada convenientemente pelo amplificador de áudio que é o próximo bloco do circuito. Nas aplicações práticas, como a gama de freqüências de operação do filtro está na parte baixa do espectro, amplificador operacionais comuns podem ser usados sem problemas. Na figura 9 temos um exemplo de filtro implementado com o amplificador TLV2252 da Texas Instruments, num gravador com o MSP430 e usando como DAC o TLV5616.

 

A partir desse ponto do circuito, é só aplicar o sinal num amplificador de áudio cuja potência depende apenas da aplicação. A fonte de alimentação, conforme informamos é de apenas 3 V para o setor microprocessado. Eventualmente o amplificador de potência, dependendo da aplicação pode exigir uma tensão maior.

 

 

Para Saber Muito Mais

Demos como exemplo de possibilidade de utilização de um microprocessador na gravação de voz a aplicação do MSP430 da Texas Instruments. O circuito básico com esse componente é mostrado na figura 10.

 

No entanto, muito mais do que esse circuito, um projeto completo envolve a adição do amplificador de entrada, DAC, filtro, amplificador e, evidentemente, a programação. No projeto original da Texas a taxa de amostragem é feita numa freqüência de 5,5 kHz, com uma faixa passante limitada a 2,7 kHz. O som é digitalizado em 12 bits e obtém-se um tempo de gravação da ordem de 6 segundos. Comprimindo os dados com o armazenamento em 8 bits pode-se obter um tempo de gravação de 12 segundos.

Para os leitores que já sabem programar e trabalhar com esse componente acreditamos que não existem dificuldades. No entanto, se o leitor é um desenvolvedor que deseja  saber tudo sobre o assunto, principalmente como programar o MSP430 e usar em outras aplicações sugerimos um curso prático.