đź“— Was zeigt der Neopixel des ESPuino alles an?

Ich bezeichne den Neopixel gerne als das Herzstück des ESPuino, da über ihn sehr viele Informationen transportiert werden, die aus meiner Sicht für die Mensch-Maschine-Interaktion wichtig sind. Klar, man kann das auch alles akkustisch machen, aber ich fand es optisch besser. Ergo: Der Neopixel dient ausdrücklich nicht einfach nur als „Mäusekino“, sondern transportiert Informationen.

Noch ein paar Hinweise:

  1. Die Anzahl der LEDs kann man konfigurieren. Ich persönlich nutze Neopixel mit 24 LEDs und generell empfehle ich, eine Anzahl zu verwenden, die durch vier teilbar ist, weil die Animationen darauf optimiert sind. Inzwischen ist es jedoch auch möglich, lediglich eine LED zu verwenden. Empfehlen würde ich es nicht, aber es macht in Integration in ein Gehäuse natürlich wesentlich einfacher.
  2. Es gibt Neopixel-Ringe, deren Adressierung im Uhrzeigersinn erfolgt und es gibt welche, bei denen es umgekehrt ist. Welche auch immer es ist: Mittels NEOPIXEL_REVERSE_ROTATION lässt sich die Richtung der Animationen umkehren. Macht bei Single-LED natürlich keinen Sinn.
  3. Es werden zwar bei ESPuino ĂĽblicherweise Neopixel-Ringe eingesetzt, dies ist jedoch kein Zwang. Man kann auch so etwas verwenden.
  4. Falls du deinen Neopixel-Ring versentlich nicht so in das Gehäuse eingebaut hast, dass die LED oben ist, so kannst du mittel LED_OFFSET einen Versatz definieren.

Was zeigt der Neopixel alles an?

Die nachfolgenden Zeilen beschreiben die Neopixel-Signalisierung bei mehreren LEDs. FĂĽr den Fall, dass lediglich eine einzige LED verwendet wird, findet sich die Beschreibung hier.

  • ESPuino-Start
    Schaltet man den ESPuino ein, so fängt die Hälfte (jede zweite LED) aller LEDs an, in der Farbe orange zu zirkulieren. Kann die SD-Karte gefunden werden, so geht dies in den Status IDLE über. Wenn nicht, so geht dies irgendwann in rotes Blinken über.

  • IDLE
    Hat der ESPuino nichts zu tun, so zirkulieren vier LEDs mit 90Grad-Versatz. Sind die LEDs weiĂź, so ist WLAN verfĂĽgbar. Wenn sie grĂĽn leuchten, konnte sich der ESPuino in kein WLAN einbuchen oder es wurde kein WLAN konfiguriert.
    Seit 15.10.22: So lange die vier LEDs orange sind, wird eine WLAN-Verbindung gesucht, sie ist jedoch noch nicht aufgebaut.

  • BLUETOOTH
    Ist der Bluetooth-Modus aktiv, so zirkulieren vier LEDs mit 90Grad-Versatz in der Farbe blau.

  • BUSY
    Wenn eine Playlist erstellt wird, werden vier LEDs mit 90Grad-Versatz in violett angezeigt, die schnell rotieren. Je größer eine Playlist ist, desto länger dauert dies potentiell.

  • OK
    Wird eine Aktion bestätigt, so leuchten kurz alle LEDs grün auf. Dies kann z.B. dann sein, wenn eine Modifikationskarte aufgelegt wurde, die erkannt wurde. Und bei unzähligen anderen Aktionen… :slight_smile:

  • ERROR
    Wird eine Aktion abgelehnt, so leuchten kurz alle LEDs rot auf. Das kann z.B. passieren, wenn eine RFID-Karte aufgelegt wurde, die der ESPuino noch nicht kennt. Oder aber, wenn man sich in einer Playlist schon im letzten Titel befindet und noch einen weiter springen möchte. Auch wenn die Tastensperre aktiv ist und ein Taster gedrückt wird, erscheint dieser Fehler. Und bei unzähligen anderen Aktionen… :slight_smile:

  • Lautstärke
    Ändert sich die Lautstärke, so wird dies über den Neopixel angezeigt. Maßgeblich ist hierfür die maximale Lautstärke (kann man über die WebGUI einstellen). Liegt die eingestellte Lautstärke also bei 50% der maximalen, so leuchten 50% der LEDs. Farblich handelt es sich um einen Farbgradienten von grün nach rot. Die Anzeige erscheint nur kurz und springt dann wieder auf IDLE oder Titelfortschritt zurück.

  • Titelfortschritt
    Je weiter ein Titel fortgeschritten ist, desto mehr LEDs leuchten. Ist er also 50% fortgeschritten, so leuchten 50% der LEDs. Verwendet wird standardmäßig ein Farbgradient von grün nach rot, jedoch kann dieser über PROGRESS_HUE_START und PROGRESS_HUE_END beeinfluss werden. Hier gibt’s noch weitere Infos: Ein paar neue Features.

  • Playlist-Fortschritt
    Besteht eine Playlist aus mehreren Titeln (z.b. ein Ordner, der mehrere Dateien beinhaltet und der gesamte Ordner soll abgespielt werden), so wird nach jedem Titel ein Playlist-Fortschritt angezeigt. Hierzu „fächeren“ sich blaue LEDs auf und „klappen“ wieder zusammen. Ist die Playlist also 50% fortgeschritten, so leuchten 50% der LEDs. Wird nur kurz angezeigt, weil es im Anschluss mit dem Titelfortschritt weitergeht.

  • Webstream
    Hört man Webradio, so lässt sich ein Fortschritt schlecht darstellen. Die Signalisierung erfolgt hier über zwei ganz langsam rotierende LEDs, die um 180 Grad versetzt sind und innerhalb eines Rainbow-Gradienten ihre Farbe mit jedem Sprung ändern.

  • Pause
    Vier LEDs mit 90Grad-Versatz in der Farbe orange.

  • Rewind
    Ist eine Endlosschleife aktiviert, so klappen sich am Ende der Playlist alle Fortschritts-LEDs ein und die Playlist beginnt von vorne.

  • Ausschalten
    Hält man die Taste des Drehencoders gedrückt, so so bildet sich ein Kreis mit roten LEDs. Ist der Kreis komplett, so fängt er anschließend wieder „leer“ an. Sobald er einmal vollständig war, kann man die Taste loslassen und der ESPuino schaltet sich ab.

  • Spannungswarnung
    (optional) Ist MEASURE_BATTERY_VOLTAGE aktiv, so wird unterhalb einer gewissen Spannungsschwelle, die ĂĽber die WebGUI konfigurierbar ist, eine Warnung angezeigt. Hierzu leuchten alle LEDs dreimal kurz hintereinander auf.

  • Spannungsanzeige
    (optional) Ist MEASURE_BATTERY_VOLTAGE aktiv und man drückt den Knopf des Drehencoders kurz, so signalisieren die LEDs die Spannung. Die obere und untere Grenze sind dabei einstellbar. Während die obere Grenze bei LiPo bei 4,2 V zu konfigurieren ist, macht aus meiner Sicht als untere Grenze 3,4 V Sinn. Ist die gemessene Spannung hierbei 3,8 V, so würde die Hälfte der LEDs leuchten. Im oberen Spannungsdrittel leuchten die LEDs alle rot, im mittleren orange und im unteren rot. Hinweis: Die Anzeige ist nur aussagekräftig, wenn keine Stromversorgung via USB angeschlossen ist.

  • Ansage der IP-Adresse
    Wurde eine Taste die Aktion CMD_TELL_IP_ADDRESS zugewiesen, so leuchten im Rahmen der IP-Ansage, sobald die Sprachansage initiiert wurde, im Webradio-Modus zwei LEDs in gelb und in allen anderen Modi vier. Es ist im Prinzip die gleiche optische Signalisierung wie im Pause-Modus, jedoch mit dem Unterschied, dass die LEDs eben gelb sind.

3 „Gefällt mir“

Diese Animation fand ich ziemlich nĂĽtzlich. Aktuell nutze ich jedoch keinen Drehgeber, sondern habe das Ausschalten auf das lange DrĂĽcken einer anderen Taste gelegt. Dort kommt diese Animation aber nicht. Kann man das irgendwie konfigurieren?

Es wird an allen Buttons fĂĽr Longpress nach der Aktion CMD_SLEEPMODE gesucht.
Hast du vielleicht diese Aktion mehrfach zugewiesen und die Taste, der du es eigentlich zuweisen möchtest, ist zahlenmäßig (0 bis 5) kleiner als die, der es fälscherlicherweise zugewiesen ist? Weil dann würde das falsch zugewiesen. Wenn ich so drüber nachdenke: Um das sauber abzubilden, müsste man die Tasten diesbzgl. eigentlich bitweise verODERn und bei der Auswertung in Led.cpp darüber bitweise iterieren.

Also per Default ist es Button3 zugewiesen. Meine Vermutung wäre, dass du versuchst, diese Aktion zusätzlich der Taste 0, 1 oder 2 zuzuweisen.

1 „Gefällt mir“

Ah, ja, richtig. Ich habe den unbenutzen Drehgeber-Button nicht umkonfiguriert… werde ich ausprobieren. Danke!

@biologist
Könnte man das auch bei Multi Tasten machen z.B. BUTTON_MULTI_01 CMD_SLEEPMODE ?

Könnte man, ja. Aber muss man dann zusätzlich ausprogrammieren. Die vorgeschlagene verODERung bitweise funktioniert dann auf jeden Fall nicht.