-
-
Erfahrener Benutzer
Roboter Genie
Na ja, so ungefähr ist das richtig. Der Hauptcontroller kann selber eigentlich nicht viel, alle Aufgaben (Beinsteuerung, Kopfsteuerung, LEDs-Ansteuerung, SD-Card, Sound, etc.) sind auf andere Controller ausgelagert, die vom Hauptcontroller angesprochen und abgefragt werden.
Hätte ich vor, meinen Hexapod um zwei Beine zu erweitern, müßte ich nur ein zusätzlichen Beincontroller einstecken, und die Software des Hauptcontrollers minimal ändern. (Abgesehen von der Mechanik, denn die Beine müßten ja auch irgendwo ran
)
Was PC-like ist, ist Marvins Startsequenz, in der er alle angeschlossenen Geräte auf ihre Anwesenheit abfragt. Ist ein Modul nicht da (US-Sensor, SD-Card, Sound, etc.), so wird es im Hauptprogramm nicht angesprochen bzw. abgefragt.
Ein Modul kann auch mehrere logische Geräte beinhalten. So ist z.B. die Soundplatine zuständig für:
- Pieps-Signale
- das Abspielen von digitalen Sound-Samples
- Sprachausgabe durch zusammengesetzte Phoneme
Jede dieser Funktionen stellt ein unabhängiges Gerät dar, welches vom Hauptcontroller einzeln angesprochen werden kann.
Oder z.B. die LED-Steuerung. Alle LEDs an den Köpfen werden von einem Modul gesteuert, welches aber 11 Geräte darstellt.
Gerät 1 = rote LED links
Gerät 2 = rote LED rechts
Gerät 3 = grüne LED links
...
Gerät 8 = blaue LED rechts
Gerät 9 = IR LEDs an beiden Köpfen
Gerät 10 = Alle LEDs ausser IR
Gerät 11 = LED-Effekte
Um z.B. die linke grüne LED auf 50% Leistung einzuschalten, kommt vom Hauptcontroller nur das Kommando (3,12
da die LEDs nur einen Bytewert übermittelt bekommen, der ihrer einzustellenden Helligkeit (0-255) entspricht.
Will ich einen der LED-Effekte, z.B. Rundum-Blinken, anschalten, so muss nicht der Hauptcontroller andauernd Daten senden, sondern einmal das Kommando (11, 7), worauf der Effekt Nr. 7 also das Rundumblinken vom LED Modul selbst gesteuert wird.
Nicht alle Module werden nur mit einem Byte angesteuert. Die Beincontroller bekommen mehrere Single-Werte für Position und Winkel übertragen, Sprach-, SD- und Anzeigenmodul bekommen Texte variabler länge übermittelt und viele Module liefern auch diverse Werte zurück.
So bleibt dem Hauptcontroller immer möglichst viel "Luft" weil er selber fast nur die Kommunikation der einzelnen Module ohne sich im Einzelnen um LEDs, Speicherkarten, Beine, etc. kümmern zu müssen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen