Alternative Software AiO always queue und mehr

Ich habe jetzt meine Software des TonUINO Classik fast vollständig an die AiO angepasst. Diese Anpassung umfasst erst mal nur die Möglichkeiten, die ohne Hardware-Änderungen nutzbar sind. Es ist eine weitere Version in Arbeit, die aber ein paar kleinere Änderungen an der AiO Platine erfordern. Diese Version werde ich vorläufig noch nicht veröffentlichen, da hier das Risiko besteht, dass die Platine Beschädigt wird, wenn das nicht ordentlich gemacht wird. Die Software werde ich in den nächsten Tagen hier über einen Link zum Download bereitstellen. Wer Interesse hat, das bitte im Auge behalten.
Hier eine kurze Übersicht des Umfangs der Anpassung.

/****** Alternative Software *************
   _____         _____ ___ ___ _______
  |_   _|___ ___|  |  |   |   | |     |
    | | | . |   |  |  |- -| | | |  |  |
    |_| |___|_|_|_____|___|_|___|_____|
    Based on TonUINO Version 2.1 und Version 2.2 AiO

    created by Thorsten Voß and licensed under GNU/GPL.
    Information and contribution at https://tonuino.de.

********* Always Queue - AiO oder Classic TonUINO ************************

      Version Thomas Lehnert

      letzte Änderung 2020-12-10

    - Über #define wird ausgewählt, ob die Software auf dem AllinOne-Board,
      oder auf der Hardwareversion aus Einzelkomponenten mit dem Arduino Nano
      benutzt werden soll.

    - Für die AiO Platine müssen folgende Einstellungen vorgenommen werden.
      Die LGT8Fx Bibliotheken müssen in der IDE installiert sein !
      Siehe folgender Link: https://www.leiterkartenpiraten.de/2020/11/21/die-arduino-ide-einrichten/

      Boardtyp LGT8F328 unter Logic green Arduino AVR Compatible Boards auswählen
      Clock Source: External (assumes 32MHz crystal)
      Clock: 16 MHz
      Variant: 328P-LQFP (e.g. MiniEVB nano-style and WAVGAT)
      Arduino as ISP: Default (64)
      Korrekten COM Port
      Um den korrekten COM Port auswählen zu können, muss die AiO angeschlossen sein. Der COM Port
      kann sich unterscheiden (siehe Gerätemanager).

   - Für die Nutzung in der Version Classic mit Einzelkomponenten Nano 328P oder Nano 328P(Old Bootlader), je nach Version auswählen.


     !!!!!!! WICHTIG !!!!!!!!!!! WICHTIG !!!!!!!!!!! WICHTIG !!!!!!!!!!! WICHTIG !!!!!!!!! WICHTIG !!!!!!!!!!!
     !!                                                                                                     !!
     !!   Wird diese Version auf einem Tonuino aufgespielt, der schon eine ältere Version                   !!
     !!   verwendet, muss beim ersten Start durch drücken der drei Tasten VOR ZURÜCK PLAY                   !!
     !!   ein RESET ausgeführt werden.                                                                      !!
     !!   Damit werden die SETTINGS an die neue Software angepasst, sonst funktioniert es nicht.            !!
     !!                                                                                                     !!
     !!   Die Änderungen erfordern eine Neuordnung und das Hinzufügen von Dateien im advert und mp3 Ordner. !!
     !!                                                                                                     !!
     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  ***********************************************************************************************************
  ***********************************************************************************************************

      Meine Änderungen ( Teilweise über " #define " wähl- oder abwählbar)

    - Auswahlmöglichkeit für die Nutzung der Software auf dem AiO Board, oder dem Tonuino aus Einzelkomponenten (TonUINO Classic)
    - Integration der Hilfsroutine für den EEPROM der AiO Platine und Codeanpassung                                                - (nur für AiO)
    - Abschaltung über MOSFET oder Pololu-Switch, ShutDownPin - Low aktiv                                                          - (AiO und TonUINO Classic)
    - Der Powerdown Impuls wird verdoppelt zur sicheren Abschaltung über MosFet                                                    - (nur TonUINO-Classic)
    - Animation mit LED-RGB-Ring, Ein- und Ausschaltbar über langen Druck Up + Down                                                - (AiO und TonUINO Classic)
    - StandBy Timer auf 5 min voreingestellt und aktiviert                                                                         - (AiO und TonUINO Classic)
    - Sleepmodus, Ausfaden der Lautstärke über die letzten 20 Sekunden. Standbytimer schaltet danach sofort aus.                   - (AiO und TonUINO Classic)
    - Sleepmodus, Neue Karte und Tasten ausser Play-Pause bis zum Ausschalten gesperrt                                             - (AiO und TonUINO Classic)
    - Abschaltung der LED-Animation über Standbytimer zur Abschaltung Powerbank Software-only                                      - (nur TonUINO Classic)
    - Verzögerte Zuschaltung des Lautsprechers beim Einschalten, (Classic über MOSFET) (Unterdrückung Einschaltgeräusch)           - (AiO und TonUINO Classic)
    - Lautsprecher wird bei angeschlossenem Kopfhörer über Software abgeschaltet. Für AiO nur durch Änderung der Platine möglich!  - (nur TonUINO Classic)
      Die Abschaltung bei der AiO erfolgt über die Kopfhörerbuchse (Amp wird direkt abgeschaltet)
    - Die Pegel des Kopfhörer Sensors können über #define KHSensLOW umgestellt werden. LOW oder HIGH aktiv.                        - (nur TonUINO Classic)
    - Lautstärkeänderung bei Einstellung über long press button verlangsamt. Besser zu händeln.                                    - (AiO und TonUINO Classic)
    - Menülautstärke kann unabhängig von zuletzt eingestellter Lautstärke auf Startlautstärke oder Festwert gesetzt werden         - (AiO und TonUINO Classic)
    - Reihenfolge der Funktionen im Adminmenü geändert, Ordner mp3 auf der SD Karte muss angepasst werden !!!                      - (AiO und TonUINO Classic)
    - Die Auswahloptionen im Adminmenü werden jetzt umlaufend durchgeschaltet.                                                     - (AiO und TonUINO Classic)
      D.h. ist die höchste Option erreicht, wird anschließend zu Option 1 weitergeschaltet. In Rückwärtsrichtung von 1 zu höchster Option.
    - Bei der Ordnerauswahl werden nur noch die vorhandenen Ordner berücksichtigt. ( Funktioniert nicht mit allen DfMini Playern)  - (AiO und TonUINO Classic)
    - Rechenaufgabe und PIN Eingabe aus Schutzfunktion Adminmenü entfernt                                                          - (AiO und TonUINO Classic)
    - Feedback beim Beenden des Admin-Menues                                                                                       - (AiO und TonUINO Classic)
    - Feedback beim Schreiben von Karten und Konfigurieren der Shortcuts                                                           - (AiO und TonUINO Classic)
    - Feedback auch beim Konfigurieren "Neue Karte" ohne Benutzung des Adminmenüs                                                  - (AiO und TonUINO Classic)
    - Jingle beim Entfernen der Modifikationskarten, Funktion beim Auflegen wird angesagt                                          - (AiO und TonUINO Classic)
    - Hörbuchmodus, Fortschritt wird bei langem Druck der Pausetaste auf Track 1 zurückgesetzt                                     - (AiO und TonUINO Classic)
    - Letzte gespielte Karte wird gespeichert und als Shortcut auf die Play-Taste gelegt                                           - (AiO und TonUINO Classic)
      Im Adminmenü wird die Konfiguration des Shortcuts für die PlayTaste ausgeblendet, da diese mit lastcard belegt wird.
    - TonUINO als Wecker. Ein Uhrenmodul schaltet den TonUINO ein und gibt ein Signal auf Analogpin A6                              - (AiO und TonUINO Classic)
      das das Abspielen eines Shortcuts als Wecksound startet.Konfiguration des Weckershortcuts im Adminmenü integriert.
    - Wecker wird auch bei angeschlossenem Kopfhörer (Lautsprecher Aus), über den Lautsprecher abgespielt.                          - (nur TonUINO Classic)
      Für die AiO ist diese Funktion nur nach einer Änderung an der Platine (Trennung einer Verbindung) nutzbar.                      (AiO nach Hardwareänderung)
    - Empfindlichkeit des RFID Lesers kann in der Initialisierung ( "mfrc522.PCD_Init()")geändert werden. Hier auf mittel gesetzt.  - (AiO und TonUINO Classic)
    - Alle Abspielmodi arbeiten jetzt mit einer Queue (Playlist)- "Always queue".                                                   - (AiO und TonUINO Classic)
    - Die Queue in den Modi Party beginnen jetzt bei jedem Start mit einem anderen zufälligen Track.                                - (AiO und TonUINO Classic)
    - Die Queue in den Modi Party werden vor Neustart am Ende neu gemischt.                                                         - (AiO und TonUINO Classic)
    - Die Fehlercodes des DF-Players werden im seriellen Monitor im Klartext angezeigt.                                             - (AiO und TonUINO Classic)
    - Weitestgehende Kürzung der Ausgaben über den Ser-Monitor zur Einsparung von Programmspeicher                                  - (AiO und TonUINO Classic)
    - Debug Modus: (Konsole) Die Ausgaben auf den Seriellen Monitor können zur Einsparung von Speicherplatz                         - (AiO und TonUINO Classic)
      über die defines ausgeschaltet werden. Es werden nur die Meldungen beim Start angezeigt.
      Bei aktivierter LED-Animation wird diese im Debug-Modus deaktiviert, um Speicherplatz für die Ausgaben
      in der Konsole frei zu machen. (Ersparnis ca 20% Programmspeicher)

    ************** Bug Fixes **********************************************************
    - Fix, Letzte Karte auf Playtaste legen, alle Modi Spezial-von-bis, Start und Endtrack werden jetzt richtig gespeichert
    - Fix, Bei Schutz des Adminmenüs NUR MIT KARTE hängt sich der Tonuino nicht mehr bei 3 Tastendruck auf
    - Fix, ModKarte repeat single track. Rücktaste jetzt auch gesperrt.
    - Fix, ModKarte repeat single track. Im Partymodus wird jetzt der richtige aktuelle Titel abgespielt.
    - Fix, Spezialmodus Von-Bis-Album, Vor- Rücktasten bleiben jetzt im definierten Ordnerbereich.
    - Fix, Reset beim Einschalten. TonUINO auf default-Werte rücksetzen funktioniert jetzt.
    - Fix, Standby-Timer wird jetzt auch bei manuellem Abbruch des Adminmenüs gestartet.
    - Fix, Bei nicht beendetem Adminmenü wird nach 2 min Inaktivität (TimeOut) das Adminmenü automatische beendet
           und der Tonuino ausgeschaltet.
    - Fix, Codeanpassung an Bibliothek Df-Player mini Version 1.06 . und höher !!! Diese muss installiert sein !!!

    ************* Änderungen im Adminmenü *********************************************************

     - Das Durchschalten der Optionen erfolgt jetzt umlaufend. Vorwärts und auch rückwärts
     - Die Reihenfolge der Menüpunkte wurde verändert.
     - Die Menüstruktur wurde verändert und mehrere Untermenüs hinzugefügt.
     - Die Presets für die Lautstärke wurden um Presets für den Kopfhörer erweitert.
     - Die Einstellungen für den EQ wurden in das Untermenü der Lautstärkeeinstellungen integriert.
     - Bei der Configuration der Shortcuts wurde das Voicemenü an die Option mit oder ohne Wecker angepasst.
     - Wenn die Funktion LastCard genutzt wird, ist die Konfiguration des Shortcuts 0 (PlayTaste) ausgeblendet.
     - Im Adminmenü läuft eine Timeoutfunktion, die nach 2 Minuten Inaktivität das Adminmenü beendet und
       den Tonuino ausschaltet. Das Timeout funktioniert jetzt auch wenn auf das Auflegen einer Karte gewartet wird.
       Bei Nichtauflegen einer angeforderten Karte, wird nach Ablauf der Timeoutzeit der Tonuino abgeschaltet.

     - Die Änderungen erfordern eine Neuordnung und das Hinzufügen von Dateien im advert und mp3 Ordner.
       Zur Korrekten Funktion, die dieser Version beigefügten advert und mp3 Ordner verwenden.


**************************************************************************************************/
// _________________________________________________________________________________________________

// *************** Auswahl der Tonuino-Variante ** AiO oder TonUINO Classic *********************
// uncomment or comment the " #define AiO "  to switch enter the AiO Softwareversion or TonUINO Classic

// --------------------- All in One Board ----------------------------------------------------------
#define AiO                     // Software wird an das AiO Board angepasst
                                // Für den TonUINO Classic " #define AiO " in Kommentar setzen
// _________________________________________________________________________________________________

// *************************** Auswahl der Zusatzfunktionen ************************************************

// uncomment or comment the " #define .... "  to enable or disable the additional function


// --------------------- Debug Modus --- AiO und Classic ------------------------------------------------------------
#define Konsole                // Zum Einsparen von Programmspeicher wird die Ausgabe
                               // auf den Seriellen Monitor nur bei Freigabe ausgeführt.
                               // Bei aktiver LED-Animation, wird diese deaktiviert, um den Programmspeicher
                               // für die Konsolenausgabe frei zu machen.
                               // Soll die LED-Animation verwendet werden, 
                               // muss die #define Konsole durch in Kommentar "//" setzen deaktiviert werden.
                               
// -------------------- 5 Tasten Support --- AiO und Classic ----------------------------------------------------------
#define FIVEBUTTONS            // 5 Tasten support
                              // In diesem Modus kann die Batterieüberwachung im TonUINO Classic nicht verwendet werden
                              // wenn A4 von dieser verwendet wird, oder der PrüfPin muss umdeklariert werden.

// -------------------- Zuletzt gespielte Karte als Shortcut speichern --- AiO und Classic -------------------------------
#define LastCard              // Die zuletzt gespielte Karte wird als Shortcut auf die Pause-Taste gelegt 
                              // Shortcuts, Startsound und Weckersound werden dabei nicht berücksichtigt
                              // Die Konfiguration des Shortcuts der PlayTaste wird aus dem Adminmenü ausgeblendet.

// ---------------------- Hörbuch auf Anfang zurücksetzen --- AiO und Classic ---------------------------------------------
#define HB_Reset              // Durch langen Druck der Pausetaste bei laufender Wiedergabe, 
                              // wird im Abspielmodus Hörbuch der Fortschritt des Hörbuches auf Anfang zurückgesetzt

// -------------------- Menülautstärke der Adminfunktionen festlegen --- AiO und Classic ----------------------------------
#define MenueVol                 // Die Menülautstärke wird auf die Startlautstärke Lautsprecher eingestellt.
const uint8_t MenueVolume = 20;  // Bei Deaktivierung von MenueVol wird die Menülautstärke auf diesen Festwert eingestellt.

// ------------------- Zählen der Ordner auf der SD-Karte --- AiO und Classic ---------------------------------------------
#define CountFolders           // Die Anzahl der Ordner des Speichermediums im DfPlayer wird ermittelt
                               // und als Begrenzung bei der Ordnerauswahl verwendet.
                               // Abhängig vom Chipsatz des DfPlayers ist die Funktion nicht immer verfügbar.
                               // Dann deaktivieren ! Es werden dann wieder die Funktionen ohne CountFolders verwendet.
                               // Getestet mit MH-ETLive, IL AA19 und YX5200 24SS - und funktioniert.
                               // AiO Platine funktioniert auch.

// -------------------- Windows SystemVolumeInfo ignorieren --- AiO und Classic -------------------------------------------
#ifdef CountFolders            // Bei CountFolders stört der Windows SystemVolumeInfo Ordner die exakte Funktion.
 #define IgnoreWinSysInf       // Der Windows-Ordner "Windows SystemVolumeInformation" kann auf der SD-Karte
                               // verbleiben und wird ignoriert. Dies ist bei Nutzung der Option CountFolders
                               // wichtig, um die korrekte Ordner Anzahl für die davon abhängigen Funktionen
                               // zu verwenden.
#endif
// -------------------- Abschaltung über Hardware --- AiO und Classic ------------------------------------------------------
#define HW_PowerOff            // Abschaltung über Hardware, wie Mosfet oder Pololu-Switch
                               // Hardwareerweiterung für TonUINO Classc erforderlich. Mosfet oder Pololu-Switch
                               // Auf der AiO Platine ist die erforderliche Hardware bereits vorhanden

// -------------------- LED Animation mit NEOPixel LED Ring oder Strip --- AiO und Classic ----------------------------------
                               
  //#define LED_SR               // LED Animation mit Neopixel LED-Ring oder Strip
     #ifdef Konsole            // Hardwareerweiterung erforderlich: (Neopixel Strip oder Ring)
       #ifdef LED_SR           // Sind die Konsolenausgabe und die LED Animation Definiert, 
        #undef LED_SR          // die LED Animation ausblenden
       #endif
     #endif  
     #ifdef LED_SR                 // Bei definierter LED Animation
  const uint8_t LED_COUNT = 12 ;   // Anzahl an LEDs im Ring oder Strip. Kann hier angepasst werden.
      #define LED_SR_Switch    // Möglichkeit die LED-Animation über gleichzeitigen langen Druck 
                               // der Up-Down Tasten ein- und auszuschalten
                               // Bei aktiver Konsoenausgabe LED Animation ausblenden
    #endif 
   
