- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 20

Thema: Microcontroller dynamisch vernetzen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    Die Adressierung der 512 Kanäle findet im Master statt, die angeschlossenen Geräte werden im einfachsten Fall per DIL Schalter auf eine Startadresse adressiert und können im Prinzip beliebig viele Kanäle haben.
    die eleganz der nano leafs ist aber dass man deren adressen nicht einstellen muss sondern ihre struktur selber erkennen, deswegen fände ich eine "einfache lösung" OHNE controller / leaf als eine große serielle kette (mit "repeatern") sinnvoll oder eine "intelligente lösung" MIT controller pro leaf aber dann als eine art "daisy chain" kommunikation und rekursives polling besser
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.242
    OHNE controller / leaf als eine große serielle kette (mit "repeatern") sinnvoll oder eine "intelligente lösung" MIT controller pro leaf aber dann als eine art "daisy chain" kommunikation und rekursives polling besser
    Dazu braucht man natürlich einen Rückkanal und DMX scheidet somit aus.
    Da sich die Module über ihre Struktur ja "absprechen" müssen und diese Struktur auf den Steuerrechner rückübertragen müssen.
    Ist das Protokoll bei den Nanoleafes bekannt?
    Ein Problem seh ich noch bei der Lagen Erkennung.
    Allein über die angeschlossenen Schnittstellen kanns im Prinzip nicht funktionieren, weil es dann ja auch Spiegelbildlich aufgebaut sein kann - Oder das Ganze wird dann in der Steuersoftware gedreht.
    Geändert von wkrug (16.08.2018 um 07:45 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Zitat Zitat von wkrug Beitrag anzeigen
    Dazu braucht man natürlich einen Rückkanal und DMX scheidet somit aus.
    Da bin ich mir nicht sicher, laut Wikipedia sieht DMX-512-A schon Rückantworten vor. Allerdings ignorieren viele ältere Geräte das. Wenn man aber nur eigene Hardware am Bus hat, sollte das aber kein Problem sein.
    https://de.wikipedia.org/wiki/DMX_(Lichttechnik)

    In der Doku meiner Bastelboards sind auch Libs verlinkt, die über DMX lesen können.
    https://www.pjrc.com/teensy/td_libs_DmxSimple.html

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    Ist das Protokoll bei den Nanoleafes bekannt?
    Ein Problem seh ich noch bei der Lagen Erkennung.
    Nein und ich denke auch nicht dass es eine zu große Aufgabe ist.

    SPOILER: TEXTWAND VORAUS, das ist mir gerade so durch den Kopf gelaufen und kann auch üble Denkfehler beinhalten, Verwendung und lesen auf eigene Gefahr

    Wenn ich jetzt über ein beliebiges Protokoll und am wichtigstens kontrolliert zu einzelnen ports reden kann, kann ich zumindest schonmal für mich selber herausfinden an welcher seite jemand hängt.

    ACHTUNG: Sollte jemand das so oder in der Art umsetzen würde ich mich um eine Nennung mit meinem Synonym "mindforger" als Idee Urheber sehr freuen :P

    Was ich mir z.B. vorstelle ist eine Art SPI oder Synchrones UART mit kombiniertem Chipselect und multiplen Sense Leitungen ... alle Leafs haben einen Controller mit 2 SPI/UART Schnittstellen und intern für alle Ports eine gemeinsame Chipselect Leitung und zusätzlich pro Port einen Pin der zur Identifikation des eingehenden Signals dient.

    Nur der ESP-Master darf die CS leitung initial auf GND ziehen und macht das ganze auch nur einzeln pro Port (damit umgehen wir direkt die Problematik des Zirkelbezuges)

    Findest er keinen Partner wechselt er zum nächsten Port.

    Das erste Leaf das sich angesprochen fühlt, reagiert und wechselt von reinem Empfang auf den Daisy Chain Betrieb. Er schaltete also alle anderen Ports auf ausgang und fragt genau wieder Master seinerseits die Ports nach Nachbarn ab, die dann ihrereseits wieder den die Nachbarn abfragen.

    Ich würde die CLK Leitung durch alle Leafs durchschleifen und nur der Master darf diese Leitung bedienen um eine perfekte Synchronisatuion zu haben (da bietet sich eigentlich synchrones UART besser dafür an und wegen Vollduplex gibt es auch keinen Kurzschluss)

    Wenn jetzt ein Zeikelbezug entsteht, also 2 Leafs sich berühren die über die Kette auch shcon vom Master angesprochen werden, teilen sie sich gegenseitig mit, dass sie bereites "entdeckt" worden sind

    Melden jetzt alle Leafs zurück, dass sie alle Nachbarn und deren Nachfolger identifiziert haben, sendet der Master einen Befehl der zunächst von jedem leaf ignoriert wird, das mindestens 1 weitern nachbarn hat und den Befehl einfach weitergibt (einmal pro port! und nicht gleichzeitig).

    Das erste Leaf das also keine weiteren Nachbarn hat Antwortet dann mit etwas wie "(RGB_LEAF_P3" (P3 für Master hängt an Port 3 und die Klammer ist wichtig)

    Das Leaf davor nimmt diese Nachricht und fügt seine eigene Identifikation hinzu und darauf wird dann "((RGB_LEAF_P3,P5),RGB_LEAF_P2" es fügt also vor den String eine Klammer hinzu und an den String des Nachbars die zugehörige Portnummer an und schließt die innere offene Klammer mit ",P5)" um zu zeigen von wo diese Identifikation her kam ... sollten weitere Leafs an anderen Ports sein, verbindet er die Strings die er mit Portnummer geschlossen hat und hängt dann ganz am Ende seine eigenen Identifikation an.

    Der Master bekommt dann so etwas in der Art zurück

    Port 1 - (leer)
    Port 2 "(((RGB_LEAF_A_P3@P5), RGB_LEAF_B_P2@P3),(RGB_LEAF_C_P4@P4),RGB_LEAF_D_P1"

    Der String wird also rekursiv erstellt.
    Und daraus lesen kann man von Rechts nach Links:
    - an Port 2 vom Master hängt ein RGB_LEAF_D das seinerseits an seinem Port1 vom Master angesprochen wird.
    - an RGB_LEAF_D hängen 2 weitere Leafs, das RGB_LEAF_C an Port 4 und RGB_LEAF_B an seinem Port 3
    - an RGB_LEAF_C hängt sonst kein weiteres
    - an RGB_LEAF_B hängt allerdings noch an Port 5 das RGB_LEAF_A

    Damit ist die gesamte Struktur auslesbar und dank der Klammern kann man das easy mit Regulären Ausdrücken verarbeiten und in eine gelinkte Liste verwalten

    Da man von jedem Leaf den Ein und Ausgangsport kennt kann man auch anhand der geometrischen Struktur alle Leafs räumlich orten und mit der Bezeichnung RGB_LEAF kann man auch den Typ erkennen ... man könnte auch sagen RGB_HEX_LEAF um ein Hexagonales Leaf zu beschreiben oder ein WHITE_TRI_LEAF für ein sinples Helligkeit gesteuertes Dreieeck und unterschiedliche geometrische Strukturen verwenden.
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    05.12.2015
    Beiträge
    14
    So kleines Update.

    in ca. einer Woche kommen alle nötigen Teile an dann kann ich endlich loslegen.

Ähnliche Themen

  1. DAC und ADC dynamisch zusammenschalten
    Von hansgeorg im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 01.02.2017, 17:20
  2. schneller, dynamisch laufender Hexapod
    Von theRobby im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 3
    Letzter Beitrag: 29.05.2012, 16:43
  3. Stromquelle dynamisch belasten
    Von CowZ im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 04.02.2009, 15:57
  4. Ports dynamisch in FOR Schleife ansprechen
    Von mottobug im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 20.07.2007, 12:41
  5. Mikrokontroller vernetzen
    Von ttauch im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 13.02.2007, 15:35

Stichworte

Berechtigungen

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

12V Akku bauen