Wer will, kann das einfach in den Dateien ring.hpp/cpp ändern oder macht hier andere Vorschläge.
Der Speicherbedarf für die AiOplus ist kein Problem. Bei den anderen Varianten sollte auf jeden Fall das Feature SerialInputAsCommand in der Datei constants.hpp ausgeschaltet werden. Dazu müssen wahrscheinlich auch noch ein paar Logs gekürzt werden.
Das Ganze ist auf dem Branch issue_073 implementiert und wartet auf Tester.
Ich habe da noch eine Idee. Ich fände es sinnvoll noch eine Fehlersignalisation zu integrieren. Z.B. rot blau pulsende wenn ein Error vom DF Player kommt. Dann hat man schonmal eine Info, aus welcher Richtung das Problem kommt, falls es Mal klemmt.
Du brauchst ja nur ein Flag setzen, wenn ein mp3 Error Auftritt, das nach verlöschen des Errors wieder zurück gesetzt wird. Eine Abfrage des Flags kann dann das entsprechende LED Feature starten, und man kann dann auch festlegen ob das einmalig, oder nur für eine definierte Zeit ausgeführt wird. Ich hab das in meinem Form so drin, dass bei mp3 Error ein Blink Signal 3x Magenta einmalig gestartet wird. Gleichzeitig habe ich eine Routine eingebaut, die bei mp3 Error ein Nexttrack aufruft und wenn das nicht zum zurücksetzen des Flags führt den Standby-Timer startet. So wird der Tonuino dann abgeschaltet um nicht in einem Blockierten Zustand zu bleiben wo er nicht mehr selbst abschaltet.
Hi Boerge1,
ich hab in meinem Fork bereits eine ganze Integration für NeoPixel drin mit einigen Features.
Vielleicht interessiert es dich da mal rein zu schauen
Ist allerdings aufgrund der Größe aktuell nur auf der AIO+ möglich soweit ich das beurteilen kann.
Stromverbrauch ist ein relevanter Faktor für die LED-Ringe. 1 Neopixel braucht pro Farbe 10-20mA bei voller Helligkeit, d.h. 30-60mA für weiß, und bei 24 LEDs im Ring sind das ja schon 720-1440mA. Das ist sehr variabel, je nachdem was man für Farben und Animationen verwendet. Dieser Artikel dazu ist sehr aufschlussreich
Ich hab bei meinem Tonuino festgestellt, dass der LED-Ring mehr Strom zieht als der ganze Rest-Tonuino. Insbesondere je mehr LEDS gleichzeitig an sind, und weiß zieht natürlich am meisten Strom. Um die Akkulaufzeit zu optimieren hab ich deshalb versucht meine Animationen so zu schreiben, dass sie schön aussehen und wenige LEDs gleichzeitig an sind.
Ich hab zusätzlich eine Animation (einzelne kreisende rote LED) geschrieben, die alle anderen überschreibt, wenn der Akku kritisch niedrig ist, zusätzlich zu den Durchsagen.
Hab leider grade keine Zeit diese Implementation zu testen Tolle Arbeit!
Oh Achtung, da gibt es noch etwas dazu zu erwähnen…
Die Neopixel dimmen über die Zeit.
Halbe Helligkeit wird erzeugt, indem die LEDs für einen MykroSekundenBereich ganz hell sind und die gleiche Zeit wieder ganz dunkel.
Sollen sie dunkler werden, wird die Zeit verschoben.
Unser Auge schiebt sich das zusammen und dann scheinen sie dunkler zu sein.
Der fließende Strom spielt da aber mit, deine Beispiel 1440mA fließen also immer (außer eine Farbe wird garnicht genutzt). Nur nicht permanent, sondern pulsierend.
Auf den Ringen und Streifen sind meist kleine Kondensatoren verbaut, die das ganze unter Kontrolle bringen, aber auch nur in Grenzen.
Hallo,
ich versuche mich an einer Box mit Neopixelring und möchte schon die neue Softwareverison nutzen. Ich habe ein paar Anfängerfragen, mit Programmierung habe ich es nicht so :-(. Die Browserverion läuft schon.
Die Neopixel-Version ist noch nicht per Browser-Update zu laden, die muss per IDE aufgespielt werden oder?
Ich habe das AiO+ Board und nutze keine komplett vorgefertigte Buttonplatine sondern habe 5 einzelne Button die an die kleine Platine anschließe die mit dem Board kommt. Wo kann ich den Pixelring anschließen, am Board oder an der kleinen Platine und welche Pins nutze ich?
Ja, es ist leider nicht möglich, alle einzelnen Varianten per Online-Upload anzubieten.
Also musst du die IDE installieren (Readme beachten) und die Datei constants.hpp editieren.
In der constants.hpp ist Pin 10 eingestellt, also musst du PB2 vom Board nehmen.
Wenn du das auf Pin 18 änderst, kann der WS-Pin auf dem keinen Button-Adapter benutzt werden.
Das hätte vielleicht den Vorteil, dass dadurch die Wege etwas kürzer werden, denn häufig sitzt der Ring ja in Nähe der Buttons und 5V und GND sind da ja auch gleich daneben. (Vom dem 1x5 Buttonboard könnten die 3 gleichen Pins auch von den Lötpunkten abgenommen werden.)
Ja, könnte man machen. Aber ich würde als Default erstmal ein Pin nehmen, den man auch direkt auf dem Board findet. 5V und GND sind da auch direkt daneben. Wenn jemand das anders will, kann das ja ganz leicht in der Datei constants.hpp geändert werden.
Ich hab heute mal ein bisschen getestet. Sowohl mit einem 12er Ring als auch mit einem einzelnen Pixel funktioniert alles einwandfrei.
Hab auch in der ring.hpp ein bisschen mit den Farben rumgespielt, bin aber doch wieder zu den „Standard“-Einstellungen zurück. Mit nur einer LED fand ich die Pause anfangs etwas merkwürdig, weil dann einfach dauerhaft eine Farbe leuchtet. Aber ich kann mir schon vorstellen, dass die Kinder gerade das toll finden und versuchen werden, bei einer bestimmten Farbe zu stoppen.
Ich habe noch ein bisschen weitergemacht und kleinere Fehler beseitigt. Insbesondere nach einem Hinweis von @Olasch_1 habe ich noch eingebaut, dass der Ring ausschaltet, wenn der TonUINO in des Sleep Modus geht. Das ist wichtig, wenn man das für die Classic Variante verwenden will. Sonst schaltet die Powerbank nicht aus.
Ich habe auch schon einen Pull Request gemacht und werde das demnächst in den main Branch mergen.
Ich habe noch implementiert, dass man die Helligkeit verändern kann. Dazu muss man einfach im Pausenmodus (State IDLE oder PAUSE) up/down (oder vol+/vol-) drücken.
Dazu habe ich noch ein paar Stellen gefunden, wo man Programm-Speicher sparen kann. Jetzt kann man NeoPixel auch bei der Classic Variante ohne weiter Codeänderung verwenden.