OT: WS28x1/LPD8806 Treiber für Servos/7 Segment etc.

  • Irgendwie ist's aufgrund des Titels und des Textes ein Bisschen unklar, was genau du haben möchtest. Sollen Chips wie WS28x1/LPD8806 anstatt RGB-LEDs dann 7-Segment-Anzeigen und Servos steuern? Oder eher andersrum, geht es generell um Boards, welche sich möglicherweise ähnlich wie oben genannte Chips ansprechen lassen, aber eben 7-Seg. und Servos steuern können? Oder geht es dir vor allem um's Kommunikations-Protokoll der obigen Chips, und du möchtest z.Bsp. eine schon vorhandene Software, welche mit obigen Chips kommuniziert, auch zum Steuern von 7-Segs und Servos verwenden?


    Es gibt ja schon massenweise Servo- und 7-Seg.-Treiber-Chips und -Boards auf dem Markt oder auch entsprechende Anleitungen zum Selbstmachen. Du solltest deshalb eben vielleicht noch ausführen, was deine gewünschte Implementation speziell können muss bzw. ob an der Verschaltungs-Infrastruktur etwas besonders ist, was nicht schon durch bestehende Lösungen abgedeckt ist.


    Gruss
    Neni

  • Was ich möchte ist, mit einem seriellen Signal mehrere Servos/7Segment Anzeigen anzusteuern (ich bin noch am evaluieren, daher sind meine Ausführungen etwas wage).


    Als Beispiel, ein Byte wird für die Ansteuerung einer 7 Segment Anzeige (mit Punkt) verwendet. Jetzt kann ich mit einem SPI Signal n 7 Segment Anzeigen mit n Bytes ansteuern, das ganze kann jedoch einfach verkabelt werden.


    Das gleiche für einen Servo, da würden wohl 3 Bytes für die Ansteuerung verwendet.


    So ich hoffe das macht meine Frage etwas klarer.


    Gruss
    Michu

  • Ok, also für Servos gibt's z.Bsp. schon folgende, sehr gute Boards, welche per USB oder TTL Serial steuerbar sind:
    http://www.pololu.com/catalog/category/12
    Die Module lassen sich auch in Serie (bzw. an eine serielle Line) schalten und dann individuell pro Board oder pro Servo adressiert steuern. Am Besten kannst du einfach mal die umfangreiche Info auf den Produktseiten studieren, die Funktionalität der Servo-Controller ist immens.


    Für 7-Segment-Anzeigen habe ich zumindest mal auf Anhieb die folgenden seriellen Anzeigen (jeweils 4 Digits pro Anzeige) gefunden (untere Hälfte der Produktliste):
    https://www.sparkfun.com/categories/170
    Diese Anzeigen lassen sich per TTL Serial, SPI oder I2C ansteuern, und zwar alle Segmente inkl. DPs und Colon individuell.


    Das waren jetzt nur zwei Beispiele, es gibt sicherlich noch viele andere Controller auf den einschlägigen Maker-Seiten.


    Gruss
    Neni

  • Hey Synvox, danke für die Antwort. Diese Platinen steuern den Motor ja zentral, was ich suche ist jedoch eine Steuerung für viele (>200) Servos. Da würde sich ein WS2801 Ansatz gut machen. Zum Illustrieren:


    Code
    1. SPI SIgnal------<Servo Controller 1>------<Servo Controller2>------<Servo Controller n>
    2. +- 3 Pins für den Servo +- 3 Pins für den Servo +- 3 Pins für den Servo



    Ich hoffe das macht meine Frage nochmals klarer ;)


    Gruss

  • Ich verstehe immer noch nicht so genau, was Du eigentlich suchst....?


    Meinst Du so ne Art breakout-Board, also einfach ne kleine Platine, Strom und Daten rein und raus, und dann die drei Ausgänge vom WS2801 auf 3 Pins, um dort 7-Segment oder Servos anzuschließen...?


    bei den "3 Pins für den Servo" in der Skizze, ist da gemeint, 3 Servos, oder braucht der 3 Ansteuer-Leitungen, oder meinst Du die 3 Leitungen (Vcc, GND, Steuer-Signal), die an so nem Modellbau-Servo dran sind..?


    in allen Fällen wäre so ein Breakout-Board m.M. nach eher unnütz - bei den 7-Segment-Dingern brauchst Du dann 3 so Boards pro Anzeige, irgendwie verdrahtet, und hast einen Kanal verschwendet - eh' die Frage, ob man da wirklich jedes Segment einzeln dimmen können muss, pro Segment 1 Byte = 9 Byte (mit dem verschwendeten) pro Anzeige sind auch ganz schön viele Daten...


    wenn ich sowas bräuchte, würde ich mir da extra Boards machen, mit nem normalem Schieberegister (74595) und nem ULN drauf, gleich so, dass man die Anzeige direkt drauf löten und die Platinen zusammen stecken kann... oder gleich sowas wie den von Neni verlinkten Treiber benutzen.


    bei dem Servo, wenn das so ein Modellbau-Servo ist: Die werden zwar per PWM gesteuert, aber da muss das Timing stimmen - da kann man jetzt nicht einfach irgendne PWM vom WS2801 dran hängen zum ansteuern...


    hier (wenn ich das richtig sehe, ein WS2801 pro Servo) hättest Du dann gleich 2 Byte Overhead im Datenstrom...


    da würde ich persönlich pro Servo nen µC hin machen, Daten seriell rein und raus, PWM-Erzeugung nach Spezifikation für das Servo... da würde sich z.B. auch gleich DMX anbieten


    sowas hätte ich im Prinzip schon fertig, ne Servo-Ansteuer-Routine, die seriell ein Byte empfängt, und das Servo entsprechend positioniert - die müsste man nur mit ner DMX-Routine kombinieren, die sich das erste Byte raus nimmt und den Rest weiter schickt, so eine habe ich schon mal für meine erste DMX-Lichterkette gemacht...


    wenn's kleiner und bisschen günstiger sein soll, kann man auch nen 8-Pin-AVR (Tiny25 o.ä. nehmen), und sowas wie nen WS2801 mit 1 Kanal "simulieren" - geht von den Pins genau aus, Clock und Data rein und raus und ein Pin für das Servo-Signal...


    hier dann auch gleich ne spezifische Platine machen, mit Steckverbindern zum durchverkabeln und passendem Anschluss für den Servo.

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • hey pesi


    Zitat

    da würde ich persönlich pro Servo nen µC hin machen, Daten seriell rein und raus, PWM-Erzeugung nach Spezifikation für das Servo... da würde sich z.B. auch gleich DMX anbieten


    sowas hätte ich im Prinzip schon fertig, ne Servo-Ansteuer-Routine, die seriell ein Byte empfängt, und das Servo entsprechend positioniert - die müsste man nur mit ner DMX-Routine kombinieren, die sich das erste Byte raus nimmt und den Rest weiter schickt, so eine habe ich schon mal für meine erste DMX-Lichterkette gemacht...


    wenn's kleiner und bisschen günstiger sein soll, kann man auch nen 8-Pin-AVR (Tiny25 o.ä. nehmen), und sowas wie nen WS2801 mit 1 Kanal "simulieren" - geht von den Pins genau aus, Clock und Data rein und raus und ein Pin für das Servo-Signal...


    du hast mich richtig verstanden, ich möchte seriell mehrere hobby servos ansteuern (via pwm). kannst du mir da ein wenig unter die Arme greifen? HW design ist jetzt nicht gerade meine Welt. Hast du noch mehr infos zu deiner Lösung?


    Cheers und besten Dank
    Michu

  • Die HW an sich ist brunzprimitiv: Ein kleiner µC (würde hier nen Tiny2313 nehmen) mit Grundbeschaltung (Quarz, Abblockkondi, das war's schon), am Usart Daten rein und raus, und den Servo an irgendnem Pin, wo die PWM raus kommt...


    Bei 200 Stück würde sich direkt schon anbieten, das Ganze komplett fertigen zu lassen (Platine inkl. Bestückung), spart nen Haufen Arbeit. Oder gleich was fertiges nehmen, klar, ein Arduino pro Servo wäre zu teuer, aber evtl. findet sich ja irgendwo ein kleines µC-Board für 3-5 Euro (billiger kann man das selbst auch nicht machen).


    wenn zwischen den Steuerplatinen kein großer Abstand ist, kann man die Usart-Kette auch direkt verbinden, also den Tx von einem Tiny mit dem Rx vom nächsten, braucht dazwischen nicht RS485, halt nur einmal vorne dran nen Receiver (75176 o.ä.).


    oder statt DMX-Interface dann einfach nen USB/Seriell-Konverter (für paar Euro zu haben), und dann anderes Protokoll (z.B. TPM2)...


    die SW habe ich hier schon mal veröffentlicht, ist halt Assembler... und hier noch ein Video von dem ganzen...


    wenn Du's mit DMX machen willst, könnte ich die SW wohl schon so erweitern, dass die DMX-Empfangsroutine einfach den Rest weiterschickt, und sich die Kette so "automatisch adressiert"... wenn ich mal Zeit dazu habe...


    ansonsten google mal, es gibt bestimmt auch massig Ansteuer-Routinen für Servos in C oder auch direkt Arduino (damit arbeitest Du doch oft?) - Prinzip ist immer das gleiche, der Servo bekommt nen Puls mit 0,8 - 1,2 ms (je nach Hersteller leicht unterschiedlich) und stellt entsprechend seine Position ein...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Danke Pesi für deine ausführliche Beschreibung. Dann werde ich wohl einen Mittelweg einschlagen, nähmlich mit diesem Controller: http://www.adafruit.com/products/815. Diese Boards können via i2c chained werden, jedes board kontrolliert bis zu 16 Servos.


    Das sollte somit a) Kostengünstiger und b) bereits verfügbar und funktionierend


    sein.


    Cheers und nochmals Danke
    Michu