Hallöchen! Für ein Softwareprojekt in meinem (dualen) Studium soll ich ein System entwerfen. Es handelt sich dabei um ein Unternehmen, dass Escaperooms betreut. Der Aktuelle Systemaufbau sieht wie folgt aus: Im Escaperoom gibt es zwei Schaltpaneele, welches mit einem Arduino Mega 2560 betrieben wird. Auf jedem Mega sitzt ein Ethernet Shield. Die Kabel laufen zu einem Switch. Die Megas haben einen Webserver der die Pins ausliest und als JSON String (ReST Like) per GET zur Verfügung stellt. Einer der Megas steuert zusätzlich noch 9 LED's per 0.0.0.0/?[pinNr] Der folgende Systemaufbau soll wie folgt aussehen: Der Raum soll um 2*3 Oled Displays erweitert werden, die mit jeweils einem Rotary Encoder angesteurt werden. Ich plane pro Arduino (Nano?) 2 Oleds anzusteuern (Da auf diesen Displays scheinbar nur zwei Adressen gesetzt werden können) Es muss ein Spannungssensor ausgelesen werden. Ich möchte mich aufgrund des Aufwands davon trennen jedem Arduino potentielle 1 Gigabit Leitungen hinzulegen und zu switchen. Der weiteste Arduino Mega ist Luftlinie 7 Meter entfernt und über Kabelkanal knappe 15 Meter. Aufgrund der einfachen Störbarkeit und Sicherheitsbedenken möchte ich auf Drahtlos Lösungen verzichten. Ich habe mir bisher I2C, CAN und Serielle Kommunikation angeschaut. Am meisten schmeichelt mir eigentlich I2C, weil ich damit nicht nur N Arduinos untereinander schalten kann sondern auch direkt Displays (0,97" OLED) ansteuern und Sensoren auslesen kann. Serielle Kommunikation ist raus, da ich für jeden Arduino eine Schnittstelle zum Lesen bräuchte. CAN scheint mir die für den Feldeinsatz besser geeignete I2C Alternative sein Was meint ihr dazu? Das Unternehmen hat mir für Material kein Budgetlimit gesetzt, ich schätze aber, dass mehr als 500€ nicht drin sind. Der Dozent hätte Ende des Monats gerne einen Zwischenstand, die Lösung muss Ende des ersten Quartals in die Praxis umgesetzt sein. Kurz zu meiner Person: Ich entwickle eigentlich in Java aber für kleinere Arduino Projekte habe ich mich bereits mit der Arduino Syntax beschäftigt. Vielen Dank im Voraus :)
Marvin G. schrieb: > Ich habe mir bisher I2C, CAN und Serielle Kommunikation angeschaut. > > Am meisten schmeichelt mir eigentlich I2C, weil ich damit nicht nur N > Arduinos untereinander schalten kann sondern auch direkt Displays (0,97" > OLED) ansteuern und Sensoren auslesen kann. I2C ist nur für die Kommunikation innerhalb einer Baugruppe oder eines Gerätes gedacht und geeignet. Mehr wie 50cm empfehle ich Dir nicht. Grund 1: Störempfindlichkeit: Die Knoten können die Leitungen aktiv nur nach GND ziehen, nicht nach VCC. Grund 2: Der I2C-Standard schreibt eine gewisse maximale Buskapazität vor. Stelle Dir die Busleitungen plus GND als langgezogene Kondensatorplatten vor. Ein Kondensator braucht Zeit zum Aufladen und zum Entladen, und das Aufladen kann nur über den jeweiligen Pullup geschehen. Irgendwann ist Feierabend. I2C als Kommunikationsbus zwischen Geräten ist eine dumme Idee. > Serielle Kommunikation ist raus, da ich für jeden Arduino eine > Schnittstelle zum Lesen bräuchte. Nö. Schau Dir RS-485 an. Da hängen n Geräte an einem Zweidraht-Bus. Je nach Bitrate sind mehrere 100m drin. > CAN scheint mir die für den Feldeinsatz besser geeignete I2C Alternative > sein Ja. Leider hast Du Dir mit AVR die dümmstmögliche Architektur dafür ausgewählt. Sowas wie Teensy 3.6 oder neuer (ARM, NXP) oder auch Chipkit (Microchip PIC32) wäre technisch besser geeignet - und auch mit dem Arduino Framework programmierbar. fchk
Billig mit CAN und Arduino Kompatibel wären auch die BluePill Modul . http://stefanfrings.de/stm32/stm32f1.html#bluepill
Marvin G. schrieb: > Ich möchte mich aufgrund des Aufwands davon trennen jedem Arduino > potentielle 1 Gigabit Leitungen hinzulegen und zu switchen. Warum? Netzwerkkabel und Netzwerkswitche sind billig und sehr gängig, die Ethernet-Shields für Arduino wohl nicht perfekt, aber etabliert, verbreitet und verstanden. Was ich mir vor allem überlegen würde ist das Gesamtkonzept: Du hast bisher schon 2 Schaltpaneele die per Ethernet angebunden sind. Du fügst jetzt noch ein paar OLED-Displays meinetwegen per CAN hinzu. In nem halben Jahr kommt der nächste Student, der soll nen paar neue Sensoren dazu bauen und der nimmt dafür Funk mit nrf24L01. Der nächste nimmt für seinen Kram dann RS-485 - und so weiter. Schon bald hast Du ein Gestrüpp von verschiedensten, inkompatiblen Verbindungen. Das dann zu durchblicken und sinnvoll zu erweitern oder anzupassen wird immer schwerer. Man muss sich dafür dann in jede der verwendeten Technologien einarbeiten. Ich würde daher bei einer Verbindungstechnologie bleiben solange die Anforderungen dem nicht komplett entgegenstehen. Darüber kann dann jede Komponente direkt mit jeder anderen reden, ohne daß Du irgendwelche Adapter bauen oder entwickeln müsstest.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.