// -------------------- Lautsprecher abschaltung über Software ---AiO auch über KH Buchse --------------------------------------
#define SpkOnOff              // Aus und Einschalten des Lautsprechers über Software 
                              // zur Unterdrückung des Einschaltgeräusches und
                              // Möglichkeit der Abschaltung beim Anschluss eines Kopfhörers (AiO über KH-Buchse )
                              // Hardwareerweiterung für TonUINO Classic erforderlich: (Abschaltung des Lautsprechers über MOS-FET's)
                              // Bei der AiO wird der Verstärker ein bzw. ausgeschaltet

// -------------------- Kopfhörer --- Nur TonUINO Classic --- Für Nutzung mit der AiO ist eine Änderung auf der Platine nötig ---
#ifndef AiO                   // Nur TonUINO classic (Anpassung an AiO nur über Hardwareänderung möglich)
#define EarPhone              // Abschaltung des Lautsprechers über Software, wenn Kopfhörer angeschlossen sind
    #ifdef EarPhone           // Hardwareerweiterung erforderlich: (Kopfhöerbuchse mit Schaltkontakten, oder Kopfhöreranschlussplatine)
       #ifndef SpkOnOff       // wenn SpkOnOff nicht aktiviert ist, wird diese Funktion automatisch mit aktiviert
        #define SpkOnOff      // Hardwareerweiterung erforderlich: (Abschaltung des Lautsprechers über MOS-FET's)
       #endif                 // Die Startlautstärken werden getrennt über das Adminmenü voreingestellt.
    #endif                    // Die letzten Laustärken werden getrennt bis zum Abschalten temporär gespeichert.
#endif

// ------------------- Festlegen des Sensorpegels für den Kophöreranschluss ---Nur TonUINO Classic --------------------------------
#ifndef AiO                   // Nur TonUINO Classic
//#define KHSensLOW             // Der Sensorpegel für den Kopfhöreranschluss ist bei eingestecktem Kopfhörer LOW
                              // Wenn der Sensorpegel bei eingestecktem Kopfhörer HIGH ist, #define deaktivieren
#endif
// ------------------- Weckerfunktion mit Weckermodul --- AiO und Classic ---------------------------------------------------------

//#define Wecker               // Über ein externes Weckeruhrwerk wird eine Weckfunktion aktiviert
                            // TonUINO wird eingeschaltet und ein vordefinierter Shortcut als Wecker abgespielt
#ifdef Wecker               // Der Dialog zum Erstellen des Weckershortcuts wird im Adminmenü aktiviert.
 #ifndef SpkOnOff           // wenn SpkOnOff nicht aktiviert ist, wird diese Funktion automatisch mit aktiviert
   #define SpkOnOff         // Hardwareerweiterung für TonUINO Classic erforderlich: (Abschaltung des Lautsprechers über MOS-FET's)
  #endif
#endif

// ------------------- Lese-Empfindlichkeit des RFID-Lesers --- AiO und Classic ----------------------------------------------------
// Bei Leseproblemen des RFID Lesers kann die Leseempfindlichkeit verändert werden.
#define NFCgain_avg           // Mittlere Empfindlichkeit RFID Leser - Default wert
//#define NFCgain_max           // Maximale Empfindlichkeit RFID Leser
//#define NFCgain_min           // Minimale Empfindlichkeit RFID Leser

// ------------------------------------------------------------------------------------------------------------------------------------

Diese Version ist sowohl auf der AiO als auch auf der TonUINO Classik Basis lauffähig. Sie muss nur über die #define für die jeweilige Hardware deklariert werden.

