- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Microcontroller dynamisch vernetzen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    05.12.2015
    Beiträge
    14

    Microcontroller dynamisch vernetzen

    Anzeige

    E-Bike
    Guten Tag,
    Ich wollte mit einem Kollegen die nanoleaf leuchten nachbauen und das ganze am Ende als open Source anbieten.
    Da das Projekt noch am Anfang steht, läuft gerade die „Grundlagen Forschung“. Als Master soll ein ESP Modul dienen (vllt 32 oder 8266 mal schauen)
    Das Problem welches ich gerade habe ist die Vernetzung einer Unbekannten Anzahl von Controllern über eine steckverbindung am ESP. Es gibt die Überlegung das per 1-Wire Protokoll zu lösen. Aber da weis ich nach aktuellem Kenntnisstand noch nicht vor stabil diese Art der Kommunikation ist.
    Eine einfache Art mehrere unbekannte Controller anzusteuern ist über die spi Schnittstelle darüber wäre auch relativ einfach möglich die Form der Panele abzubilden.
    Es gibt ja noch I2C dort dürfte aber ein ähnliches Problem auftreten wie bei der seriellen Kommunikation die Controller wissen zum Start nicht wie der andere heißt und würden alle beim Call vom Master reagieren bzw. den ersten Namen der vergeben wird annehmen.
    Gibt es noch eine 5. Möglichkeit die ich bisher übersehen hab?
    Oder hat jemand schon Erfahrungen mit dem 1-Wire gemacht und eine Empfehlung welche Lib sich dafür gut eignet um darauf aufbauend ein eigenes Protokoll zu schrauben?

    Mit freundlichen Grüßen
    Skorpio

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Also mein Nachbar hat sich ja auch in die Dinger verliebt und ich begreif nicht wieviel Kohle man in solche Dinger stecken kann wenn ich sie zumindest in einer vereinfachten Form selber rbauen kann (Plexiglas Dreieck mit ein paar APA102 LEDs und dann mit CS-losem SPI einfach die Daten reinschaufeln und die Stecker zwischen den Panelen so auslegen dass man sie nicht verpolen kann)

    Diese einfache Lösung hat antürlich keinen Rückkanal und auch keine Formerkennung, wäre aber zumidnest eine wesentlich billigere Lösung als die Nano Leafs

    Du triggerst mich gerade relativ hart

    Ich hätte da sogar eine Idee wie man das mit 5 Drähten und rekursiver Verschaltung lösen könnte, das wären dann allerdings 5 Pins pro Stecker

    Der ESP32 hat Bluetooth onboard (aber das zum funktionieren zu bringen hat mich zumindest unglücklich gemacht) für den 8266 und 8285(8266 mit internem Flash) gibt es immerhin µPython, was einem unendliche Freiheit im Controller bietet (perfekt für OpenSource und außerdem super einfach zu programmieren)

    Und man kann es sicher auch easy für NodeMCU oder andere bereits auf dem ESP verwirklichten "OS" porten, so kann man neben der eigentliche Lichtfunktion auch ganz easy weitere Funktionen in den Controller packen (mini webbrowser und ein AP, sodass man keine App braucht sondern nur nen Browser mit WLAN)
    Geändert von Ceos (13.08.2018 um 11:46 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    05.12.2015
    Beiträge
    14
    Genau das soll das Endziel sein. Wir versuchen in erster Linie eine Platform zu schaffen auf der sich Leute mit weit mehr Erfahrung im Bereich der Programmierung austoben können. Aber eine Lösung die soweit lauffähig ist das ein Anfänger das ganze aufbauen und in Betrieb nehmen kann.

    Es werden dafür auch Platinen hergestellt und als LEDs sollen rgbw LEDs verwendet werden. Ob jetzt apa102 sk6812 oder ws2812 sei erstmal dahin gestellt.
    Da es ja auch mal mehr können soll als einfach nur ne etwas intelligenterer led streifen. Wollten wir uns direkt zu Beginn mit der Frage auseinander setzen eine aktive Komunikation zwischen den Modulen aufzubauen. Dies hat den Vorteil das jederzeit neue Teile angehängt werden können ohne ständig die Basis zu ändern.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    ich hatte dir schonmal ein Bild zukommen lassen, siehe inbox
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    1 wire würde ich nicht machen.
    Einen Controller als Master zu verwenden ist relativ einfach.
    Einen Slave zu proggen dafür umso schwieriger, da dieser eine "einmalige" Seriennummer hat.

    Mir würde da RS 485 in den Sinn kommen, oder je nach Anwendung auch CAN.
    Es kommt halt auf die Menge der zu übertragenden Daten und die Art der Steuerung an.
    Diese nanoleaf leuchten kenn ich gerade nicht.

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.677
    .. Einen Controller als Master zu verwenden ist relativ einfach ..
    Unbestritten.

    .. Einen Slave zu proggen dafür umso schwieriger, da dieser eine "einmalige" Seriennummer hat ..
    Vielleicht versteh ich da was falsch, aber ich sehe kein Problem, keine Schwierigkeit das in I²C zu machen. Mein Master im archie (im Bild R5 Master mit Softwareversion x76) startet I²C mit ner Abfrage ".. wer ist denn alles da ..?" über einen von mir begrenzten Adressbereich. Da melden sich die Slaves, entweder alle (die von Bedeutung sind). Im Beispiel hier: ArmRechts-Controller, KopfController, MotorController, ArmLinks-Controller und Cirp-Controller :

    ......Bild hier  

    oder es sind einige nicht verbunden, dann sieht die Meldung so aus für ArmRechts-Controller, KopfController und ArmLinks-Controller.

    ...... Bild hier  

    Im Master werden dann Flags gesetzt, mit denen die entsprechende Kommunikation ein- oder ausgeschaltet wird.

    Gaaanz normales I²C-Verfahren, abgesehen davon, dass der Kabelbaum nen ziemlich guten Meter lang ist. Das Beispiel ist mit der identischen Hardware gezeigt, nur dass beim zweiten Bild der I²C-Anschluss von Motor- und CIRP-Controller gelöst war bevor archie - der Master - wieder gestartet wurde.
    Ciao sagt der JoeamBerg

  7. #7
    HaWe
    Gast
    @Skorpio:
    I2C halte ich auch grundsätzlich für kein Problem.
    Aber wie lang darf oder muss denn die Verbindung zwishen den Masters und Slaves sein können?

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Zitat Zitat von HaWe Beitrag anzeigen
    Aber wie lang darf oder muss denn die Verbindung zwishen den Masters und Slaves sein können?
    Das wäre wichtig zu wissen.

    Aus Zeitmangel beschäftige ich mich gar nicht mit den ESP-Dingern, aber hat der ESP32 nicht auch CAN ?

    Das ist von seiner Herkunft ja dafür gedacht im Auto dezentral Controller zu vernetzen. Es gibt auch Anwendungen in der Automation (CANopen) oder Schifffahrt (NMEA2000) oder auch für autonome Roboter und Drohnen:
    https://uavcan.org/

    Nur so eine Idee ...

  9. #9
    HaWe
    Gast
    CAN zu programmieren per C++ ist für Anfänger zu exotisch - das kennt keiner.
    Die Arduino IDE ist auch das einzige, was ich für anfängertauglich halte.

    Für ESP8266 habe ich auch noch keine Arduino CAN lib gesehen, auch wenn ESP8266 mit Arduino eingeschränkt anfängertauglich wäre,
    andererseits für ESP32 mag es welche geben, aber den halte ich wiederum nicht für anfängertauglich, und dessen cores sind ja auch noch lange nicht ausgereift.
    Allerdings kann vlt der Arduino Due auch CAN - aber trotzdem, CAN halte ich für zu exotisch.

    I2C hingegen halte ich zwar für einfach und anfängertauglich (Arduino Wire lib mit allen möglichen Arduino MCUs), aber nur bei kurzen Entfernungen (vlt 2m insg. schätzungsweise) -
    ansonsten ist ja WiFi das Standard-Netzprotokoll bei ESP8266:
    Vorteil: der Server braucht die einzelnen Clients nicht zu kennen, die melden sich einfach bei einer festen IP Adresse an.
    Die erlaubten Variablennamen müssten allerdings stattdessen zur Kommunikation vorher (z.B. per fester Liste) vordefiniert sein, um die übergebenen bzw. zurückgegebenen html-strings auf dem html-Server und den Clients auswerten zu können.
    Geändert von HaWe (13.08.2018 um 20:01 Uhr)

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Man kann auch I2C machen und nur die Physik von CAN nutzen, das ist das Prinzip hinter diesen Treiberchips, die I2C über große Distanzen ermöglichen.

    Die Verkabelung von CAN und RS485 sind bis auf Details sehr ähnlich.

    RS485 wurde ja oben schon genannt. Vorteil wäre es ist nur eine Variante einer seriellen Schnittstelle, Nachteil gegenüber CAN ist, dass es nicht damit umgehen kann, wenn mehrere Teilnehmer gleichzeitig anfangen zu reden. Ein Protokoll aus dem Beleuchtungsbereich, was RS485 nutzt, wäre DMX, dafür gibt es viel für Arduino & Co.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

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

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests