# Betriebssytem RoBIOS

Die im folgenden beschriebene Funktionen und Demos beziehen sich auf RoBIOS, Version 4.x. Es ist zu beachten, daß neuere Softwareversionen von der hier folgenden Beschreibung abweichen können.

Nach dem Anschluß des Kamerakabels und des Spannungsversorgungskabels kann EyeBot gestartet werden. Die Spannungsversoprgung sollte auf ca. 7.2V eingestellt sein (z.B. 6 Zellen Ni-Cd Akkus). Beim Start sollte eine Meldung wie folgt auf dem Grafik-LCD erscheinen:

    - RoBiOS  Vx.x -
    ----------------
    RobName 01 Cam:e
    25 MHz  512K ROM
     896Kf 1024K RAM
     Battery-Status
    @@@@@@@@@@@@@@@@
    <I> Hrd Usr Demo

EyeBot zeigt die Versionsnummer des Betriebssystems und die Größe des freien Speichers an. Die unterste Textzeile befindet sich direkt über den vier farbigen Eingabetasten und dem kleinen Rest-Knopf. Die vier Eingabetasten (gelb, rot, blau, grün) arbeiten als Softkeys, d.h. ihre jeweile Bedeutung im Programmkontext wird in der untersten Textzeile des LCD angezeigt.
Im Hauptmenu sind dies die Funktionen:

- Info über die an EyeBot beteiligten Personen
- Hrd Setzen von Parametern und Test von Kamera, serieller Verbindung, Servos, Motoren, usw.
- User Program Download und Ausführen von Anwenderprogrammen
- Demo von Kamerafunktion (Graustufen oder Farbe), Multitasking, Audio

Das EyeBot Betriebssystem RoBIOS stellt eine Reihe von Routinen zur Verfügung, die von Benutzerprogramm direkt aufgerufen werden können, so daß dies nicht mit jedem Anwenderprogramm mit-compiliert und geladen werden müssen. Weitere Informationen zu diesen Routinen finden sich im Abschnitt Bibliotheksroutinen.

# Hardware-Routinen

Nach Auswahl des Hardware-Setup hat man zwei Wahlmöglichkeiten um entweder Hardwareeinstellungen vorzunehmen, oder sämtliche angeschlossenen Hardwarekomponenten zu testen. Letztere sind über die Hardware Description Tabelle (HDT) im System festgelegt.

    Hardware:

    Set HDT IO  END

Das Untermenü zum Setzen von Parametern teilt sich weiter auf wie unten beschrieben, während das Test-Untermenü das selektive Testen aller angeschlossenen und in der HDT eingetragenen Hardwarekomponenten ermöglicht.

### Setzen von Parametern

Dieses Untermenü ermöglicht das Setzen der Parameter einer angeschlossenen Kamera (Graustufen oder Farbe), bzw. der Parameter der seriellen Verbindung.

    Setup:

    Cam Ser Rmt END

### Setzen der Kameraparameter

Bitte beachten: Dieses Menu gilt nur für das ältere Kameramodell "QuickCam" und nicht für die neuen Kameras!

Es existieren zwei verschiedene Menüs, abhängig davon, ob eine Graustufen- oder eine Farbkamera an EyeBot angeschlossen ist. Hier wird das Menü für die Graustufenkamera gezeigt. Das aktuelle Kamerabild wird dem Text überlagert, so daß die Effekte von Parameteränderungen direkt beobachtet werden können. Drücken der + oder - Tasten ändert den Wert des augenblicklich ausgewählten Parameters (angezeigt durch *). Drücken von Nxt schaltet ringförmig zum nächsten Parameter um. Drücken von END führt zum Hauptmenu eine Ebene höher zurück.

    CamSetup:

    Bright :   140 *
    Offset :    43
    Contr. :   104
    AutoBr.:   OFF
    Version:   $00
     +   -   Nxt END

### Setzen der Download-Parameter

Diese Funktionen sind im Abschnitt Programme laden beschrieben.

### Testen von Hardware-Komponenten

Alle Hardware-Komponenten, die in der HDT definiert wurden, sind hier aufgelistet und können individuell getestet werden. Bei zwei angeschlossenen Motoren, zwei Encodern, zwei Servos und drei PSD-Sensoren sieht das Menu dann folgendermassen aus:

     2Motors/ RIGHT*
     2Encodr/ RIGHT
     2Servos/ S11-C
     3  PSDs/  P0-L

    Tst  +   Nxt END

