Hallo,ich suche ein Arduino (durch Arduino IDE programmierbaren), mit
möglichst vielen Seriellen Anschlüssen (Software Seriell geht nicht, da
ich alle Daten gleichzeitig empfangen muss).
Gibt es da welche mit mehr als 4 (Arduino Mega)?
LG
Cicada
Was soll er denn sonst noch können? Und wie schnell solls denn sein
(bps)?
Mir würde da als erstes ein Propeller von Parallax einfallen. Da der
keine Hardware-Pins hat, sondern alles in Software macht, kann man alle
Pins zu Seriellen Schnittstellen umfunktionieren. Macht also 14.
Die Programmierung ist auch recht simpel, wenn man nicht all zu
verrückte Sachen damit machen möchte. Auf jeden Fall einfacher, als VHDL
zu lernen und das alles mit einem FPGA zu machen.
Hallo, er soll Serielle Daten Lesen und auf die mit Seriellen Daten
Antworten.
Die Rechenleistung ist also ziemlich gering. Außerdem soll er einen
ESP8266 (Web Server) ansteuern und lesen.
LG
Cicada
Irgendwie ist das eine magere Ausbeute an neuen Informationen!
Nochmal:
Wieviele serielle Ports sollen es denn sein?
Wie schnell laufen die seriellen Schnittstellen?
Kann der uC an einer Seite lesen und wo anders die Daten wieder senden,
oder muss da auch gepuffert werden?
Und auch nochmal:
14 Serielle Schnittstellen sind mit dem Propeller kein Problem (full
duplex bei 115200 baud). Das können 4 Kerne erledigen und 4 Kerne
bleiben zum Verteilen.
Wenn nicht zuviel Logik dahinter steckt, dann kann man das mit der
Propeller-Eigenen Hochsprache machen. Aber um das bewerten zu können
müsste man mehr von der Aufgabenstellung wissen.
Es sollen 10 Serielle Ports sein. wenn z.B. an RX 1 "Scharf" ankommt
soll er dass erkennen und am TX 2 "ballaballa" senden. Außerdem soll auf
dem Webserver eine GUI laufen an dem Daten gelesen werden sollen und
Über Seriellen Ports verteilt werden.(Tendenziell wenig Rechenleistung).
Die Spannung der Seriellanschlüsse ist 5 Volt (Propeller 3,3V)
"Umrechnung" möglich?
LG
Magnus
Cicada3301 schrieb:> Es sollen 10 Serielle Ports sein. wenn z.B. an RX 1 "Scharf" ankommt> soll er dass erkennen und am TX 2 "ballaballa" senden.
Könnte es sein, daß das ein etwas ... ressourcenvergeudendes
Hardwaredesign ist?
Warum können die an den seriellen Ports hängenden Geräte nicht an einem
anständigen seriellen Bus hängen? Dann wird dafür nur eine einzige UART
verballert.
Klar, dann ist ein Protokoll erforderlich (wie z.B. auf üblichen
RS485-Bussen gebräuchlich), aber auch da muss kein Rad neu erfunden
werden.
Wenn das Argument "Reaktionsgeschwindigkeit" lautet, dann kann man die
Baudrate auch einfach erhöhen.
Welche Anforderungen in Sachen Reaktionsgeschwindigkeit hast Du denn
tatsächlich, und was für Geräte sollen das sein, die an den Ports
hängen?
Da haben sich die Atmels so viel Arbeit gemacht und Listen mit den
Eigenschaften ihrer Prozessoren erstellt - und keiner liest sie;-)
Atmega max 4
XMega max 8
Hallo,
es sollen mehrere Arduino's zur Hausautomatisierung zusammengeschlossen
werden mit Webinterface. Reaktionszeit unter 5 Sekunden also nicht hoch.
PS ich habe relativ wenig Ahnung von solchen Sachen :(
C
LG
Cicada
Cicada3301 schrieb:> es sollen mehrere Arduino's zur Hausautomatisierung zusammengeschlossen> werden mit Webinterface. Reaktionszeit unter 5 Sekunden also nicht hoch.
Dann genügt eine Schnittstelle und ein serieller Bus.
Beispiele findest Du unter dem Stichwort "Hausbus".
Ein weiterer Vorteil: Du musst nicht jedes einzelne Gerät direkt mit
Deiner Zentrale verbinden, sondern es genügt eine Busleitung, die an
jedem Gerät vorbeigeführt wird. Das ist deutlich weniger Aufriss als
eine Sternverkabelung.
Cicada3301 schrieb:> Die Spannung der Seriellanschlüsse ist 5 Volt (Propeller 3,3V)> "Umrechnung" möglich?
Für die Eingänge reicht ein Vorwiderstand, für die Ausgänge kann man
Levelshifter nehmen.
Den Propeller gibt es im 40 poligen DIP. Levelshifter von Adafruit gibts
auf einer DIP breakout-Platine.
Aber ... wie weit sind denn die angeschlossenen Gegenstellen entfernt?
Schon klar, dass es mit 5V eh nicht all zu weit weg sein kann?
Hi
>PS ich habe relativ wenig Ahnung von solchen Sachen :(
Dann solltest du dich mit den simpelsten Grundlagen vertraut machen. Nur
vom Hörensagen kann man nicht programmieren.
MfG Spess
Cicada3301 schrieb:> Hallo,ich suche ein Arduino (durch Arduino IDE programmierbaren), mit> möglichst vielen Seriellen Anschlüssen (Software Seriell geht nicht, da> ich alle Daten gleichzeitig empfangen muss).
Was heisst denn gleichzeitig? Verarbeiten kannst Du sie eh nur serielle
und dann reduziert sich das auch einen Portmultiplexer mit Latches. Mit
einem 8 bit breiten Port hast Du mit einem Schlag 8 Leitungen drin und
kannst sie interpretieren. Ich habe das schon für 256 Bit IOs ausgebaut.
(4 64 Bit Worte)
Cicada3301 schrieb:> Hallo,> es sollen mehrere Arduino's zur Hausautomatisierung zusammengeschlossen> werden mit Webinterface. Reaktionszeit unter 5 Sekunden also nicht hoch.> PS ich habe relativ wenig Ahnung von solchen Sachen :(>> C> LG> Cicada
Mehrere Arduinos macht ja fast nur Sinn, wenn die räumlich voneinander
getrennt sind.
Wie soll denn die Verbindung genau aussehen?
Funk? Wenn ja, welcher Standard? BT? RF? ...
Kabel? Wenn ja, welche? EIB? LAN? ...
Hallo,
An spess53:
Programmieren kann ich nur ich kenn nicht alle Hardwareseitigen
Möglichkeiten.(Habe schon das Fertige Skript für ein Gerät)
Deshalb frage Ich.
Es kamm ja die Idee, dass ich Arduino 1 mit Arduino 2, Arduino 2 mit
Arduino 3,Arduino 4 mit Arduino 1 verbinde.
Da muss ich den Arduino sagen dass sie alles einfach weitersenden und
auch mit lesen.
Müsste es dann nicht passieren das irgendwann immer noch alte befehle
Rumhängen?
Sollte man dann einfach Label wer was Gesendet hat und wenn es bei ihm
wieder ankommt das er das dann Löscht?
Oder wäre eventuell ein Netz wo Jeder Arduino mit Jedem Kommuniziert?
Es müssen Im "Test-Zimmer" 7 Servos,8 Buttons, 2 Potis, 4 DHT11 Und
einer Arduino Alarmanlage (Das Könnte auch Seriell gehen, Sie sit schon
Fertig und in Betrieb, nen Paar zeigen Code bekomme ich schon hin)
LG
Cicada
Cicada3301 schrieb:> Es kamm ja die Idee, dass ich Arduino 1 mit Arduino 2, Arduino 2 mit> Arduino 3,Arduino 4 mit Arduino 1 verbinde.> Da muss ich den Arduino sagen dass sie alles einfach weitersenden und> auch mit lesen.> Müsste es dann nicht passieren das irgendwann immer noch alte befehle> Rumhängen?> Sollte man dann einfach Label wer was Gesendet hat und wenn es bei ihm> wieder ankommt das er das dann Löscht?
Das kann man aufbauen.
Nennt sich dann Tokenring, oder Tokenpassing System.
Ist jetzt nicht das schnellste System, aber funktioniert!
Zumindest bemerkt man bei einem solchen System sofort, wenn irgendwo was
klemmt.
Hast du doch selbst schon geschrieben ... Label ... heißt zwar bei Token
Ring Token ... aber man kann auch ein Label Ring aufbauen ;o)
Ist nix weiter, als eine eindeutige Zahl an der der Sender sein eigenes
Paket wieder erkennt. Also z.B. sowas wie Nummer der Arduinos + laufende
Nummer.
Cicada3301 schrieb:> Wie sollte man das> mit den Kennzeichnungenn machen das die Daten nicht immer im Kreis> senden
Im einfachsten Fall:
Jedes Datenpaket mit einem Header und einer Prüfsumme versehen.
Jeder Knoten bekommt eine ID
Der Header umfasst:
Quellen ID
Ziel ID
laufende Nummer(MessageID)
//einen Zähler für die Hopps/Weiterreichungen
Pakete mit falscher Prüfsumme (CRC) werden verworfen.
Pakete mit Ziel != eigener ID werden weitergeleitet
Pakete mit Quelle == eigener ID werden verworfen
Pakete mit Ziel == eigener ID werden verarbeitet
// Pakete mit mehr als z.B. 30 Hopps werden verworfen
Arduino F. schrieb:> Der Header umfasst:> Quellen ID> Ziel ID> laufende Nummer(MessageID)
Es sollte auch noch Pakete mit Ziel ID == an Alle geben.
Die werden verarbeitet UND weitergegeben - erst an der Quelle dann
gelöscht