RELÓGIO FALANTE – ADICIONANDO SOM A APLICAÇÕES COM PIC – C/ PIC 16F628A (REF168)

Que tal construir um ‘relógio falante’ que informa as horas a um toque de botão?

Hoje em dia temos muitos aplicativos para computadores que ajudam muito os deficientes visuais (cegos). Esta montagem didática também tem por objetivo ajudar tais pessoas, possibilitando uma montagem de um simples relógio falante. Veja o esquema abaixo:

Conforme mostra o esquema acima, o responsável pela precisão das horas é o circuito integrado DS1307, um relógio de tempo real, com comunicação via protocolo I2c com o PIC. Para guardar as mensagens previamente gravadas, temos uma memória flash 25L1606E , com capacidade de 2Mbytes de dados. Esta foi obtida de um roteador defeituoso, que ia para a ‘sucata’. É também usada como ‘bios’ de alguns notebooks e tablets.
Temos um conjunto de 6 chaves dactilares para programação e uso. A primeira nomeada de ‘sw_ouvir’ no pino 4 do PIC, quando pressionada informa com a mensagem similar a este exemplo: “São três horas trinta e um minutos cinquenta segundos”.
No pino 12 do PIC temos uma chave que ao ser pressionada ‘liga ou desliga o despertador’. Se estiver desligado, irá ligar informando com a mensagem: “Alarme foi ligado” e em seguida diz as horas que despertará. Mas se o alarme já estava ligado e foi pressionado esta chave, irá desligar, informando com a mensagem:”Alarme foi desligado”.
Para ajustar inicialmente o relógio, devemos pressionar a chave ‘sw_rel’ no pino 17 do PIC. Ouve-se a mensagem: “Ajustando relógio”. Mantendo este interruptor pressionado, aperte ‘hora’ (no pino 1) para ajustar horas ou ‘min’ (no pino 2) para ajustar minutos. Inicialmente se ouve a mensagem: “Ajustar horas” para ‘hora’ e a mensagem:” Ajustar minutos” para ‘min’. Note que o ajuste necessita de 2 chaves pressionadas ao mesmo tempo. A medida que pressionamos, haverá o incremento das horas ou dos minutos (conforme a chave escolhida). Ouviremos também a hora ou minutos incrementado e soltamos as chaves ao chegar no valor desejado.
Para acertar o despertador fazemos de forma parecida, somente que agora iremos pressionar a chave ‘sw_desp’ (pino 18) mais chave ‘hora’ ou ‘min’. A mensagem:” Ajustar despertador”, será ouvida logo ao apertar ‘sw_desp’. Para conferir a hora que despertará, aperta a chave ‘liga/desliga despertador’, pois ela indica, ao ligar, a hora programada. Esta mesma chave deverá ser usada para desligar o alarme quando este atuar, na hora regulada para despertar.
A mensagem do alarme começa com um ‘Bom Dia’ se as horas forem menores que 18h, e ‘Boa Noite’ se for maior ou igual a 18h. Em seguida repete: “Já está na hora de levantar”, por cerca de 1 minuto e depois cessa a mensagem.

Clique aqui para ver um video caseiro com o relógio em funcionamento (em protoboard apenas):

Para amplificar o som foi usado um integrado amplificador de 8 pinos, o conhecido LM386. Outros poderão ser empregados, mudando-se as ligações do esquema para corresponder ao modelo escolhido.
Para gravar a memória flash poderá usar um gravador comercial, usando o arquivo fornecido abaixo, na pasta de arquivos desta montagem. Poderá também usar o “SPIPGM PROGRAMMER’, desde que seu computador tenha ainda porta paralela e rode o ‘DOS’ usando o ‘prompt de comando’. Opcionalmente, poderá adquirir de fornecedores que também gravam o arquivo fornecido pelo cliente.
O circuito deverá ser alimentado por uma fonte de 12 volts DC, ficando mais prático usar estes adaptadores de parede. Se desejar, opcionalmente poderá ser feito uma fonte convencional usando um transformador de 110/220 volts para 12 volts, usando retificadores de silício, capacitores de filtro, e um regulador 7805 para obter os 5 volts. Os 3 volts da Flash são obtido com um resistor e um diodo zener de 3 volts a partir da linha de 5 volts.
Foi usado um pequeno alto falante miniatura para reproduzir o som. Poderá ser usado uma pequena caixa acustica, destas de computadores, se desejar.
Obs. Esta montagem é de caráter didático, sendo montado apenas em placa de protoboard, sujeito a bugs ainda não observados. Estão sendo fornecidos os arquivos que poderão ser modificados pelos hobistas conforme suas necessidades.

Segue pasta zipada com os arquivos para a montagem:

relogio_falante__files

Adicionalmente, segue pasta zipada com a segunda versão, com a funcionalidade de calendário. Foi adicionado mais uma chave dáctilar (switch tact) no pino 3 do PIC, que quando apertada se ouve a mensagem: ‘Ajustando Calendário’. As chaves ‘sw_hora’, ‘sw_min’, ‘sw_desp’ e ‘sw_rel’ são usadas juntamente com ‘sw_cal’ para acertar respectivamente data, mês, ano e dia da semana. Para se ouvir relógio seguido do calendário, a chave ‘sw_ouvir’ deve ser apertada por mais que 0,5 segundos. Se for feito um aperto rápido, somente se ouvirá horas, minutos e segundos, sem o calendário.
O restante da funcionalidade não foi alterada:

relogio_falante_calendario

Errata: No esquema consta cristal de 38,768khz sendo que o correto é 32,768khz.

Manuais:

25L1606E
PIC16F628A
LM386

Curiosidades:
Em foco: saúde
O que a Bíblia diz sobre o Natal?
A ponta da asa das aves planadoras
Saiba mais sobre os relógios de pulso
Os desafios para resolver o “problema da longitude”
Um grande mistério científico desvendado
Fantástica descoberta no campo visual

Outros assuntos:
Ouça leitura da Bíblia dramatizadas
Como controlar as birras
Como chegar a um acordo
Jesus era casado? Jesus tinha irmãos?
Como os pais podem ensinar os filhos sobre sexo?
Deus é o culpado pelo nosso sofrimento?
O que acontece quando morremos?
O que é o inferno? É um lugar de tormento eterno?
Artigos para promover a felicidade de casais
A Bíblia é produto da sabedoria humana?
O que é um amigo de verdade?
Por que rejeitar a pornografia?
Para crianças pequenas – videos educativos (desenho animado)

Até o próximo artigo!

26 comments on “RELÓGIO FALANTE – ADICIONANDO SOM A APLICAÇÕES COM PIC – C/ PIC 16F628A (REF168)

  1. Boa noite grande Lários!!!
    Estou precisando de uma caneta(Ponta de Prova TTL e CMOS)Igual ou parecida com esta do link que usa um PIC 12F675: https://www.youtube.com/watch?v=ktmX0ghK1MA.Já procurei por todo o seu site e não encontrei algo parecido. Trabalho com conserto de automóveis e as que tem no mercado sempre têm uma tensão residual na ponta (Agulha) que às vezes queimam os módulos dos veículos. Poderia projetar uma para divulgação no seu site??? Muito obrigado caro Lários…

    1. Olá Batmonstro!
      Acredito que não encontrará alguma ponta de prova que não tenha alguma tensão residual, pois ela é necessária para indicação dos níveis corretos (em especial, o de alta impedância). Acredito que a queima dos módulos pode ser em decorrência de eletricidade estática (alta tensão de milhares de volts) no corpo (salto de borracha, e não uso de pulseira de aterramento padrão).
      Cláudio

    1. Olá Xuguinho!
      Os sons podem ser gravador a partir da voz humana (alguém falando no microfone) usando o programa ‘Audacity‘ e um PC.
      Poderá usar também sons .wav para formar uma somátoria de arquivos a serem gravados.
      Caso o som esteja em ‘mp3’ terá que converte-lo em ‘.wav’ usando um programa como o ‘Format Factory‘, mas antes, poderá aumentar o ganho do som usando um programa como o ‘MP3Gain‘.
      Sons baixos não dão boa gravação e os alto demais irão distorcer na hora de reproduzir. Tem que experimentar até atingir um nível satisfatório.
      Depois precisa alterar a taxa de amostragem convertendo com um programa apropriado. Poderá usar o ‘Btc Sound Encoder‘ para alterar esta taxa para 19530 hertz, mono.
      Depois, devera abrir com um programa editor, como o ‘Frhed‘ para eliminar os cabeçalhos relativos as informações .wav logo no começo do arquivo. Elimino também os espaços finais muito longos. E coloco a finalização da faixa, quando usada (0x22).
      Salvo então como um arquivo .bin (já que não tem mais cabeçalhos, não é mais .wav).
      Este será usado para gravar na flash, respeitando o tamanho a ser gravado (o arquivo tem que ser igual ou menor que a capacidade da flash). Note que algumas flash gravam apenas de 255 em 255 bytes. Se o programa ficar com pedaço final inferior a isto, não será gravado. Deverá preencher este espaços finais com 0x7f até completar 255 bytes.
      Para gravar a flash poderá usar o programa SPIPGMW que usa a porta paralela do PC (ou adaptador usb/paralela) ou um gravador de flash de sua preferencia.
      No começo, dá um pouco de canseira até pegar o jeito.

      Cláudio

  2. Bom dia Cláudio. Feliz Ano Novo!!! Parabéns pelo projeto. É bem interessante. Tenho uma dúvida sobre a compilação: Por gentilza, poderia me informar qual foi o programa utilizado para gerar a flash BIN? Um abraço e fica com Deus.

  3. Parabéns pelo blog.
    Só tive contacto com o blog hoje, mas faço intenções de ser frequentador. Estive a dar uma espreitada num dos códigos e gostei muito da elegância como esta escrito.

    um óptimo trabalho parabéns.

    1. Olá Morsego! Obrigado por sua demonstração de apreço pelo trabalho deste blog. Mas a ‘elegância’ citada por você é mero acaso, pois sou apenas iniciante na linguagem “C”.
      Cláudio

  4. Parabens pelo otimo projeto amigo , so me diz uma coisa eu viu um projeto parecido com esse seu poreém alem do seu ser em protugues usa um micro mais acessivel , o que eu vi tinha um display para mostrar os digitos tb , teria como serfeito a incusão desse display ou de lcd ou de led usando um 74hc595 ?

    1. Olá Liliano!
      Obrigado por seu comentário de apreço pelo artigo em questão. Como o objetivo foi construir um relógio para pessoas com deficiência visual, não vi a necessidade de colocar um display (inútil para um cego). Para incluir um ‘display’ terá que usar um pic com mais pinos para o lcd (+6 pinos) ou alterar todo o programa para liberar pelo menos 4 pinos para usar junto com um shift register 74hc595, que no meu modo de ver não seria muito prático.
      Cláudio

Comments are closed.

Back To Top