Índice:
- Suprimentos
- Etapa 1: adicionar o Arduino Nano ao breadboard
- Etapa 2: adicionar o receptor infravermelho e conectá-lo ao Arduino
- Etapa 3: Crie um cartão Mico SD de arquivos MP3
- Etapa 4: conecte o módulo DFPlayer que reproduz arquivos MP3
- Etapa 5: Fonte de alimentação externa
- Etapa 6: Elimine o ruído estático
Vídeo: MP3 player controlado por infravermelho: 6 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Construa um MP3 player com controle remoto infravermelho por cerca de US $ 10. Possui as características usuais: reproduzir, pausar, reproduzir seguinte ou anterior, reproduzir uma única música ou todas as músicas. Também possui variações de equalizador e controle de volume. Tudo controlável por meio de um controle remoto.
Funcionalidade programada:
Tecla Remota: Função
+ 01: Diminuir o volume + 02: Definir para o diretório # 2. + 03: Aumentar o volume + 4… 9: Selecione as seguintes configurações do equalizador: ++ (4) DFPLAYER_EQ_POP (5) DFPLAYER_EQ_CLASSIC (6) DFPLAYER_EQ_NORMAL ++ (7) DFPLAYER_EQ_ROCK (8) DFPLAYER_EQ_JAZZ OK: + DFPLAYER_EQ_EQ_EQ: +: Tocar + >>: Tocar próximo + <<: Tocar anterior + Acima: Tocar próximas músicas do diretório + Dn: Tocar músicas anteriores do diretório + * | Retornar: Loop de música única: ligado + # | Sair: Loop de música única: desligado
A primeira etapa é testar o Arduino e conectá-lo à placa de ensaio. As etapas a seguir foram projetadas para funcionar de forma independente. Cada etapa possui instruções de fiação e instruções de teste. Quando eu construo projetos, eu conecto e testo cada componente para confirmar se estão funcionando. Isso ajuda a integrar componentes porque sei que cada trabalho e eu podemos nos concentrar nos requisitos de integração.
Este Instructable requer que você tenha o IDE do Arduino instalado. Você também deve ter as habilidades básicas para baixar um programa de esboço do Arduino a partir dos links neste projeto, criar um diretório para o programa (nome do diretório igual ao nome do programa). As próximas etapas são carregar, visualizar e editar o programa no IDE. Em seguida, carregue o programa por meio de um cabo USB para sua placa Arduino.
Suprimentos
- Nano V3 ATmega328P CH340G Micro placa controladora para Arduino. Como alternativa, você pode usar um Uno.
- Receptor infravermelho e controle remoto. Eu usei um kit de módulo de controle remoto sem fio IR que veio com um receptor infravermelho e um controle remoto infravermelho.
- Um resister, 1K a 5K. Estou usando um resistor 5K porque tenho um monte deles. O resistor remove o ruído que existe quando não está usando o resistor.
- Cabos de arame para tábuas de pão
- Adaptador de parede de 5 volts
Comprei as peças no eBay, principalmente de distribuidores de Hong Kong ou China. Os distribuidores norte-americanos às vezes têm peças iguais ou semelhantes por preços razoáveis e entrega mais rápida. As peças chinesas levam de 3 a 6 semanas para serem entregues. Todos os distribuidores que usei são confiáveis.
Custos aproximados: Nano $ 3, kit infravermelho $ 1, placa de ensaio $ 2, pacote de 40 cabos de aço $ 1, $ 1 para um adaptador de parede de 5 volts. Total, cerca de US $ 8. Note, comprei o Nano com os pinos da placa de ensaio já soldados no lugar, pois minhas habilidades de soldagem são fracas.
Etapa 1: adicionar o Arduino Nano ao breadboard
Conecte o Arduino Nano na placa de ensaio. Ou, se preferir, você pode usar um Arduino Uno para este projeto; ambos usam os mesmos pinos para este projeto. Conecte o Nano (ou Uno) ao computador por meio de um cabo USB.
Conecte a energia e o aterramento do Arduino à barra de energia da placa de ensaio. Conecte o pino do Arduino 5+ à barra positiva da placa de ensaio. Conecte o pino Arduino GRN (terra) à barra negativa (terra) da placa de ensaio. Isso será usado por outros componentes.
Baixe e execute o programa de teste básico do Arduino: arduinoTest.ino. Ao executar o programa, a luz LED integrada acenderá por 1 segundo e, em seguida, desligará por 1 segundo. Além disso, são postadas mensagens que podem ser visualizadas no Arduino IDE Tools / Serial Monitor.
+++ Setup.
+ Inicializado o pino digital do LED integrado para saída. O LED está apagado. ++ Vá para o loop. + Contador de loop = 1 + Contador de loop = 2 + Contador de loop = 3 …
Como exercício, altere o intervalo de tempo na luz piscando, carregue o programa alterado e confirme a alteração.
Na foto acima está uma caixa de kit de jumper de placa de ensaio sem solda de 140 peças que você pode comprar por 3 a 5 dólares. Eles tornam as placas mais organizadas do que usando cabos longos para conexões curtas.
Etapa 2: adicionar o receptor infravermelho e conectá-lo ao Arduino
Conecte os fios do cabo fêmea para macho no receptor infravermelho (extremidades fêmeas). Conecte o pino de aterramento do módulo de relógio à barra de aterramento da placa de ensaio. Conecte o pino de alimentação do módulo de relógio à barra positiva da placa de ensaio. Conecte o pino de saída do receptor infravermelho ao pino Arduino A1.
Conecte o receptor infravermelho, pinos da parte superior esquerda para a direita:
Mais à esquerda (próximo ao X) - Nano pino A1 Centro - 5V Direita - aterramento A1 + - - Conexões de nano pino | | | - Pinos do receptor infravermelho --------- | S | | | | --- | | | | | | --- | | | ---------
No IDE do Arduino, instale uma biblioteca de infravermelho. Selecione Ferramentas / Gerenciar Bibliotecas. Filtre sua pesquisa digitando 'IRremote'. Selecione IRremote por Shirriff (para referência, o link da biblioteca GitHub). Informações da biblioteca Arduino Link da biblioteca remota.
Baixe e execute o programa de teste básico: infraredReceiverTest.ino. Ao executar o programa, aponte seu controle remoto para o receptor e pressione vários botões, como o número de 0 a 9. Mensagens seriais são emitidas (impressas) que podem ser visualizadas nas Ferramentas IDE do Arduino / Monitor Serial.
+++ Setup.
+ Inicializou o receptor infravermelho. ++ Vá para o loop. + Tecla OK - Alternar + Tecla> - próximo + Tecla <- anterior + Tecla para cima + Tecla para baixo + Tecla 1: + Tecla 2: + Tecla 3: + Tecla 4: + Tecla 6: + Tecla 7: + Tecla 8: + Tecla 9: + Tecla 0: + Tecla * (Retornar) + Tecla # (Sair)
Como exercício, use um controle remoto de TV para ver os valores impressos. Você pode então modificar o programa para usar os valores na instrução switch da função infraredSwitch (). Por exemplo, pressione a tecla "0" e obtenha o valor para o seu controle remoto, por exemplo, "0xE0E08877". Em seguida, adicione um caso à instrução switch como no seguinte trecho de código.
case 0xFF9867:
case 0xE0E08877: Serial.print ("+ Chave 0:"); Serial.println (""); pausa;
Etapa 3: Crie um cartão Mico SD de arquivos MP3
Como o DFPlayer é uma peça de hardware pequena e barata, ele gerencia arquivos e pastas de maneira simplista. Tive resultados mistos ao reproduzir arquivos MP3 que não seguem os seguintes formatos recomendados e, portanto, recomendo o seguinte. Além disso, não testei outras opções, como nomes de arquivo de 3 dígitos (exemplo: 003.mp3), no entanto, vi nomes de arquivo de 3 dígitos usados em outras instruções e exemplos.
A seguir estão meus formatos de nome de arquivo e nome de diretório de pasta recomendados:
- O nome da pasta padrão é MP3, localizado no diretório raiz do cartão SD: SD: / MP3. Esta pasta é opcional ao usar várias pastas.
- O player também reproduz arquivos MP3 no diretório raiz.
- Ao usar várias pastas, use os nomes das pastas: 01, 02, 03,…, 99.
- O nome do arquivo mp3 deve ter 4 dígitos com "0001.mp3" como extensão, por exemplo, "0001.mp3".
- Os arquivos podem ser colocados na pasta MP3 ou em uma das várias pastas.
- Nomes de arquivos: 0001.mp3 a 0255.mp3. Observe que o reprodutor também reproduzirá arquivos MP3 com outros nomes.
- Você pode adicionar caracteres após os dígitos, por exemplo, "0001hello.mp3".
É recomendável formatar o cartão antes de adicionar arquivos. Isso garante que o cartão não contenha arquivos de sistema. Formate usando FAT32 MS-DOS.
No Mac, use o utilitário de disco para formatar o disco: Aplicativos> Utilitários> abra o Utilitário de disco.
Clique no cartão SD, exemplo: APPLE SD Card Reader Media / MUSICSD. Clique no item de menu, Apagar. Set nome, exemplo: MUSICSD. Selecione: MS-DOS (Fat). Clique em Apagar.
O disco é limpo e formatado.
Eu escrevi um programa Java que irá copiar um diretório de arquivos MP3 em um diretório de destino, usando nomes de diretório e arquivo que funcionam com um módulo DFPlayer. Para executar o programa, você precisará do Java JRE instalado. A seguir está a saída de ajuda do programa.
$ java -jar mp3player.jar
+++ Start, programa de cópia do módulo DFPlayer. Sintaxe: java -jar mp3player.jar copy [(IN: diretório MP3) (OUT: diretório MP3)] ---------------------- Este programa copia um diretório de arquivos MP3 para criar outro diretório de arquivos MP3 usando nomes de diretório e arquivo que funcionam com um módulo DFPlayer. Antes de executar este programa, + Crie um diretório de seus arquivos MP3. + Crie um diretório de destino. + O diretório de destino é para onde os arquivos MP3 serão copiados, ++ usando o diretório com número de dígitos e nomes de arquivo. + Seu diretório de destino deve estar vazio. + Se houver arquivos nele, exclua os arquivos e diretórios. ---------------------- + Execute este programa. + Sintaxe: java -jar mp3player.jar copy [(IN: diretório MP3) (OUT: diretório MP3)] + Sintaxe usando padrões: java -jar mp3player.jar copy + Nomes de diretório padrão: mp3player1 e mp3player2. + O mesmo que: java -jar mp3player.jar copiar mp3player1 mp3player2. ---------------------- + Insira o cartão SD em seu computador. + Exclua os diretórios e arquivos do cartão SD. + Esvazie a lixeira porque os arquivos ainda estão no cartão SD e o módulo DFPlayer pode reproduzi-los. + Copie os novos diretórios e arquivos para o cartão SD. + Ejete o cartão do computador. ---------------------- + Insira o cartão no módulo DFPlayer. + O cartão está pronto para jogar
Para visualizar o código-fonte, clique aqui. Clique aqui para baixar o arquivo de programa JAR que você pode executar.
Para referência
No Mac, na linha de comando, você pode executar o seguinte.
Lista para encontrar o cartão.
$ diskutil list
… / Dev / disk3 (interno, físico): #: TIPO NOME TAMANHO IDENTIFICADOR 0: FDisk_partition_scheme * 4,0 GB disk3 1: DOS_FAT_32 MUSICSD 4,0 GB disk3s1 $ ls / Volumes / MUSICSD
Copie os arquivos em ordem no cartão SD. Como o DFPlayer pode classificar com base no carimbo de data / hora, copie os arquivos na ordem do nome do arquivo.
Limpe os arquivos ocultos que podem causar problemas (referência:
$ dot_clean / Volumes / MUSICSD
Seu cartão SD agora está pronto para uso. Insira-o no módulo DFPlayer.
Etapa 4: conecte o módulo DFPlayer que reproduz arquivos MP3
Separei as conexões em 3 partes: comunicações seriais, alimentação e alto-falante / som.
1. Conecte os pinos do Arduino RX / TX ao módulo DFPlayer. Conecte um fio entre o pino 10 do Arduino e o pino 3 (TX) do DFPlayer. Conecte um resistor, estou usando um resistor de 5K do pino 2 do DFPlayer (RX), a uma linha vazia entre o Arduino e o DFPlayer. Conecte um fio do pino 11 do Nano ao resistor 5K. O resistor 5K remove o ruído que existe quando não está usando o resistor.
2. Conecte o pino de aterramento (GND) do módulo DFPlayer à barra de aterramento da placa de ensaio. Conecte o pino de alimentação (VCC) do módulo DFPlayer à tira da barra positiva da placa de ensaio.
3. Se você tiver um único alto-falante pequeno, conecte-o aos pinos 6 (SPK-) e 8 (SPK +) como na foto acima com o Nano.
Mini pinos DFPlayer
No Arduino IDE, instale a biblioteca DFPlayer. Selecione Ferramentas / Gerenciar Bibliotecas. Filtre sua pesquisa digitando ‘DFRobotDFPlayerMini’. Selecione DFRobotDFPlayerMini da biblioteca do miniplayer DFRobot (para referência, o link da biblioteca). Para minha implementação, carreguei a versão 1.0.5.
Para referência, o link da biblioteca. E o link da página wiki do DFPlayer.
Carregue arquivos MP3 no cartão micro SD. Você pode ter músicas em diretórios separados. Coloque o cartão SD no DFPlayer.
Baixe e execute o programa MP3 player: mp3infrared.ino. Ao executar o programa, aponte o controle remoto para o receptor e pressione o botão OK para iniciar a reprodução da primeira música. Quando ele começa a ser reproduzido, a luz azul do DFPlayer acende e permanece acesa enquanto um arquivo é reproduzido.
Configuração avançada
Eu construí um computador emulador Altair 8800 que usa um Arduino Mega. Quando adicionei o DFPlayer, houve muito ruído. Para me livrar do ruído, usei uma fonte de alimentação separada para o DFPlayer. O Mega tem uma fonte de alimentação e envia sinais de controle serial para o DFPlayer. O DFPlayer tem outra fonte de alimentação e recebe e implementa os sinais de controle serial do Mega.
Na foto acima, o mini hub USB branco do emulador Altair alimenta o Mega e é conectado ao mini hub preto do laptop. O DFPlayer possui um cabo USB que o conecta diretamente ao mini hub preto do laptop. Essa configuração removeu o ruído que existia quando o DFPlayer foi alimentado por meio do mini hub branco do emulador.
Clique aqui para obter o código configurado para o Mega. Essa versão do código usa pinos Mega RX / TX, enquanto Nano ou Uno usa pinos de porta serial de software.
O seguinte é para referência
Conexões usadas com um Arduino, 1. UART serial, RX para receber instruções de controle do DFPlayer. RX: a entrada conecta-se a TX em Mega / Nano / Uno. TX para envio de informações de estado. TX: a saída conecta-se a RX em Mega / Nano / Uno. Conexões para Nano ou Uno: RX (2) para resistir ao pino 11 (TX) do software serial. TX (3) para o pino 10 do software serial (RX). Conexões para Mega: RX (2) para resistir ao pino 18 (TX) de Serial1. TX (3) para Serial1 pino 19 (RX). 2. Opções de energia. Conecte do Arduino diretamente ao DFPlayer: VCC a + 5V. Observe, também funciona com + 3,3 V no caso de um NodeMCU. GND para aterrar (-). Use uma fonte de alimentação completamente diferente: VCC a + 5V da outra fonte de alimentação. GND ao aterramento (-) da outra fonte de alimentação. Eu vi outra opção de energia: do Arduino + 5V, use um 7805 com capacitores e diodo para o pino VCC do DFPlayer. GND para aterrar (-). 3. Saída do alto-falante. Para um único alto-falante, menos de 3W: SPK - para o pino do alto-falante. SPK + para o outro pino do alto-falante. Para saída para um amplificador estearizado ou fones de ouvido: DAC_R para saída direita (+) DAC_L para saída esquerda (+) GND para terra de saída.
Seguindo as chamadas de função da biblioteca principal. Link para a página wiki do DFPlayer.
DFRobotDFPlayerMini myDFPlayer;
myDFPlayer.play (1); // Toca o primeiro mp3 myDFPlayer.pause (); // pausa o mp3 myDFPlayer.start (); // inicia o mp3 da pausa ------------------------------ myDFPlayer.next (); // Toca o próximo mp3 myDFPlayer.previous (); // Toca o mp3 anterior ------------------------------ myDFPlayer.playMp3Folder (4); // reproduz mp3 específico em SD: /MP3/0004.mp3; Nome do arquivo (0 ~ 65535) myDFPlayer.playFolder (15, 4); // reproduz mp3 específico em SD: /15/004.mp3; Nome da pasta (1 ~ 99); Nome do arquivo (1 ~ 255) myDFPlayer.playLargeFolder (2, 999); // reproduz mp3 específico em SD: /02/004.mp3; Nome da pasta (1 ~ 10); Nome do arquivo (1 ~ 1000) ------------------------------ myDFPlayer.loop (1); // Repete o primeiro mp3 myDFPlayer.enableLoop (); // habilita o loop. myDFPlayer.disableLoop (); // desativa o loop. myDFPlayer.loopFolder (5); // faz um loop de todos os arquivos mp3 na pasta SD: / 05. myDFPlayer.enableLoopAll (); // faz um loop em todos os arquivos mp3. myDFPlayer.disableLoopAll (); // parar o loop de todos os arquivos mp3. ------------------------------ myDFPlayer.volume (10); // Defina o valor do volume. De 0 a 30 myDFPlayer.volumeUp (); // Aumentar o volume myDFPlayer.volumeDown (); // Diminuir o volume ------------------------------ myDFPlayer.setTimeOut (500); // Define o tempo limite de comunicação serial 500 ms myDFPlayer.reset (); // Reinicialize o módulo ------------------------------ Serial.println (myDFPlayer.readState ()); // lê o estado do mp3 Serial.println (myDFPlayer.readVolume ()); // lê o volume atual Serial.println (myDFPlayer.readEQ ()); // leia a configuração de EQ Serial.println (myDFPlayer.readFileCounts ()); // lê todas as contagens de arquivos no cartão SD Serial.println (myDFPlayer.readCurrentFileNumber ()); // lê o número do arquivo de reprodução atual Serial.println (myDFPlayer.readFileCountsInFolder (3)); // ler contagens de preenchimento na pasta SD: / 03 ------------------------------ myDFPlayer.available ()
Etapa 5: Fonte de alimentação externa
Agora que seu MP3 player está testado e funcionando, você pode desconectá-lo do computador e usá-lo com uma fonte de alimentação independente. Para simplificar, eu uso um adaptador de parede de 5 volts, que pode ser comprado por cerca de um dólar, e um cabo USB, outro dólar. O cabo conecta o Arduino ao adaptador de parede de + 5V. Como os pinos de alimentação e aterramento do Arduino estão conectados à placa de ensaio, isso alimentará os outros componentes. Por causa de sua simplicidade e baixo custo, uso essa mesma combinação para impulsionar outros projetos.
A foto à direita e o vídeo mostram o reprodutor conectado ao meu amplificador de $ 40 sentado no alto-falante Bose direito na minha mesa. É o meu sistema de música desktop: Arduino MP3 player, amplificador Douk Audio e 2 alto-falantes Bose. Boa qualidade de som.
Espero que você tenha obtido sucesso e tenha gostado de construir seu próprio tocador de música MP3.
Etapa 6: Elimine o ruído estático
Em volume baixo, havia um irritante ruído de estática de fundo. O ruído estava normal quando o volume do DFPlayer estava mais alto e a música estava tocando. Mas quando a música estava baixa, a estática estava lá.
Eu encontrei uma página StackExchage que tinha muitas sugestões. O seguinte funcionou para mim:
- Conecte um fio curto entre os pinos de aterramento do DFPlayer: pinos 7 a 10.
- Use um plugue de parede USB separado (5 V) para alimentar o módulo DFPlayer.
- Conecte o aterramento do plugue de parede ao aterramento do Arduino. Isso era necessário para que o controle serial funcionasse entre o Arduino e o player.
O acima foi testado em meu emulador Altair 8800, que aprimorei com um DFPlayer para tocar música. O jogador é controlado girando os botões do painel frontal.
Recomendado:
Conjunto eletrônico de oito dados totalmente personalizável por infravermelho: 14 etapas (com imagens)
Conjunto eletrônico totalmente IR personalizável de oito dados: Em colaboração com J. Arturo Espejel Báez. Agora você pode ter até 8 dados de 2 a 999 faces em uma caixa de 42 mm de diâmetro e 16 mm de altura! Jogue seus jogos de tabuleiro favoritos com este conjunto eletrônico de dados configurável de bolso! Este projeto consiste em
Automação residencial com módulo de relé controlado por infravermelho e Bluetooth: 10 etapas
Automação residencial com módulo de relé controlado por infravermelho e Bluetooth: neste projeto de automação residencial, mostrei como podemos controlar a luz, o ventilador e outros eletrodomésticos do nosso aplicativo para smartphone e remoto IR usando o circuito do módulo de relé de controle do Arduino. Este relé inteligente controlado pelo Arduino circuito tem dois modos, Inf
Faixas de luz LED com desvanecimento controlado por sensor e alimentadas por Arduino: 6 etapas (com imagens)
Faixas de luz LED com desvanecimento controlado por sensor e alimentadas por Arduino: Recentemente, atualizei minha cozinha e sabia que a iluminação iria "melhorar" a aparência dos armários. Eu optei por ‘True Handless’ então tenho um espaço sob a superfície de trabalho, bem como um kickboard, debaixo do armário e na parte superior dos armários disponíveis e
Remoto infravermelho controlado Amazon Echo: 11 etapas (com imagens)
Controle remoto infravermelho Amazon Echo: O sistema Amazon Echo pode controlar muitos aspectos de uma casa inteligente, mas uma tomada inteligente só pode ser ligada e desligada. Muitos dispositivos não ligam instantaneamente simplesmente ao serem conectados e exigem etapas adicionais, como pressionar botões em um controle remoto ou
Apresentando 'Deodorino' - o Arduino controlado por infravermelho em um desodorante em bastão vazio. Clique na 1ª Foto: 7 Passos
Apresentando 'Deodorino' - o Arduino controlado por infravermelho em um desodorante em bastão vazio. Clique na 1ª Foto: Agora nos detalhes