Vorstellung Neues Projekt Low Cost Pixel Control Protocoll LCPCP

    Vorstellung Neues Projekt Low Cost Pixel Control Protocoll LCPCP

    Hallo ich möchte einmal mein Projekt vorstellen das Low Cost Pixel Control Protocoll
    Es ist der versuch eine Kostengünstige Lösung zu erstellen um Pixel zu steuern. Und umfasst sowohl Software Projekte als auch Hardwareprojekte.

    Ziel ist es ein Modular erweiterbares System zu bauen welches eine "Framerate" von 30 FPS erreicht es soll. Es soll also möglich sein 30 mal pro Sekunde jede LED die Farbe ändern zu lassen.

    Meine ersten Testlauf habe ich mit Atmega8 und USB zu Uart Wandlern gemacht und ein LED Streifenband mit ws2012b Kontrollern

    Erst einmal geplante Software ist:

    LCPCP ControllerSW <- (Erste Software Version für den Atmega8 und den ws2812b funktioniert)
    LCPCP HOST Stellt an den USB Port angeschlossene LCPCP Geräte im Netzwerk bereit (Funktionierende SW Version vorhanden)
    LCPCP Linux Host Stellt an den USB Port angeschlossene LCPCP Geräte im Netzwerk bereit (Funktionierende SW Version vorhanden)
    LCPCP Studio zum erstellen der Lichtshow (Todo)
    LCPCP Player zum abspielen eine Lichtshow Datei (Todo)


    Ein Testcontroller für 5x 300 WS2812b LEDs


    Gesteuert von einen Raspberry Pi



    LCPCP Protokolle
    Spoiler anzeigen

    LCPCP: Low Cost Pixel Control Protocol
    Alle Geräte müssen 30FPS erlauben. Es muss möglich sein 30-mal pro Sekunde jede LED zu verändern

    LCPCP_UART
    Standard Baudrate 500000

    1. Request [1 Byte Requesttype]
    0x01 Request-Device-Type
    0x02 Request-Count-Channel
    0x03 Request-Pixel-Per-Channel
    0x04 SendDataToPixel|32BitIntDataCount|32BitIntChannel|Data|

    2. Antwort [1 Byte Antworttype]
    0x01 Antwort|32BitInt-DataCount|Data
    0X02 OK
    0X03 Error|32BitInt-DataCount|Data

    Der Device-Type ist ein Char Array darf kein Leerzeichen beinhalten
    Count-Channel ist ein int32
    Pixel-Per-Channel ist ein int32
    Error und Antwort ist ein Char Array
    Beispiel.
    Request: 0x01
    Antwort: 0x01|0x17(23) 0x00 0x00 0x00|LCPCP_CONVERTER_WS2812B

    Request: 0x02
    Antwort: 0x01|0x04 0x00 0x00 0x00|0x01 0x00 0x00 0x00

    Request 0x04|0x03 0x00 0x00 0x00|0x01 0x00 0x00 0x00| 0xff 0xff 0xff <- Erste LED Weiß| Rot Grün Blau
    Antwort: 0x02
    LCPCP_NET
    Standard Port UDP 12316

    1. Request [1-byte Requesttype]
    0x01 Request-Channels
    0x02 Reload-Channels
    0x03 SendDataToPixel|32BitIntChannel|32BitIntDataCount|Data|

    2. Antwort [1 byte Antworttype]
    0x01 Antwort|32BitInt-DataCount|Data
    0X02 OK
    0X03 Error|32BitInt-DataCount|Data
    0x04 Channellist|32BitInt-DataCount|Data

    Alle Antworten sind Chararrays
    Beispiel.
    Request: 0x01
    Antwort: 0x04|0x1D(29)|1 300 LCPCP_CONVERTER_WS2812B <Channel Nummer anz. Pixel Type
    Antwort: 0x04|0x1D(29)|1 300 LCPCP_CONVERTER_WS2812B 2 300 LCPCP_CONVERTER_WS2812B

    Request: 0x02 //Der Host sucht nach neu angeschlossene Geräte und schickt dann die gesamte Liste
    Antwort: 0x01|0x1D(29)|1 300 LCPCP_CONVERTER_WS2812B …

    Request: 0x03 SendDataToPixel|32BitIntChannel|32BitIntDataCount|Data|
    Antwort: 0x02





    Da ich noch recht neu auf den gebiet bin würde ich mich über ein Paar Tipps freuen falls ich eventuell was vergessen habe zu beachten