6 „Gefällt mir“

Wow das nenn ich mal vollgepackt - besten Dank fürs teilen

Cool, danke! Ich freue mich schon das morgen zu testen. :slight_smile:

https://volafile.org/r/1he04qp78

So hier ist der Link zum Runterladen. Dieser Link ist 2 Tage gültig, danach wird das File automatisch gelöscht.
Viel Spaß beim ausprobieren
Thomas
Nachtrag: Da das File automatisch nach zwei Tagen gelöscht wird, bitte melden wenn es nicht mehr vorhanden ist und interesse besteht. Dann lade ich es neu hoch.

1 „Gefällt mir“

@Thomas-Lehnert
Wenn ich #define Konsole ausokmmentiere, erhalte ich folgende Fehlermeldung:

Zudem habe ich #define FIVEBUTTONS auskommentiert und #define LED_SR einkommentiert. Das hat aber funktioniert.

Nachtrag: Ich habe ein return; am Ende der Methode eingefügt. Jetzt funktioniert es.

Sorry, mir war eine Abfrage der defines eine Zeile verrutscht. Das bewirkt den Fehler. Auf dem obigen Link ist jetzt die korrigierte Software. Hoffe jetzt ohne Fehler. Ist wieder 2 Tage gültig.

1 „Gefällt mir“

Hab nochmal nachgebessert. Wenn spkronoff deaktiviert war, trat auch noch ein kompilierfehler auf. Ist jetzt auch beseitigt.

Hi,

suche für den AIO noch die Funktion Pause wenn Karte entfernt wird. Sowas ist nicht zufällig in deiner Dev Version verfügbar, oder?

Grüße

@Thomas-Lehnert Zuerstmal vielen Dank für die Software. Funktioniert wunderbar bei mir!

Ich habe auch noch einen Verbesserungsvorschlag. Bei der 3-Tasten Version fände ich es gut, wenn die Lautstärkeregelung wie folgt verändert werden würde:

  • die Veränderung der Lautstärke könnte noch langsamer sein (circa 50% der aktuellen Geschwindigkeit)
  • die Lautstärkeänderung sollte erst erfolgen, nachdem der LED Ring die Lautstärke anzeigt. Momentan wird zuerst der erste Schritt der Lautstärke verändert und dann (simultan, evtl etwas verzögert) wird die Lautstärke angezeigt.
  • der erste Schritt der Lautstärkeänderung scheint zu springen und doppelt zu sein.

Ich kann gerne versuchen am Wochenende einen Codevorschlag zu machen. :slight_smile:

Nein, diese Funktion ist in meiner Version nicht enthalten.

Das mit dem vorzeitigen Anzeigen der LS Änderung vor der Änderung geht leider nicht, da die LED Animation die Istwerte für die Anzeige auswertet und nicht vorgibt.
Für die Geschwindigkeit der Volumeänderung sind Delays eingebaut, die man eventuell noch erhöhen kann. Gib mal bei bearbeiten suchen den begriff decrease ein, dann landest du in dem betreffenden Bereich des Codes.

Alles klar, danke. Ich schaue es mir mal an. Wenn der de- und increase entsprechend verringert wird, verbessern sich ja eh alle drei Punkte, die ich angeführt habe. Danke dir!

@Thomas-Lehnert

Danke für den Sketch - spielt perfekt zusammen mit der AIO :smiley:

Jetzt muss ich nur mehr den Pause Mode hinbekommen, wenn die Figur/Karte entfernt wird, dann wäre die nächste Box einfach unschlagbar

1 „Gefällt mir“

Super! Vielen Dank.

Waere Github fuer die Config auch moeglich?
Dann wirds auch nicht immer geloescht :grinning:

Kannst du bitte noch deine Pin-Belegung teilen (Neopixel, Off fuer Pololu), oder hat ich die irgenwo ueberlesen?
Danke!

Hallo @reipet
Hier sind die Pins im Scetch deklariert.

#ifndef AiO                       // Definitionen für TonUINO Classic

//******************* Definitionen der Pins für TonUINO Classic ****************************

// ------------------ Analog-Pins -------------------------------

#define ButtonPause A0            // Taste Play / Pause

#define ButtonUp A1               // Taste Vor / Lauter
#define ButtonDown A2             // Taste Zurück / Leiser

