est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra
est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra
est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Projektarbeit 2002, BKIK 2/1<br />
<strong>David</strong> <strong>Zaadstra</strong>, Alexander Fuchs<br />
<strong>Bewegung</strong> <strong>durch</strong> <strong>eine</strong> <strong>3D</strong>-<strong>Landschaft</strong> <strong>mit</strong> Fernbedienung<br />
Elektronikschule Tettnang<br />
1. Zusammenfassung<br />
1.1 Deutsch<br />
Das Projekt ist in zwei Teilen zu sehen: Der Empfang und die Dekodierung der<br />
Fernbedienungssignale <strong>mit</strong> dem Mikrocontroller und die <strong>3D</strong>-<strong>Landschaft</strong> auf dem PC. Die IR-<br />
Signale der Fernbedienung werden <strong>durch</strong> das IR-Empfängerbauteil SFH5110 erkannt, das<br />
Datensignal vom Trägersignal getrennt und als TTL-Impulsfolge an den Mikrocontroller<br />
80C535 weitergegeben. Dieser misst die Impulslängen des Signals, speichert sie, wandelt sie<br />
in ein internes Format um und vergleicht dieses <strong>mit</strong> <strong>eine</strong>m Datensatz von Signalen, die zuvor<br />
von uns aufgenommen wurden. Wurde das Signal erkannt, wird die Nummer des Signals per<br />
V24 an den COM1-Port des PCs gesendet.<br />
Der Tastencode wird vom Windowsprogramm <strong>mit</strong> den Windows-Communications-<br />
Funktionen empfangen. Den Nummern sind verschiedene Aktionen zugeordnet, z.B. vorwärts<br />
bewegen oder rechts drehen. So kann man sich <strong>durch</strong> die dreidimensionale <strong>Landschaft</strong><br />
bewegen. Diese <strong>Landschaft</strong> wird <strong>durch</strong> <strong>eine</strong> Höhenkarte repräsentiert, die aus <strong>eine</strong>r Bitmap<br />
ausgelesen wird. Diese Höhendaten werden in <strong>3D</strong>-Daten umgewandelt und <strong>mit</strong>tels der<br />
ManiaTech <strong>3D</strong>-Engine 1 darg<strong>est</strong>ellt. Diese Engine basiert auf Direct<strong>3D</strong> und ermöglicht die<br />
Darstellung und Verwaltung der <strong>3D</strong>-Grafik, ohne aber direkte Interaktion <strong>mit</strong> der<br />
darunterliegenden API zu erfordern. Das PC-Programm stellt ausserdem beim Start ein<br />
Optionsmenü zur Verfügung, das <strong>eine</strong> Konfiguration der Grafikeinstellungen erlaubt.<br />
1 Unter <strong>eine</strong>r (<strong>3D</strong>-)Engine versteht man im Allgem<strong>eine</strong>n <strong>eine</strong> Ansammlung von Klassen und/oder Funktionen,<br />
die in <strong>eine</strong>m System <strong>mit</strong>einander interagieren, um b<strong>est</strong>immte Aufgaben (z.B. die Darstellung von <strong>3D</strong>-Grafik) zu<br />
vereinfachen, zu abstrahieren (von darunter liegenden APIs oder dem OS) und zu systematisieren. Der<br />
Unterschied zu <strong>eine</strong>r Library b<strong>est</strong>eht im Wesentlichen darin, dass Interaktion zwischen den Funktionen/Klassen<br />
b<strong>est</strong>eht, sodass das Programm zu <strong>eine</strong>m großen Teil von der Engine angetrieben wird. Bei <strong>eine</strong>r Library dagegen<br />
liegt die Hauptarbeit beim Programm, es wird lediglich Funktionalität aus der Library verwendet.<br />
Es sei darauf hingewiesen, dass es auch andere Interpretationen des Begriffs Engine gibt, von denen sich diese<br />
Definition <strong>durch</strong>aus unterscheiden kann.<br />
- 4 -