Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

(Programmierung)
K (Die Schnittstelle zwischen den Zellen)
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 29: Zeile 29:
 
* Energieversorgung
 
* Energieversorgung
 
* Logik
 
* Logik
 +
 +
Eine Zelle kann somit als die Einheit aufgefasst werden, die die mechanische, elektrische und logische Schnittstelle einhält. Dabei wird es als wichtig erachtet, dass jede Zelle alle drei Schnittstellen bedient. Vor diesem Hintergrund kann man eine Zelle auch als ein bischen Mechanik, ein bischen Energieversorgung und ein bischen Logik auffassen. Viele Zellen zusammen ergeben dann die für einen Roboter gewünschte Mechanik, Energieversorgung und Logik.
  
 
Und was ist mit den Sensoren, den Motoren und der Software?
 
Und was ist mit den Sensoren, den Motoren und der Software?
Sensoren und Effektoren sind Funktionalitäten einer Zelle. Die Informationen oder Steuerimpulse werden über die logische Schnittstelle an andere Zellen weitergegeben. Also benötigt man hierfür keine Schnittstellendefinition.
+
Sensoren und Effektoren sind Funktionalitäten einer Zelle. Die Informationen oder Steuerimpulse werden über die logische Schnittstelle an andere Zellen weitergegeben. Also benötigt man hierfür keine Schnittstellendefinition. Durch die richtige Auswahl der Zellen wird die für den Roboter gewünschte Funktionalität zusammengestellt.
  
Die Software muß die Regeln des Miteinanders einhalten. Diese werden in der logischen Schnittstelle ausgeführt.
+
Die Software muss die Regeln des Miteinanders einhalten. Diese werden in der logischen Schnittstelle ausgeführt.
  
 
=== Mechanische Schnittstelle ===
 
=== Mechanische Schnittstelle ===
Zeile 145: Zeile 147:
 
Wie können die Logikzellen in einem Zellverbund programmiert werden?
 
Wie können die Logikzellen in einem Zellverbund programmiert werden?
 
== Verweise ==
 
== Verweise ==
 +
 +
Die Syntax der Befehle und Programmierung ist in [[Roboterzellen: Syntax]] beschrieben. Dort ist am Ende auch ein Beispiel zur Erstellung und Programmierung ausgeführt.
  
 
== Quellen ==
 
== Quellen ==

Aktuelle Version vom 16. August 2008, 16:01 Uhr

Vorwort

Mit diesem Eintrag sollen die Entscheidungen und Diskussionsergebnisse festgehalten werden, die zur Verwirklichung der Vision erforderlich sind. Insofern bleibt die Seite unvollständig und viele Einträge sind lediglich ein Hinweis: hier ist noch etwas zu tun.

Wenn Du mitmachen möchtest: Suche Dir die passende Stelle aus und erweitere sie. Problematische Fragestellungen kann man / sollte man erst im Forum diskutieren. Ergebnisse aus diesen Diskussionen gehören aber dann als Festlegungen in dieses Dokument. So kann der Stand der Entwicklung immer hier nachgelesen werden.

Dieser Artikel ist noch lange nicht vollständig. Der Auto/Initiator hofft das sich weitere User am Ausbau des Artikels beteiligen.

Das Ergänzen ist also ausdrücklich gewünscht! Besonders folgende Dinge würden noch fehlen:

Erweitern und verbessern, da wo Du möchtest


Vision

Die Entwicklung der Microcontroller hat derartige Fortschritte gemacht, dass mittlerweile sehr viele Funktionen zu einem günstigen Preis verfügbar geworden sind. Die Vielseitigkeit erlaubt es aber auch, Funktionen, die bislang in Hardware realisiert wurden, über Software bereitzustellen.

Es ist möglich geworden, Hardware und Microcontroller zu einer Zelle zu verbinden und die erforderliche Kommunikation zwischen den Zellen über ein Bussystem abzuwickeln. Die Verbindungen zwischen den Zellen können standardisiert werden, das "Miteinander" findet im Rahmen der Software statt.

