Olá pessoal, tudo bem?
Comecei um projeto bem simples, onde ele possui 4 botões, sendo que cada botão possui 1 som próprio (mp3) e 1 led próprio. O projeto é só isso. Fim. Não tem nada mais a acrescentar. A ideia é absurdamente simples.
A dificuldade que estou tendo, é em emitir sons em paralelo, isto é, se apertar o botão 1, e depois apertar o botão 2, os dois sons deverão se emitidos, mas cada um em seu tempo.
Exemplo:
Botão 1: Pessoa falando "Paralelepípedo".
Botão 2: Pessoa falando: "Sapato"
Como deve ficar caso seja pressionado o botão 1, e após 1 segundo, seja pressionado o botão 2:
"Parale(le-sa)(pi-pa)(pe-to)do"
Atualmente, caso eu tente fazer o exemplo citado, ele CORTA o primeiro áudio e inicia o segundo, ficando:
"ParaleSapato"
Para emitir os sons, utilizei o DFPlayerMini, um módulo bem popular e de baixo custo.
A solução mais simples que pensei, seria utilizar 4 dfplayers, cada um para emitir 1 som (é um esperdício...). Para a recepção, o DAC ou Output (ambos dos dfplayers) ficariam todos ligados em paralelo, talvez, com diodo.
Qual a opinião de vocês? Alguém teria uma sugestão mais eficaz? Esta estratégia PARECE que funciona bem, mas soa como uma gambiarra sem precedentes.
Tags:
Olá.
Esse integrado que vai no DFPlayer consegue descompactar um MP3, que já é fantástico.
Para fazer isso seria preciso descompactar 2 ou até 4 MP3 ao mesmo tempo. Tarefa que acredito ser impossível em tempo real.
Sugestões:
1) colocar 4 DFPlayers (URGH!).
2) Usar um hardware que consiga descompactar (tocar) 4, como um Raspberry.
Veja como: https://processing.org/reference/libraries/sound/SoundFile.html
3) Usar áudio descompactado:
Seria por exemplo um arquivo .wav (wave). Ele pode ter o som "RAW" ou descompactado (também existem compactações simples, só não ligar).
Assim vc poderia tocar usando uma rotina adaptada dessa:
https://www.arduino.cc/en/Tutorial/SimpleAudioPlayer
Que simplesmente leria os 4 audios e faria um mixer (soma os 4 valores e divide por 4).
Para isso bastaria um cartão de memoria ligado a um microcontrolador rápido (ESP32, por ex) que tenha um bom DAC (ESP32 tem).
Nunca testei, mas em geral a qualidade do áudio desse tipo de solução é inferior ao do DFPlayer, mas quem sabe para sua necessidade atenda.
Nessa solução o cartão de memória pode ser um gargalo. Como o ESP tem bastante memória quem sabe uma solução fosse tentar fazer os audios caberem na memoria dele, ainda que na RAM, com uma leitura previa dos arquivos WAV ou mesmo a inclusão deles no codigo. Aih ficaria rápido...
Ref:
Olá Eduardo.
1) colocar 4 DFPlayers (URGH!).
- Concordo com sua expressão. Em todo caso, se ligasse todos em paralelo, seria necessário adicionar diodos. Correto?
2) Usar um hardware que consiga descompactar (tocar) 4, como um Raspberry.
- É uma outra boa opção também, mas o custo sobe bastante, assim como o Due (do item 3). Entretanto, sua sugestão continua sendo válida, afinal, eu não tinha especificado estes pontos. Desde que seja possível, prefiro ficar entre o arduino Uno ou esp (32 por ter em estoque, ou 8266, pelo valor um pouco inferior)
3) Usar áudio descompactado:
- Citei o mp3 por ser bem popular, mas pode ser qualquer formato de áudio. Este ponto não é crítico.
Os links que você citou, são bem interessantes, vou analisa-los com mais calma.
Bom dia TM,
Você quer que o segundo som saia junto com o primeiro mas um pouco depois do inicio do primeiro,
ou quer que o segundo aguarde que o primeiro termine e então o segundo comece?
RV mineirin
Olá RV.
Os sons são curtos (1 á 10 segundos). A ideia é que um som sempre inicie após apertar um determinado botão. Independente de ter algum em execução. Entretanto, sem interromper o som anterior. como um "thread".
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por