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.