Die Richtung des einfallenden Windes wird klassisch mit einem Potentiometer ohne Anschlag gemessen. Dazu ist die Widerstandsbahn an die geregelte Betriebsspannung angeschlossen. Der Schleifer greift nun eine zum Winkel proportionale Spannung ab, die nach Tiefpassfilterung einem der AD-Wandler im Mikrocontroller zugeführt wird. Hier wird sie mit 10 Bit Auflösung digitalisiert und steht für die weitere Verarbeitung zur Verfügung. Diese ist hier besonders einfach, denn in der Firmware ist eine Tabelle abgelegt, die den gemessenen Werten direkt die entsprechende Richtung zuordnet. Eine aufwändige Umrechnung entfällt daher bzw. wurde schon zur Entwicklungszeit ein für alle Mal getätigt.
Die Messung der Windgeschwindigkeit ist etwas komplizierter. Das größte Problem ist hierbei die Mechanik. Nach dem Beschaffen der Kunststoffschalen steht die Wahl eines geeigneten Lagers an. Das Lager muss sehr leichtgängig sein, darf sich nicht während der Lebensdauer stark abnutzen. Besonders die Leichtgängigkeit bereitete mir einige Probleme, schließlich wollte ich nicht erst bei Windstärke 6 den Anfang meines Messbereichs haben. Nach einigem Experimentieren bin ich dazu übergegangen, ein kommerzielles Lager aus einem defekten Windrichtungsanzeiger auszubauen und mit den Schalen zu verbinden. Die Reibungsfläche ist bei diesem Lager sehr klein, so dass die Flügelschalen schon bei geringen Windstärken von 1-2 m/s anfangen sich zu drehen.
Nachdem die Mechanik geklärt war, konnte ich mich an die elektrische Erfassung
der Umdrehungsgeschwindigkeit wagen. Hier hatte ich bei der letzten Version
einen Spielzeug-Motor verwendet, der gleichzeitig als Lager und Dynamo fungierte.
Über eine Spitzenwert-Gleichrichtung der induzierten Spannung konnte ich
auf die Dreh-Geschwindigkeit schließen. Dennoch ist dieses Verfahren verschleißbehaftet,
denn die Bürsten im Motor nutzen sich mit der Zeit ab. Außerdem war
ja nun ein neues Lager verbaut. Als Lösung erwählte ich eine berührungslose
Erfassung durch einen mitrotierenden Magneten sowie einen Magnetfeldsensor auf
Basis des Hall-Effektes.
Wie man im Bild deutlich erkennt, habe ich an die Befestigung der Schalen mit
Epoxyd-Kleber zwei kleine Stabmagnete befestigt und den Hall-Sensor 1,5 mm unterhalb
der Bahn dieser Magnete angebracht. Damit ich bei jeder Umdrehung nur einen
Impuls erhalte (und nicht zwei), sind die Magnete in verschiedener Richtung
aufgeklebt. Der Hall-Sensor ist aber unipolar und reagiert daher nur auf eine
Magnetfeld-Richtung. Im Endeffekt dient der 2. Magnet nur dazu, die durch den
1. Magneten entstehende Unwucht aufzuheben.
Die
Elektronik konnte sehr einfach gehalten werden. Herzstück ist ein ATMEL
MEGA 8 Mikrocontoller. Dieser hat den für die Richtungsmessung nötigen
AD-Wandler
bereits auf dem Chip integriert. Auch die Zeitmessung zwischen zwei Schalen-Umläufen
wird durch interne Hardware unterstützt. Insofern langweilt sich der Controller,
der zur Vermeidung von HF-Störungen mit nur 2 MHz betrieben wird, den meisten
Teil seiner Zeit zu Tode, wenn er nicht gerade von einer RS232-Kommunikation
zur Abfrage der Messwerte aus dem Tiefschlaf gerissen wird. Ein großer
Vorteil beim verwendeten MEGA 8 ist, dass er auch im eingebauten Zustand über
die serielle Schnittstelle programmierbar ist. Das bedeutet, dass Software-Updates,
so sie denn nötig werden sollten, aus der Ferne ohne Demontage und Öffnen
des Gehäuses vorgenommen werden können.
Die Software ist vollständig in AVR-Assembler geschrieben. Hier konnte ich auf meine Erfahrung mit dem 8051-Assembler aus meiner Facharbeit zurückblicken und musste mir mich nur auf die neue Hardware-Struktur eines AVR-Controllers umstellen. Nach einiger Eingewöhnung hat dieses auch recht gut funktioniert. Wer mich jetzt fragt, warum ich die Software nicht in einer Hochsprache geschrieben habe, dem möchte ich antworten, dass ich als Mikrosontroller-Programmierer sowieso die Hardware wie meine Westentasche kennen muss, d.h. ganz tief einzusteigen, und die Struktur des hier benötigten Algorithmus so übersichtlich war, dass die Benutzung einer Hochsprache keinen Vorteil gegeben hätte. Mit dem Assembler bin ich mir sicher, dass mein Code auch bei 2 MHz Taktfrequenz sicher und schnell genug läuft, um die Messaufgaben zu erfüllen. Ich weiß in jeder halben Mikrosekunde, was der Controller gerade macht. Das möchte ich nicht missen. Aber ich sehe auch ein, dass die Hochsprache vs. Assembler-Problematik in vielen Punkten eine Glaubensfrage ist, die natürlich jede(r) für sich beantworten muss.
Die
Hardware-Entwicklung und den Bau habe ich zu Hause in Nettetal vorgenommen,
denn dort stehen mir die mechanischen Geräte und Werkzeuge eher zur Verfügung
als in meiner Studenten-Bude. Die Entwicklung der Software jedoch konnte ich
gut am Schreibtisch (siehe Bild) in Aachen erledigen. Dort bietet sich die entsprechende
PC-Ausstattung gerade dazu an, den Uni-Alltag durch Assembler-Debuggen zu versüßen.
Hier ist der Test-Aufbau gezeigt, bei dem ich den Luftstrom durch einen PC-Lüfter
erzeuge.
|
letztes Update:
20.09.2009 19:07
|