CAIXINHA DE MÚSICA MULTI-MELODIAS – USANDO RING TONES – C/ PIC 12F675 (REF262)

3

Cansado de ouvir uma única melodia em sua caixinha de música? Que tal uma com dezenas de melodias?…

Quando você abre uma caixinha de música, provavelmente ouvirá sempre a mesma melodia, repetindo vez após vez. Esta versão eletrônica usa uma EEprom externa para guardar dezenas de músicas em formato de texto (RTTTL ou Ring Tones). Veja abaixo o esquema proposto para esta montagem:
music_bigger

Foi usado um PIC 12F675 para gerar as notas das melodias, as quais foram previamente armazenadas na EEprom externa. A comunicação entre EEprom e Pic é realizada por meio do protocolo I2c, emulado por software, uma vez que o PIC 12f675 não dispõe de hardware interno para isto. Na pasta dos arquivos desta montagem encontramos o arquivo hex para o PIC e outro para a EEprom 24C256. Caso queira substituir melodias, ou mesmo fazer uma nova coletânea, basta acessar sites que forneçam estes ‘ring tones’ e copiar em um arquivo ‘.txt’ de um editor de texto, como o ‘Bloco de Notas’ do Windows, ou similar, como o ‘NotePad’. Não use ‘WordPad’ ou ‘Office’ pois estes acrescentam dados de configuração no início do arquivo, o que poderá causar um mau funcionamento. Vá acrescentando melodias até o total da capacidade da memória. Como saber se já está no limite? Poderá salvar este arquivo de texto e em seguida abrir com o PonyProg2000, alterando o filtro para ‘*’ na caixa de busca, para tornar o arquivo visível em sua pasta. Olhando o arquivo aberto com o Pony fica fácil ver quantas linhas ainda faltam para serem preenchidas. Poderá acrescentar mais melodias no arquivo de texto. Quando sobrar poucas linhas para preencher completamente a memória, mas que não tenha tamanho suficiente para outra melodia, salve como um arquivo hex, usando o PonyProg2000. Este será usado para gravar na EEprom.
Note que nem todos os ‘ring tones’ são funcionais nesta montagem. Devem ser descartadas as melodias que tiverem b>240, que usarem símbolos não padronizados como o ‘_’,’>’, e mais alguns outros.
Devem se parecer muito com o exemplo abaixo:
HauntHouse: d=4,o=5,b=108: 2a4, 2e, 2d#, 2b4, 2a4, 2c, 2d, 2a#4, 2e., e, 1f4, 1a4, 1d#, 2e., d, 2c., b4, 1a4, 1p, 2a4, 2e, 2d#, 2b4, 2a4, 2c, 2d, 2a#4, 2e., e, 1f4, 1a4, 1d#, 2e., d, 2c., b4, 1a4
Um detalhe de funcionamento é que sempre será salvo na EEprom interna do PIC, o endereço da última melodia executada. Ao religar, começará a execução com ela e avançará sequencialmente até recomeçar de novo na primeira melodia.
A alimentação do circuito poderá ser feita com 2 pilhas pequenas AAA em série, somando 3 volts. Poderá usar também uma bateria CR2032, de 3 volts, do tipo ‘botão’, para uma montagem miniatura.
Obs. Esta montagem é experimental, sendo de caráter didático, montada apenas em placa experimental (do tipo “Breadboard”), sujeita a “bugs” ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.

Segue pasta zipada com os arquivos da montagem:
cx_musica_bigger

Adicionalmente, em 11/12/2016 foi postado esta versão com interruptor de seleção da melodia a ser tocada. Se for colocado um jumper em paralelo com o interruptor, então tocará sempre a mesma melodia. Veja como ficou o esquema para esta versão:
music_bigger_sel

Segue pasta com os arquivos desta versão abaixo:

MUSIC_BIGGER_SEL

Segue abaixo um vídeo caseiro com esta versão no breadboard:

Manuais:
PIC 12F675
24C256 Datasheet
Ringtones Picaxe
Ring Tones Wikipedia
PonyProg2000

Curiosidades:
Como uma música se torna um sucesso?
Um mundo de música ao toque dos dedos
Observando o Mundo
O sistema de navegação da tartaruga marinha
Monóxido de carbono: O assassino silencioso
Aquedutos romanos — maravilhas da engenharia

Outros assuntos:
Como controlar os gastos
Como podemos saber que Deus existe?
Os humanos tornam-se anjos quando morrem?
Todas as religiões são iguais? Será que todas elas levam a Deus?
O que é o inferno? É um lugar de tormento eterno?
Será que temos data marcada para morrer?

Vídeos:
Como enfrentar o bullying sem partir para a briga
Quem é o Autor da Bíblia?
Será que é amor ou paixão?
Tenha mais paciência
Fale a verdade
Eu me cansei das religiões

Até o próximo artigo!

3

6 comments

    1. 0

      Olá Marcos!
      A montagem foi feita para sempre ir apresentando uma nova melodia ao abrir. Mas nada impede de você fazer um arquivo da eeprom, onde a primeira melodia é a sua preferida, depois as outras. Terá que comentar a parte do programa que recupera da eeprom a última melodia tocada e fazer o ponteiro da eeprom como ‘0’.
      Veja a porção de código abaixo:

      void main() {

      setup_adc_ports(NO_ANALOGS);//ajusta port para analógico no pino 7
      setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);//timer 1 div/8 interno
      setup_comparator(NC_NC_NC_NC);//desliga comparadores
      set_adc_channel(0);//ajusta canal para o conversor ad para o pino 7
      gpio=0; //desliga todas as saídas
      trisio=0b111100;//saidas e entradas
      option_reg=0b10000111;;//tmr0/256,internal
      t0ie=1;//liga interrupção do timer 0
      set_timer1(0);
      enable_interrupts(INT_TIMER1);//liga interrupção do timer 1
      enable_interrupts(GLOBAL);//liga geral das interrupções
      tmr1_on=1;//liga timer 1
      cont=0;
      // pont_m=read_eeprom(0)<<8;//recupera a melodia apos desligar //xxxxxxxxxxxxxxxx comentar // pont_m+=read_eeprom(1);//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx comentar pont_m=0; // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx acrescente este código f_som=0; Recompile com CCS C compiler para obter o novo hex. Não esqueça de montar um novo arquivo para a eeprom colocando a musica preferida como a primeira. Cláudio

      1. 0

        Olá Claudio na verdade acabei esquecendo de comentar da chavinha no pino 4 do pic para se colocar para essa função onde quando se desejar escolher uma determinada musica apertar essa chave e ficaria tocando somente ela e para escolher uma outra musica manter a chave apertada algo do tipo

Leave a Reply