#ifdef FIVEBUTTONS

#define ButtonFourPin A3          // Taste 4
#define ButtonFivePin A4          // Taste 5

#endif

#ifdef EarPhone
#define EarPhonePin A5            // Kontrollpin Kopfhörer angeschlossen
#endif

#ifdef Wecker
#define WeckerPin A6              // Eingangspin zum Abspielen Wecker-shortcut
#endif

#define RandomPin A7              // Floating Pin zur Gewinnung einer Zufallszahl

// ----------------- Digital-Pins ---------------------------------

#define BusyPin 4                 // Busy Signal vom DF-Player
#define LedPin 5                  // Daten für Neopixel-LED-Ring

#ifdef SpkOnOff
#define SpkOnPin 6                // Lautsprecher Ein/Aus
#endif

#ifdef HW_PowerOff
#define ShutDownPin 7             // Abschaltung ueber MosFet oder Polulo-Switch
#endif

#define RstPin 9                  // MFRC 522 -RST
#define SdaPin 10                 // MFRC 522 -SDA

#endif                            // Ende Definitionen TonUINO Classic


#ifdef AiO
//******************* Definitionen der Pins für AiO ********************************

// Boardbeschreibung des AiO Boards Pin-Belegung und Zuordnung

//  D5, A6 and A7 are wired to the extension port.

//  D6 is wired to the button breakout board (labled WS(D6)).

//  D9 (RST), D10 (SDA), D11 (MOSI), D12 (MISO) and D13 (SCK) are wired to the nfc breakout board.

//  the rest of the pins are hard wired as per below.

//  button0Pin = A0;                      // play/pause/power on

//   button1Pin = A1;                      // prev

//   button2Pin = A2;                      // next

//   button3Pin = A3;                      // vol-

//   button4Pin = A4;                      // vol+

//   onboardSdAccessControlPin = A5;       // control pin of the external sd card access (HIGH = enabled, LOW = disabled)

//   mp3SerialRxPin = 2;                   // mp3 serial rx, wired to tx pin of the mp3 chip

//   mp3SerialTxPin = 3;                   // mp3 serial tx, wired to rx pin of the mp3 chip

//   busyPin = 4;                          // reports play state of the mp3 chip (HIGH = not playing, LOW = playing)

//   powerControlPin = 7;                  // control pin used to power the system (HIGH = power on, LOW = power off)

//   onboardAmpControlPin = 8;             // control pin of the onboard amp (HIGH = amp off, LOW = amp on)



//---------------- Analog-Pins ----------------------------------

#define ButtonPause A0            // Taste Play / Pause

#define ButtonDown A1             // Taste Zurück / Leiser
#define ButtonUp A2               // Taste Vor / Lauter

#ifdef FIVEBUTTONS

#define ButtonFivePin A3          // Taste 5 - Taste Vor    / Lauter 5 Tastenmodus
#define ButtonFourPin A4          // Taste 4 - Taste Zurück / Leiser 5 Tastenmodus

#endif

#define Access_SD_Pin A5          // Pin zur Freigabe des SD-Kartenzugriffs über USB
                                  // control pin of the external sd card access (HIGH = enabled, LOW = disabled)

#ifdef Wecker
#define WeckerPin A6              // Eingangspin zum Abspielen Wecker-shortcut (Extension Board)
#endif

#define RandomPin A7              // Floating Pin zur Gewinnung einer Zufallszahl (Extension Board)



//---------------- Digital-Pins ----------------------------------
#define BusyPin 4                 // Busy Signal vom DF-Player

#ifdef EarPhone
#define EarPhonePin 5             // Sensorpin, ob Kopfhörer angeschlossen (Extension Board) 
#endif                            // Auswertung nur möglich wenn die fest verdrahtete Abschaltleitung der KH-Buchse
                                  // aufgetrennt wird und das Signal für den Sensorpin genutzt wird.
#ifdef LED_SR
#define LedPin 6                  // Daten für Neopixel-LED-Ring (ButtonBreakout Board)
#endif

#define ShutDownPin 7             // Ein/Ausschaltsignal
// control pin used to power the system (HIGH = power on, LOW = power off)
#ifdef SpkOnOff
#define SpkOnPin 8                // Verstärker Ein/Ausschalten
#endif                            // control pin of the onboard amp (HIGH = amp off, LOW = amp on)

