Índice:

MP3 player controlado por infravermelho: 6 etapas (com imagens)
MP3 player controlado por infravermelho: 6 etapas (com imagens)

Vídeo: MP3 player controlado por infravermelho: 6 etapas (com imagens)

Vídeo: MP3 player controlado por infravermelho: 6 etapas (com imagens)
Vídeo: Como resolver o erro "Dispositivo USB não reconhecido" no Windows | Wondershare Recoverit 2024, Junho
Anonim
Image
Image
MP3 player controlado por infravermelho
MP3 player controlado por infravermelho

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

Adicione o Arduino Nano ao breadboard
Adicione 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

Adicione o receptor infravermelho e conecte-o ao Arduino
Adicione o receptor infravermelho e conecte-o 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

Fio no módulo DFPlayer que reproduz arquivos MP3
Fio no módulo DFPlayer que reproduz arquivos MP3
Fio no módulo DFPlayer que reproduz arquivos MP3
Fio no módulo DFPlayer que reproduz arquivos MP3
Fio no módulo DFPlayer que reproduz arquivos MP3
Fio no 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

Image
Image
Fonte de energia externa
Fonte de energia externa
Fonte de energia externa
Fonte de energia 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: