Duvidas no projeto  


0

Boa Noite Claudio, como vai?

Eu montei  o PAINEL ORGANIZADOR DE FILA ÚNICA ( FALANTE). funcionou perfeitamente, Parabens pelo projeto!

Preciso de ajuda! Gostaria de mudar a fala! No artigo explica como converter  pelo BTC. aí tudo tranquilo.    A minha dúvida é;

- como gerou a exteção . bin? existe outro programa para gerar esta extenção? como como gravar cada mensagem de voz pra cada numero?

é necessário mexer no programa do pic? ou só na bios! Por Favor me ajude se possível me mande um tutorial passo a passo. valeu! Deus te abençõe!

 
0

Olá Geraldo!

Como gravar?

opção 1) Poderá ser a sua voz, ou de alguém com boa voz em um estúdio com bom isolamento acústico. Poderá usar o programa Audacity com bons microfones para obter uma gravação de boa qualidade. Este programa permite editar os sons gravados e alterar a frequência de amostragem. Veja o ajuda do Audacity para entender melhor seus recursos. Salve os arquivos com extensão .wav.

opção 2) Capturar mensagens pré-gravadas de videos, musicas, etc. (cuidado com direitos autorais se for para uso em equipamento comercial)

Use também o Audacity para capturar estes sons nos pedaços desejados.

opção 3) Use programas Text-to-Speech  com Watson, Soar, etc. Grave a reprodução com o Audacity.

Até aqui você já obteve vários arquivos .wav.

Precisa transforma-los para mono e na frequência de amostragem correta a ser usada no PIC. Use o programa BTC do Roman Black para isto.

Temos que pegar todos estes arquivos e junta-los em um único arquivo. Use programa editores de arquivos .hex ou .bin para isto.

Use o FrHed, pois acho bem prático.

Abra o primeiro arquivo com ele e anote em um papel o endereço inicial e o endereço do último byte. Coloque um nome para este arquivo para saber depois o que tem nele. Ex. bom_dia 0x00- ox589f  (nome do arquivo, inicio e fim)

No caso do painel organizador falante optei em usar apenas o endereço inicial e coloquei um 0x22 no lugar do último byte para servir de parada (porque 0x22? Deveria ser 0x00, mas deu na telha de colocar 0x22. )

O FrHed permite concatenar arquivos. Concatene o próximo e anote o nome e endereço da mesma forma (ex. compre_aqui 0x58a0 - 0x10879)

(Coloque o 0x22 no último byte se for para usar com o Painel organizador falante)

Concatene todos formando um só arquivo. Salve este arquivo com extensão .bin no próprio FrHed.

Pronto. Temos um arquivo .bin para ser gravado em uma memória flash que tenha capacidade sobrando para estes arquivos. Cuidado para não ultrapassar a capacidade da  memória.

Mudou os sons, tem também que mudar o programa do PIC. Isto porque ele vai buscar na memória externa e precisa saber onde buscar.

Use o que você anotou no papel para informar nas linhas de código onde buscar cada som correspondente com a linha de código. Se for usar o programa do organizador falante apenas precisa alterar o endereço inicial do som na memória. Altere em:

/*==============================================================================
ROTINAS DE ENDEREÇAMENTO DA FLASH 25P10 PARA CADA SOM GRAVADO
==============================================================================*/

 

void fala_um(){
reproduzir(0x00);//um    ////o que está entre parênteses é o endereço inicial que você anotou no papel ao concatenar arquivos com FrHed
}

.........

void fala_nome_montagem(){
reproduzir(0x23f10);//21f10
}

Altere o que desejar e recompile o arquivo do PIC com o CCS C Compiler para obter um novo arquivo .hex para o PIC.

Lembrando que a Flash será gravada com o arquivo .bin obtido através da concatenação dos vários sons por meio do FrHed.

Use o programador de flash de sua escolha ou o sugerido no artigo.

Para uma melhor compreensão, por favor, leia os tutoriais REF241, REF282,REF288 e REF292.

Muito obrigado! Deus abençoe

Boa noite ,Claudio! Me desculpe pelo incomodo e insistência:

Consegui gravar os arquivos .wave e editar no BTC. neste caso foram 10 arquivos .wave cada um com nomes diferentes.

Ainda não entendi como  juntar no Frhed todas as falas pra transformar  em um só .bin

E também fiquei confuso em saber onde fica cada inicio e fim dos numeros que tem que ser anotado.

Uma pergunta! Se a gravação for mais rápida,  exemplo:( caixa um, caixa dois......) automaticamente ao acionar outro controle a troca se tornará mais Rápida? Porque no modelo original costuma demorar uns Tres segundos pro Proximo comando.

Se possível me mandar algum video ou print scrin . pra mim entender melhor, ficarei muito Grato!

Desculpe por mim não ter entendido direito! sou meio devagar.rsrs!!!

Deus Te abençõe sempre.

0

O FrHed permite concatenar vários arquivos para formar um só. Supondo que todos os seus arquivos já estejam no tamanho correto e foram editados para eliminar cabeçalhos, espaços longos demais de silêncio, ganho correto do sinal, etc. então faça o seguinte:

Abra o FrHed clicando em seu atalho na tela de trabalho.
Clique em "File" abrindo a caixa com opções: clique em "Open" e escolha o primeiro arquivo que vai juntar. O endereço inicial será 0x00 (óbvio) e o final o último valor que o arquivo tiver. Olhe bem a última linha do arquivo usando o cursor para descer até o final do arquivo. Verá o último byte e depois um "underline". Clique  em cima do último byte.

Suponha que este byte tenha o valor 0x0a e que todo o arquivo tenha 2883 bytes. Veja agora no rodapé do FrHed que irá aparecerá:
Offset 2882=0xb42 bits=00001010 (o valor que tem o último byte, no caso 0x0a)

Este valor de Offset será usado com endereço final para o primeiro arquivo de som e somando mais um, será o endereço inicial do próximo arquivo de som que irá juntar.
Nesta hora você poderá trocar este último byte por um 0x22 (parada).
Como juntar o próximo?
Clique em cima do último byte para indicar onde vai fazer a inserção do próximo arquivo. Vá em "File" depois na caixa que abre clique em "Insert File". Abrirá um caixa onde você poderá escolher o próximo arquivo a ser juntado. Clique depois de escolher em "Abrir".
Você verá o que foi inserido tudo em cor amarela. Vá ate o final do arquivo amarelo com o cursor e clique no último byte. Anote o novo valor do Offset como sendo o endereço final do arquivo 2 e some mais 1 e anote como endereço do próximo arquivo (3). Aproveite para mudar este último byte para 0x22 (parada). Continue fazendo isto até acabar de colocar todos os arquivos que desejar. Quando acabar, vá em "File" abrindo a caixa com opções e então clique em "Save as", abrindo uma caixa para você dar o nome. Escolha um nome qualquer com extensão .bin. (ex. MeuArquivoMultiplo.bin) , não se preocupe com a caixa de baixo que irá indicar "All Files (*)". Escolha onde deseja salvar e então clique em "Salvar". Pronto, já terá seu arquivo .bin para gravar a sua Flash.

Recapitulando:
Abra o primeiro arquivo .wav com o FrHed e os outros você faz inserção no final de cada arquivo anterior. Marque os Offsets como endereço final do arquivo inserido e some mais um para ser o endereço inicial do próximo arquivo a ser inserido. Se optar por usar somente o endereço inicial para a reprodução, precisará colocar o byte de parada no último byte de cada arquivo de som concatenados.

Quanto a gravação se for mais curta, com certeza irá liberar a recepção mais cedo para nova entrada.

Tente fazer, se não conseguir fique a vontade para perguntar novamente. Acredito que outros colegas usem outros métodos. Também poderão sugerir estes métodos neste fórum se desejarem.

Editado: 3 semanas  atrás

Bom dia Claudio! Me perdoe!

Quebrei a cabeça, ainda não sei o que estou fazendo de errado,fiquei um tempão tentando,fiz varias vezes, ainda não deu certo!

Se não for te pedir muito, já me sinto te encomodando,se possível; deixarei  meu  E_mail; gsnsoares@yahoo.com.br . Para que vc por Gentileza me retorne neste e-mail para que eu te envie um arquivo zipado com as dez falas  .wave, para que voce possa transformar em .bin pronto pra mim gravar na bios, e as anotações dos numeros pro programa do pic.

Ficarei muito Grato e Feliz.

Desculpe! tenho pouquissima Experiencia.Valeu! Deus abençoe.

0

Bom dia Claudio! Me perdoe!

Quebrei a cabeça, ainda não sei o que estou fazendo de errado,fiquei um tempão tentando,fiz varias vezes, ainda não deu certo!

Se não for te pedir muito, já me sinto te encomodando,se possível; deixarei  meu  E_mail; gsnsoares@yahoo.com.br . Para que vc por Gentileza me retorne neste e-mail para que eu te envie um arquivo zipado com as dez falas  .wave, para que voce possa transformar em .bin pronto pra mim gravar na bios, e as anotações dos numeros pro programa do pic.

Ficarei muito Grato e Feliz.

Desculpe! tenho pouquissima Experiencia.Valeu! Deus abençoe.

 
0

Olá Geraldo!

Gostaria muito que você pudesse aprender a fazer. Nem sempre tenho tempo disponível para fazer o que me pedem e são muitos pedidos além do seu. Isto é apenas um hobby de final de semana. Também, muitas vezes a saúde fraca me impede de ficar na frente de um PC ou mesmo na bancada,  tendo de ficar de molho na cama.  A parte disto, você conseguiu baixar e abrir o FrHed? Conseguiu abrir o primeiro arquivo com ele? Depois, conseguiu inserir o segundo a partir do último byte do anterior? Fez o mesmo com os próximos arquivos? Por último conseguiu salvar o conjunto com um nome qualquer de terminação .bin? Gostaria de saber até onde você conseguiu fazer.

Assim ficará mais fácil ajudar. Poderá enviar os seus arquivos de som para  claudio@larios.tecnologia.ws  apenas para ver se são do tipo correto. Não é que eu vá fazer o serviço para você, se é que me entende.

Olá Claudio! vou fazer com mais calma, a minha dificuldade éstá na hora de mudar  para( 0x22) depois de qual numero.

vou tentando aqui, qualquer dúvida vou te encomodar de novo, e te mando print da tela.

Mais uma vez me perdoa . Deus te dê muita saúde e te abençoe. valeu meu amigo!

0

Olá Geraldo!

Pode mandar suas dúvidas, e se eu souber responder e puder responder o farei com prazer! O 0x22 fica no último byte de cada arquivo inserido pelo botão "Insert File". Com a tecla  'seta para baixo' ou usando o cursor tudo a direita da tela, vá para o final do arquivo que inseriu até aparecer o _ (underline). Clique no byte anterior a esquerda deste underline (na horizontal).    Supondo que a última linha tenha os seguintes bytes:     0x49 0x55 0x45 0x67 0xf6 0xd3 __ . Você verá que ficará assim esta última linha:0x49 0x55 0x45 0x67 0xf6 0x22 __ . Clique no byte 0xd3 e edite ele digitando 0x22 no lugar. Pronto! Byte de parada pronto. Faça isto em cada arquivo que for inserindo, lembrando de anotar os endereços iniciais e finais para usa-los no arquivo c do pic.

As vezes você poderá, na hora de inserir um novo arquivo, acabar apagando este 0x22. Então, poderá fazer desse jeito: Coloque 0x22 nos 3 últimos byte.

Ficará assim::0x49 0x55 0x45 0x22 0x22 0x22 __

Mesmo que remonte o último byte teremos  os anteriores.

Eu costumo inserir o arquivo e depois alterar o arquivo anterior. Faço isto enquanto a tela está com cor amarela nos dados do arquivo inserido. Basta usar o cursor para ir no começo do arquivo último inserido. Altere o byte anterior ao começo da cor amarela, na mesma linha, a esquerda, pelo byte 0x22 (parada). E aproveito para anotar os endereços iniciais e finais  neste momento.