#define RstPin 9                  // MFRC 522 -RST
#define SdaPin 10                 // MFRC 522 -SDA

#endif

Das die Software vorläufig noch nicht auf Github zur Verfügung steht, hat den Grund, dass noch einige Sachen in Entwicklung sind, die hier noch nicht implementiert sind. Einige erfordern Hardwareänderungen an der AiO Platine. z.B. Überwachung der Batteriespannung und ausgabe einer Warnung und weicher shutdown. Weiterhin ist auch ein getrenntes Management der Lautstärkeeinstellungen für Kopfhörer oder Lautsprecher in arbeit. Auch das erfordert eine Änderung der Hardware auf dem AiO Board, die nicht jeder so ohne weiteres hinkriegt.
Wenn der scetch auf dem Volafile link nicht mehr online ist, kann jederzeit angefragt werden und ich lade ihn wieder hoch. Hat auch den Vorteil, dass dann immer die aktuellste Version zum Download steht.

Daran wäre ich auch interessiert. Wenn du was rausfindest, lass es mich bitte wissen. Ich helfe gerne auch dabei die Funktion zu programmieren oder aus Sketches die noch nicht mit der AiO kompatibel sind für die AiO anzupassen.


@Thomas-Lehnert, ich möchte nochmal in die gleiche Kerbe wie @reipet schlagen: Die Gründe die du auflistest sprechen für mich eher dafür GitHub zu verwenden als es aufzuschieben.

Natürlich will ich dich zu nichts drängen und es ist deine völlig eigene Entscheidung wie du deinen Code veröffentlichst (danke fürs Veröffentlichen in jedem Fall! :+1: ). Aber wie ich deine Antwort lese hört es sich so an als ob du die Veröffentlichung auf GitHub erst angehen möchtest, wenn alles perfekt ist. Das ist gerade nicht die Idee von Git und GitHub. „Work in Progress“ ist quasi das wofür Versionskontrolle wie Git am besten geeignet ist.

Wichtig ist dabei zu betonen: Den Code auf GitHub zu haben ist nett für uns, die deinen Sketch runterladen und verwenden wollen. Aber es hat auch entscheidende Vorteile für dich selbst … gerade um die unfertige Arbeit immer wieder „zwischenzuspeichern“ . Es kann natürlich sein, dass du dich mit Git noch überhaupt nicht beschäftigt hast. Ich kann dir versichern, dass es sich sehr schnell auszahlt ein bisschen Zeit zu verwenden um das Auszuprobieren. GitHub macht es wirklich leicht das zu tun. Und falls du Fragen hast, darfst du dich jederzeit auch hier an die Community wenden. Ich stehe gerne für Fragen zur Verfügung.

1 „Gefällt mir“

Das mit dem Pause wenn Karte weg, wäre auch toll. Habe im Moment nicht so die Zeit, das einzuarbeiten. Es ist ja jedem der sich berufen fühlt freigestellt, sich daran zu versuchen. Mein Vorschlag wäre dann, dass als Modifikationskarte zu programmieren. Dann kann man nach Belieben diese Funktion bzw Modifikation ein oder ausschalten. Ideen willkommen.

So nun ist noch mal eine weiterentwickelte Version Online. Es waren noch ein paar kleine Bugs in Verbindung mit der LED Animation zu beseitigen. TonUINO hat sich bei unterschiedlichen Lautstärkeeinstellungen bei aktivierter LED Animation bei Erreichen von Vol min aufgehängt. Ist jetzt beseitigt. Link Siehe oben Volafile.

Hallo @Exponent
Ich hab noch mal eine neue Version Online gestellt. Da ist die Möglichkeit, die Änderungsgeschwindigkeit der Vol Einstellung am Ende der defines über eine Variable einzustellen. Die delays sind aus der VolEinstellung komplett raus.
Es war auch noch ein Bug der Lautstärkeeinstellung in Verbindung mit der LED Animation im scetch, der jetzt auch beseitigt ist.

1 „Gefällt mir“

Wie heißt denn die Variable? Ich finde es momentan nicht.

Nachtrag:
Ok, wenn ich es richtig verstehe ist die Verzögerung über delay(150) hardgecoded. Ich habe es mal auf 300 erhöht und teste es gleich.