Wir möchten mit einem Tastfeld Bedienteil einen kleinen Audioplayer mit einem Eventplayer100 bauen, dazu weisen wir den Tasten bestimmte Befehle zu.
Vorgabe der Anwendung:
Alle Tracks befinden sich in einem Ordner, es sollen alle Tracks nacheinander abgespielt werden.
Taste 1 => Play / Pause Funktion
Taste 2 => Nächster Track
Taste 3 => Vorheriger Track
Taste 4 => Stop Funktion
Taste 5 => Volume up
Taste 6 => Volume down
Als erstes wird das Programm "Infotainment Configuratior" geöffnet und mit "File – new – Singleplayer (Eventplayer100)" eine neue Konfiguration erstellt.
Nun werden die Einstellungen in den Settings (=> Device => Settings) geprüft ob die Notwendigen Voreinstellungen getroffen sind, bis auf den Skiploopmode und dem Pegelschritt können die Defaultwerte eingestellt gelassen werden.
Pegelschritt – 5: Schritte der Lautstärke Änderung
Skiploopmode – on: nach dem letzten Track des Ordners wird wieder zum ersten geblättert
Bedeutung der weiteren Parameter finden Sie unter Punkt 8.2
Nun bearbeiten wir die Events und Aktionen, ein erstes Event ist bereits automatisch gesetzt worden.
Um dieses zu bearbeiten klicken wir auf das Event im Funktionslistenbereich und wählen uns den Event Type Binary aus. Die Edge Detection ist automatisch auf Edge_Rising eingestellt (für einen einfachen Taster), nun wird noch der Eingang ausgewählt, diesen setzen wir auf 1.
Mit "Add Action" fügen wir diesem Ereignis eine Aktion hinzu. Als Action Type möchten wir einen Player haben (Aktion die das Abspielen der Audiodateien betreffen).
Als Kommando möchten wir dieser Taste ein "Play" zuweisen um mit der Taste 1 das abspielen zu starten. Den Loop Modus lassen wir auf off um ein wiederholtes Abspielen des Tracks zu verhindern.
Mit dem Button "Add Event" fügen wir ein weiteres Event hinzu. Der Event type ist auch ein Player Event, die Edge detection bleibt auf Edge_Rising und wir wählen Eingang 2 aus.>
Danach eine neue Aktion einfügen durch "Add Action". Der Typ der Aktion ist auch ein Player mit dem Kommando "Prev" für einen Sprung auf den vorherigen Track.
Ein weiteres Event "Player" erstellen mit dem Eingang 3.
und dazu eine Aktion "Player" mit dem Kommando "Next".
Ein weiteres Event "Player" erstellen mit dem Eingang 4.
und dazu eine Aktion "Player" mit dem Kommando "Stop".
Ein weiteres Event "Player" erstellen mit dem Eingang 5.
und dazu eine Aktion "Player" mit dem Kommando
"Volume up".
Ein weiteres Event "Player" erstellen mit dem Eingang 6.
und dazu eine Aktion "Player" mit dem Kommando
"Volume down".
Zum Abschluss wird die erstellte Konfiguration unter dem Namen "config.xml" auf der SD-Card gespeichert,
die gewünschten Audiodateien noch auf die Karte kopiert und die neue Konfiguration in den Player geladen.
SD-Card einstecken – Spannung kurz trennen – fertig.
Die Konfiguration mit dem einfachen MP3-Player ist nun fertig und kann über die an den Binären Eingängen angeschlossene Taster gesteuert werden.
Hier können die Beispiel Konfigurationen heruntergeladen werden. |
Wir möchten mit einem Taster einen Audiotrack spulen.
Drücken des Tasters => Beginnt zu spulen.
Taster loslassen => Spulen stoppt und Wiedergabe setzt fort.
Einen Audiotrack zu spulen ist etwas kniffelig, da es nicht ausreicht eine Aktion "Player - Fast Forward" zu erstellen.
Bei einer einzelnen Aktion würde das Spulen beginnen aber nicht mehr aufhören. Deshalb muß man sich hier mit einem Trick behelfen.
Vorgabe der Anwendung:
BIN 4 - Spulen Fast Forward
BIN 5 - Spulen Rewind
Benötigt wird ein Eventplayer100, 2 Taster oder ein Tastfeld sowie eine SD-Karte.
Als erstes muß ein Track abgespielt werden mit einer Aktion "Player - Command Start".
Einstellungen sowie Grundlegende Playerfunktionen wie das starten eines Audiotracks sind in diesem Tutorial nicht beschrieben.
Dazu bitte das Tutorial "Beispiel 1 - einfacher Audio Player mit dem Eventplayer100" anschauen.
Mit einem Taster der an den BIN 4 angeschlossen ist wollen wir vorwärts spulen.
Dazu wird als erstes ein Event "Binary" durch einen Klick auf "Add Event" erstellt. In der Event Configuration wird der Input 4 ausgewählt und die Edge Detection auf "Edge_rising" (Beim Druck auf die Taste). Dieses Event wird ausgelöst indem Moment auf die Taste gedrückt wird.
Add Event: Binary => Edge_Rising (Input 4)
Um Vorwärts zu spulen wird eine Aktion "Player" erstellt mit einem Klick auf "Add Action".
Als Action Type wählen wir "Player", als Kommando wird "Fast Forward" ausgewählt.
Add Action: Player => Command "Fast Forward"
Mit dem Button "Add Event" fügen wir ein weiteres Event hinzu. Der Event type ist auch ein "Binary" Event.
In der Event Configuration wird auch hier der Input 4 ausgewählt und die Edge detection stellen wir auf "Edge_Falling" (Beim loslassen der Taste).
Dieses Event wird ausgelöst indem Moment die Taste losgelassen wird.
Add Event: Binary => Edge_Falling (Input 4)
Danach wird eine neue Aktion einfügen durch "Add Action". Der Typ der Aktion ist hier wieder "Player" mit dem Kommando "Pause". Der Track unterbricht das spulen und macht eine Pause.
Add Action: Player => Command "Pause"
Für dieses Event wird noch eine weitere Aktion benötigt. Dieses hat wiederum den Aktions Typ "Player" nur diesmal mit dem Kommando "Play/Resume" und wichtig damit diese Aktion nach der Pause ausgeführt wird brauchen wir ein kurzes Delay.
Das Delay wird mit beim Punkt "Action Delay Configuration" eingestellt. Ich habe hier ein Delay von 5ms gewählt.
Add Action: Player => Command "Play/Resume" / Delay 5ms
Sobald die Taste auf dem Input 4 losgelassen wird, macht der Player eine Pause gemacht und es wird verzögert eine Aktion Play/Resume ausgelöst.
Den gleichen Vorgang können wir nun auch für ein Rückwärtsspulen umsetzen. Mit dem Unterschied, das für erste Aktion ein "Rewind" ist (um zurück zu spulen).
Add Action: Player => Command "Pause"
Den gleichen Vorgang können wir nun auch für ein Rückwärtsspulen umsetzen. Mit dem Unterschied, das für die erste Aktion ein "Rewind" als Aktions Typ verwendet wird (um zurück zu spulen). Die Notwendigen Schritte sind beim Vorwärts und Rückwärtsspulen identisch.
Hier können die Beispiel Konfigurationen heruntergeladen werden. |
In einem Museum sollen für die Ausstellungsstücke Bedientableaus eingebaut werden. Auf diesen Tableaus sind Tasten für 3 verschiedene Sprachen (deutsch, englisch, franzözisch).
Mit den einzelnen Tasten werden MP3 Dateien aufgerufen für die jeweilige Sprache, dazu werden Zeitgesteuert bestimmte Lichter ein und ausgeschaltet.
Vorgabe der Anwendung:
Alle Tracks befinden sich in einem Ordner, es sollen alle Tracks nacheinander abgespielt werden.
BIN 1 - Eingang Taste 1 => Deutsch
BIN 2 - Eingang Taste 2 => Englisch
BIN 3 - Eingang Taste 3 => Französisch
BIN 5 - Ausgang Ansteuerung Strahler 1
BIN 6 - Ausgang Ansteuerung Strahler 2
BIN 7 - Ausgang Ansteuerung Strahler 3
INFO! Die Binären Ausgange werden gegen Ground geschalten, da die geschlossenen Kontakte nur einen geringen Strom zur Verfügung stellen, wird ist für die Beleuchtung ein Relais nötig.
Durch den Druck auf eine Taste beginnt eine Audiodatei in der jeweiligen Sprache an zu spielen, gleichzeitig wird ein Strahler angesteuert. Während das Audiofile abgespielt wird, passieren verschiedene Aktionen. Der Hauptstrahler wird ausgeschalten und es werden nach und nach verschiedene Lampen ein- und ausgeschaltet.
Als erstes wird das Programm „Infotainment Configuratior“ geöffnet und mit „File – new – Singleplayer (Eventplayer100)“ eine neue Konfiguration erstellt.
Nun werden die Einstellungen in den Settings (=> Device => Settings) geprüft ob die Notwendigen Voreinstellungen getroffen sind, bis auf den Playmode können die Defaultwerte eingestellt gelassen werden.
Trackmode – track: es wird nur ein Track abgespielt
Nun bearbeiten wir die Events und Aktionen, ein erstes Event ist bereits automatisch gesetzt worden.
Um dieses zu bearbeiten klicken wir auf das erstellte Event im Funktionslistenbereich und wählen den
Event Type Binary aus.
Die Edge Detection ist automatisch auf Edge_Rising eingestellt (für einen einfachen Taster), nun wird noch der Eingang ausgewählt, diesen setzen wir auf 1.
Add Event: Binary => Edge_Rising (Input 1)
Mit "Add Action" fügen wir diesem Ereignis eine Aktion hinzu. Als Action Type möchten wir einen Player haben (Aktion die das Abspielen der Audiodateien betreffen).
Als Kommando möchten wir dieser Taste ein „Start“ zuweisen um mit der Taste 1 das abspielen zu starten.
Den Loop Modus lassen wir auf off um ein wiederholtes Abspielen des Tracks zu verhindern. Um die Audiodatei auszuwählen wird unter der "File config" mit dem Button "browse" eine Datei ausgewählt.
Add Action: Player => Command "Play" File: deutsch.mp3
(Dabei ist darauf zu achten, das die Datei den Spezifikationen laut Datenblatt entspricht und nicht mehr als 8 Zeichen vor dem Punkt und 3 Zeichen als Dateiendung hat.)
Wir fügen noch mit "Add Action" eine weitere Aktion hinzu um den Binären Ausgang 5 einzuschalten (Action Type = Binary).
Den Ausgang "Switch Output schalten wir für "Out 5" auf "high = ON". Mit dieser Aktion wird der Ausgang 5 auf Masse (G) geschalten.
Add Action: Binary => Switch Output 5 (High)
Nach 28:00 Sekunden soll der Ausgang 6 (Beleuchtung 2) eingeschalten werden und der Ausgang 5 (Beleuchtung 1) wieder ausgeschalten werden.
Dazu wird mit einem Player Event die Audio Datei "deutsch.mp3" ausgewählt und die Zeitsteuerung auf
"After begin" also Zeit nach dem Beginn des abspielens auf
0:28:00 gestellt.
Add Event: Player => File config "deutsch.mp3" - After begin 0:28:00
Dazu werden zwei Aktionen benötigt.
Mit der ersten wird der Ausgang 5 wieder ausgeschalten.
Add Action: Binary => Switch Output 5 (Low = OFF)
Mit der zweiten wird der Ausgang 6 eingeschalten.
Add Action: Binary => Switch Output 6 (High = ON)
Die nächste Funktion soll sein, das nach 1 Minute und 7 Sekunden zusätzlich der Ausgang 7 (Beleuchtung 3) eingeschalten werden.
Dazu wird mit einem Player Event die Audio Datei "deutsch.mp3" ausgewählt und die Zeitsteuerung auf
"After begin" also Zeit nach dem Beginn des abspielens auf 1:7:00 gestellt.
Add Event: Player => File config "deutsch.mp3" - After begin 1:07:00
Um die Beleuchtung 3 einzuschalten wird der Ausgang 7
auf "ON" gestellt.
Add Action: Binary => Switch Output 7 (High = ON)
Die Beleuchtung soll 2 Sekunden bevor der Audio Track zu Ende ist wieder ausgeschaltet werden.
Dafür wird ein Event erstellt das über die Zeitsteuerung abfragt wann der Track 2 Sekunden vor dem Ende ist.
Add Event: Player => File config "deutsch.mp3" - Before end 0:02:00
Sobald das Event erreicht wird, werden die Ausgänge 6 und 7 wieder geöffnet.
Add Action: Binary => Switch Output 6 (Low = OFF)
und
Add Action: Binary => Switch Output 7 (Low = OFF)
Zum Abschluss wird die erstellte Konfiguration unter dem Namen „config.xml“ auf der SD-Card gespeichert,
die gewünschten Audiodateien noch auf die Karte kopiert
und die neue Konfiguration in den Player geladen.
SD-Card einstecken – Spannung kurz trennen – fertig.
Die Konfiguration mit dem einfachen MP3-Player ist nun fertig und kann über die an den Binären Eingängen angeschlossene Taster gesteuert werden.
Hier können die Beispiel Konfigurationen heruntergeladen werden. |
HowTo:
1) Firmware auf die SD-Karte kopieren (ohne Unterverzeichnis direkt in die 'Wurzel')
2) Nach <update.bin> umbenennen
3) Player stromlos machen
4) Setup-Taster halten und Player wieder an den Strom hängen
5) Led blinkt einige Sekunden schnell
*******************************
Auszug aus der Anleitung:
*******************************
7.5 Firmware Update:
Mit der Firmware können neue Funktionen und Änderungen an der Gerätesoftware aktualisiert werden.
Wenn Audiodateien mit einer falschen Abtastrate vorliegen, z.B. 48kHz.
werden diese übersprungen und nicht abgespielt
Supported audio formats
if there are audio files with an incorrect sampling rate, e.g. 48kHz. these files are getting skipped and not played.
Es werden WAV Dateien nur unkomprimiert und mit 16 Bit PCM kodiert - in stereo abgespielt.
Mono Dateien können nicht verarbeitet werden.
Hinweise zu den unterstützten Audio Formaten >>>
Mono Dateien können vom Player nicht abgespielt werden.
Es werden folgende Audioformate unterstützt
MPEG1 layer 3 MP3 (.mp3)
Advanced Audio Coding (AAC)
Datei im ADTS Stream Format (.aac) oder MP4 Container Format (.mp4, .m4a)
Unkomprimierte Audiodaten (.wav) (nur stereo mit 16 Bit PCM kodiert)
Audiodateien werden mit der Standard Samplerate von 44,1 kHz sowie mit einer Samplegröße von 16 Bit verarbeitet.
Die Player verarbeiten nur stereo Dateien!
Der Audio Eingang des Verstärkers muß gleich ausgeführt sein wie der des Ausgangs des Eventplayers um ein übersprechen zu verhindern.
Wird ein Symetrischer Ausgang an den Unsymetrischen Eingang eines Verstärkers angeschlossen (oder umgekehrt) kopplet die jeweils andere Seite des Audio Signal über die Masse mit ein und summiert gleichzeitig das Audio Signal es erfolgt ein übersprechen.
Pin (L+) > Audio + Links
Pin (L-) > Audio - Links
Pin (R+) > Audio + Rechts
Pin (R-) > Audio - Links
Der Eventplayer100 wird Standardmäßig in Symetrischer Ausführung geliefert, dabei hat jeder Ausgang eine getrennte Masse.
Um ein übersprechen zu verhindern muß der angeschlossene Verstärker einen symetrischen Eingang besitzen. Wenn am angeschlossenen Verstärker nur ein Unsymetrischer Eingang zur Verfügung steht, muß der Eventplayer auch als Unsymetrische Variante bestellt werden.
Bei der Unsymetrischen Variante haben die Ausgänge eine gemeinsame Masse.
Unsymetrische Eingänge haben allerdings generell das Problem das es zu Brummschleifen kommen kann. Dazu muß die Masse der Eingangsbuchsen des angeschlossenen Verstärkers vom Schutzleiter getrennt werden mit einem Groundlift Schalter.
Mit dem Eventplayer100 ist es möglich, generische COM-Messages zu senden und empfangen. Somit ist es möglich, mit einem einzelnen COM-Event unterschiedliche Aktionen auszuführen und mit einer COM-Aktion unterschiedliche Messages zu senden.
Für diese Möglichkeiten muss der Infotainment Configurator mindestens auf dem Versionsstand 0.5.1 sind und die Firmware auf dem Stand 0.1.13.
Bei einer COM-Message für einen COM-Event ist es möglich einen oder mehrere Parameter-Zeichenketten zu ergänzen, welche beim Empfang in die Aktion übernommen werden. Momentan ist dies nur bei Player-Aktionen möglich. Dabei wird der Inhalt in „File Config“ (Audiopfad) durch die Zeichenkette in der COM-Message ersetzt.
Die Möglichkeit für die Übergabe der Zeichen muss im Event mit „Allow Com Extension“ aktiviert werden, sonst werden keine Zeichen übergeben.
Um die Zeichen zu übergeben muss an das Ende der normalen COM-Message ein URI angehängt werden. Dieser hat folgenden Aufbau:
<evt:Zeichenkette>
Hier ist ein Beispiel wie der Track Test.mp3 aufgerufen wird.
Event:
Aktion:
Um den Track zu starten muss die Message play_<evt:Test.mp3> gesendet werden.
Bei einer COM-Message von einer COM-Aktion ist es möglich, einen von Player generierten Text zu senden. Dazu muss eine Systemvariable mit einem %-Zeichen, jeweils vor und nach der Variable, in die Message eingefügt werden. Es gibt die Variablen ERROR, STATE, CARD und EVT_PATH.
Bei einem Start- oder Stop-Event wird der Trackpfad der diesen Event ausgelöst hat intern gespeichert. Wenn dann in der Message von einer COM-Aktion übergeben werden soll, muss dazu die Variable EVT_PATH eingefügt werden. Damit der Event bei verschiedenen Tracks aufgerufen wird, darf der Trackpfad nur eine Teilmenge bzw. die Schinittmenge von Trackanfang enthalten.
Hier ist ein Beispiel wir bei einem Start-Event der Trackpfad übergeben wird.
Event:
Aktion:
Wenn der Track Test.mp3 gestartet ist, wird die Message play_Test.mp3 gesendet. In diesem Event ist der Bereich für den Trackpfad (File config) leer, sodass bei jedem Trackstart der Event aufgerufen wird.