É bom manter um arquivo de texto junto ao arquivo concatenado guardados em uma mesma pasta, para uso futuro. Nele mantenha os endereços iniciais e finais dos sons que o arquivo principal tem. Coloque informações de frequência de amostragem, tamanho total do arquivo, etc. Com estas informações poderá aproveitar pedaços dos arquivos em  em outros projetos

 
0

Olá Geraldo!

Veja por favor, o tutorial V sobre concatenação de arquivos de som com FrHed.

 
0

ola claudio sobre aquele teu belo projeto de um relógio controlador de 7 canais queria acrescentar algumas coisas no lcd tipo o nome prototipo em teste como faço qual seria o compilador ? 

CCS C Compiler 

0

obrigado claudio pela sua resposta rapida instalei  o mplab e occs compiler adicionei o programa compilei mais deu um erro sera que tu tem ideia que erro e este ?

--- Info 300 "C:\Program Files (x86)\PICC\devices\16F628A.h" Line 357(11,20): More info: First Declaration of i2c_start
*** Error 31 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 159(20,21): Identifier is already used in this scope
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 161(5,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 161(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 161(10,11): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 163(5,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 163(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 163(10,11): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 165(5,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 165(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 165(10,11): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 167(5,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 167(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 167(10,11): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 168(1,2): Expecting a declaration
--- Info 300 "C:\Program Files (x86)\PICC\devices\16F628A.h" Line 360(11,19): More info: First Declaration of i2c_stop
*** Error 31 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 170(19,20): Identifier is already used in this scope
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 171(5,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 171(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 171(10,11): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 173(5,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 173(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 173(10,11): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 175(5,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 175(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 175(10,11): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 177(5,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 177(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 177(10,11): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 178(1,2): Expecting a declaration
--- Info 300 "C:\Program Files (x86)\PICC\devices\16F628A.h" Line 352(20,28): More info: First Declaration of i2c_read
*** Error 31 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 209(19,20): Identifier is already used in this scope
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 212(3,11): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 212(12,13): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 212(13,14): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(3,6): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(6,7): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(7,8): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(10,11): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(11,12): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(13,14): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(14,15): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(15,16): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(18,19): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 213(19,20): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 214(4,5): Expecting a (
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 214(6,7): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 214(9,10): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 214(10,11): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 215(4,6): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 215(6,7): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 215(7,10): Expecting a (
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 215(12,13): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 215(15,16): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 218(3,4): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 219(3,11): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 219(12,13): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 219(13,14): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 220(3,9): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 220(10,11): Expecting a declaration
*** Error 48 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 220(11,12): Expecting a (
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 220(13,14): Expecting a declaration
*** Error 43 "RELOGIO_CONTROL_SEM_1A7_V1.c" Line 221(1,2): Expecting a declaration
61 Errors, 0 Warnings.
Build Failed.

Está dando muito erro ! As vezes no processo de copiar e colar pode ser perdido a formatação da página de forma que comentários acabam entrando na linha seguinte, o que gera erros. Tente clicar em um dos erros e ver onde  ele se localiza no programa c. Vai aparecer uma setinha azul no começo da linha (dependendo da versão). Depois olhe não só na linha com o problema, mas nas anteriores e posteriores.  Tente ver se está faltando alguma coisa com um parênteses, um ponto e vírgula, etc.  As vezes um  único erro gera dezenas de outros erros.  Quando muda as versões do CCS C compiler pode ser necessário acrescentar outras exigência para compilação. As versões modernas exigem que se especifique pinos para comunicação. Estou usando uma versão antiga, a  v 3.200. Poderá consultar o forum da CCS em busca de ajuda. Para saber a versão do compilador, abra os arquivo .list gerado por ele, de qualquer programa que tenha feito. No cabeçalho você encontrará a versão.

  
Trabalhando

Por favor Entrar ou Cadastrar