Jede Zelle leistet einen Beitrag für ihre eigene Funktionalität und einen Beitrag für die Zellgemeinschaft. Ihre eigene Funktionalität ist bereits entwickelt, der Beitrag für die Zellgemeinschaft ist bereits festgelegt.

Roboter aus Roboterzellen bauen heißt also nur noch: Festlegen, welche Zelle was wann tun soll. Die übrigen Fragestellungen wurden bereits gelöst und stehen als fertige Zellen zur Verfügung.

Will man beispielsweise ein Fahrzeug erstellen, so nimmt man 4 Radzellen (oder 6, oder ...), Gelenkzellen, Sensorzellen, Logikzellen, ... und steckt sie zusammen. Dann braucht man sich nur noch darauf zu konzentrieren, dass das Fahrzeug auch so fährt, wie es soll ...

Grundregeln

Um die Entscheidungen leichter zu machen, hier ein paar Grundregeln:

  • Auf geringen Energiverbrauch achten
  • Auf geringes Gewicht achten
  • Möglichst kostengünstige Hardware verwenden
  • Einsparung von Hardware durch Softwarelösungen auf dem Controller

Natürlich können bei der Anwendung der Grundregeln widersprüchliche Lösungen entstehen. Dann ist halt abzuwägen.

Die Schnittstelle zwischen den Zellen

Damit die Zellen miteinander arbeiten können, müssen alle Verbindungen genormt sein. Hierzu zählen:

  • Mechanik
  • Energieversorgung
  • Logik

Eine Zelle kann somit als die Einheit aufgefasst werden, die die mechanische, elektrische und logische Schnittstelle einhält. Dabei wird es als wichtig erachtet, dass jede Zelle alle drei Schnittstellen bedient. Vor diesem Hintergrund kann man eine Zelle auch als ein bischen Mechanik, ein bischen Energieversorgung und ein bischen Logik auffassen. Viele Zellen zusammen ergeben dann die für einen Roboter gewünschte Mechanik, Energieversorgung und Logik.

Und was ist mit den Sensoren, den Motoren und der Software? Sensoren und Effektoren sind Funktionalitäten einer Zelle. Die Informationen oder Steuerimpulse werden über die logische Schnittstelle an andere Zellen weitergegeben. Also benötigt man hierfür keine Schnittstellendefinition. Durch die richtige Auswahl der Zellen wird die für den Roboter gewünschte Funktionalität zusammengestellt.

Die Software muss die Regeln des Miteinanders einhalten. Diese werden in der logischen Schnittstelle ausgeführt.

Mechanische Schnittstelle

Hier müssen genormt werden:

  • Wie koppeln zwei Zellen aneinander?
Sie sollten einfach aber stabiel miteinander verbunden und wieder gelöst werden können.
  • Welche Stecker und Buchsen werden verwendet?
  • Welche Maße hat die Schnittstelle?
  • Welche räumlichen Dimensionen sind zu beachten?
Schnittstellen haben ein festes Rastermaß im Raum. Wo kann angedockt werden? Welche Regeln sind bzgl der Zellgröße zu beachten?
  • Was ist bei der äussern Hülle, der Haut der Zellen bzw. des Roboters zu beachten?

Steckverbindungen

Es werden zwei Steckverbindungen entsprechend der RN-Definitionen verwendet: Zur Kommunikation und bei geringem Stromverbrauch der I2C-Bus Stecker als 10-poliger Wannenstecker:

Rndefinition wannenstecker.gif

Die Stromversorgung für Leistungsverbraucher erfolgt über die universellen Wannenstecker AKL230 mit 4 Polen.

Elektrische Schnittstelle

Steckerbelegungen und Spannungspegel, Belastbarkeit etc. sind festzulegen. Gebraucht werden elektrische Schnittstellen für:

  • die Informationsübertragung und
  • die Stromversorgung

Informationsübertragung

Die Informationsübertragung erfolgt über den I2C-Bus Stecker gemäß RN-Definitionen:

Stecker 10pol i2c.gif


Pin 1        SCL (Taktleitung)
Pin 3        SDA (Datenleitung)
Pin 5        +5V
Pin 7        +5V
Pin 9        Batteriespannung +12V
Pin 8        GND Batterie
Pin 2,4,6    GND 
Pin 10       INT   

Es sind Maximal 3 A je Pin zulässig. Pin 5 und 7 besitzen eine geregelte +5V Spannung. Die Batteriespannung ist auf +12V ausgelegt, kann aber je nach Ladezustand auch kleiner/größer ausfallen.

Stromversorgung

Bei Bedarf, kann über einen zusätzlichen Stecker die Stromversorgung bis zu 10 A sichergestellt werden.

Pin 1        Batteriespannung +12V
Pin 2        GND Batterie
Pin 3        Ladungsspannung <= ???V
Pin 4        GND Ladung

Die Batteriespannung ist auf +12V ausgelegt, kann aber je nach Ladezustand auch kleiner/größer ausfallen.

Die Ladespannung dient zum Aufladen der Batterien. Es ist nicht sichergestellt, dass hier auch eine Spannung anliegt bzw. wie groß die Spannung tatsächlich ist. Hier können Stromerzeuger, wie z.B. ein Netzteil oder aber auch Solarzellen, ihren Strom anbieten.

Logische Schnittstelle

Hier werden die Fragen rund um den Aufbau der Informationen, die zwischen Zellen ausgetauscht werden können, gelöst. Aber auch die Einbindung der Standardsoftware für die Programmierung der Zellen muß geregelt sein.

Informationsaustausch

Der Informationsaustausch zwischen Zellen erfolgt über die Definition gemeinsamer Speicherzellen (Siehe Roboterzellen#Logik). Der Nutzer benennt lediglich die Speicherstellen, die einen gemeinsamen Wert beinhalten sollen. Das Betriebssystem regelt das Zusammenwirken beim Lesen oder Schreiben.

Softwareschnittstelle

Die Implementierung von Funktionen einer Zelle ist frei. Die Kommunikation zu anderen Zellen erfolgt jedoch ausschließlich über das Betriebssystem im Rahmen von gemeinsamen Speicherstellen. Da diese Kommunikation auf der Basis von I2C erfolgt, müssen bei der zusätzlichen Einbindung von I2C-Modulen gewisse Rahmenbedingungen eingehalten werden und es sind bestimmte Betriebssystemfunktionen zu verwenden.

Zelltypen

Die Schnittstellendefinitionen normieren, wie Zellen miteinander arbeiten können. Hier wird aufgezeigt, welche Funktionen die Zellen benötigen. Zellen mit gleicher Funktion, werden zu einem Zelltyp zusammengefasst. Jeder Zelltyp definiert seine Anforderungen an die Schnittstellen. Insbesondere der Bedarf an Strom und die bereitgestellten Funktionen der logischen Schnittstelle sind aufzuzeigen.

Die Liste der Zelltypen ist (noch) unsortiert und sollte je nach Bedarf verlängert werden.

Ein-/Ausgabe

Kernstück für den Aufbau zellularer Roboter ist ein Ein-/Ausgabemodul, mit dem der Benutzer die erforderlichen Parameter festlegt. Ist der Roboter erstellt, sollte das Modul nicht mehr unbedingt erforderlich sein.

Sensoren

Dieser Zelltyp ist sicherlich noch weiter zu untergliedern. Was sind die wichtigsten Sensoren, die unterstützt werden sollten? Wie viele Sensoren werden in einer Zelle zusammengefasst?

Effektoren

Lineare Antriebe

Ähnlich den Schubzylindern eines Baggerarmes werden elektrische Antriebe benötigt, die eine Stange verlängern oder verkürzen können. Hierüber können Arme und Beine Beweglichkeit erhalten.

Räder

Viele Roboter bewegen sich auf Reifen.

Verstrebung

Nicht immer werden überall Funktionen benötigt. Es müssen auch leichte Elemente ohne Funktionalität bereitgestellt werden.

Schaniere

Die Kopplungen sind alle starr. Um Beweglichkeit zu ermöglichen, müssen bewegbare Zellen vorhanden sein.

Stromversorgung

Ein oder mehrere dieser Zellen sind für die Energieversorgung zuständig. Neben Akkus können Netzgeräte und auch Solarpannels zum Einsatz kommen.

Logik

Ein Standardtyp zur Verarbeitung der Informationen. Die Informationsverarbeitung erfolgt bei allen Roboterzellen nach dem gleichen Prinzip. Deswegen enthält jede Zelle auch einen Logik-Anteil, so dass die Zusammenarbeit sichergestellt ist.

Definition von Speicherstellen

Eine Speicherstelle besitzt einen Namen und einen Wertebereich. Der Name ist innerhalb einer Zelle eindeutig. Der Wertebereich ist über alle Zellen eindeutig definiert.

Der Wertebereich kann eine Auflistung von Bezeichnern sein (z.B. Boolean: {False, True}) oder ein Zahlenbereich (z.B. Byte: 0 .. 255). Vordefiniert sind die Wertebereiche von Boolean, Byte, Integer und Float.

Definition gemeinsamer Speicherstellen

Eine Speicherstelle kann auch derart definiert werden, dass man sich auf die Speicherstelle einer anderen Zelle bezieht. Dann stellt das Betriebssystem sicher, dass der Zugriff (Lesen oder Schreiben) von jeder betroffenen Zelle aus so erfolgt, als wenn es sich um eine lokale Definition handeln würde. Veränderungen werden transparent durchgereicht. Die logische Schnittstelle besteht also eigentlich in diesen gemeinsamen Speicherstellen.

Programmierung

Die Programmierung erfolgt, indem die Zusammenhänge zwischen den Speicherstellen einer Zelle beschrieben werden. Jeder Zusammenhang ist eine Liste von Speicherstellenbeschreibungen.

Eine Speicherstellenbeschreibung benennt eine Speicherstelle, den vorgesehenen Wert (oder einen Bereich von Werten) und ein angegebenes Gewicht.

Die Zelle sucht nun permanent nach gültigen Zusammenhängen und führt diese aus. Ein Zusammenhang ist gültig, wenn die Summe der Gewichte der Speicherstellenbeschreibungen über einem gewissen Schwellwert liegt.

Das Gewicht einer Speicherstellenbeschreibung berechnet sich wie folgt: Entspricht der momentane Wert einer Speicherstelle einem der vorgesehenen Werte, so ist das Gewicht der Speicherstellenbeschreibung gleich dem angegebenen Gewicht. Andernfalls ist es 0.

Liegt die Summe der Gewichte (Gesamtgewicht) nun über einem gewissen Schwellwert, so wird der Zusammenhang ausgeführt: Die Werte aller im Zusammenhang aufgeführten Speicherstellen werden so verändert, dass ein möglichst hohes Gesamtgewicht erreicht wird.

Am Ende der Beschreibung der Syntax für die Befehle und zur Programmierung ist in Roboterzellen: Syntax ein Beispiel aufgefürt.

Anmerkung: Klingt komplizierte als es ist. Im Kern ist es ein Gemisch aus neuronalen Netzen und Regeln von Expertensystemen. Mal abwarten, wie es sich implementieren lässt. Wenn es funktioniert, kann eine Robotersteuerung ganz einfach aufgebaut werden und man konzentriert sich auf die Problemstellung. Ballast, wie das Erlernen einer Programmiersprache, ist nicht erforderlich.

Das Miteinander

In den vorangehenden Kapiteln wurden Zellen bereitgestellt. Wie können diese Zellen zu dem gewollten Zusammenarbeiten bewegt werden?

Erstellung eines Zellverbundes

Was muß getan werden, damit aus einzelnen Zellen ein funktionsfähiger Zellverbund entsteht? Wie unterstützen die Zellen den Aufbau?

Programmierung

Wie können die Logikzellen in einem Zellverbund programmiert werden?

Verweise

Die Syntax der Befehle und Programmierung ist in Roboterzellen: Syntax beschrieben. Dort ist am Ende auch ein Beispiel zur Erstellung und Programmierung ausgeführt.

Quellen

Autor

--ZellRobi 06:37, 22. Jun 2008 (CEST)


LiFePO4 Speicher Test