Inhoudsopgave:
- Benodigdheden
- Stap 1: Wat is de DF Mini Player MP3-module?
- Stap 2:
- Stap 3: De DFMini-speler besturen met Arduino
- Stap 4:
Video: Hoe de DFMini Player MP3-module te gebruiken met Arduino - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Verschillende projecten vereisen geluidsweergave om een of andere vorm van functionaliteit toe te voegen. Onder deze projecten belichten we: toegankelijkheid voor slechtzienden, mp3-muziekspelers en het uitvoeren van spraakgeluiden door bijvoorbeeld robots.
In al deze systemen hebben we een MP3-geluidsreproductieapparaat nodig om verbinding te maken met de Arduino. Daarom zullen we in dit artikel de volgende punten leren: Basisbedieningscircuit van de DFMini Player MP3;Organisatie en configuratie van geluidsbestanden op de geheugenkaart;Muzikale besturing met Arduino.
Benodigdheden
PCBWay Aangepaste PCB;
DFPlayer Mini MP3-module - UTSOURCE;
10kR-weerstand - UTSOURCE;
Schakelknop - UTSOURCE;
Breadboard - UTSOURCE;
Arduino UNO - UTSOURCE;
Headerpin - UTSOURCE;
Stap 1: Wat is de DF Mini Player MP3-module?
De DFMini Player-module is een kleine muziekspeler, goedkoop en met een laag stroomverbruik, die tot doel heeft geluiden weer te geven die op een geheugenkaart zijn opgeslagen.
Op basis hiervan kan de module worden bestuurd via de stand-alone modus, dat wil zeggen, in deze modus is er alleen de DFMini-module, een batterij voor voeding, de luidspreker, knoppen om deze te bedienen en de SD-kaart met de liedjes. Een andere manier om het te besturen is door een Arduino of een ander besturingsapparaat te gebruiken.
De Arduino stuurt bijvoorbeeld opdrachten via seriële communicatie met de DFMini Player Module. De DFMini Player-module wordt getoond in Afbeelding 1.
Om het te besturen, is het belangrijk om het basis stand-alone circuit te gebruiken. Deze schakeling wordt getoond in figuur 2.
De twee knoppen die in het bovenstaande circuit worden getoond, worden gebruikt om de muziektracks te wijzigen en het volume van het geluid te regelen. De knop die is aangesloten op pin IO1 wordt gebruikt om naar de vorige track te gaan en het volume te verlagen. Met een snelle aanraking keert het systeem terug naar het vorige nummer, maar als u de knop langer dan 1 seconde ingedrukt houdt, verlaagt het systeem het volume van het nummer.
De knop die is aangesloten op pin IO2 wordt gebruikt om naar het volgende nummer te gaan en het volume te verhogen. Met een snelle aanraking gaat het systeem naar het volgende nummer, maar als u de knop langer dan 1 seconde ingedrukt houdt, verhoogt het systeem het volume van het nummer.
Stap 2:
Bij deze zelfstandige methode moeten de nummers op de geheugenkaart worden opgeslagen, zoals weergegeven in afbeelding 3.
Op deze manier speelt het systeem elke keer dat de knoppen worden ingedrukt, elk nummer in oplopende of aflopende volgorde af. Als we echter Arduino of een ander besturingsapparaat gebruiken, moeten we de manier wijzigen waarop de muziekbestanden op de SD-kaart worden georganiseerd.
Nu zal ik uitleggen hoe je de DFMini Player bestuurt met behulp van de Arduino via seriële communicatie.
Stap 3: De DFMini-speler besturen met Arduino
In deze stap worden de volumeregeling, bereikregeling, egalisatiecommando's en andere functies door Arduino verzonden.
De Arduino moet via de serieel communiceren met de DFMini Player en de stuurcommando's verzenden.
Het elektronische schema van het regelcircuit wordt getoond in figuur 4.
Eerst moeten we het circuit in de onderstaande afbeelding monteren. Na het monteren van dit circuit moet u de nummers op uw geheugenkaart toevoegen. In deze stap moeten de nummers worden hernoemd naar bijvoorbeeld 01, 02, 03.
Je kunt de nummers niet met hun naam achterlaten, omdat er een probleem zal zijn wanneer de Arduino het commando verzendt om het specifieke nummer uit te voeren. Daarom moet u configureren zoals hieronder wordt weergegeven.
Stap 4:
Nadat u de bestanden een naam hebt gegeven, schrijft u de volgende code op uw Arduino.
// Wacht op gegevensinvoer via serialwhile (Serial.available () > 0) { command = Serial.read (); if ((commando >= '1') && (commando <= '9')) { Serial.print("Muziekreproductie"); Serial.println(opdracht); commando = commando - 48; mijnDFPlayer.play(opdracht); menu_opcoes(); } // Reproductie // Stop if (opdracht == 's') { myDFPlayer.stop(); Serial.println("Muziek gestopt!"); menu_opcoes(); } //Pausa/Continua a musica if (command == 'p') { pausea = !pausa; if (pauze == 0) { Serial.println ("Doorgaan…"); mijnDFPlayer.start(); } if (pausa == 1) { Serial.println("Muziek gepauzeerd!"); mijnDFPlayer.pauze(); } menu_opcoes(); }
// Verhoogt het volume
if (opdracht == '+') { myDFPlayer.volumeUp(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (opdracht == '') { mijnDFPlayer.next(); Serial.println("volgende:"); Serial.print("Huidig nummer:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // Verlaagt het volume als (commando == '-') { myDFPlayer.volumeDown(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } } void menu_opcoes() { Serial.println(); Serial.println(F("=========================================== ================================================== =====================================")); Serial.println(F("Opdrachten:")); Serial.println(F(" [1-3] Om het MP3-bestand te selecteren")); Serial.println(F(" [s] stopt reproductie")); Serial.println(F(" [p] pauzeren/doorgaan met muziek")); Serial.println(F(" [+ of -] verhoogt of verlaagt het volume")); Serial.println(F(" vooruit of achteruit de track")); Serieel.println(); Serial.println(F("=========================================== ================================================== ====================================")); }
De hierboven gepresenteerde code is vrij eenvoudig en helpt je om het nummer op nummer te selecteren, te stoppen, te pauzeren, het volume te regelen en de nummers door te geven.
De muzikale besturing bestaat uit het verzenden van gegevens van de Arduino IDE-serie naar ons Arduino-bord. In eerste instantie maakt het systeem de configuratie in de setup en controleert het of de SD-kaart in de module is geplaatst.
Als het niet is geplaatst, presenteert het systeem een bericht om de gebruiker te waarschuwen.
Daarnaast geeft het systeem berichten weer met opties voor systeemconfiguratie.
void setup () {// Comunicacao seriële com o modulo mySoftwareSerial.begin (9600); //Inicializa a serial do Arduino Serial.begin(115200); //Verificatie van de modulo esta respondendo e se o //cartao SD foi encontrado Serial.println(); Serial.println(F("DFRobot DFPlayer Mini")); Serial.println(F("Initialiseren van DFPlayer-module… Wacht!")); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println(F("Niet geïnitialiseerd:")); Serial.println(F("1. Controleer de DFPlayer Mini-verbindingen")); Serial.println(F("2. Plaats een SD-kaart")); terwijl (waar); } Serieel.println(); Serial.println (F ("DFPlayer Mini-module geïnitialiseerd!")); //Definieert mijnDFPlayer.setTimeOut(500); //Time-out serieel 500ms myDFPlayer.volume(5); //Volume 5 mijnDFPlayer. EQ (0); //Equalizacao normaal menu_opcoes(); }
Als de geheugenkaart is geplaatst, gaat de codestroom naar de lusfunctie.
void loop () { // Wacht op gegevensinvoer via seriële while (Serial.available () > 0) { command = Serial.read (); if ((commando >= '1') && (commando <= '3')) { Serial.print("Muziekreproductie"); Serial.println(opdracht); commando = commando - 48; mijnDFPlayer.play(opdracht); menu_opcoes(); } // Reproductie // Stop if (opdracht == 's') { myDFPlayer.stop(); Serial.println("Muziek gestopt!"); menu_opcoes(); } //Pausa/Continua a musica if (command == 'p') { pausa = !pausa; if (pauze == 0) { Serial.println ("Doorgaan…"); mijnDFPlayer.start(); } if (pausa == 1) { Serial.println("Muziek gepauzeerd!"); mijnDFPlayer.pauze(); } menu_opcoes(); }
// Verhoogt het volume
if (opdracht == '+') { myDFPlayer.volumeUp(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (opdracht == '') { mijnDFPlayer.next(); Serial.println("volgende:"); Serial.print("Huidig nummer:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // Verlaagt het volume als (commando == '-') { myDFPlayer.volumeDown(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } }
De gebruiker kan de volgende controletekens verzenden:
Nummers 1 tot 3: Selecteer het nummer dat moet worden afgespeeld;
- Letter s: Stop het nummer;Letter p: Pauzeer het nummer;
- Stuur het + teken: Verhoog het nummervolume;
- Stuur het - signaal: verlaag het nummervolume;
- Stuur het signaal <: Selecteer het vorige nummer;
- Stuur het signaal >: Selecteer het volgende nummer;
Van deze signalen, letters en cijfers ontvangt de Arduino ze via het serienummer en bestuurt de muziek die moet worden afgespeeld.
Elke voorwaarde wordt hieronder en intern weergegeven, met de bijbehorende opdrachten.
if ((commando >= '1') && (commando <= '3')){ Serial.print("Muziekreproductie"); Serial.println(opdracht); commando = commando - 48; mijnDFPlayer.play(opdracht); menu_opcoes(); } // Reproductie // Stop if (opdracht == 's') { myDFPlayer.stop(); Serial.println("Muziek gestopt!"); menu_opcoes(); } //Pausa/Continua a musica if (command == 'p') { pausea = !pausa; if (pauze == 0) { Serial.println ("Doorgaan…"); mijnDFPlayer.start(); } if (pausa == 1) { Serial.println("Muziek gepauzeerd!"); mijnDFPlayer.pauze(); } menu_opcoes(); }
// Verhoogt het volume
if (opdracht == '+') { myDFPlayer.volumeUp(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (opdracht == '') { mijnDFPlayer.next(); Serial.println("volgende:"); Serial.print("Huidig nummer:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // Verlaagt het volume als (commando == '-') { myDFPlayer.volumeDown(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } }
Dus als u alle gepresenteerde stappen heeft toegepast, kunt u het volgende leren:
- Basisbedieningscircuit van de DFMini Player MP3;
- Organisatie en configuratie van geluidsbestanden op de geheugenkaart;
- Muzikale controle met Arduino. Vanuit deze code kun je andere projecten ontwikkelen die geluid als systeemfunctionaliteit moeten gebruiken.
Dankbetuigingen
Om af te sluiten, danken wij u voor uw lezing en de steun van PCBWAY. COM voor het ondersteunen van Silício Lab bij de productie van dit artikel voor u.
Het Silícios Lab bedankt UTSOURCE voor het aanbieden van de elektronische componenten om dit project te bouwen.
Aanbevolen:
Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken om DIMP 2 of DA PIMP te Bit-bang-programma te gebruiken 2: 9 stappen
Hoe de GPIO-pinnen van een Raspberry Pi en Avrdude te gebruiken voor Bit-bang-programma DIMP 2 of DA PIMP 2: Dit zijn stapsgewijze instructies voor het gebruik van een Raspberry Pi en het gratis open-source commando avrdude to bit-bang -programmeer een DIMP 2 of DA PIMP 2. Ik neem aan dat je bekend bent met je Raspberry Pi en de LINUX-opdrachtregel. Je hoeft niet
Infraroodsensor gebruiken met Arduino 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Infraroodsensor gebruiken met Arduino: wat is een infraroodsensor (ook bekend als IR-sensor? Een IR-sensor is een elektronisch instrument dat IR-signalen scant in specifieke frequentiebereiken die zijn gedefinieerd door normen en deze omzet in elektrische signalen op de uitgangspin (meestal signaalpin genoemd) . Het IR-signaal
Hoe DS1307 te gebruiken met Arduino: 7 stappen
Hoe DS1307 te gebruiken met behulp van Arduino: DS1307 is een Real Time Clock IC (RTC). Dit IC wordt gebruikt om tijdgegevens te verstrekken. De toegewezen tijd begint met seconden, minuten, uren, dagen, datum, maand en jaar. Dit IC vereist extra externe componenten zoals kristal en 3,6 V-batterijen. Kristal
Mac Terminal gebruiken en toetsfuncties gebruiken: 4 stappen
Mac Terminal gebruiken en toetsfuncties gebruiken: We laten u zien hoe u de MAC Terminal opent. We zullen u ook enkele functies binnen de Terminal laten zien, zoals ifconfig, mappen wijzigen, toegang tot bestanden en arp. Met Ifconfig kunt u uw IP-adres en uw MAC-advertentie controleren
Hoe de Instructables IRC-chatroom te gebruiken! 6 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe de Instructables IRC-chatroom te gebruiken!: Vóór de implementatie van de Meebo-chatroom, waar de meesten van jullie in zijn geweest of van hebben gehoord, had Instructables een IRC-chatroom. De meebo-kamer heeft ons goed gediend, maar is beperkt, heeft veel gebreken, en verzandt de meeste gemiddelde computersystemen. IRC-ka