Tudo funciona da seguinte maneira: há um jogador com dois botões. Um permite que você ligue a música ou pause a reprodução, e o segundo permite que você embaralhe as músicas. Além disso, você pode selecionar um cartão RFID e levá-lo ao leitor, o que permite incluir uma composição específica. Este, na sua essência, reproduz o processo de ouvir música na antiguidade, quando para ligar a gravação pretendida era necessário inserir um CD normal ou uma cassete normal no leitor. Mas aqui a abordagem antiga é complementada com novas tecnologias, o que torna mais fácil para pessoas com certas limitações ouvir música.
Embora minha avó não esteja mais conosco, eu ainda queria fazer este projeto. Enquanto meus pais limpavam a casa, me deparei com o antigo gravador de fita cassete de minha mãe. “Eureka!” - pensei. Como resultado, este gravador formou a base para minha versão do Juuke. Eu basicamente fiz tudo da mesma forma que a Ananords e funcionou como deveria, mas também estendi o projeto com algumas ideias próprias. Ou seja, estamos falando sobre o seguinte:
- A capacidade de reproduzir um álbum inteiro usando um cartão RFID.
- Capacidade de pular a gravação e passar para a próxima gravação.
- A capacidade de reproduzir música “gravada” em diferentes “lados” do cartão (A e B), que se assemelha à reprodução de cassetes convencionais.
- Usando o mesmo número de botões, mas pressionando-os de forma curta e longa.
E agora - direto ao ponto.
Materiais e ferramentas
Ao selecionar os materiais para o meu projeto, desviei-me um pouco do conjunto de componentes que era usado no Juuke. É disso que meu toca-discos é feito:
- Placa Arduino Nano (em vez da placa Arduino Uno usada no Juuke).
- Módulo reprodutor de arquivos de áudio DFPlayer Mini.
- Cartão MicroSD.
- Módulo RFID RC522. (Dizem que vale a pena tomar alguns de uma vez, pois alguns já estão inoperantes. Mas eu pedi apenas um. Estava em perfeita ordem. Talvez eu tenha apenas sorte.)
- Cartões RFID (encomendei 100 unidades).
- Botões de pressão momentâneos, 2 unid.
- Fios.
- Resistor de 1 kΩ.
- Conectores.
- Gravador de cassetes antigo (ainda funcionando).
- LEDs coloridos.
- Bateria externa com suporte USB.
- Placa de prototipagem.
Aqui está uma lista dos materiais opcionais:
- Um resistor variável de 10 kOhm (não usei, pois o gravador tem um botão para ajustar o volume).
- Conector estéreo (AUX) (usei alto-falantes de gravador).
- Tábua de pão.
- Fios de conexão.
- Fonte de alimentação 5V.
- Conector de força.
Ferramentas:
- Dispositivos de solda.
- Ferramenta para descascar fios.
- Computador e impressora colorida.
Também precisaremos de uma conta Canva .
Etapa 1. Montagem do protótipo
Montando o protótipo
Não vou falar muito sobre essa etapa do nosso trabalho. Tudo é muito simples aqui. O núcleo do projeto consiste em várias partes:
- Uma placa Arduino Nano que controla tudo com o código que falaremos a seguir.
- O módulo DFPlayer Mini é um pequeno dispositivo eletrônico que pode reproduzir arquivos MP3 de um cartão SD inserido nele.
- Módulo RFID RC522, que é usado para ler cartões RFID, recebendo dados deles, usado para selecionar músicas reproduzíveis.
- Botões e controle de volume.
- Alto falante.
Usei uma placa de ensaio para montar os componentes e segui as instruções de construção do Juuke que vieram a calhar. Em seguida, testei tudo para ter certeza de que tudo funcionou conforme o esperado.
Teste de protótipo
Etapa 2. Solda
Componentes colocados na placa de prototipagem
O verso do tabuleiro
Conectando a placa a um gravador
Placa com módulo RFID RC522 instalado
RC522 , , « B»
Botões antes de soldar
Depois de obter o protótipo e como ele funciona, soldei os componentes do dispositivo na placa de prototipagem. Segui aqui os diagramas preparados pelo usuário Ananords, mas fiz uma pequena alteração. Ou seja, adicionei um LED. O pino "+" do LED é conectado ao pino 8 da placa Arduino Nano e o "-" ao aterramento. Este LED indica que o "Lado B" está sendo reproduzido. Quando "Side A" é reproduzido, o LED está desligado e, quando está ligado, "Side B" é reproduzido.
Abri o gravador e encontrei fios que conduziam ao controle de volume e aos alto-falantes. Retirei a solda e etiquetei esses fios com as etiquetas apropriadas anexadas a eles. Isso me permitiu saber exatamente para onde eles estavam levando.
Decidi não tocar em tudo o mais no gravador - para o caso de algum dia decidir restaurá-lo. Consegui encaixar o Arduino Nano e o DFPlayer Mini em uma pequena placa que caberia em uma caixa de gravador. Lá, porém, não havia muito espaço para botões e para o módulo RFID RC522.
Na lateral do gravador, encontrei um lugar para os botões. Embora não se possa dizer que eles estão instalados perfeitamente no case, o design acabou sendo bastante sólido, e o case em si não precisou ser refeito. Isso significava que, se algum dia eu decidisse restaurar o gravador à sua forma original, não teria de preencher os orifícios da caixa que poderia ser perfurada para os botões de montagem.
Passei os fios do RC522 pelos orifícios do compartimento da bateria e instalei a placa com o próprio módulo RFID no mesmo compartimento da bateria, próximo à parede externa da caixa do gravador. Decidi fazer exatamente isso devido ao fato de que, graças a isso, haverá muito pouco espaço entre a parede externa do gravador e o módulo RFID. A superfície da caixa também é plana. Isso significa que o módulo RFID terá todas as chances de ler com sucesso o cartão trazido ao corpo.
Ao instalar o LED, passei suas pernas pelos pequenos orifícios na parte de trás do gabinete e os soldei aos fios correspondentes.
Na verdade, esta é minha primeira experiência de retrabalho de um dispositivo eletrônico. E eu soldo pela segunda ou terceira vez na minha vida. Mas todos os componentes do dispositivo estavam conectados uns aos outros de forma confiável e fiquei satisfeito comigo mesmo.
Etapa 3. Prepare os cartões RFID
A capa do cartão usada para permitir a reprodução do álbum
A capa do cartão costumava tocar uma única música do "Lado B"
Mapas e suas capas
Para preparar mapas para o trabalho, você precisa fazer duas coisas:
- Os cartões precisam ser programados atribuindo-lhes números (há instruções sobre isso no projeto Ananords). Existem duas maneiras. A primeira é fazer automaticamente, então cada próxima carta receberá um número 1 maior que a anterior. A segunda é definir os parâmetros das placas manualmente, usando a janela
Serial Monitor
do IDE do Arduino. - . , ( ) . Excel , , 1 100. « A». , « B», .
Depois que a lista ficou pronta, encontrei as imagens que cabiam e fiz as capas no Canva. É muito fácil usar este serviço, e as tampas são bem cuidadas, feitas no mesmo estilo.
Para indicar se um cartão está associado a uma música específica ou a um álbum, usei ícones especiais. Nas ilustrações desta seção, você pode ver a capa do cartão do álbum (com um ícone de disco) e a capa do cartão, que inclui uma entrada separada, com um ícone de nota. Além disso, coloquei um grande B no fundo dessas capas que corresponderá às composições colocadas no "Lado B".
Imprimi as capas em impressora colorida, recortei e colei nos dois lados dos cartões com cola em bastão (não importa onde a capa do "Lado B" será aplicada).
Depois que os cartões estiverem prontos, tudo o que resta é fazer o upload do código do programa para o Arduino Nano e preparar o cartão microSD para funcionar.
Etapa 4. Revisando o código do Arduino e preparando o cartão SD
A pasta 01 contém gravações que podem ser selecionadas uma de cada vez, enquanto as pastas 78-99 contêm álbuns
Conteúdo da pasta 01
O conteúdo de uma das pastas com álbuns
O código do Arduino e os arquivos gravados no cartão MicroSD estão intrinsecamente ligados, pois o programa não funcionará corretamente se o cartão não for preparado corretamente. Portanto, esta etapa de trabalhar em um projeto consiste em várias etapas.
▍ Preparar registros individuais
Tive algumas dificuldades ao usar os materiais do projeto Juuke. Eles consistiam no fato de que às vezes era ligada a reprodução da música errada, o que dependia do cartão MicroSD inserido no aparelho. Eu pesquisei essa questão e descobri que posso reescrever o código e fazer o player tocar músicas de uma determinada pasta. Então, coloquei todas as músicas individuais em uma pasta chamada 1 e disse ao jogador para tocar a música selecionada dessa pasta:
myDFPlayer.playLargeFolder(1,number.toInt())
Para tocar o “Lado B” forneci um código que, observando o estado do botão, informa o jogador sobre a necessidade de tocar músicas, cujos números são calculados somando 100 ao número do cartão lido pelo módulo RFID. Por exemplo, se o cartão nº 22 for escaneado e o modo de reprodução “Lado B” estiver habilitado, a música número 122 será reproduzida. Se esse modo não estiver habilitado, a leitura do mesmo cartão reproduzirá a música número 22. Esta é a aparência do snippet de código correspondente:
myDFPlayer.playLargeFolder(1,number.toInt()+100)
Os nomes dos arquivos de música armazenados em um cartão MicroSD devem ter um prefixo de 4 dígitos correspondente ao número atribuído ao cartão RFID. Por exemplo, se o cartão nº 3 for atribuído, o nome do arquivo de música correspondente deve começar com 0003. E a música associada ao cartão nº 21 será gravada em um arquivo cujo nome começa com 0021. As músicas para o "Lado B" têm nomes semelhantes. Por exemplo, o registro 157 será gravado em um arquivo com o prefixo 0157.
▍ Preparando álbuns
Os álbuns são organizados de maneira semelhante. O reprodutor pode reproduzir registros armazenados em uma pasta específica. Cada álbum corresponde a uma pasta separada, cujo número coincide com o número de uma das cartas. Como resultado, por exemplo, você pode digitalizar um cartão com o mesmo número para reproduzir músicas do álbum # 90. Aqui está um snippet do código de controle do player:
myDFPlayer.loopFolder(number.toInt());
Foi assim que consegui reproduzir as gravações relacionadas a álbuns individuais. No entanto, há uma limitação de que apenas o conteúdo de 99 pastas pode ser reproduzido. Primeiro, configurei o sistema para que os álbuns estivessem nas pastas 89-99. Mas quando decidi que minhas fitas teriam o lado B, isso significava que não poderia simplesmente adicionar 100 aos números dos cartões, já que o sistema não permitia nomes de pastas na faixa de 189-199. Naquela época, eu já tinha 11 álbuns. Como resultado, decidi encontrar o nome da pasta correspondente ao "Lado B" do cartão subtraindo 11 do número do cartão. E assim aconteceu que os álbuns adicionais caíram nas pastas 78-88. No código, é assim:
myDFPlayer.loopFolder(number.toInt()-11);
Tudo o que falei sobre a estrutura das pastas gravadas em um cartão MicroSD se reflete nas imagens acima.
No código do projeto, você pode encontrar comentários sobre onde você precisa fazer alterações relacionadas à numeração de pastas e arquivos. Isso permitirá que você personalize o sistema por si mesmo.
▍ Botões
Eu, ao comparar meu projeto com o Juuke, fiz algumas mudanças na forma como os botões funcionam. Por uma questão de simplicidade, decidi não aumentar o número de botões, que também tenho dois. Mas eu queria expandir seus recursos lidando com impressões curtas e longas.
O programa compara o tempo de pressionar o botão com o valor especificado (meio segundo neste caso). Se o botão for pressionado por um tempo que não exceda meio segundo, será considerado um toque curto. Caso contrário, o sistema considera que foi feito um toque longo no botão.
O botão vermelho liga ou pausa a reprodução da música atual com um toque curto. Pressione longamente este botão para fazer a transição para a próxima música. Um toque curto no botão amarelo permite ligar e desligar a reprodução das músicas "gravadas" no "Lado B" (o LED na parte traseira do gravador liga ou desliga imediatamente). Um toque longo neste botão "embaralha" as composições.
Para ativar a reprodução da próxima música, usei o seguinte código:
myDFPlayer.next();
Para as composições do lado B, usei uma variável especial. Esta variável é definida com um valor
false
até um toque curto no botão amarelo. Após pressionar, o valor da variável muda para
true
. Esta variável é usada para decidir quais músicas tocar. As entradas com números de índice 1-100 são "Lado A" e as entradas 101-200 são "Lado B".
Procure o código que mencionei aqui . Você pode alterá-lo conforme necessário.
Etapa 5. Montagem final e verificação do projeto
Projeto finalizado, retrovisor, tocando uma música do "Lado A"
Projeto finalizado, retrovisor, tocando uma música do “Lado B” (observe o led aceso e o cartão com a letra “B” na capa)
retirei todos os fios da caixa e recoloquei a tampa traseira do gravador. Depois liguei o cabo USB a uma bateria externa, que também se encontra na caixa (o meu leitor pode funcionar sem estar ligado à corrente) e verifiquei o funcionamento do sistema com diferentes cartões RFID.
Teste de sistema
Etapa 6. Ouvindo música
E agora você pode ouvir música de novas "cassetes" em um gravador de cassetes antigo.
Projeto concluído
Ouvindo Música
Planejando fazer um reprodutor de música controlado por RFID?