- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 5 von 5

Thema: POC LED Chaser Engine (Smaltalk Niveau)

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    477

    POC LED Chaser Engine (Smaltalk Niveau)

    Anzeige

    Powerstation Test
    > Thread-Intention
    Dieser Thread soll erstmal eher Smalltalk-Niveau sein, ohne Code. Eher
    eine Konzept-Betrachtung und ein Try-Of-Concept.
    -
    Zu einem guten Teil auch für mich als Gehirnjogging gedacht, habe ich
    nicht nach existierendem gesucht.
    Bin jetzt aber interessiert, wenn jemand eine Bibliothek in der Richtung
    kennt.

    >Motivation
    Aus der Verbindung von meinem sekundär RC-Hobby und Faible für Licht,
    habe ich während Corona eine dieser Karren mit jeder Menge WS2812
    ausgestattet.
    BES - jede Menge LED´s (youtube.com)

    >Grobe Konzept-Skizze
    Weil ich auch Lauflichteffekt wie den Night-Rider oder ähnliche haben
    wollte (Betonung liegt auf "ähnliche"), wollte ich nicht einfach ein
    rotes Pendel-Licht hard coden, sondern ein Konzept, welches den Effekt
    abstrahiert und auch andere Erscheinungsformen zulässt. Z.B. sind ja
    diese Teardrops sehr ähnlich zum Night-Rider Effekt.

    Grundsätzlich wollte ich mir eine "Chaser-Effekt-Engine" ausdenken, wo
    a) Die Effektform (also z.B. Night-Rider oder Teardrop) von außen
    vorgebbar ist
    b) es sollen mehrere Effekte-Instanzen auf einem LED-Segment
    gleichzeitig laufen können
    c) ein Effekt soll auf LED-Segmenten mit unterschiedlich vielen LEDs
    gleich schnell laufen können

    Meine Lösung ist, einen Kernel zu definieren - die Namensgebung ist in
    Anlehnung an Filter-Kernel, als eine Abfolge von Werten. Die Denkweise
    ist "den Kernel über das Segment zu schieben".
    Die Position des Kernels ist eine relative in 0 bis 1000. In einem
    "Kernel-Mover", welcher eine Referenz auf den Kernel und das Zielsegment
    bekommt, wird mit der Position die Zielpixel auf dem Segment berechnet.
    -
    Dazu kommen Überlegungen, ob z.B. das LED-Segment ein Kreis ist und
    immer alle Kernel-Pixel sichtbar sein sollen, also ein implementierter
    Wrap-Around, oder ob Kernel-Pixel deren Position außerhalb des Segmentes
    liegen, unsichtbar sein sollen.

    Das ist ein erstes Try-Of-Concept mit Wrap-Around und ohne unsichtbare
    Pixel.
    Chaser Engine Try_1 (youtube.com)
    Chuck Norris kann Windows Vista auf einem Atmel in Assembler implementieren!
    Chuck Norris coded mit 3 Tasten:"1","0" und "compile"

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.191
    Möglich ist da vieles.
    Ich habe mich mal an einem Lichtmodul für den Modellbau versucht, das geht ja in eine Ähnliche Richtung.

    Mehrere verschiedene Chaser zu programmieren sollte kein Problem sein.
    Für die Effekte, die Du haben willst müssten die LED's aber auch gedimmt werden - Sprich die Ausgänge werden vermutlich per PWM angesprochen werden müssen.
    Das bedeutet für jeden Step der Sequenz müssen Parameter für Farbe und Dimmwert hinterlegt sein.
    Das kann zu einem Problem werden, wenn man mehrere Sequenzen auf den gleichen LED's laufen lassen will - Da müsste man Prioritäten festlegen.

    Das mit der unterschiedlichen Anzahl von led's und gleicher Laufzeit versteh Ich nicht ganz.
    Soll der Effekt bei 8 LED's von sagen wir 5 Sekunden bei 64 LED's auch 5 Sekunden Dauern? Oder sollen die Steps gleich lang sein?

    Ich vermute mal das Ganze soll auf einem Microcontroller laufen. Wenn jede LED gedimmt werden muß brauchst Du sehr viele PWM Ausgänge - Für jede LED - Farbe eine.
    Da musst Du gucken ob du einen Controller mit genügend PWM Ausgängen findest.
    Alternativ kannst Du auch PWM per Software generieren, aber je nach Controller ist da die PWM Frequenz nicht berauschend.
    Alternativ könntest Du auch LED mit Intelligenz einsetzen oder die PWM Aufgabe auf externe Chips ( Schieberegister oder Spezial IC's ) oder weitere Microcontroller auslagern.

    Die PWM Dimmung darf aber nicht zu langsam sein, da man sonst das Flackern warnehmen kann. Ich würde hier mindestens 100Hz erreichen wollen - Mehr wäre besser.

    Für die Ansteuerung der Sequenzen gibt es sicher mehrere Möglichkeiten ( Serielle Schnittstelle, externes Programmiergerät, einfache Potentiale auf Pins ).
    Beim rclineforum wurde auch mal an einer Lichtsteuerung für Modellfahrzeuge gearbeitet - eventuell findest Du dort auch Anregungen.

    Wenn Platz keine Rolle spielt kannst Du auch mal das DMX512 Protokoll anschauen.
    Das ist im Prinzip eine serielle Schnittstelle für Lichtsteuerung. Die einzelnen Geräte setzen dabei nur die Werte um, die von einem Controller ( z.B. PC mit Interface ) aus gesendet werden.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.06.2006
    Beiträge
    477
    Die WS2812, die ich oben meinte sind diese Digital LED - die haben den PWM-Treiber für jeden Farbchip im Gehäuse mit drin. Der µC schickt nur einen Bitstream, in dem jeded Pixel codiert ist.

    "Soll der Effekt bei 8 LED's von sagen wir 5 Sekunden bei 64 LED's auch 5 Sekunden Dauern? Oder sollen die Steps gleich lang sein?"
    -> das erste. In die Mimik welche den "Kernel" (also die PWM-Werte eines Musters) bewegt, wird eine relative Posistionsangabe auf die Anzhal der Pixel normiert.
    Chuck Norris kann Windows Vista auf einem Atmel in Assembler implementieren!
    Chuck Norris coded mit 3 Tasten:"1","0" und "compile"

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    872
    Klingt irgendwie nach proggen eines Device-Context auf'm PC.

    Das kannst Du durch einen zyklisch behandelten Ausgabepuffer (löschen/neu beschreiben/rausschieben) realisieren.
    Wenn das vom Speicher her knapp wird, schau Dir mal die alten Konzepte von Bitmap-Dateien mit verminderter Farbtiefe an. Die haben dann keine 24 Bit mehr pro Pixel, sondern lösen das über eine Farbpalette mit 2, 16 oder 256 Farben.
    Ist noch die Frage, ob man beim Start irgendwie herausbekommt, wieviele LEDs an Data-Out hängen. Kriegt man das durch Rückführung des Data-Out an der letzten LED zum Controller hin? Dann wüsste man, wie groß der Ausgabepuffer sein muss und kann das beim folgenden Setzen der Werte berücksichtigen.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.191
    Die WS2812, die ich oben meinte sind diese Digital LED
    Entschuldige, das hab Ich überlesen.

    ...wird eine relative Posistionsangabe auf die Anzahl der Pixel normiert
    Dazu muss der Controller "wissen" wie viele LED's angeschlossen sind und welche Ablaufgeschwindigkeit gewünscht wird.
    Daraus kann dann der Controller errechnen wie lange ein Umschaltzeitpunkt von einem Step zum anderen dauern muß.
    Ich würde das mit einem Timer und Comparematch lösen. Ist der Comparematch Wert erreicht wird ein Interrupt ausgelöst der eine Weiterschaltung auf den nächsten Step startet.
    Je niedriger der Comparematch Wert umso schneller läuft die Geschichte. Aus den 2 Werten Zeit pro Durchlauf und Anzahl der LED's kann der Wert für den Comparematch berechnet werden.

    Irgendwo wird es aber eine Grenze der maximal zu verwendenden LED's geben, weil das verfügbare RAM bei jedem Controller endlich ist und für jede LED Farbe 3 Werte abgelegt werden müssen ( 3* Helligkeit*Anzahl der Steps*Anzahl der Sequenzen ).

    Fall 1:
    Die einzelnen Chaser haben ja eine endliche Länge, diese dürfte in einem Fall die minimale Anzahl der LED's festlegen. Bei mehr LED's müsste man hochskalieren, also mehrere LED pro Step ansteuern.
    Möglich wäre auch den Effekt mehrfach innerhalb einer Reihe ablaufen lassen, dann passt aber die Geschwindikgeitsanpassung nicht mehr.
    Außerdem stelle Ich mir das bei vor und rücklaufenden Effekten schwierig vor ( Gedankenexperiment: Du benutzt 16Steps und hast 20LED. Wann läuft dann der Effekt zurück damit es gut aussieht ).

    Bei vielfachen den benutzten Steps wird das einfacher z.B. 16,32,48,64 usw.
    Dadürch würde aber bei Lauflichtern immer gleich um 4 LED weiter geschaltet werden.

    Fall 2:
    Ein anderer Weg wäre die maximale Anzahl von Steps und damit LED's in den einzelnen Chasern zu verwenden und dann bei weniger LED's Steps zu überspringen.
    Das braucht aber viel FLASH Speicher.
    Es wird also für 256LED geproggt, bei 128LED wird nur jeder 2te Step benutzt.


    Meine ursprüngliche Aussage, das bei gemischten Programmen Prioritäten gemacht werden müssen lass Ich mal stehen.
    Ein Programm sagt Rot 128 Helligkeit das zugemischte andere sagt aber Rot255, dann müsste IMHO der Wert 255 genommen werden.

    Ich beziehe mich hierbei auf die Möglichkeiten von ATMEL AVR Controllern - mit anderen Controllertypen sind da evtl. ganz andere Vorgehensweisen möglich.

    Wie viele LED sollen es nun maximal werden und welche Controller(-familie) sollen verwendet werden?

    Wie gesagt, das sind alles nur Gedankenexperimente ohne schon fertigen Code.
    Eine Fleißaufgabe dürfte auch das Programmieren der einzelnen Sequenzen sein.
    U.U. könnte man da auch in einer Tabellenkalkulation was rechnen lassen und die Ergebnisse dann als Tabelle in den Controller Code einfügen ( Hab Ich schon mal für ein anderes Projekt gemacht ).
    Damit sollte sich der Speicherverbrauch berechnen lassen.

Ähnliche Themen

  1. Kraftfahrt-Bundesamt: Auto-Zulassungszahlen 2021 auf dem Niveau der 70er Jahre
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 05.01.2022, 22:33
  2. Hygiene auf hohem Niveau: Mobiler Reinigungsroboter für die Produktion
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 1
    Letzter Beitrag: 01.07.2020, 11:00
  3. EVE: Embedded Video Engine
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 13.03.2013, 22:10
  4. Niveau- und Druckhalteregelung
    Von kalletronic im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 18.01.2011, 09:31
  5. gps engine board et-102
    Von Ford im Forum Sensoren / Sensorik
    Antworten: 12
    Letzter Beitrag: 27.08.2006, 19:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad