Meine Vorstellung wäre:
-Gehirnzelle
-Aktorzelle (also für bewegung, greifen, alles was eine aktion erfordert)
-Sensorzelle(Aussenwelt wahrnehmen)
-Navigationszelle (GPS, kompassmodule, etc..)
-Kommunikationszelle(Sprachmodul, etc..)
Druckbare Version
Meine Vorstellung wäre:
-Gehirnzelle
-Aktorzelle (also für bewegung, greifen, alles was eine aktion erfordert)
-Sensorzelle(Aussenwelt wahrnehmen)
-Navigationszelle (GPS, kompassmodule, etc..)
-Kommunikationszelle(Sprachmodul, etc..)
Ja, das mit den Ports war der eigentliche Grund für I2C: Ein Würfel hat 6 Seiten und es werden wohl viele Würfel werden ... also sollten so wenig Verbindungsleitungen verwendet werden, wie möglich.Zitat:
Zitat von ikarus_177
Welche ATMegas verwendet werden sollen? Ich dachte an den 32, vielleicht auch den 128, mal sehen, wieviel Speicher das Betriebsystem verbraucht. Für den zweiten Port soll auf jeder Logikzelle auch der 8 eingesetzt werden. Ziel ist jedoch: ausreichend Leistung für einen möglichst kleinen Preis.
Eigentlich soll der gesamte Bot nur aus Zellen bestehen. Um beim Aufbau der Zellen Klarheit zu gewinnen, habe ich die Diskussion unter Wie werden zwei Roboterzellen verbunden? angefangen.Zitat:
Zitat von ikarus_177
Langsam zeichnet sich (zumindest für mich) da eine Lösung ab.
Die Größe richtet sich nach der Größe der Stecker und Buchsen für die elektrische Verbindung. Daraus wird ein möglichst kleiner Würfel erstellt, der die Basisgröße vorgibt. Die Zellen können dann so groß werden, wie es erforderlich ist. Sie müssen nur in das Raster der kleinen Würfel passen. Bei LEGO gibt es auch den kleinsten Stein (1-er Knopf). Die Anderen sind ein Vielfaches davon (z.B. 2 mal 4 Knöpfe).
Sagen wir mal so: ich will die Zellen bauen. Derjenige, der daraus Roboter bauen möchte, kann das nach seinen Anforderungen selbst bestimmen, wo was hin soll. Wenn Platz ist in der Beinlänge, weshalb soll er da nicht auch Logikzellen einbauen? Andernfalls halt im "Bauch". Sicherlich muss bei der Planung des Roboters auch das Kommunikationsaufkommen bzw. die Laufzeit der Informationen berücksichtigt werden. Irgendwo sind da Grenzen und es ist sicherlich ein Ziel, Informationen so früh wie möglich und nahe am Ort des Entstehens zu verarbeiten.Zitat:
Zitat von ikarus_177
Für mich heißt das: Möglichst wenig Einschränkungen für den Zusammenbau der Zellen verursachen. Das ist bei der Entwicklung der Zelltypen zu berücksichtigen.
Für die Roboterzellen stelle ich mir das derzeit etwas anders vor: Die Zellen werden beim Zusammenbau in Ringe (I2C-Bus) zusammengefasst und es wird ein Master für jeden Ring festgelegt. Das entspricht der Zuordnung der Adressen. Aber es gibt grundsätzlich viele Ringe im Roboter und keinen klaren obersten Chef.Zitat:
Zitat von ikarus_177
Wie könnte denn das Abfragen aller vorhandenen Zellen am Anfang aussehen? Die Slaves haben dann doch noch keine Adresse ...
Hier gehe ich den Umweg über eine neue Programmiersprache. Der Anwender von Roboterzellen, also derjenige, der den Roboter zusammen baut, arbeitet nur mit dieser Programmiersprache. Die Entwickler von Zelltypen könnten so eine Lib bekommen und so arbeiten, wie Du es beschreibst.Zitat:
Zitat von ikarus_177
Neue Funktionen heißen prinzipiell neue Zellen. Eine Zelle ist eine Einheit: Mechanik, Elektrik und Logik (Controller mit Programm) sind funktionsfähig und fest definiert. Der Controller kennt sich sozusagen bestens mit seiner Zelle aus. Für Andere Zellen sichtbar ist lediglich das Abbild der Sensoren und Motoren in Speicherbereiche vom Controller. Über die Programmiersprache werden dann diese Speicherbereiche miteinander verbunden und es werden Regeln für die Verarbeitung aufgestellt.
So sind zumindest meine Vorstellungen.