Página 1 de 2

Como garavar AUDIO no PIC16F628 ??

MensagemEnviado: 01 Nov 2006 13:07
por Valdomiro
Olá Pessoal,

Sou inicniante em PIC e gostaria de saber se é possível gravar áudio no PIC16F628.

O que eu preciso são apenas 3 segundos de aúdio ( ou até um pouco menos).... E não preciso de muita qualidade.

Agradeços a todos que puderem colaborar comigo.

{}'s
Valdomiro

MensagemEnviado: 01 Nov 2006 13:17
por Fábio Pereira
A resposta mais simples é não:

1) O 16F628 não tem conversor A/D;

2) O 16F628 não tem memória suficiente;

Você poderia utilizar um PIC com conversor A/D interno, ou utilizar um conversor externo. Também seria necessário utilizar uma memória externa para armazenar o audio digitalizado.

Até +

MensagemEnviado: 01 Nov 2006 13:39
por Valdomiro
Fabio Pereira !
Grande.

Obrigado pela resposta.

É um prazer falar com alguém tão envolvido com o PIC. Possuo seus dois livros e gostaria de parabenizá-lo pelo seu empenho profissional.

Na verdade o que eu preciso é reproduzir um "Espirro" imitando um Turbo de motores de carro.

Pensei em usar a saida PWM do pic, mas não não entendo o suficiente para isto.

Também já pensei em usar um CI dedicado para armazenar o audio. Mas acho que uma solução com PIC seria mais viável.

Como "áudio" não é minha área, estou tendo muita dificuldade em efetuar os calculos para a reprodução do "chiado" caracterísico do turbo.

Você saberia me informar onde consigo alguém que desenlvolva apenas o som na saida PWM (se é que seja possível) ?... ( não poderia ser muito caro..)


Muito Obrigado.
Valdomiro

MensagemEnviado: 01 Nov 2006 14:38
por Fábio Pereira
Bom,

Não sei se este sistema tem a qualidade que você precisaria, mas dê uma olhada no sistema desenvolvido pelo Roman Black: http://www.romanblack.com/picsound.htm

Até +

MensagemEnviado: 01 Nov 2006 14:47
por proex
Eu até que poderia desenvolver isso ai mas nao nas condiçoes que vc precisa.

Vc deve levar em consideraçao algumas coisinnhas importamtes:

Saidas PWM são ruidosas para Audio, o ideal é que a frequecia do PWM seja 10 vezes maior que a maior frequencia de audio a ser reproduzida.

Se nao for assim, vc terá uma reproduçao cheia de ruidos.

Com um PIC barato, trabalhando com ckock de 20 Mhz, a maxima frequencia do PWM que vc conseguirá será de 19Khz (e alguns quebrados)

Nesse caso, a maxima frequencia de audio que poderá ser reproduzida é de 1,9Kz. Reproduçao essa agradavél aos ouvidos e sem muito ruido.

Como o tipo de som que vc precisa esta situado na regiao das altas frequencias do espectro de audio, fica dificil conseguir o som parecido com o original do turbo do carro.

O Ideal mesmo seria fazer a conversao no modo PCM com um conversor DA de 12 bits e Sampling Rate de 22Khz. Facil de se conseguir com os DAs seriais da propria Microchip.

O Arquivo de som a ser reproduzido poderia ficar gravado numa memoria serial. O Pic lê a memoria e envia o dado lido para o conversor DA.

Neste caso qualquer Piczinho barato serviria.

ola proex

MensagemEnviado: 01 Nov 2006 20:21
por Vonnilmam
Me desculpa, não ter te ligado ainda. Estou envolvido com um novo produto que será lançado se Deus me ajudar ainda esse mes...

Preciso ir aí, trocar algumas ideias com voce meu caro!

Pegando nesse gancho do gravador de audio, gostaria de lhe perguntar?

Bom acho que vc se refere ao um desses dacs para audio i2s tipo tda1311a da philips 16 bits...

Uma pergunta que acredito ajudará muito o nosso amigo! Como voce descarrega os dados sampleados na eeprom por ex. para o dac i2s?
Que tipo de protocolo voce usaria? Vou dar uma arriscada! Seria enviar uma sequencia da eeprom no forma i2c para o dac passando pelo pic é claro....Se não for esse o Drive diga-se de passagem, qual seria?

Até Mais...
NOTA: Eu estou arranhando alguma coisa no altera, sera que eu consigo fazer pelo menos um pisca-pisca...heheh!

Marcos vonnilmam

Re: ola proex

MensagemEnviado: 01 Nov 2006 22:22
por Renie
Olá pessoALL!

