Mach flott den Schrott: Elektronischer Sextant

Elektronischer Sextant

Dieses Projekt entstand im Jahre 2011 als Beitrag zum Bastelwettbewerb "Mach flott den Schrott" der Zeitschrift c't und ist dabei mit dem 3. Platz in der Kategorie "Originalität" und einen 4. Platz in der Kategorie "Umsetzung" ausgezeichnet worden.

Im Folgenden ist die Konstruktion des elektronischen Sextanten beschrieben, bei der ich Bestandteile eines alten DIN-A3-Flachbettscanners, eines Druckers und eines Diskettenlaufwerks recycled habe.

Der optische Sensor des Scanners darf in seiner neuen Verwendung anstatt die Position von Druckerschwärze auf Papier, die Sonnenhöhe über dem Horizont erfassen. Mit den bekannten Methoden der Astronavigation kann aus zwei solchen Messungen zu zwei verschiedenen bekannten Uhrzeiten dann die geographische Länge und Breite des Standortes bestimmt werden.


Der elektronische Sextant, gebaut aus Bestandteilen eines alten Scanners, Druckers und Diskettenlaufwerks. Zum Größenvergleich ein Maßkrug.

Das Herzstück bildet die Optik mit dem hochauflösenden CCD-Zeilensensor. Diese Einheit stammt, samt Treiber- und AD-Wandler-Platine, aus dem Scanner. Schrittmotor, Zahnrad und Achse, um die Vorrichtung um die Azimut-Achse zu rotieren, stammen aus einem Drucker. Die verchromte Achse für die Aufhängung war früher vermutlich Bestandteil eines Diskettenlaufwerks.

Kardanische Aufhängung

Der Sextant verwendet einen sogenannten künstlichen Horizont, d.h. als Bezugsrichtung zur Messung der Sonnenhöhe wird die Richtung der Schwerkraft verwendet. Damit ist er zwar wegen seiner Empfindlichkeit gegenüber Beschleunigungen nur in Ruhe (an Land) anwendbar, benötigt dafür aber keine freie Sicht zum echten Horizont.
Folgende Darstellung veranschaulicht wie der künstliche Horizont mittels kardanischer Aufhängung der Sensor-Platte realisiert ist. Als eine Achse (blau) wurde eine verchromte Stange verwendet. Die Drehbarkeit um die andere Achse (grün) ist durch die Aufhängung an zwei 0.2mm dünnen Phosphorbronzeblechstreifen realisiert.
Die Optik mit Sensor ist auf einer 2mm dicken Stahlplatte montiert. Die gesamte Sensor-Platte hat eine Masse von ca. 400g.

Die Achse durch den Schnittpunkt der beiden horizontalen Achsen (blau, grün) und dem Schwerpunkt der Sensor-Platte verläuft immer exakt lotrecht, selbst wenn die Grundplatte nicht genau eben steht und die Azimut-Achse (rot) dadurch etwas schief steht. Mechanischen Ungenauigkeiten oder Veränderungen außerhalb der aufgehängten Platte wirken sich also nicht auf die Messung aus.

Kardanische Aufhängung des Sextanten.

Rotation um Azimut-Achse

Damit der Sextant nicht manuell zur Sonne ausgerichtet werden muss, kann die Aufhängung um die Azimut-Achse mittels eines Schrittmotors rotiert werden, bis die Sonne in Blickrichtung des Sensors gerät.


Für die Mechanik zur Rotation um die Azimut-Achse wurde eine Achse mit Zahnrad aus dem Papiertransportmechanismus eines Druckers sowie ein Schrittmotor mit passendem Ritzel recycelt.

Rotation um die Azimut-Achse.

