ich hatte dir schonmal ein Bild zukommen lassen, siehe inbox![]()
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.
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.
Unbestritten... Einen Controller als Master zu verwenden ist relativ einfach ..
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 :.. Einen Slave zu proggen dafür umso schwieriger, da dieser eine "einmalige" Seriennummer hat ..
......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
@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?
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 ...
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 19:01 Uhr)
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.
Lesezeichen