O projeto indicado pelo Fabio, do Ronam Black, é o mais simples que ví até hoje em termos de pseudo Codec, um PIC Codec!

Se tiverem alguma dúvida,o Roman acredito que responda, há alguns
anos quando ví o projeto dele, me respondeu prontamente ( apesar
do meu ingrês ruim!)

MensagemEnviado: 01 Nov 2006 22:32
por msamsoniuk
eu acho que tem grandes chances desse ruido ser simples de reproduzir matematicamente, sem precisar armazenar nenhuma unica amostra de audio. voce poderia digitalizar ele em um PC, analisar com o baudline (www.baudline.com) e ver se o ruido segue alguma logica que possa ser gerada matematicamente. e no lugar de usar PWM, monta um DA com resistor mesmo :) hehehe

MensagemEnviado: 02 Nov 2006 09:08
por proex
Vonnilmam, a sequencia é essa mesma que vc mencionou, lêr a memoria (i2c ou Spi) e enviar o dado lido pro DA (i2c ou Spi).

Bem, essa é uma solução "elegante" pois vc pode gravar o som original do turbo e depois reproduzi-lo.

Agora se o problema for custo, eu faria um gerador de ruido branco ligado a' um VCA, um gerador de envelope dipararia o VCA com envelope igual ao som do turbo.

MensagemEnviado: 03 Nov 2006 09:45
por lrfad2
Proex,
A winbond tem um chip que pode resolver o seu problema sem muito esforço (e gastos com hw... rs.. )
Dá uma olha em http://www.winbond-usa.com/mambo/content/view/36/140/
A linha ISD1400 deve resolver o seu problema

MensagemEnviado: 03 Nov 2006 11:34
por proex
Sim, essa linha ISD é muito conhecida mas é pra gravar sinais na banda de voz.

Mas o que o pessoal talvez não esteja entendendo é que o sopro do turbo esta situado entre 8khz e 12Khz. Esse chips ai nao vao reproduzir essa banda pois esses chips foram feitos pra gravaçao de voz cuja banda esta entre 200Hz á 3,8Khz.

O método proposto por Ronam Black é interessante mas continua sendo para reproduçao da banda de Voz.

Se vc gravar o sopro do turbo no ISD ou pelo método proposto por Ronam Black, claro que vc terá na saida um sinal de audio mas vai ser uma imitaçao porca do sinal original. Vai parecer que o "Turbo" do cara esta bichado.

É isso.

MensagemEnviado: 07 Nov 2006 12:16
por Jagger
Legal. Essa discussão veio em boa hora. Gostaria de fazer um projeto que envolverá comando de voz. Preciso não mais de 5 segundos. O que os amigos mais experientes me sugerem? Estou pensando em conectar u microfone ao ADC do PIC e criar uma rotina na qual eu acionaria um botão e falaria ao microfone para gravação do comando. Mas ficam as dúvidas:
1-Qual a freqüência de amostragem para a voz?
2-Como saber a quantidade de memória que eu necessito para esses 3 segundos?
3-Como eu faria para comparar a voz gravada com um novo comando? Faria uma comparação bit a bit? Nesse caso jamais conseguiria reproduzir o mesmo comando...

MensagemEnviado: 07 Nov 2006 12:44
por Fábio Pereira
Nossa Jagger,

Aí o buraco é MUUUUUUUITO mais embaixo.

Reconhecimento de voz é muito mais complexo do que uma simples comparação bit a bit.

Sugiro que você pesquise mais sobre o assunto.

Ps.: uma vez li um artigo na Circuit Cellar sobre um chip de reconhecimento de voz. É uma solução single-chip, mas não deve ser muito barata.

Você poderia tentar no site deles: www.circuitcellar.com

Até +

MensagemEnviado: 07 Nov 2006 16:15
por Jagger
Muitíssimo obrigado, Fábio. Vou seguir sua sugestão.

Um forte abraço.

MensagemEnviado: 10 Nov 2006 18:53
por baltazar
Senhores,

Desenvolvi um projeto utilizando o ISD4004-8M, com gravação "manual" das mensagens de voz.

Pois bem, o ISD funciona exclusivamente como playback, ou seja, as mensagens são gravadas apenas uma vez e depois constantemente reproduzidas.

O problema é que esse modo de gravação se tornou completamente inviável quando o produto entrou em linha de produção e não estou conseguindo encontrar nenhum "programador" para esse componente.

Algum dos amigos sabe se existe, e onde posso encontrar algo do tipo??

A situação já está ficando desesperadora aqui... :shock:

Abraços!