Der Schrittmotor bietet eine Schrittweite von 7.5°. Im Halbschrittbetrieb ergibt sich mit dem 16:100 Getriebe eine Schrittweite von 7.5°/2*16/100 = 0.6°. Das ist immer noch mehr als der Durchmesser der Sonnenscheibe (ca. 0.5°). D.h. die Sonne könnte sich zwischen zwei Schritten "verstecken". In der Praxis stellt das (zumindest in unseren Breiten) kein Problem dar, da man die Messung der Sonnenhöhe ohnehin am besten so vornimmt, dass man den Sextanten nicht genau zur Sonne ausrichtet, sondern einen Schritt weiter nach rechts (auf der Nordhalbkugel), und einfach die Sonne durch die erfasste Linie wandern lässt, was ca. 2min dauert.
Problematisch könnte es höchstens sehr nahe am Äquator werden, wo die Sonnenbahn sehr steil verläuft, d.h. der Azimutwinkel der Sonne sich dort sehr wenig verändert. Für solche Anwendungsorte müsste der Sextant noch mit einem stärker untersetztem Getriebe bzw. Schrittmotor mit kleinerer Schrittweite ausgestattet werden.

Gesamtüberblick über die Elektronik

Gesamtüberblick über die elektronischen Module
Gesamtüberblick über die elektronischen Module. Die CCD-Treiber- und AD-Wandler-Elektronik wurde wiederverwendet. Die beiden Mikrocontrollereinheiten und der Schrittmotortreiber sind neu.

Die CCD-Sensoreinheit

CCD-Sensor-Einheit
Die CCD-Sensoreinheit, mit Objektiv, Zeilensensor, Treiber- und AD-Wandler-Platine.

Der verwendete CCD-Zeilensensor TCD103 von Toshiba bietet 2592 Pixels auf einer Länge von ca. 28.5mm. Das Objektiv weist eine Brennweite von ca. 40mm auf, d.h. der Öffnungswinkel beträgt ca. 2×arctan(½×28.5mm/40mm) = 40°.
Die resultierende Winkelauflösung beträgt also ca. 40° / 2500 = 0.016° = 0.96'. Bezogen auf den Ort bedeutet das eine Ungenauigkeit von weniger als eine Seemeile.
Das Objektiv ist ca. 30° nach oben gerichtet. Damit kann die Sonnenhöhe also in einem Bereich von ca. 10° bis 50° gemessen werden. Diese Einschränkung tut nicht weiter weh, da für Höhen niedriger am Horizont ohnehin atmosphärische Effekte (die nur näherungsweise berücksichtigt werden können) die Genauigkeit beeinträchtigen würden und Sonnenhöhen nahe am Maximum auch nicht ideal für die Ortsbestimmung geeignet sind, da sich dort die Höhe über die Zeit kaum ändert, der Fehlereinfluss auf die geographische Länge also relativ hoch ist.

Da der CCD-Sensor für den ungeschützten Blick in die Sonne oder auch nur auf den Tageshimmel zu empfindlich ist, wird das Objektiv mit einer Filterfolie, wie sie für SoFi-Brillen o.ä. verwendet wird, bedeckt. Außerdem wird die CCD-Sensor-Halterung von einer Papphülle umgeben um störendes Streulicht fern zu halten (auf den Fotos und Videoclips der Anschaulichkeit wegen nicht vorhanden).

Treiber- und AD-Wandler-Platine
Zur richtigen Beschaltung der alten Elektronik mussten zuerst die Schaltpläne der Treiber- und AD-Wandler-Platine reverse-engineert werden.

Das zentrale Element der AD-Wandler-Platine ist der HA19202, ein Flash-AD-Wandler-IC mit einer Auflösung von sage und schreibe 4 Bit. Am Platinen-Layout erkennt man, dass man schon an eine fünfte Datenleitung gedacht hat; immerhin würde er 10MSamples/s schaffen.
Auf der Treiberplatine befinden sich zwei DS0026 Pegelkonverter/Treiber, die die Taktsignale von TTL nach 12V umsetzen.

Taktsignale für TCD103
Die Taktsignale SH, Φ1, Φ2 und RS sowie ein weiteres für den AD-Wandler müssen generiert werden. (Auszug aus dem Datenblatt zum TCD103 von Toshiba)

