Shop-Wechsel

Der Warenkorb wird nicht übernommen.

Zum Privatkunden Shop

Shields - Zusatzmodule

Gleichzeitige Ausgabe von MP3s und Steuerung eines Servos

Beiträge zu diesem Thema: 2

ELV Komplettbausatz Audio Shield für Arduino, ASA1

Artikel-Nr.: 105922

zum Produkt
Gleichzeitige Ausgabe von MP3s und Steuerung eines Servos
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
24.09.2015, 09:36
Hey
ich benötige für mein Animatronic Project ein Audio Shield, habe dazu aber vorher eine Frage.
Ist es möglich, während ich mit dem Shield eine Mp3 abspiele, parallel einen Servo (den ich für die Mundbewegung des Animatronics benötige) anzusteuern?
Danke schonmal im Vorraus
Aw: Gleichzeitige Ausgabe von MP3s und Steuerung eines Servos
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
28.09.2015, 16:30
Hallo Rootrocker,

die Frage lässt sich nicht so einfach beantworten. Wie wird der Servo angesteuert? Wieviel Zeit benötigten die Funktionen und in welchen Abständen müssen diese aufgerufen werden?

Das Abspielen von MP3-Dateien von der SD-Karte ist schon sehr aufwändig und benötigt viel Rechenzeit des Mikrocontrollers.
Während des Abspielen gibt es, je nach verwendeter Bitrate der MP3-Datei und der Lesegeschwindigkeit, jedoch einige Pausen zwischen dem Beschreiben des Puffers des MP3-Decoders. Diese können für andere Aktionen genutzt werden, dabei darf der Puffer des MP3-Decoders aber nicht leer laufen, da es sonst zu Aussetzern kommt.

Vor dem Senden eines neuen 32 Byte großen Datenpakets an den MP3-Decoder sollte der Pin-Status von DREQ überprüft werden.
Solange der Pin auf Low ist, ist der Puffer des MP3-Decoders noch belegt und es können andere Aktionen ausgeführt werden.
Hier ein Beispiel aus dem ASA1_simple Code:

//Datei bis zum Ende abspielen
while( SoundFile.available() )
{
//Puffer mit Daten aus der Datei füllen
SoundFile.read( buffer, sizeof(buffer) );
while( !digitalRead( VS10XX_DREQ ))
{
//hier Aktionen ausführen
}

//Daten aus Puffer an MP3-Decoder senden
VS1011.Send32( buffer );
}

Mit freundlichen Grüßen euer Team der technischen Kundenbetreuung