Mit Tst kann die betreffende Hardware-Komponente ausgewaehlt werden, mit + werden Kompoenenten innerhalb einer Gruppe ausgewaehlt, Nxt schaltet zwischen verschiedenen Gruppen um.

Je nach Typ der selektierten Hardware-Komponente wird nach der Selektion ein entsprechendes Testprogramm gestartet.

### Beispiel Servo-Test

Nach der Selektion eines Servos aus dem Hardwaretest-Submenu kann der Winkel des betreffenden Servos eingestellt werden.

    Servotest:
    Sem: S11-C(-361)

    Angle:  128

    +    -   max END

### Testen von I/O Ports

Das I/O Test-Menu erlaubt das Lesen/Schreiben jedes einzelnen Bits des digitalen Inputports, digitalen Outputports, Parallelports und des analogen Inputports.

    Select a PORT

    Dig Parl AD END

### Beispiel: Digital-Input

Der aktuelle Zustand aller Eingabepins wird angezeigt.

      Digital-In:
      -----------
    Port0 (76543210)
           11011111

                 END

# Anwenderprogramme

Das Laden von Anwenderprogrammen ist im Abschnitt Programme laden näher beschrieben.

# Demos

Eine Reihe von Demos sind im ROM als File "demos.hex" gespeichert und können bei Bedarf überschrieben werden. Sie weden durch Drücken des Buttons "Demo" aus dem Startmenuuml; aus gestartet und enthalten Demos für Kamera (Graustufen oder Farbe), Audio, Kommunikations-Netzwerk und Fahrfunktionen. Eine Demo kann uuml;ber die +/- Tasten und den "Sel"-Button ausgewählt werden.

      Menu Select
    Camera         *
    Audio
    Network
    Drive

    +   -   Sel END

### Kamera-Demos

Es sind drei Demos vorhanden, eine für Graustufen- oder Farbkameras, eine speziell für Farbkameras und eine Zoom-Demo. Die Graustufen-Demo zeigt eine Kombination von einfachen Bildverarbeitungs- Routinen, während die Farb-Demo das Speichern eines Farbmusters und das anschließende Wiederfinden im aufgenommenen Bild zeigt.

Bei der Graustufen-Demo wird das Kamerabild in Echtzeit angezeigt und der Anwender kann verschiedene Bildverarbeitungsoperationen auswählen, die auf dem Kamerabild ausgeführt werden. Default ist die Identität. Durch Drücken der + und - Tasten kann zwischen Identität, Laplace-Kantendetektor, Sobel-Kantendetektor, Dithering und Differenzbild (Bewegungserkennung) hin- und hergeschaltet werden. Durch Drücken von Nxt wird ringförmig zwischen vier nacheinander auszuführenden Operatoren ausgewählt. Die Taste END führt zurück zum Hauptmenü eine Ebene nach oben. Ebenfalls angezeigt wird die Verarbeitungsgeschwindigkeit des EyeBot in Frames je Sekunde (fps).

    ..........Norm.*
    ..........Norm.
    ..........Norm.
    ..........Norm.
    ..........
    ..........fps:
    ..........16.67
     +  -  Nxt  END

### Audio-Demo

Die Audio-Demo besteht ays drei einzelnen Demos:

- Klangerzeugung
- Mikrofonlevel-Test
- Aufnehmen und Wiedergeben von Klängen

    AudioDemos:

    Mus Mic Wav END

### Network-Demo

Bitte beachten: Diese Demo benötigt ein Funkmodul
Die Netzwerk-Demo umfaß:

- Testen der Senden-/Empfangs-Funktionalitauml;t
- Senden von Testdaten
- Empfangen von Testdaten

    Wireless Network

    Tst Snd Rec END

### Fahrzeug-Demo

Bitte beachten: Diese Demo benötigt einen Roboter
Das Demoprogramm läßt den Roboter geradeausfahren, dann auf der Stelle um 180 Grad drehen und wieder zurückfahren.

    Drive Demo

    Straight
    Pos:  0.0 x 0.0
    Heading: 0.0

Thomas Bräunl, 2002