ATtiny2313 zur CCD-Ansteuerung
Die Generierung der Taktsignale übernimmt ein Atmel AVR-Mikrocontroller ATtiny2313, der über SPI mit der Steuereinheit kommuniziert.

Die Steuereinheit

Hauptcontroller und Schrittmotortreiber
Der Hauptcontroller, ein Atmel AVR ATmega8, kommuniziert mit dem CCD-Controller über SPI, mit dem Schrittmotortreiber über den Parallelport und mit dem PC über serielle Schnittstelle.

PC-Software

Die Steuereinheit des Sextanten kann eigentlich schon direkt von einem Terminal aus mittels einer Handvoll Befehle bedient werden. Zum effizienteren Umgang mit dem Gerät habe ich in Python eine Wrapper-Klasse geschrieben, in der die niederen Befehle gekapselt werden und eine Anwendung mit GUI zur bequemen Bedienung und Darstellung der Messdaten.

Andwendung zur Steuerung und Messwertdarstellung
Die Anwendung erfasst periodisch alle 2 Sekunden eine Pixelzeile und stellt die aktuellen Intensitätswerte dar (rechter Bereich in Rot und Schwarz). Die Intensitätswerte (Graustufen) wandern als Wasserfalldiagramm nach links. Die Knöpfe dienen der Steuerung des Schrittmotors.

Messungen


Drei Messungen von Sonnendurchgängen. Die vertikale Achse stellt die Pixelpostion dar, die horizontale die Zeitachse. Jeweils zwischen den drei Durchgängen wurde der Sextant um die Azimut-Achse gedreht (helle vertikale Streifen) damit die Sonne wieder neu durch das Sichtfeld wandert.

Aus den Logdaten über eine knappe halbe Stunde mit drei Sonnendurchgängen wurde das dargestellte Bild erstellt. Daraus erkennt man, dass die Fokussierung noch verbessert werden kann. Im Scanner musste schließlich ein Objekt, das nur wenige Dezimeter entfernt war, fokussiert werden, während die Sonne quasi unendlich weit weg ist.
Eine grobe Abschätzung mittels Linsengleichung 1/f = 1/b + 1/g ergibt, dass die Bildweite um ca. 3-4mm verringert werden muss. Glücklicherweise kann das Objektiv über eine Madenschraube gelockert und dann eingestellt werden. Damit sollten dann Intensitätsverläufe an den Flanken der Sonnenscheibe steiler werden.

Ausblick

Der Sextant als reines Peripheriegerät ist soweit abgeschlossen und einsatzbereit. PC-seitig sind noch folgende Punkte geplant:
  • Automatische Erkennung der oberen und unteren Intensitätsflanken und Berechnung der Pixelposition des Zentrums der Sonne
  • Umrechnung der Pixelposition in Grad über dem Horizont. Dazu müssen Stützwerte bei bekannter Sonnenhöhe gemessen werden und eine Umrechnungsfunktion (Fitkurve) ermittelt werden.
  • Umrechnung der Sonnenhöhen und Uhrzeiten der Messungen in geographische Koordinaten.

Sind die Algorithmen am PC implementiert und getestet, kann man darüber nachdenken sie auf den Hauptcontroller zu portieren, so dass der Sextant nicht nur als Peripheriegerät, sondern als selbständiges Astronavigationssystem betrieben werden kann. Als zusätzliche Hardware ist dazu nur noch eine genaue Uhr und ein Display notwendig.

Außerdem möchte man natürlich auch noch unabhängig vom Nautischen Jahrbuch o.ä. papiernen Tabellenwerken werden. Dazu muss der Mikrocontroller die Ephemeriden der Sonne selbständig in einer Genauigkeit von in etwa einer Winkelminute berechnen.

Making-Of


Messung am lebenden Objekt während der Entwicklung der Software für die CCD-Taktsignalgenerierung.

Zusammenbau des Sextanten.