Uma buzina eletrônica para você se divertir com seus amigos…
O uso de buzinas eletrônicas se tornou bem popular hoje em dia. Muitos gostariam de fazer as suas próprias versões, mas não tem ideia de como fazer. Esta montagem experimental visa mostrar como podemos usar uma memória flash para armazenar sons que podem ser obtidos a partir da internet ou gravados pelo hobista.
Veja o esquema abaixo:
Com um PIC16f628a e uma memória flash 25l1606e (2mbytes) podemos obter até 107 segundos de som usando uma taxa de amostragem de 19,53 Khz. Se dividirmos este tempo por 15, podemos obter até 7 segundos para cada toque diferente, sendo bastante para fazermos uma buzina com vários toques diferentes.
Conforme mostra o esquema, para evitar muitos botões de acionamento, foi optado por usar apenas 4 interruptores dactilares, sendo que o som escolhido depende de qual interruptor foi pressionado e quantos foram pressionados ao mesmo tempo, seguindo o código hexadecimal.
Logicamente, esta logica poderá ser mudada pelo hobista, se desejar usar mais botões (6, por ex.). A rotina testa se algum botão foi apertado, e se foi, passa a testar os interruptores por um tempo para ver se outros serão apertados. Passado este tempo, a variável ‘sel’ terá o valor que corresponderá ao toque desejado, apontando o endereço inicial e final de leitura na flash externa (25l1606e).
Os valores obtidos da flash serão colocados no PWM interno do PIC, em cuja saída (no pino 9) obteremos o sinal analógico correspondente ao som gravado.
Os quatro interruptores dactilares deverão ficar em uma pequena caixa plastica, separada da montagem do PIC, ligado por meio de um cabo com 5 fios. A placa de pcb com o PIC e a Flash poderá ficar em outra caixa plastica, ou mesmo dentro de uma sirene eletrônica , em que retiramos o circuito original e adaptamos esta montagem. Da sirene eletrônica (comercial, usada em alarmes, de R$10,00) aproveitamos apenas o transformador de saída de som e os transistores.
No ponto do esquema assinalado como ‘audio out’ podemos obter o sinal analógico do toque e ligar a outro amplificador, para uma finalidade diferente que possa desejar.
Abaixo temos a lista dos toques gravados no arquivo para a flash:
1 ) risada macabra
2 ) cavalaria americana
3 ) risada do ‘nelson simpson’
4 ) grito do ‘tarzan’
5 ) ‘pega-ladrão’
6 ) ‘yabadabadu’
7 ) ‘capitão caverna’
8 ) mugido de vaca
9 ) picapau
10) fiu-fiu
11) galinha
12) papaleguas
13) cavalo relinchando
14) ‘machoman’
15) grito de gooooool
Caso deseje ver o funcionamento desta montagem em protoboard, poderá ver um vídeo caseiro clicando aqui.
Caso queira outros tipos de toque, busque sons na internet, e use um programa de captura de sons como o ‘Audacity’. Arquivos em formato MP3 não funcionarão junto ao PIC, mas poderão ser convertidos usando programas como o ‘Format FActory’. Ajuste o ganho destes arquivos MP3 antes de converte-los (pois vem muito baixo) usando por exemplo, o programa ‘MP3Gain’. Converta o arquivo .wav obtido para nova taxa de amostragem, para o valor de 19,53khz e mono. Poderá usar o programa ‘BTC Sound Encoder’para isto e até aumentar o ganho com ele, se necessário. Salve o arquivo com o nome do som e terminação ‘ .bin.’
Obtemos assim, vários sons e depois poderemos uni-los com um programa editor de arquivos hex, como por exemplo, o programa ‘Frhed’. Nele podemos abrir o primeiro som, anotar seu início/ fim (hexa) e acrescentar um a um os outros arquivos de som. Sempre anote o começo e fim de cada um, pois terá que alterar o programa do pic com estes endereços.
Agora, salve este arquivo múltiplo com terminação ‘.bin’ e grave a flash 25l1606e com ele. Poderá usar um gravador comercial para flash, ou usar o programa gravador de flash SPIPGMW (usa a porta paralela do PC e hardware com esquemático no site do autor).
Quanto ao arquivo ‘C’ do PIC, terá que altera-lo usando os novos endereços dos sons na flash.
Note que eles ficam na porção de programa, conforme abaixo:
switch (sel){//seleciona o toque conforme valor de ‘sel’
case 1: reproduzir(0x00000,0x1db9e);break;// tipo risada macabra
.
.
.
onde :
Case 1 –> o hex ‘0x00000’ é o valor inicial do arquivo a ser tocado
e o hex ‘1db9e’ é o valor final do arquivo a ser tocado
Altere eles conforme os novos sons que gravou, e recompile para obter o novo hex para o PIC.
Importante: Dispositivos sonoros montados em veículos estão regulamentados por orgãos governamentais. Verifique se a legislação de sua localidade permite a montagem e uso deste dispositivo. Como este artigo é de natureza didática, o autor não se responsabiliza por eventuais consequências advindas da montagem e uso deste dispositivo.
Poderá ver o artigo ‘buzina do pica-pau’ e ‘relógio falante’ para obter mais informações de como gravar a flash.
Obs. Esta montagem é de carater experimental, sendo realizada apenas em placa de protótipo do tipo ‘protoboard’, sujeita a bugs ainda não observados. Esta sendo fornecido pasta com os arquivos para a montagem, que poderão ser alterados conforme a necessidade dos hobistas.
Segue pasta com os arquivos desta montagem:
Manuais:
Curiosidades:
As células — bibliotecas vivas
A engrenagem do Issus coleoptratus
Minha saída contra a poluição sonora
Consegue distingui-los?
Calipso — música original, típica de Trinidad
Enxaqueca — o que você pode fazer?
Como contornar o problema do trânsito?
As causas do ódio
Boa música pode ser um bom remédio
Projeto intencional ou obra do acaso?
Uma invasão tecnológica
O nome de Deus na música russa
Outros assuntos:
Como ensinar seus filhos a ter autocontrole
Tolerância
Jesus era casado? Jesus tinha irmãos?
Como os pais podem ensinar os filhos sobre sexo?
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!
Boa noite Cláudio, gostei muito do projeto da super buzina, montei um protótipo aqui e funcionou perfeitamente, inclusive com outros sons, como faço pra recompilar o arquivo fonte com outros endereços de memória? Estou usando o mikroC e dá erro de falta de biblioteca.
Olá Silvio!
O programa foi compilado usando o compilador CCS C. Não saberia dizer como fazer com mikroC.
Cláudio
A parte de converter e ajustar o audio, passar na frequencia de 19,53khz, renomear para “.bin” entendi mas não entendi como juntar o audio para gravar na flash 25l1606e poderia postar um video de como fazer isso? grato pela atenção
boa tarde voce poderia postar um video de como juntar os sons para colocar na memória flash pois a minha dificuldade é essa tipo isso aki não entendi no caso juntar o inicio de uma rotina com o fim da outra ,
no caso juntar os audios
switch (sel){//seleciona o toque conforme valor de ‘sel’
case 1: reproduzir(0×00000,0x1db9e);break;// tipo risada macabra
Olá onix64319!
A ideia é pegar os pedaços de sons que você conseguiu e editou para 19,53khz e uni-los para formar apenas um grande arquivo a ser gravado na memória. Por ex. digamos que você tenha um arquivo de 60kbytes com um som que chamaremos de ‘som1’ e outro de 30kbyte que chamaremos de “som2”. Como ajuntar? Use um programa editor de texto hex para abrir o primeiro arquivo. Poderá usar o “Frhed” como sugerido no artigo. Depois que você abriu o arquivo “som1” poderá edita-lo também. Poderá cortar pedaços como o início do arquivo que tem informações de reprodução que não serão usadas. Depois anote o ultimo endereço deste arquivo. Suponha que seja 0xEA60. Então o primeiro som, o “som1” começará em 0x00 até 0xEA60. Anote tudo no papel para não esquecer. Depois, veja a opção de “inserção de arquivo” e insira o outro arquivo “som2” a partir do endereço 0xEA61. Então o novo arquivo vai de 0xEA61 a 0x15F90. Se quiser cortar alguma coisa, faça nesta hora para não dar confusão, antes de incluir mais arquivos. Depois basta salvar este texto como arquivo .bin e gravar a memória. Note que qualquer programa editor de texto pode ser usado para ‘juntar’ os arquivos obtidos dos sons que deseja usar.
Cláudio