dokumentation: längenmessung mit hilfe eines piezomotors
TRANSCRIPT
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 0 von 88
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 1 von 88
1.0 Piezoteam ………………………………………………………………………………….. 4
1.1 Autorenverzeichnis………………………………………………………………………… 5
2.0 Der Piezo-Effekt …………………………………………………………………………… 6
2.1 Das Prinzip………………………………………………………………………………….. 7
2.1.1 Der direkte Piezo-Effekt und seine Anwendung………………………………………. 7
2.1.2 Der inverse Piezo-Effekt…………………………………………………………………. 8
2.2
Das Zusammenspiel zwischen inversem und direktem Piezo-Effekt - Der
Schwingkreis…………………………………............................................…………….. 9
2.3 Piezoelektrische Materialien …………………………………………………………….. 9
2.4 Anwendung für Piezos…………………….…………………………………………….... 10
3.0 Der Elliptecmotor …..…………………………………………………………………….. 11
3.1 Anwendungen des Piezomotors………………………………………………………… 11
3.2 Der Aufbau……………………………………………………………………………….... 13
3.3 Funktion……………………………………………………………………………………... 15
3.4 Technische Daten…..……………………………………………………………………... 16
3.5 Merkmale des Piezomotors……………………………………………………………… 17
4.0 Erste Inbetriebnahme des Elliptecmotors …………………………………………… 18
4.1 Aufbau und Anschluss der Hardware…………………………………………………… 18
4.2 Behandlung des Motors………………………………………………………………….... 19
4.3 Die Software………………………………………...…………………………………….... 19
4.3.1 Der erste Testlauf………………………..……………………………………………….... 20
5.0 Vom Grundgedanken bis zum endgültigen Entwurf ………………………………. 22
5.1 Die ersten Gedanken zum Prinzip………………………………..…………………….... 22
5.2 Der fertige Entwurf……………………………………………………………………….... 24
6.0 Der Aufbau ……………………………………………………………………………….... 25
6.1 Fertigung des Stativs…………………………………………………………………….... 25
6.2 Maße des Gestells……………………………………………………………………….... 27
6.3 Materialliste………………………………………………………………………………… 28
7.0 Verdrahtung der Messeinrichtung …………………………………………………… 29
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 2 von 88
7.1 Anschluss der lichtabhängigen Widerstände…………………………………………… 30
8.0 Weiterentwicklung ………………………………………………………………………. 32
9.0 Das sichere Programmieren des AT89LPx052 Entwicklungshelfers …………… 34
9.1 Schaltplan des Ghost Entwicklungshelfers……………..…………………………….... 35
10.0 Assembler …………….………………………………………………………………….... 36
10.1 Die Erzeugung der Betriebsfrequenzen……………………………………………….... 36
10.2 Das Assemblerprogramm……………………………………………………………….... 36
10.3 Das Assemblerprogramm zur Übersicht……………………………………………….... 41
10.4 Die Include Datei……………...………………………………………………………….... 43
10.5 Was ist ein Interrupt?…………………………………………………………………….... 47
10.6 PWM- Erzeugung mit Hilfe eines 16- Bit-Timers……..……………………………….... 47
10.7 Das Umwandeln der Assemblerdatei und Überspielen auf den MC…………………. 53
11.0 Spannungsverlaufsmessung mit dem Oszilloskop ………...…………………….... 56
12.0 Das Visual Basic Programm …………….…………………………………………….... 58
12.1 Die Benutzeroberfläche………………………………………………………………….... 58
12.2 Die Justierung…………………………………………………………………………….... 59
12.3 Resetten der Messeinrichtung………………………………………….……………….... 60
12.4 Das Starten der Messung…………………………………………………………………. 61
12.5 Der Quellcode des VB Programms…………………………………………………….... 63
12.6 Die Rechnung…………………………………………………………………………….... 70
13.0 Die Genauigkeit der Messung …….………………………………………………….... 71
14.0 Der Zeitablaufplan ……………………………………………..……………………….... 74
15.0 Die Kosten …….………………………………………………………………………….... 75
16.0 Verbesserungsvorschläge für eine noch genauere Messung ............................. 76
16.1 Erster Verbesserungsvorschlag..……………………………………………………….... 76
16.2 Zweiter Verbesserungsvorschlag……………………………………………………….... 76
16.3 Dritter Verbesserungsvorschlag…………..…………………………………………….... 77
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 3 von 88
16.4 Vierten Verbesserungsvorschlag……………………………………………………….... 78
16.5 Fünfter Verbesserungsvorschlag………………………………………………………… 78
16.6 Sechster Verbesserungsvorschlag…………………………………………………….... 79
17.0 Fazit………….…………………………………………………………………………….... 79
18.0 Schlusswort …….……………………………………………………………………….... 79
19.0 Quellenangabe …….…………………………………………………………………….... 81
Anhang:
CD mit Software
Pflichtenheft
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 4 von 88
1. Das Piezoteam
Martin Eberhard Jochen Thomsen
Volker Gossens Herr Schwarzer Projektbetreuer
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 5 von 88
1.1 Autorenverzeichnis
Kapitel Autor Bearbeiter
2 Eberhard Thomsen
3 Thomsen Eberhard
4 Thomsen Eberhard
5 Eberhard Thomsen
6.1 Gossens Eberhard
6.2-6.5 Thomsen Eberhard
7 Thomsen Eberhard
8 Eberhard Thomsen
9 Eberhard Thomsen
10 Eberhard Thomsen
11 Thomsen Eberhard
12 Thomsen Eberhard
13 Thomsen Eberhard
14 Thomsen Eberhard
15 Gossens Eberhard
16 Eberhard Thomsen
17 Eberhard Thomsen
18 Eberhard Thomsen
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 6 von 88
2.0 Der Piezo-Effekt
Der Effekt der Piezoelektrizität (auch piezoelektrischer Effekt, oder: Piezo-Effekt
genannt) beschreibt das Zusammenspiel von mechanischem Druck (griech.
piezein - drücken) und elektrischer Spannung in Festkörpern. Man unterscheidet
zwischen dem direkten und dem inversen Piezo-Effekt.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 7 von 88
2.1 Das Prinzip
2.1.1 Der direkte Piezo-Effekt und seine Anwendung
Durch eine gerichtete Verformung eines piezoelektrischen Materials entstehen
innerhalb der Elementarzellen mikroskopisch kleine Dipole (Verschiebung der
Ladungs-Schwerpunkte). Da sich die Dipole über den ganzen Kristall
aufsummieren, führt dies zu einer makroskopisch messbaren elektrischen
Spannung. Unter einer gerichteten Verformung versteht man, dass der angelegte
Druck nicht von allen Seiten auf den Kristall wirkt, sondern beispielsweise nur von
gegenüberliegenden Seiten aus.
Dieser Effekt
findet z.B.
Anwendung in der Musik als Tonabnehmer für akustische Instrumente. Sie werden
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 8 von 88
hauptsächlich bei Saiteninstrumenten wie Gitarre, Geige oder Mandoline
eingesetzt. Die dynamische Verformung des Instrumentes (Vibration des
Klangkörpers) wird in eine kleine Wechselspannung umgewandelt. Die Spannung
des Ausgangssignals verhält sich dabei analog zur Vibration, also zum Ton und
muss lediglich elektrisch verstärkt werden, um das Signal sinnvoll zu nutzen. Aber
auch in Feuerzeugen mit Piezo-Zünder macht sich dieser Effekt nützlich. Hier wird
ein plötzlicher und großer Druck verwendet, um eine kurzzeitige hohe elektrische
Spannung zu erzeugen. Durch den entstehenden Funkenüberschlag wird dann die
Gasflamme entzündet.
2.1.2 Der inverse Piezo-Effekt
Umgekehrt zum direkten Piezo-Effekt kann sich der Kristall (bzw. das Bauteil aus
Piezo-Keramik) durch das Anlegen einer elektrischen Spannung verformen.
Dieser Effekt wird unter anderem zur Tonausgabe, also in einem Lautsprecher,
genutzt. Da die Verformungen durch eine angelegte Spannung jedoch sehr gering
ausfallen, sind diese Lautsprecher nur zu Hochtonzwecken einsetzbar. Ein
Piezomotor, oder auch Ultraschallmotor genannt wird, macht sich genau diese
gerin-gen Verformungen zu Nutzen und findet dort Einsatz, wo es auf absolute
Präzision ankommt, wie z.B. bei dem Fokus eines Rastermikroskops.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 9 von 88
2.2 Das Zusammenspiel zwischen inversem und direktem Pi ezo-
Effekt - Der Schwingkreis
Piezoelektrische Körper können (wie jeder andere Festkörper auch) mechanische
Schwingungen ausführen. Legt man eine elektrische Spannung an einen Piezo-
Element, so verformt es sich. Entfernt man die angelegte Spannung, springt das
Element wieder in seine Ursprungsposition zurück. Da aber auch ein Piezo-
Element eine gewisse Massenträgheit hat, schwingt es bevor es zur Ruhe kommt
noch einige Male hin und her. Wirken Kräfte auf einen Piezo, so kommt der direkte
Piezo-Effekt zum Tragen und erzeugt bei jeder Schwingung eine Spannung (vgl.
2. 1. 1). Die Resonanzfrequenz des Piezos ist nur von dem Material und der
Geometrie des piezoelektrischen Körpers abhängig. Der Schwingkreis wird durch
ein regelmäßiges Anlegen einer Spannung - wie das regelmäßige Anstoßen eines
Pendels - in Schwingung gehalten. Eingesetzt wird der so genannte Quarz in
Uhren, Fernbe-dienungen und überall dort, wo man eine genaue Taktung benötigt.
2.3 Piezoelektrische Materialien
Bei piezoelektrischen Materialien unterscheidet man zwischen polykristallinen
(keramischen) und monokristallinen (Einkristall) Werkstoffen. Das am häufigsten
verwendete Material ist der Quarz-Kristall. Weitere Einkristalle sind z.B.:
Galliumorthophosphat, Berlinit, Turmalin und alle Ferroelektrika wie Bariumtitanat
(BTO) oder Blei-Zirkonat-Titanat (PZT). Zu den keramischen Werkstoffen zählen
die hauptsächlich für Hochvolt-Aktoren hergestellten modifizierten Blei-Zirkonat-
Titanate (PZT) und für Niedervolt-Aktoren Blei-Magnesium-Niobate (PMN). Wie
man sich vorstellen kann, gibt es noch weitere Materialien mit den
unterschiedlichsten Anwendungsbereichen sowie Vor- und Nachteile, deren
Erläuterung und Zuordnung jedoch an dieser Stelle den Rahmen sprengen würde.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 10 von 88
2.4 Anwendungen für Piezos
• Piezofeuerzeuge zur Erzeugung des Zündfunkens
• Piezomikrofon (Kristallmikrofon)
• Schallköpfe von Ultraschallgeräten, zur Erzeugung mechanischer
Schwingungen
• Beschleunigungssensoren
• Drucksensoren
• Kraftsensoren
• Drehratensensoren
• Tonabnehmer
• Einspritzdüsen von Pkw (Serienstart 2000 für Dieselmotoren Common-Rail-
Technik)
• Druckköpfe von Tintenstrahldruckern
• Ultraschallmotoren für z.B. die Objektivautofokussierung
• Sensoren von Messgeräten zur Verkehrsüberwachung, den sogenannten
Starenkasten
• Verzögerungsleitungen (z.B. in PAL- oder SECAM-Farbfernsehern) u.v.a.
mehr angewendet
• batterielose Funktechnik (Schalter)
• Rastertunnelmikroskop
• Rasterelektronenmikroskop
• Rasterkraftmikroskop
• Michelson-Interferometer
• Quarzmikrowaage
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 11 von 88
3.0 Der Elliptecmotor
Die Elliptec AG ist eine Tochterfirma der Siemens AG. Am Standort Berkeley
(USA) wurde ein Motor auf Basis von Piezokeramiken entwickelt. Der Motor stellte
zahlreiche Einsatzmöglichkeiten in Aussicht. Das Forscherteam löste sich im Jahr
2001 vom Siemens-Konzern, um die Möglichkeiten dieses Motors im Rahmen
eines unabhängigen Unternehmens schnellstmöglich zu realisieren.
So wurde 2001 die Elliptec Resonant Actuator AG, kurz Elliptec AG, gegründet.
Die Siemens AG übertrug dem Unternehmen alle Rechte an der Technologie und
blieb dem Unternehmen als Investor verbunden.
Der erste Piezomotor kam 2004 auf den Markt und wird seit dem sehr oft in allerlei
Geräten eingebaut. Er ist nicht nur wegen seiner kleinen Größe und absolute
Genauigkeit sehr beliebt, sondern auch wegen seinem günstigen Preis. Früher
musste man für einen Piezomotor mehrere hundert Euro bezahlen und heute ist er
so günstig, dass er sogar den Einbau in die Lokomotive einer Modelleisenbahn
rechtfertigt.
3.1 Anwendungen des Piezomotors
Der Piezomotor hat ein sehr weit gefächertes Anwendungsgebiet. Hier ist ein
kleiner Überblick der Einsatzmöglichkeiten aufgeführt.
Spielwaren:
Hier wird der Motor z.B. im Bereich der Modelleisenbahn eingesetzt. Märklin hat
mit dem Piezomotor realisiert, den Stromabnehmer einer Elektrolok zu bewegen.
Da in einer Modelllokomotive naturgemäß nicht all zu viel Platz ist, eignet sich
hierfür der leichte und kleine Piezomotor.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 12 von 88
Medizintechnik:
In der Medizintechnik wird der Piezomotor unter anderem zur genauesten
Dosierung von flüssigen Medikamenten und anderen medizinischen Substanzen
verwendet.
Consumer Elektronik:
Der Piezomotor wird unter anderem beim Autofokus von Fotoapparaten
eingesetzt. Der platzsparende Motor sorgt für geringere Fokussier- und
Zoomzeiten. Der Elliptecmotor hat keinen Rotor, der mechanische Energie
speichert. Das gewohnte Nachlaufen herkömmlicher Antriebssysteme entfällt.
Daraus resultiert eine präzise Positionierung, welche die Qualität des Produkts
signifikant erhöht.
Des Weiteren werden Elliptecmotoren in Thomson Fernseher eingebaut. In
Thomson Rückprojektionsgeräten wird eine hohe Auflösung (und die damit
zusammenhängende Bildqualität) durch einen vom Elliptecmotor kippbaren
Spiegel erreicht. Das Kippen ermöglicht im Thomson Gerät die Projektion zweier,
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 13 von 88
um eine halbe Zeile verschobener Halbbilder zur Verdoppelung der vertikalen
Bildauflösung.
Industrie:
Piezoelektrische Antriebe sind schon länger auf dem Markt und werden vor allem
in hochpräzisen Nischenanwendungen verwendet. In der Chipfertigung z.B.
werden Silizium-Wafer Nanometer genau im Belichtungsautomat positioniert.
3.2 Der Aufbau
Der Elliptecmotor, oder auch Piezomotor genannt, besteht aus nur wenigen
Bauteilen. Dazu gehören:
1. Anschlussleitung
2. Piezokristall
3. Resonator
4. Feder
5. Angetriebenes Element
Man muss den Motor entweder direkt in ein Gerät oder mindestens in ein
Kunststoffgehäuse einbauen, um Versuche durchzuführen.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 14 von 88
Es gibt zwei Bauarten von Piezomotoren. Es gibt den linear- und den rotatorischen
Antrieb. Der Antrieb wird je nach Anwendungsbereich ausgewählt.
Beim Einbau ist darauf zu achten, dass die Einbaulage korrekt eingehalten wird.
Sonst kann unter Umständen die Funktionalität nicht mehr gewährleistet sein.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 15 von 88
3.3 Funktion
Das Funktionsprinzip des Elliptecmotors beruht auf dem inversen Piezoeffekt. Ein
Microcontroller sowie zwei winzige Transistoren genügen, um die Piezokeramik
mit einer elektrischen Spannung zwischen 2,4V – 30V zu versorgen. Bei einer
Frequenz von 75 kHz bis 100 kHz dehnt sich diese nach dem Einschalten um
weniger als einem Mikrometer aus, nach dem Abschalten zieht sie sich wieder
zusammen. Während des Betriebs findet dieses Wechselspiel etwa 100.000 Mal
in der Sekunde statt.
Mit Hilfe der Bewegung der Piezokeramik wird der Resonator zum Schwingen
angeregt und in Resonanz gebracht. Die Forscher der Elliptec AG haben die Form
des patentierten Resonators so weit optimiert, dass die Schwingungen der
Piezokeramik verstärkt und in ellipsenförmige Bewegungen umgewandelt werden.
Mit einer Feder wird die auf einer elliptischen Kreisbahn schwingende Motorspitze
gegen das anzutreibende Element gedrückt, welches mit jeder Schwingung um
wenige Mikrometer weitergeschoben wird. Durch periodische Wiederholungen
entsteht eine gleichförmige, kontinuierliche Bewegung.
Die Laufrichtung des Motors hängt von der Frequenz der Schwingung ab. Bei
einer Frequenz von rund 75 kHz bewegt sich der Motor vorwärts und bei 95 kHz
rückwärts.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 16 von 88
3.4 Technische Daten
Schubkraft
0,2 – 0,4 N
Höhere Kräfte sind durch einfache Hebel-
mechanismen oder mehrere Motoren möglich.
Haltekraft 1N 5
Ansteuersignalamplitude
(Motor)
5 - 8V, 5 – 10V
Betriebsspannung Elektronik 2,4 - 30V
entsprechendes Endstufendesign erforderlich
Stromaufnahme Elektronik 1 - 450mA bei 5V Betriebsspannung
geschwindigkeitsabhängig
Gewicht 1,2g
Länge ohne Feder 20mm
Breite ohne Feder 3mm
8mm im Einpressbereich d. Piezokeramik
Höhe ohne Feder 3mm
4mm im Einpressbereich d. Piezokeramik
Positionierungsgenauigkeit
(Schrittweite)
10µm
Reaktionszeit < 100µs
Vorwärtsbetriebsfrequenz 73 - 84kHz (typ. 79kHz)
Rückwärtsbetriebsfrequenz 91 - 108kHz (typ. 97kHz)
Laufleistung (ohne Last) 40.000m bei Läufermaterial PF7595
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 17 von 88
3.5 Merkmale des Piezomotors
• geringe Baugröße und Gewicht von 1,2gr
• kein Getriebe
• Haltekraft bis 4N, Schubkraft 0,2-0,4N, mit Hilfe von Hebelmechanismen
oder mehreren Motoren kann die Kraft erhöht werden
• spielfrei
• integrierte Rutschkupplung
• Positioniergenauigkeit bis in den Mikrometerbereich (bei Verwendung von
genauester Frequenzsteuerung)
• auch im Vakuum, Magnetfeldern und feuchter Umgebung einsetzbar
• vom Stand bis zur Vollgeschwindigkeit in 100µs
• hohe Dynamik beim Starten und Stoppen des Motors
• lautloser Antrieb
• gleichermaßen für Rotations- als auch Linearantriebe geeignet
• Betriebspannung lt. Elliptec schon ab 2,4 Volt möglich
• Eine Richtungsumkehr erfolgt einfach durch eine andere Betriebsfrequenz.
• kollektorlos, d.h. keine Zündfunken, kein Elektrosmog
• kostengünstige Achslagerungen
• keine Korrosion
• Keine Speicherung mechanischer Energie, dadurch kann der Motor im µs-
Bereich gestoppt werden.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 18 von 88
4.0 Erste Inbetriebnahme des Elliptecmotors
Diese Kapitel beschreibt die erste Inbetriebnahme des Elliptecmotors mit der
mitgelieferten Software.
4.1 Aufbau und Anschluss der Hardware.
• Die serielle Schnittstelle des Boards muss mit der seriellen Schnittstelle des
PC’s verbunden sein. Es ist ein 1:1 Kabel notwendig. Das heißt, Pin1 ist
mit Pin1, Pin2 mit Pin2… Pin9 mit Pin9 verbunden.
• Der Elliptecmotor wird mit dem Board (PHE Buchse) verbunden. Dabei
sollte auf jeden Fall Berührungen mit dem Kunststoffrad vermieden werden.
• Die Stromversorgung (7,5 Volt bis max. 15 Volt Gleichspannung) wird an
die + und – Klemmen angeschlossen. Die Power LED neben dem
Kühlkörper sollte jetzt leuchten und die Betriebsfähigkeit anzeigen.
• Die PROG LED neben dem Jumper JP_PROG sollte nicht leuchten.
Leuchtet die Diode trotzdem, so muss der rote Jumper umgesetzt werden.
Fertiger Aufbau
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 19 von 88
4.2 Behandlung des Motors
• Der Motor darf nicht zu lange eingeschaltet sein, auch wenn dieser
aufgrund falscher Frequenzeinspeisung nicht läuft, da die gesamte Energie
in Wärme gewandelt und der Motor zerstört wird!
• Es muss jegliche Berührung am Umfang des Antriebsrades vermieden
werden, da Verschmutzungen den Kontakt vom Elliptecmotor zum
Kunststoffrad unterbrechen und damit den Elliptecmotor ggf. zum Stillstand
bringt und trotzdem noch mit hoher Frequenz angesteuert wird.
• Vorsicht bei längerer Betriebsdauer kann der Motor bis zu 80 Grad
Temperatur entwickeln!
• Im Betriebsfall wird sich ein dunkler Abrieb auf dem Kunststoffrad bilden,
der völlig normal ist. Eine Reinigung des Kunststoffteils ist aber nicht
erforderlich.
4.3 Die Software
Die Elliptec Testsoftware wurde in Access 2K / XP VBA geschrieben und befindet
sich auf der vom Hersteller mitgelieferten CD oder ist als Download im Internet
verfügbar. Desweitern muss Microsoft Acces und Chart Control MS Chart Version
6 auf dem PC installiert sein.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 20 von 88
4.3.1 Der erste Testlauf des Motors
Zuerst muss die Serielleschnittstelle geöffnet werden. Dies geschieht, indem man
mit der Maus auf den Button COM OPEN (5) klickt.
Nun kann man den Piezotestlauf starten, in dem man den mit Frequency search
(1) startet. Man kann erkennen, das sich der Elliptecmotor nach kurzer zeit
vorwärts und rückwärts dreht. Am Ende baut sich in dem Grafikfeld (8) eine
Frequenzgrafik auf. Die Vorwärtsfrequenz eines Elliptecmotors liegt in etwa in der
Mitte der ersten größeren fallenden Flanke bei ca. 80kHz und wurde nachträglich
zum Verständnis mit einem vertikalen Strich und fwd versehen. Die
Rückwärtsfrequenz liegt in etwa beim tiefsten Punkt von rechts aus betrachtet und
7
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 21 von 88
liegt bei diesem Elliptecmotor bei ca. 100Khz (bwd). Diese Betriebsfrequenzen
wurden bei Raumtemperatur ermittelt und der Motor war noch kalt. Nach einem
längeren Betrieb erwärmt sich er Motor und die Betriebsfrequenz verringert sich
dabei um bis zu 2KHz!
Die Betriensfrequenz kann auch per Hand eingestellt werden. Der obere
Schieberegler muss auf ON Time = 200 eingestellt bleiben. Es wird nur der untere
Schieberegler(9) verändert. Es kann eine beliebige Frequenz gewählt werden.
Dann muss mit dem Button Start Piezo (2) der Motor gestartet werden. Wenn sich
der Motor nicht dreht, muss die Frequenz solange geregelt werden, bis sich der
Motor in die gewünschte Richtung und mit der gewollten Geschwindigkeit dreht.
Vorsicht: Bei längerem Betrieb erwärmt sich der Motor und die Frequenz
verschiebt sich zu etwas geringeren Frequenzen. Wenn die
Antriebsgeschwindigkeit nachlässt, dann kann die Frequenz während des
Betriebes auch etwas nachgeführt werden.
Drückt man auf den Button sequenz up (3) oder auf sequenz down(4) so wird der
Frequenzbereich vorwärts beziehungsweise rückwärts durchfahren.
Mit dem Button Step (7) kann man den Motor eine gewünschte Zeit lang
eingeschaltet lassen. Dies wäre in dem eingestellten Fall eine Dauer von 100ms.
Abschließend kann man sagen, dass man mit der Software die Funktionsweise
des Piezomotors sehr gut kennen lernen kann und Grundlegende Versuche
durchführen kann. Wie z.B die Erwärmung des Motors.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 22 von 88
5.0 Vom Grundgedanken bis zum endgültigen Entwurf
5.1 Die ersten Gedanken zum Prinzip
Erreicht werden sollte das präzise und berührungslose Vermessen eines
Werkstückes. Es wurde überlegt, ein Objekt vor eine Wand, die mit
Fotowiderständen bestückt ist, zu stellen und mit Hilfe eines Laserstrahles
abzutasten. Zum Antrieb des Lasers bot sich aufgrund der genauen
Positionierbarkeit ein Piezomotor der Firma Elliptec an.
Im Moment I trifft der Laserstrahl auf die LDR Wand (LDR’s parallel geschaltet),
welche dadurch einen niedrigeren Widerstandswert annimmt. Nun fängt der Motor
sich an zu drehen und bewegt den Laser abwärts. Im nächsten Moment II trifft der
Laserstrahl auf das Werkstück, so dass die LDR’s, da sie jetzt nicht mehr vom
Laser beleuchtet werden, einen höheren Widerstand annehmen. Nachdem eine
Widerstandsänderung erfolgt ist, beginnt der Microcontroller die Pulse zu zählen,
die der Motor für seinen Vorschub benötigt. Dies macht er solange, bis der Laser
das Werkstück verlässt (Moment III), nun wieder auf einen LDR trifft und sich der
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 23 von 88
Widerstand wieder ändert. Anhand der Anzahl der benötigten Pulse lässt sich der
Winkel α bestimmen. Über eine Winkelfunktion kann man, da sich die Strecke S
nicht geändert hat, die Höhe H errechnen.
Theoretisch ist dies ein funktionsfähiges Modell. Berücksichtigt man allerdings die
Übergänge zwischen den einzelnen LDR’s, so bemerkt man, dass, sobald der
Laser von einem LDR zum nächsten wandert, sich ein höherer Widerstandswert
einstellt, da sich der Strahl in diesem Augenblick zwischen zwei Fotowiderständen
befindet. Dieses Verhalten könnte den Microcontroller irritieren und den erhöhten
Widerstandswert als Startsignal für seine Pulszählung missverstehen.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 24 von 88
Außerdem führt dieser Aufbau der Einrichtung zu erheblichen Verfälschungen des
Messergebnisses, da sich die LDR-Wand unerwünschtes Umgebungslicht
einfängt. Eine steigende Anzahl LDR´s bringt eine steigende
Messungsverfälschung mit sich. Dies ist ein weiterer Grund, die Zahl der
verwendeten Fotowiderstände so gering wie möglich zu halten.
5.2 Der fertige Entwurf
Um den optischen Problemen aus Kapitel 4.1 aus dem Weg zu gehen, wurde die
minimale Anzahl von zwei LDR´s gewählt. Dies lässt sich realisieren, indem man
nicht ein Werkstück vor eine LDR-Wand stellt, sondern in eine Spannvorrichtung,
welche je einen dieser LDR’s vor Kopf montiert hat, verwendet
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 25 von 88
6.0 Der Aufbau 6.1 Fertigung des Stativs
Das Stativ wurde aus Nutschiene gefertigt. Erst musste die passende Nutschiene
ausgewählt werden, dieses stellte keine größeren Probleme dar, da es durch das
Internet und Kataloge zahlreiche Anbieter gab. Als die einzelnen Teile bestellt
waren und eine Woche später eintrafen, konnte man zur Montage übergehen.
Das Grundgerüst war schnell fertiggestellt. Hierauf wurden später Motor, Platine
und Fotowiderstände montiert.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 26 von 88
Das benötigte Material wurde im Internet bei der Firma ITEM aus dem
Internetkatalog herausgesucht. Die Firma erstellte ein Angebot, anhand dessen
das Material umgehend bestellt wurde. Des Weiteren wurde auch ein
Fachgespräch mit einem Vertriebsvertreter von ITEM geführt, in dem technische
Probleme gelöst wurden.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 27 von 88
6.2 Maße des Gestells
Die Profilschienen bestehen aus 30 X 30 mm großem Aluminiumvierkant. Die
Angaben sind alle in mm.
275
280
60
40
335
60
65
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 28 von 88
6.3 Materialliste
Pos Bezeichnung Stück Einzelpreis
Gesamtpreis
1 0.0.419.22 8 0,62 € 4,96 €
Abdeckkappe 6 30x30,
Schwarz
2 0.0.419.06 1 8,89 € 8,89 €
Profil 6 30x30 leicht
natur, Zuschnitt
L= 970,0 mm
3 0.0.026.30 1 2,05 € 2,05 €
Sägebearbeitung für kleine
Querschnitte
4 0.0.419.67 4 4,71 € 18,84 €
Winkelsatz 6 30x30
5 0.0.478.22 4 7,32 € 29,28 €
Stellfuß D30, M6x45,
Rostfrei
6 0.0.441.97 4 5,61 € 22,40 €
Gelenkwinkel 6
7 0.0.439.72 10 1,65 € 16,50 €
Nutenstein 6 St M5,
Rostfrei
Summe 102,92 €
16% MwSt 16,47 €
Gesamt 119,39 €
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 29 von 88
7.0 Verdrahtung der Messeinrichtung
Die Widerstände wurden vorn an die Enden der Einspanneinrichtung montiert und
die Anschlussleitung wurde in die Nut der Schienen verlegt, wozu kleine Löcher in
die Schiene gebohrt wurden. Die Platine wurde auf eine Plexiglasscheibe gesetzt
und auf die Hauptführung montiert. Der Piezomotor wurde ebenfalls auf eine
Plexiglasscheibe montiert. Die Verbindung wurde auf einen kleinen Sockel, der
sich auf der Hauptschiene befand, aufgeschraubt. Die Anschlussleitungen wurden
ebenfalls in der Nut der Schiene verlegt. Seitlich der Hauptschiene wurde die
Batterie für den Laser angebracht.
(seitliche Ansicht)
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 30 von 88
(Draufsicht)
7.1 Anschluss der lichtabhängigen Widerstände
An den Ports 1.5 und 1.3 sowie an P1.3 und P1.7 müssen die LDR’s
angeschlossen werden. Da an dem Ports P1.5 und P1.7 mindestens 2,5V
anliegen muss, wird jeweils ein Potentiometer parallel zu den LDR’s geschaltet.
So wird der Gesamtwiderstand von dem LDR und dem Potentiometer verkleinert,
um den Spannungsabfall bei der Parallelschaltung zu verringern.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 31 von 88
Das ergibt dann für jeden lichtabhängigen Widerstand folgendes Schaltbild:
Das Potentiometer ist so eingestellt, dass bei normalen Lichtverhältnissen der
Spannungsabfall U1 so groß ist, dass U2 nicht größer als 2,5V wird. Wird aber der
Laserstrahl auf den LDR gerichtet, so verringert sich der Gesamtwiderstand von
R1 und R2 und die Spannung U1 sinkt. Dafür steigt dann aber die Spannung U2
über 2,5V und an dem Port P1.0 würde nun ein digitales Einssignal liegen.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 32 von 88
Der erste Versuch mit den Potentiometern Fertige Schaltung mit den Potentiometern
.
Bei der Erprobung der Messeinrichtung stellte sich aber bald heraus, dass das
sich dauernd ändernde Tageslicht zu einem Problem wird. Bei einer Wolke oder
direkter Sonneneinstrahlung verkleinert oder vergrößert sich - je nachdem - der
lichtabhängige Widerstand. So mussten andauernd die Potentiometer neu
eingestellt werden, wozu man ein wenig Fingerspitzengefühl benötigte. Da dies
auf die Dauer sehr mühsam war, wurde nach anderen Möglichkeiten gesucht.
Es wurden Kabelhülsen über die LDR’s geschoben, womit das Problem mit dem
einfallenden Tageslicht behoben werden sollte. Diese Lösung war auch nicht
ausreichend und so blieb man bei der ursprünglichen Idee.
8.0 Weiterentwicklung
Im endgültigen Entwurf ist der Laser direkt mit einem Adapter auf der Motorwelle
montiert, was beim genaueren Hinsehen so aussieht, als brächte diese Methode
eine Reihe Nachteile mit sich.
Man könnte annehmen, dass die bewegte Masse die Motorbewegung stört. Das
größte Problem sind allerdings die etwas unflexiblen Anschlussleitungen des
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 33 von 88
Lasers, die ab einem bestimmten Neigungswinkel des Lasers sogar den Motor
zum Stoppen bringen.
Die ideale Lösung - so schien es zumindest - wäre es doch, nicht den ganzen
Laser zu bewegen, sondern nur einen Spiegel, der anstelle des Lasers auf der
Motorwelle montiert ist und lediglich von einem extern montierten Laser
angestrahlt wird. Theoretisch eine super Idee, aber in der Praxis stellte sich
heraus, dass der umgeleitete Laserstrahl seine Lichtbündelung verliert und nicht
mehr als Punkt, sondern stattdessen als gestreutes Feld auf einen Gegenstand
auftrifft. Da durch ein solches Streufeld die LDR’s keinen schlagartigen
Beleuchtungsunterschied mehr wahrnehmen können, führt diese Methode
ebenfalls zu Messfehlern, die größer sind, als die bei der anderen Methode mit
bewegtem Laser.
Laserpunkt mit durch Spiegel umgeleitetem
Laserstrahl
direkt auftreffender Laserstrahl
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 34 von 88
9.0 Das sichere Programmieren des AT89LPx052
Entwicklungshelfers
Sobald man eigene Mikrocontrollerprogramme entwickelt und den Mikrocontroller
damit betreiben möchte, muss auf jeden Fall darauf geachtet werden, dass man
im geschriebenen Programm berücksichtigt den Pin P3.4 zu löschen. Vergisst
oder ignoriert man dies, so würde, falls der Port 3.4 ein high Signal führt (wer weiß
schon ob der Port P3.4 gerade auf high oder low steht) ein sehr hoher Strom über
den angeschlossenen FET und die Entstörspule fließen, der diese Bauteile, auch
wenn kein Elliptec Motor angeschlossen ist, zerstören würde.
Um ein fehlerhaftes Programmieren in diesem Sinne von vornherein
auszuschließen, wurde von den Entwicklern des Entwicklungshelfers ein Platz für
einen Widerstand, der das Gate des angeschlossenen FET auf Masse ziehen soll,
vorbereitet. Lötet man den mit R17 bezeichneten Widerstand an der für ihn
vorgesehenen Stelle ein, so darf man ruhig einmal vergessen, P3.4 mit dem
Befehl clr P3.4 zu löschen. Der verwendete Widerstand sollte mit 300 Ohm und
wenn möglich in SMD Bauweise gewählt werden. Die Funktion des Boards bleibt
unbeeinträchtigt.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 35 von 88
9.1 Schaltplan des Ghost Entwicklungshelfers
R17=300Ω
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 36 von 88
10.0 Assembler
10.1 Die Erzeugung der Betriebsfrequenzen
Um den Elliptecmotor betreiben zu können, wird ein PWM-Signal von 70-100kHz
benötigt. Um das benötigte Signal mit einer solch hohen Frequenz erzeugen zu
können, kommt längst nicht jeder Mikrokontroller in Frage. In den ersten
Versuchen ließen sich mit anderen Mikrocontrollern der Atmel LP Familie nur bis
1/512 bzw. 1/256 der Oszillatorfrequenz erzeugen (Oszillatorfrequenz =
Taktfrequenz die vom Quarz des MC erzeugt wird). Diese Mikrocontroller hatten
Taktfrequenzen von 11.059 MHz. Teilt man dies durch 256, so erhält man eine
erlaubte, zu erzeugende Frequenz von 43,2 kHz, was zur Ansteuerung unseres
Motors keinesfalls ausreichen würde. Abhilfe für dieses Problem schafft die
„Single Cycle 8051 Corelogic“ des Atmel MCs, die eine Interrupt gesteuerte
Erzeugung von Frequenzen und Pulsbreiten von bis zu 1 MHz bei einer
Oszillatorfrequenz von 11.059 MHz, erlaubt. Bei Verwendung dieses Verfahrens,
so der Hersteller des Entwicklungsbords, muss darauf geachtet werden, dass ein
erzeugter Interrupt schnell genug abgearbeitet wird, und zwar bevor der nächste
Interrupt gestartet wird. Geschieht dies nicht, so kommt der Baustein ins stolpern.
Geschieht dies, so muss gegebenenfalls ein reset durchgeführt werden (einmal
ausschalten und neu starten).
10.2 Das Assembler Programm
An dieser Stelle wird das benötigte Assemblerprogramm beschrieben, das dem
MC ermöglicht, die passenden Betriebsfrequenzen für den Elliptecmotor zu
erzeugen.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 37 von 88
Die Steuerung des Programms auf dem MC erfolgt mit einem separaten Visual
Basic Programm, welches sich auf einem Rechner befindet, der mit dem Bord
verbunden ist.
Beim Start des Assemblerprogramms sind die Register R1 und R2 auf die Werte
200 für RLO und FFH (255) für RHO voreingestellt. Das heißt nach 256
Taktimpulsen erhält man einen Interrupt, der den Ausgang P3.4 invertiert. Die
jeweils eingestellte Betriebsfrequenz lässt sich durch eine leichte Rechnung
überprüfen:
Das Mikrocontrollerprogramm macht nichts anderes, als sich die Werte für die
Frequenzeinstellung (RL0 für Timer0) zu holen, dann einen Wert für die Zeitdauer
(wie lange der Motor eingeschaltet wird) zu holen, und dann den Motor (den
Timer0) zu starten.
Um die Funktionsweise näher zu erläutern, folgt nun der Assemblercode mit
Kommentaren zum besseren Verständnis:
; Messung mit dem Elliptec Piezomotor ; = Kommentarzeile
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 38 von 88
; bei 11.059 MHz Quartz ca 247 kHz max ; mit R1=R2=200 und RH0=255 ergibt eine Frequenz von 98,745 kHz ; every step in R1 or R2 will result in time = time + step*1/11.0592 MHz (=90,42 ns) ; Timer 1 wird für die Steuerung über die serielle Schnittstelle verwendet ; Timer0 für die Frequenzerzeugung für den Elliptecmotor ; Steuerung über serielle Schnittstelle: ; 1. R1 übergeben / für die Frequenz Werte um 200 (0-255) ; und zurücklesen ; 2. R2 übergeben / für die Frequenz Werte um 200 (0-255) ; und zurücklesen ; 3. Zeitschleifenwert / 0-255 wie lange soll der Motor laufen ; der Motor startet nach der Übergabe dann automatisch ; und Wert P1 lesen ; dann kommt der Wert von P1 zurück, wenn der Motor nach der Zeitschleife ;gestoppt hat ; der Status der PortPins P1.5 und P1.7 können so bequem abgefragt werden ; P1.5 und P1.7 liegen auf dem ISP Stecker dabei in günstiger Lage ; die LDRs sollten nach Vcc schalten #include LPx052.H .org 0000H sjmp start ; der Timerinterrupt liegt auf 0BH ; und bei jedem Interrupt wird der Ausgang an P3.4 ; invertiert .org 000BH ; TF0 Timer 0 overflow cpl P3.4 ; toggle Port pin jb P3.4, pwm_on ; next on or off ? pwm_off: mov RL0, R2 ; set off time reti pwm_on: mov RL0, R1 ; set on time reti ; Startwerte setzen start: mov P1M0,#03H ; Ports auf quasi bi-direktional mov P1M1,#00H ; P1.0 /P1.1 auf Input mov P3M0,#00H mov P3M1,#10H ; push pull output für P3.4 mov SP,#20H ; Stack pointer clr TR1 ; Stop timer 0 / 1
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 39 von 88
clr TR0 ; Werte 9600/19200 Baud für ser. Schnittstelle mit 19.200 Baud ; bei 11.059 Mhz Oszillator einstllen ; ändert man den Oszillator, dann muss man auch ; die Werte entsprechend ändern! mov TH1,#0DCH ; 256-6: 9600 baud mov TL1,#0DCH ; 11.059MHz for SMOD1 =0 anl TMOD,#00H ; Timer1: 8 bit autoreload orl TMOD,#20H setb TR1 ; TCON Start timer 1 anl PCON,#3FH ; PCON: SM0D0 and SM0D0 löschen mov SCON,#50H ; InitRS232 8 bit UART Mode1 setb TI orl PCON,#80H ; SMOD=1 double Baudrate ; Timer 0 ; Standardwert für die Frequenzerzeugung über Timer 0 Interrupt ; RL0 wird bei jedem Interrupt über R1/R2 neu gesetzt und der Ausgang des Timers ;an P3.4 ; jedes mal einfach invertiert mov RL0,#0BAH ; RL und RH setzen mov RH0,#0FFH ; default mov R1,#0C8H ; = 98,745 khz mit 11.059Mhz Osz mov R2,#0C8H ; = 200 orl TMOD,#1 ; 16 bit autoreload orl ACSR,#08H ; comparator inputs aktivieren clr P3.4 ; FET Strom im Ruhezustand minimieren!! nop mov IE,#82H ; Interrups EA+ET0 aktivieren ; RL0: R1 ON Time, R2 OFF Time; R3 Zähler; R4 Zeitdauer verlängern ; ersten Wert holen- Beginn der Schleife NEXT acall RX mov R1,A ; R1 schreiben ON time nop mov A,R1 ; R1 lesen acall TX ; Wert zurücksenden ; zweiten Wert holen acall RX
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 40 von 88
mov R2,A ; R2 schreiben OFF time nop mov A,R2 ; R2 lesen acall TX ; Wert zurücksenden ; Zeitdauer holen und Motor starten acall RX ; Zeitdauer holen mov R3,A ; übermittelten Startwert setb TR0 ; Timer0 / Motor starten ; R3 * ca. 90ns * 3cyc loopr nop ; nop ; jedes nop +90ns djnz R3,loopr ; R3 immer einen runterzählen bis 0 ; und weiter bei 0 ; sonst nach loopr ; Motor dann anhalten TimerOFF clr TR0 clr P3.4 ; Strom reduzieren ! ; denn wer weiss schon wie P3.4 steht ; ist ein LDR an P1.5 und P1.7 durchgeschaltet / low aktive ? ; kann dann einfach in der Software analysiert werden mov A,P1 ; Portpins P1 holen acall TX ; und über RS232 senden sjmp NEXT ; und weiter in der Schleife ; und hier die Aufrufe für die serielle Kommunikation ; Werte stehen jeweils im Accumulator RX jnb RI,RX ; ser./RS232 Wert holen mov A,SBUF clr RI ret TX jnb TI,TX ; Wert über ser./RS232 senden clr TI mov SBUF,A ret .end
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 41 von 88
10.3 Das Assemblerprogramm zur Übersicht
#include LPx052.H .org 0000H sjmp start .org 000BH cpl P3.4 jb P3.4, pwm_on pwm_off: mov RL0, R2 reti pwm_on: mov RL0, R1 reti start: mov P1M0,#03H mov P1M1,#00H mov P3M0,#00H mov P3M1,#10H mov SP,#20H clr TR1 clr TR0 mov TH1,#0DCH mov TL1,#0DCH anl TMOD,#00H orl TMOD,#20H setb TR1 anl PCON,#3FH mov SCON,#50H setb TI orl PCON,#80H mov RL0,#0BAH mov RH0,#0FFH mov R1,#0C8H mov R2,#0C8H orl TMOD,#1 orl ACSR,#08H clr P3.4 nop mov IE,#82H NEXT acall RX mov R1,A nop
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 42 von 88
mov A,R1 acall TX acall RX mov R2,A nop mov A,R2 acall TX acall RX mov R3,A setb TR0 loopr nop ; nop djnz R3,loopr TimerOFF clr TR0 clr P3.4 mov A,P1 acall TX sjmp NEXT RX jnb RI,RX mov A,SBUF clr RI ret TX jnb TI,TX clr TI mov SBUF,A ret .end
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 43 von 88
10.4 Die Include Datei
In dem Assemblerprogramm wird die Include Datei LPx052 verwendet. In der
Include Datei sind unter anderem die Register definiert. An der Datei wurde nichts
geändert. Der Hersteller hat die Original-Datei extra für das Elliptec Board
umgeschrieben. Mit dieser Datei wurde sich nicht viel befasst. Sie wurde einfach
einmal in den Mikrocontroller gespeichert und nie wieder geändert.
;*****************************************************
;* TASM LPx052 SFR BIT/BYTE MNEMONIC EQUATES LIST *
;* GMS 2005 added equations for Atmel AT89LPx0523 *
;*****************************************************
SP .equ 081H ;Stack pointer
DPL .equ 082H
DPH .equ 083H
SPDR .equ 085H ;SPI Data register AT89LPx0523
PCON .equ 087H
TCON .equ 088H
TMOD .equ 089H
TL0 .equ 08AH
TL1 .equ 08BH
TH0 .equ 08CH
TH1 .equ 08DH
P1 .equ 090H ;Port 1
TCONB .equ 091H ;Atmel AT89LPx052
RL0 .equ 092H ;Atmel AT89LPx052
RL1 .equ 093H ;Atmel AT89LPx052
RH0 .equ 094H ;Atmel AT89LPx052
RH1 .equ 095H ;Atmel AT89LPx052
ACSR .equ 097H ;AT89LPx052
SCON .equ 098H
SBUF .equ 099H
WDTRST .equ 0A6H ;AT89LPx052 Watchdog
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 44 von 88
WDTCON .equ 0A7H ;AT89LPx052 Watchdog Control register
IE .equ 0A8H
SADDR .equ 0A9H ;Slave Address Atmel AT89LPx052
SPSR .equ 0AAH ;Atmel AT89LPx052
P3 .equ 0B0H ;Port 3
IP .equ 0B8H
SADEN .equ 0B9H ;Atmel AT89LPx052 Slave Address enable
P1M0 .equ 0C2H ;Atmel AT89LPx052 Port config
P1M1 .equ 0C3H ;Atmel AT89LPx052
P3M0 .equ 0C6H ;Atmel AT89LPx052
P3M1 .equ 0C7H ;Atmel AT89LPx052
T2CON .equ 0C8H ;8052, 80154 only
RCAP2L .equ 0CAH ;8052, 80154 only
RCAP2H .equ 0CBH ;8052, 80154 only
GHOST: Ein AT89LPx052 (8051) Entwicklungshelfer
Seite 77 von 116
TL2 .equ 0CCH ;8052, 80154 only
TH2 .equ 0CDH ;8052, 80154 only
PSW .equ 0D0H
SPCR .equ 0D5H ;SPI control register Atmel AT89LPx052
ACC .equ 0E0H ;Accumulator
B .equ 0F0H ;Secondary Accumulator
IOCON .equ 0F8H ;80154 only
;PORT 1 BITS
P1.0 .equ 090H ;Port 1 bit 0
P1.1 .equ 091H ;Port 1 bit 1
P1.2 .equ 092H ;Port 1 bit 2
P1.3 .equ 093H ;Port 1 bit 3
P1.4 .equ 094H ;Port 1 bit 4
P1.5 .equ 095H ;Port 1 bit 5
P1.6 .equ 096H ;Port 1 bit 6
P1.7 .equ 097H ;Port 1 bit 7
;PORT 3 BITS
P3.0 .equ 0B0H ;Port 3 bit 0
P3.1 .equ 0B1H ;Port 3 bit 1
P3.2 .equ 0B2H ;Port 3 bit 2
P3.3 .equ 0B3H ;Port 3 bit 3
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 45 von 88
P3.4 .equ 0B4H ;Port 3 bit 4
P3.5 .equ 0B5H ;Port 3 bit 5
P3.6 .equ 0B6H ;Port 3 bit 6
P3.7 .equ 0B7H ;Port 3 bit 7
;ACCUMULATOR BITS
ACC.0 .equ 0E0H ;Acc bit 0
ACC.1 .equ 0E1H ;Acc bit 1
ACC.2 .equ 0E2H ;Acc bit 2
ACC.3 .equ 0E3H ;Acc bit 3
ACC.4 .equ 0E4H ;Acc bit 4
ACC.5 .equ 0E5H ;Acc bit 5
ACC.6 .equ 0E6H ;Acc bit 6
ACC.7 .equ 0E7H ;Acc bit 7
;B REGISTER BITS
B.0 .equ 0F0H ;Breg bit 0
B.1 .equ 0F1H ;Breg bit 1
B.2 .equ 0F2H ;Breg bit 2
B.3 .equ 0F3H ;Breg bit 3
B.4 .equ 0F4H ;Breg bit 4
B.5 .equ 0F5H ;Breg bit 5
B.6 .equ 0F6H ;Breg bit 6
B.7 .equ 0F7H ;Breg bit 7
;PSW REGISTER BITS
P .equ 0D0H ;Parity flag
F1 .equ 0D1H ;User flag 1
OV .equ 0D2H ;Overflow flag
RS0 .equ 0D3H ;Register bank select 1
RS1 .equ 0D4H ;Register bank select 0
GHOST: Ein AT89LPx052 (8051) Entwicklungshelfer
Seite 78 von 116
F0 .equ 0D5H ;User flag 0
AC .equ 0D6H ;Auxiliary carry flag
CY .equ 0D7H ;Carry flag
;TCON REGISTER BITS
IT0 .equ 088H ;Intr 0 type control
IE0 .equ 089H ;Intr 0 edge flag
IT1 .equ 08AH ;Intr 1 type control
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 46 von 88
IE1 .equ 08BH ;Intr 1 edge flag
TR0 .equ 08CH ;Timer 0 run
TF0 .equ 08DH ;Timer 0 overflow
TR1 .equ 08EH ;Timer 1 run
TF1 .equ 08FH ;Timer 1 overflow
;SCON REGISTER BITS
RI .equ 098H ;RX Intr flag
TI .equ 099H ;TX Intr flag
RB8 .equ 09AH ;RX 9th bit
TB8 .equ 09BH ;TX 9th bit
REN .equ 09CH ;Enable RX flag
SM2 .equ 09DH ;8/9 bit select flag
SM1 .equ 09EH ;Serial mode bit 1
SM0 .equ 09FH ;Serial mode bit 0
;IE REGISTER BITS
EX0 .equ 0A8H ;External intr 0
ET0 .equ 0A9H ;Timer 0 intr
EX1 .equ 0AAH ;External intr 1
ET1 .equ 0ABH ;Timer 1 intr
ES .equ 0ACH ;Serial port intr
ET2 .equ 0ADH ;Timer 2 intr
;Reserved 0AEH Reserved
EA .equ 0AFH ;Global intr enable
;IP REGISTER BITS
PX0 .equ 0B8H ;Priority level-External intr 0
PT0 .equ 0B9H ;Priority level-Timer 0 intr
PX1 .equ 0BAH ;Priority level-External intr 1
PT1 .equ 0BBH ;Priority level-Timer 1 intr
PS .equ 0BCH ;Priority level-Serial port intr
PT2 .equ 0BDH ;Priority level-Timer 2 intr
;Reserved 0BEH Reserved
PCT .equ 0BFH ;Global priority level
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 47 von 88
10.5 Was ist ein Interrupt?
Hier eine grobe Erläuterung:
Ein Interrupt (lat. interruptus, Unterbrechung) ist die kurzfristige Unterbrechung
eines Programms durch eine von der CPU abzuarbeitenden Befehlssequenz. Wird
ein Interrupt ausgelöst, dann wird das aktuelle Programm angehalten und es wird
ein Unterprogramm ausgeführt. Anschließend, nach Beendigung des
Unterprogramms, wird die Ausführung des Hauptprogramms an der
Unterbrechungsstelle fortgesetzt.
Sinn eines Interrupts ist es, z.B. bei einem PC, schnell auf Ein-/Ausgabe-Signale
(z. B. Tastatur, Maus, Festplatte, Netzwerk usw.) oder Zeitgebern (Timern) zu
reagieren. Interrupts sind nötig, um auf zeitkritische Ereignisse reagieren zu
können.
10.6 PWM- Erzeugung mit Hilfe eines 16-Bit-Timers
Die untenstehende Grafik soll die Funktionsweise des 16-Bit-Timers näher
beschreiben. Der 16-Bit-Timer (Timer 0) besteht aus einem Highbyte (RHO) und
einem Lowbyte (RLO). Mit jedem Takt des Oszillators (11.0952MHz) wird der
Timer um eins erhöht. Da der Timer 0 ein 16-Bit-Timer ist, benötigt er 2¹⁶ (65536)
Takte um einen Überlauf zu erreichen. Bei jedem Überlauf entsteht ein Interrupt.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 48 von 88
Wird der Timer mit keinem Wert voreingestellt, d.h. fängt der Timer bei null an zu
zählen, so erhält man bei einer Taktfrequenz von 11.0592MHz 168,75 Überläufe
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 49 von 88
und damit auch 168,75 Interrupts pro Sekunde. Mit einem geeignetem
Assemblerprogramm, welches mit jedem Interrupt das Ausgangssignal des Ports
3.4 invertiert (vgl. 10.2), würde man mit 168,75 Interrupts pro sec. eine
Rechteckfrequenz von 168,75/2, also 84,735Hz, erzeugen. Für den Piezomotor,
der ein Rechtecksignal zwischen 70 und 100kHz benötigt, ist dies etwas zu wenig.
Um die Frequenz zu erhöhen muss man also die Anzahl der Interrupts pro sec. ,
also die Zeit der Timer0-Durchläufe verkürzen. Kürzere Durchlaufzeiten erhält
man, indem man den Timer nicht bei null anfangen lässt zu zählen, sondern das
Highbyte und das Lowbyte mit einem Startwert beschreibt, bei dem er dann zu
zählen beginnt.
Im Beispiel wurde das Highbyte mit dem Maximum, also 255d beschrieben und
das Lowbyte mit 200d beschrieben. Startet der Timer nun statt null erst bei
65480d (11111111 11001000 b), so entsteht alle 56 Takte ein Interrupt.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 50 von 88
Bei einer Oszillatorfrequenz bedeutet das, dass man jetzt nicht mehr 168,75
Interrupts pro Sekunde, sondern wie folgendes Rechenbeispiel veranschaulicht,
197485 Interrupts pro Sekunde erreicht.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 51 von 88
Das oben dargestellte Diagramm soll die interruptgesteuerte Frequenzerzeugung
näher erklären. Bei jedem Interrupt wird das Ausgangssignal des P3.4 invertiert,
es entsteht eine Rechteckspannung von 98,742kHz.
Diese Frequenz eignet sich hervorragend zur Ansteuerung des Piezomotors.
Folgender Programmausschnitt erläutert, wie der Timer mit entsprechenden
Werten geladen wird und der P3.4 zum ständigen Umschalten gebracht wird.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 52 von 88
Je nachdem mit welchen Werten Register R1 und Register R2 beschrieben
werden, lassen sich die Pulspausen bzw. die Pulse verlängern oder verkürzen.
Verändert man nur die Pulspausen, so verändert man die Frequenz. Das gleiche
gilt umgekehrt.
Es hat sich als vorteilhaft für das Motordrehmoment erwiesen, die ON-time auf
einem fest eingestellten Wert von R1=200 zu belassen und eine andere
gewünschte Frequenz, z.B. 75kHz für eine Rückwärtsbewegung des Motors
lediglich über das Verstellen des Wertes für die Pulspausen in R2 zu realisieren.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 53 von 88
10.7 Das Umwandeln der Assemblerdatei und Überspiel en auf
den MC
Um ein geschriebenes Assemblerprogramm zur Funktion zu bringen, braucht man
erst einmal ein Programm zum Kompilieren. Dies steht im Internet als Freeware
zum download bereit. Wenn das Programm installiert ist und geöffnet wird, sieht
es wie folgt aus:
Durch Betätigung des Buttons open kann man das Verzeichnis auswählen, wo die
Datei mit der Endung .ASM abgespeichert ist. Wenn die Datei geöffnet wird,
erscheint der Assemblercode einschließlich der Kommentare in dem linken
Fenster.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 54 von 88
Damit der Code umgewandelt werden kann, muss mit der Maus auf den Button
TASM geklickt werden. Es erscheint nun im rechten Fenster der umgewandelte
Code in der linken Spalte. In der rechten Spalte steht immer noch der
ursprüngliche Code mit den Kommentaren.
Um das Programm in den Mikrocontroller zu laden, muss der Button Run betätigt
werden. Das Programm wandelt den Code noch einmal in einen reinen
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 55 von 88
Zahlenwert um. Der Microcontroller ist nun geflasht. Das heißt, in ihm ist jetzt das
selbst geschriebene Programm.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 56 von 88
11.0 Spannungsverlaufsmessung mit dem Oszilloskop
Es sollte die Ausgangsfrequenz am Board und am Motor gemessen werden. Um
die Frequenz am Board zu messen, muss der Motor abgeklemmt werden.
Die Spannung wurde auf 2V /DIV und die Zeit auf 2µs/DIV am Oszilloskop
eingestellt. Wenn man nun an am Board misst, stellt sich folgendes Bild auf dem
Oszilloskop dar.
Auf dem Bildschirm ergibt sich eine sehr saubere Rechteckspannung. Wenn eine
andere Frequenz im Softwareprogramm eingestellt wäre, würden sich die Impulse
- je nachdem - vergrößern oder verkleinern.
Wenn die Frequenz direkt am Motor gemessen wird und der Motor betrieben wird,
sieht man auf dem Bildschirm einen fast sinusförmigen Verlauf der Spannung.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 57 von 88
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 58 von 88
12.0 Das Visual Basic Programm
12.1 Die Benutzeroberfläche
Es wurde in Visual Basic ein Programm entwickelt, mit dem der Motor und die
Messung gesteuert werden.
1= Startbutton 6= eingestellte Frequenz
2= Dauer der Schwingpakete 7= gemessene Länge
3= Anzahl Vorschübe 8= Einstellung der Faktoren
4= Stoppbutton 9= Zustand der Sensoren(LDR’s)
5= Restebutton 10= Auswahlfeld Justierung oder Messung
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 59 von 88
12.2 Die Justierung
Wenn die Datei Längenmessung.exe geöffnet wird und der Computer eine
Verbindung mit dem Board hat, zeigt sich auf dem Bildschirm die oben gezeigte
Benutzeroberfläche. Bevor die Messung beginnen kann, müssen die LDR’s an die
im Augenblick herrschenden Lichtverhältnisse angepasst werden.
Im Modus (10) muss der Radiobutton Justierung gesetzt werden. Beide
Potentiometer müssen nach ganz rechts gedreht werden. Beide Kontrollkästchen
(9) sind jetzt gesetzt. Das heißt, dass es für die lichtabhängigen Widerstände jetzt
zu dunkel ist, um durchzuschalten. Der Laserpointer muss nun auf einen LDR
gerichtet werden. Das dazugehörige Potentiometer muss nun ganz langsam nach
links gedreht werden. Gleichzeitig muss immer nach einer Bewegung am
Potentiometer der Startbutton betätigt werden, damit sich die Software neu
initialisiert. Dies muss so lange geschehen, bis der Haken nicht mehr gesetzt ist.
Um sicher zu gehen, dass alles korrekt eingestellt ist, sollte der Laserpointer noch
einmal neben den LDR gerichtet werden. Der Haken sollte jetzt wieder gesetzt
sein. Wenn das der Fall ist, muss man bei dem zweiten LDR genauso verfahren.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 60 von 88
12.3 Resetten der Messeinrichtung
Weil der Motor in der Mitte steht und der Laserpunkt keinen Fotowiderstand
beleuchtet und so beide Ports hochohmig sind, sind beide Kontrollkästchen
gesetzt. Um die Messung zu starten, muss der Motor resettet werden. Dies
geschieht, indem der Resetbutton betätigt wird. Die Zeitdauer der
Schwingungspakete der Motorspannung beträgt beim Rückwärtsfahren 4ms. Beim
Resetten ändert der Motor die Frequenz (6) von der Standart eingestellten
Vorwärtsfrequenz von 98743Hz auf 79563HZ. Der Motor fährt solange rückwärts,
bis das Laserlicht den unteren LDR beleuchtet. Der Haken bei Port P1.5 ist nun
auch nicht mehr gesetzt. Der Motor ist nun betriebsbereit.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 61 von 88
12.4 Das Starten der Messung
Bevor die Messung gestartet werden kann, sollte man noch beim Feld Faktor (8)
wählen, wie groß das Werkstück ist, um die Messung so genau wie möglich zu
gestalten. Bei kleinen Werkstücken bis ca. 2cm sollte der Radiobutton klein
gesetzt sein. Bei Werkstücken ab 2cm bis ca. 6cm sollte man den mittleren
wählen. Der Radiobutton groß sollte ab einer Größe von 6cm gewählt werden. Die
Standarteinstellung ist immer auf Radiobutton klein. Wenn diese Einstellungen
vorgenommen worden sind, kann die Messung mit dem Startbutton gestartet
werden. Der Motor fährt nun los.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 62 von 88
Wenn der Motor losfährt, dann verlässt er nach einigen Stepps den unteren LDR.
Das bedeutet, dass Port 1.5 nun nicht mehr beleuchtet ist. Die Anzahl der Stepps
wird laufend aktualisiert, genauso wie die bis dahin schon abgetastete Länge. Die
Messung kann nur mit dem Stopbutton gestoppt werden. Die anderen Buttons
sind ausgeschaltet. Dies kann man an der transparenten Schrift in den Feldern
erkennen.
Das Programm führt die Messungen immer weiter aus, bis das Licht von dem
Laserpointer den oberen LDR erreicht hat. Der LDR schaltet Port 1.7 durch und
dieser gibt an das Visual Basic Programm weiter, dass die Messung beendet
werden muss. Das Programm beendet die Messung und gibt die Endwerte aus.
Nun kann die Messung wieder von vorne beginnen, indem man den Restbutton
betätigt.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 63 von 88
12.5 Der Quellcode des VB- Programms
Option Strict Off Friend Class A Inherits System.Windows.Forms.Form Dim swert As Short ' die Frequenzen für den Vorwärts und Rückwärtslauf des Motors werden eingestellt Const RL0 As Integer = 200 ' bleibt immer gleich Const RH0_vorwaerts As Integer = 200 Const RH0_rueckwaerts As Integer = 173 Dim RH0 As Integer = RH0_vorwaerts ' speichert ob der Benutzer "Stop" gedrückt hat Dim StopGedrueckt As Boolean = False Private Sub SendReadSeriell() Dim dummyread As Short ' wenn kein Wert da, dann gibt es eine -1 über seriell ' dieses SUB übermittelt und holt die Daten so wie ' es das Mikrocontrollerprogramm verlangt ! OPENCOM( "COM1:19200,N,8,1" ) ' On time / Wert R1 schicken und zurücklesen SENDBYTE(RL0) ' RL0: fest auf 200 gesetzt dummyread = -1 While dummyread = -1 ' warten auf gelesenen Wert dummyread = READBYTE End While ' On time / Wert R2 schicken und zurücklesen SENDBYTE(RH0) dummyread = -1 While dummyread = -1 ' warten auf gelesenen Wert dummyread = READBYTE End While
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 64 von 88
' wie lange soll der Motor laufen? Wert von Zeitdau er übermitteln SENDBYTE(Val( Me.Zeitdauer.Text)) ' starten und warten auf Antwort ' jetzt auf Antwortbyte warten dummyread = -1 While dummyread = -1 ' P1 Wert anzeigen dummyread = READBYTE End While ' und Kommunikationskanäle schließen CLOSECOM() ' und Zustand des LDR's anzeigen ' beleuchtetes LDR setzt Pin auf low If (dummyread And 2 ^ 5) Then Me.P1_5.CheckState = System.Windows.Forms.CheckState.Unchecked Else Me.P1_5.CheckState = System.Windows.Forms.CheckState.Checked End If If (dummyread And 2 ^ 7) Then Me.P1_7.CheckState = System.Windows.Forms.CheckState.Unchecked Else Me.P1_7.CheckState = System.Windows.Forms.CheckState.Checked End If End Sub Reset Private Sub ResetMotor() ' alten Wert sichern Dim alteZeitDauer As String = Me.Zeitdauer.Text Me.Zeitdauer.Text = "4 ms" Me.Zeitdauer.Refresh() ' setze die Frequenz auf Rückwärtslauf RH0 = RH0_rueckwaerts Call FrequenzAnzeigen() ' noch hat niemand stop gedrueckt
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 65 von 88
StopGedrueckt = False ' fahre den Motor in die Ausgangsstellung zurück While ( Me.P1_5.CheckState = CheckState.Checked And StopGedrueckt = False ) Call SendReadSeriell() ' bearbeite Klicks auf den Stopknopf Application.DoEvents() End While ' alten Wert wiederherstellen Me.Zeitdauer.Text = alteZeitDauer Me.Zeitdauer.Refresh() End Sub Private Sub A_Load( ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load ' Frequenzanzeige für User aktualisieren ' standardmäßig wird die Frequenz für den Vorwärtslauf angezeigt Call FrequenzAnzeigen() ' stelle die initialen Werte für P1.5 und P1.7 fest Call InitialisiereP15P17() End Sub Private Sub A_FormClosed( ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed ' muss nicht aber vielleicht besser wenn Software sich mal aufhängt CLOSECOM() End Sub Private Sub InitialisiereP15P17() ' führe eine Messung im Rückwärtslauf aus und anschließend im Vorwärtslauf ' dadurch sollte der Motor in die alte Stellung zurückkehren und ' P1.5 und P1.7 korrekt gemessen werden RH0 = RH0_rueckwaerts Call SendReadSeriell() RH0 = RH0_vorwaerts Call SendReadSeriell()
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 66 von 88
End Sub Private Sub StartLauf() ' setzte die Frequenz auf Vorwärtslauf RH0 = RH0_vorwaerts Call FrequenzAnzeigen() ' Zähler für die Anzahl der Messungen Dim Anzahl As Integer = 0 ' Variable für die Länge Dim Laenge As Double = 0.0 ' initial ist Stop noch nicht gedrückt worden StopGedrueckt = False ' führe solange Messungen durch bis entweder P1.7 erreicht wurde oder ' der Benutzer "Stop" gedrückt hat While ( Me.P1_7.CheckState = CheckState.Checked And StopGedrueckt = False ) ' And StopGedrueckt = False) Call SendReadSeriell() Anzahl = Anzahl + 1 Me.txtAnzahl.Text = Anzahl 'Auswahl der Faktoren Dim faktor As Double = 0 If ( Me.radioKlein.Checked) Then faktor = 0.01451565622 ElseIf ( Me.radioMittel.Checked) Then faktor = 451565622 ' ändern Else 'Me.radioGross.Checked faktor = 1.01451565622 ' ändern End If ' berechne die Länge Laenge = Math.Tan(Anzahl * faktor * (Ma th.PI / 180)) * 15.4 ' anzeigen der Länge Me.txtLaenge.Text = VB6.Format(Laenge, "0.00 cm" ) Me.txtLaenge.Refresh() Me.txtAnzahl.Refresh()
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 67 von 88
' gucke nach, ob jemand den Stopknopf gedrueckt hat Application.DoEvents() End While End Sub Private Sub FrequenzAnzeigen() ' berechne die Frequenz und zeige sie an Me.freq.Text = VB6.Format(11059200 / (512 - RL0 - RH0), "###### Hz" ) Me.freq.Refresh() End Sub ' Bei Reset click werden die Messwerte auf null ges etzt Private Sub Reset_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click ' setzte die Felder zurück Me.txtLaenge.Text = "0,00 cm" Me.txtLaenge.Refresh() Me.txtAnzahl.Text = "0" Me.txtAnzahl.Refresh() ' Knoepfe aus Call KnoepfeAus() ' setze den Motor zurück Call ResetMotor() ' Knoepfe an Call KnoepfeAn() End Sub Private Sub btnStop_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click ' setze StopGedrueckt auf True um die Messungen abzubrechen StopGedrueckt = True End Sub Private Sub btnStartLauf_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStartLauf.Click
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 68 von 88
' Führe entweder eine Messung oder eine Justierung durch If Me.radioMessung.Checked Then ' schalte die Knoepfe aus Call KnoepfeAus() ' Mache die Messung Call StartLauf() ' schalte die Knoepfe wieder ein Call KnoepfeAn() Else Call SendReadSeriell() End If End Sub 'Alle nicht sinnvollen Felder werden ausgeschaltet Private Sub KnoepfeAus() Me.btnStop.Enabled = True Me.btnStartLauf.Enabled = False Me.btnReset.Enabled = False Me.radioKlein.Enabled = False Me.radioMittel.Enabled = False Me.radioGross.Enabled = False End Sub 'Alle sinnvollen Felder werden angeschaltet Private Sub KnoepfeAn() Me.btnStop.Enabled = False Me.btnStartLauf.Enabled = True Me.btnReset.Enabled = True Me.radioKlein.Enabled = True Me.radioMittel.Enabled = True Me.radioGross.Enabled = True End Sub 'Einstellung der Zeitdauer bei RadiobuttonKlein Private Sub radioKlein_CheckedChanged( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radioKlein.CheckedChanged ' If radioKlein.Checked = True Then
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 69 von 88
Me.Zeitdauer.Text = "1 ms" End If End Sub 'Einstellung der Zeitdauer bei RadiobuttonMittel Private Sub radioMittel_CheckedChanged( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radioMittel.CheckedChanged ' If radioMittel.Checked = True Then Me.Zeitdauer.Text = "4 ms" End If End Sub 'Einstellung der Zeitdauer bei RadiobuttonGroß Private Sub radioGross_CheckedChanged( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radioGross.CheckedChanged ' If radioGross.Checked = True Then Me.Zeitdauer.Text = "6 ms" End If End Sub End Class
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 70 von 88
12.6 Die Rechnung
Um die Anzahl der Schritte in ein gängiges Längenmaß umzurechnen, muss ein
gegebener Winkel in einen Faktor umgerechnet werden. Bei 270 Schritten wurde
ein Winkel von 25,36° gemessen.
Schritt
Grad30939259259,0
270
36.25 =°
Anhand dieser Rechnung ergibt sich pro Schritt ein Winkel von 0,09392592593.
Mit diesem Wert kann die Höhe ausgerechnet werden. Die Länge vom Kopf des
Laserpointers bis hin zum eingespannten Werkstück beträgt 15,4cm. Daraus
ergibt sich folgende Formel zur Errechnung der Höhe des Messobjekts.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 71 von 88
4.15*)0939259259,0*tan( Anzahlh =
Im Visual Basic Programm kann man aber nicht so rechnen, denn der Computer
rechnet im Bogenmaß.
4,15*180
*0939259259,0*tan.
PiAnzahlMath
13.0 Die Genauigkeit der Messung
Um die Genauigkeit der Messungen festzustellen wurden Vergleichsmessungen
durchgeführt. Ein kleines Werkstück wurde einmal von dem Laser mit 2ms
Schwingungspaketen und einmal mit 6ms Schwingungspaketen abgetastet.
Es wurden jeweils 10 Messungen am Stück durchgeführt. Zwischen Änderungen
der Einstellungen wurde jeweils immer eine 15-minütige Pause eingelegt, damit
sich der Motor abkühlen könnte. Es wurde darauf geachtet, dass das
Messergebnis nicht durch äußere Einflüsse wie z.B. Verbiegen der
Anschlussleitung vom Laser beeinflusst wird.
Bei einem 5cm langen Werkstück wurden im Schnitt 122 Stepps mit 6ms
Schwingungspaketen benötigt. Der maximale Messfehler liegt dabei bei bis zu 9
Stepps. Das ergibt mit dem errechneten Faktor 0,1498 einen Messfehler von ca.
0,52cm.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 72 von 88
Werden 2ms Schwingungspakete gewählt, liegt der Durchschnitt der Stepps bei
422. Der Unterschied zwischen der größten Messung und der kleinsten Messung
liegt bei 153 Stepps. Das ergibt mit dem Faktor 0,0433 eine Toleranz von 2,11cm.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 73 von 88
Bei kleinen Größen ergab sich Folgendes: Bei den 6er Schritten hatten die Stepps
einen Durchschnitt von 61,4 bei gleichbleibender Länge. Der Abstand zwischen
der höchsten und niedrigsten Anzahl beträgt 3 Stepps. Bei einem Faktor von
0,1205 ergibt sich errechnet eine mögliche Abweichung von 0,097cm.
Wenn die Messung mit 2er Stepps durchführt wird, erhält man einen Wert von 187
Stepps. Der errechnete Faktor beträgt 0,0395 Stepps. Es würde sich eine
Abweichung von ca. 0,77cm ergeben.
Würde man den 6 Wert auf 190 angleichen, käme man auf einen
Durchschnittswert von 178. Dies würde einen Faktor von 0,0415 betragen. Daraus
würde sich eine mögliche Abweichung von 0,2677 cm ergeben. Der „Ausreißer“
könnte durch ein Software-Problem oder einen kleinen mechanischen Defekt
entstanden sein.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 74 von 88
Große Längen sollten allein schon aus Zeitgründen mit relativ großen Stepps
gemessen werden. Sehr kleine Längen sollten mit 1ms Stepps gemessen werden,
da die Sprünge bei 6ms zu groß sind.
14.0 Der Zeitablaufplan
Der Zeitablaufplan wurde erstellt, um das Projekt genau zu planen.
Erstaunlicherweise hat auch ziemlich alles gepasst. Da die Idee schon vor Beginn
der Sommerferien begonnen wurde, konnte man nach den Ferien direkt anfangen
zu planen und die Idee weiter reifen lassen. Es gab auch Abweichungen von der
Planung. In dem Zeitablaufplan werden die aufgewendeten Zeiten schwarz
dargestellt. Die mit grün gekennzeichneten Felder stehen für die Arbeiten, die
weniger und die blauen Felder für die Arbeiten, die mehr Zeit als ursprünglich
geplant, in Anspruch genommen haben.
August September Oktober November Dezember Januar
KW 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 1 2 3 4
Materialien Auswählen
Angebote einholen
Material bestellen
Funktionsschema
Pflichtenheft
Einlesen in die Piezotechnik
Aufbau Montage
Einlesen in Assembler
Programmierung Mc
Tests
Programmierung VB
Vorbereitung Präsentation
Dokumentation
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 75 von 88
15.0 Die Kosten
Pos Bezeichnung Stück Einzelpreis Gesamtpreis
1 Potentiometer 2 3.19€ 6.38€
44804-66
2 Lasermodul 1 29.95 29.95
158550-66
3 Fotowiderstand 2 1.08€ 2.16€
145483-62
4 Netzgerät 1 0 € 0 €
(gestellt)
5 Batteriefach 1 7.95€ 7.95€
227859-66
6 DSUB 9 Kabel 1 8.95€ 8.95€
980927-66
7 Starterkit V1 1 138.40€ 138.40€
8 Mikrofonkabel 0,40m 0.55€ 0.55€
606600-66
9 Rabatt 1 -23.40€ -23.40€
Starterkit V1
10 Gestell 1 119.39€ 119.39€
Summe inkl.
MwSt 290.28€
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 76 von 88
16.0 Verbesserungsvorschläge für eine noch genauere Messung
16.1 Erster Verbesserungsvorschlag:
Der erste Verbesserungsvorschlag für dieses Projekt wäre, um eine höhere
Genauigkeit zu erreichen, eine Untersetzung zwischen Laser und Motor (z.B. ein
Uhrengetriebe) einzubauen. Bei Verwendung eines Getriebes mit der
Untersetzung von 10:1 erhielte man statt den bisherigen Schrittwinkeln von
0.093925 Grad eine Schrittweite von 0.0093925 Grad. (Erläuterung Schrittwinkel:
Kapitel 8.4)
Die theoretische Genauigkeit würde sich durch dieses Verfahren verzehnfachen.
Nachteile:
• komplizierte Mechanik
• durch die Untersetzung, sehr langsame Messung
16.2 Zweiter Verbesserungsvorschlag:
Der zweite Verbesserungsvorschlag für dieses Projekt wäre, statt dem
verwendeten Rotationsantrieb auf einen Linearantrieb der Firma Elliptec, wie er in
Kapitel 3 beschrieben ist, zurückzugreifen. Bei der Verwendung eines solchen
Antriebes entfällt die Winkelumrechnung im Visual Basic Programm und man hätte
keine Unterschiede in der Schrittbreite des Lasers, denn je weiter sich der Laser
(mittels Rotationsantrieb) nach oben bewegt, desto größer werden die einzelnen
Schritte (Winkelfunktion).
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 77 von 88
16.3 Dritter Verbesserungsvorschlag
Da die Stromversorgung des Lasers trotz des geringen Leitungsquerschnittes
immer noch einen gewissen mechanischen Widerstand hat, wäre es eine
Überlegung wert, den Laser über eine Knopfzelle mit Strom zu versorgen, welche
dann ebenfalls an der Welle montiert wird, oder gar direkt auf einen Laserpointer
mit eingebauten Batterien und Schalter zurückgreift. Belässt man die Konstruktion
mit den Anschlussleitungen wie sie ist, dann sollte jedoch in Erwägung gezogen
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 78 von 88
werden, die beiden Zuleitungsdrähte des Lasers mit einer Art Plexiglaskuppel zu
schützen, da die Biegeform der Drähte Einfluss auf das Messergebnis hat.
16.4 Vierter Verbesserungsvorschlag
Wenn sich der Piezomotor durch den normalen Betrieb erwärmt, verschieben sich
die Betriebsfrequenzen um ca. 2000Hz nach unten. Diese
Betriebsfrequenzverlagerung zieht eine Drehzahländerung mit sich und ist der
Hauptgrund für Messabweichungen bei direkt aufeinanderfolgenden Messungen.
Um diesem Betriebsverhalten des Elliptecmotors entgegenzuwirken, müsste man
das Assemblerprogramm so umschreiben, dass der Piezomotor nicht mit
konstanter Frequenz betrieben wird, sondern die Betriebsfrequenz langsam um
2000Hz abgesenkt wird, so dass die Drehzahl konstant bleibt.
16.5 Fünfter Verbesserungsvorschlag
Da die Taktung der Schwingungspakete für die Betriebsfrequenzen über das
Visual Basic Programm und die PWM Frequenz einzig und allein vom
Assemblerprogramm gesteuert wird, ist die Betriebsfrequenz von zwei
Mikrocontrollern abhängig.
Die Verwendung des PCs als Taktgeber für die Schwingungspakete kann
Nachteile mit sich ziehen. Man hat einen ständigen Datenfluss auf der seriellen
Schnittstelle und eine Messunterbrechung (kurzzeitiger Stillstand des Motors)
sobald der PC einen betriebsmäßigen Interrupt erfährt.
Wollte man die Messeinrichtung um ein Display und den benötigten Tastern zum
Starten und Stoppen ergänzen, um auch Messungen ohne einen PC durchführen
zu können, wäre dieser Verbesserungsvorschlag ohnehin unentbehrlich.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 79 von 88
16.6 Sechster Verbesserungsvorschlag
Als Lichtsensoren wurden LDR’s verwendet. LDR’s reagieren im Vergleich zu
Fotodioden eher langsam auf eine Änderung der Lichtverhältnisse und reagieren,
wenn man nicht gerade die LDR’s mit Farbfilter verwendet, im Gegensatz zu
Fotodioden auf Tageslicht. Bei der Verwendung der richtigen Fotodioden ließen
sich daher „zwei Fliegen mit einer Klappe schlagen“. Bei einer ordentlichen
Grundeinstellung kann man dann auch auf die Justierung mit den Potis verzichten.
Von der Verwendung eines passiven Kompensations-LDR ist abzuraten, da sich
gezeigt hat, dass sich nach einigen Minuten, nachdem der Mikrocontroller
spannungslos geschaltet wurde, das Assemblerprogramm gelöscht ist.
17.0 Fazit
Das berührungslose Vermessen eines Werkstückes, sowie das Erproben der
realisierbaren Genauigkeit mit Hilfe des reinen Piezomotors als Rotationsantrieb,
ist geglückt. Die Genauigkeit von ca. 1mm lässt sich unter Berücksichtigung der
Verbesserungsvorschläge mit Sicherheit noch steigern.
18.0 Schlusswort:
Als Projektgruppe Piezomotor 06/07 haben wir die Ziele, die wir uns stellten, mehr
als erreicht. Um die von uns gestellten Ziele umzusetzen, mussten wir uns mit
dem Aufbau des Entwicklungshelfers sowie dessen Dokumentation befassen.
Nach den ersten Versuchen mit dem Piezomotor und den von der Firma GMS
2000 bereitgestellten Testprogrammen stellten wir uns die Frage, ob wir den Mund
gegenüber Herrn Schwarzer bezüglich unserer Vorhaben nicht etwas voll
genommen haben. Zur erfolgreichen Absolvierung dieses Projektes blieb uns
keine andere Wahl, als neben kleinen handwerklichen Arbeiten uns in die
Programmierung von Assembler, Visual Basic, Crosscompilern, Mikrocontroller-
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 80 von 88
Flashprogrammen, sowie die Kommunikation zwischen Mikrokontroller und PC
einzuarbeiten. Um eine fristgerechte Abgabe sicherzustellen und damit unseren
Vorstellungen zu Beginn des Projekts gerecht zu werden, mussten wir neben den
gegebenen Projekttagen viele Sonderschichten einlegen. Sollte sich eine
nachfolgende Gruppe dazu entschließen an diesem Projekt weiter zu arbeiten,
sollte sie sich auf dies einstellen.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 81 von 88
19.0 Quellenangabe
www.elektronik-kompendium.de
www.conrad.de
www.elliptec.de
www.gms-shop2000.de
www.microcontroler.net
www.erikbuchmann.de
Handbuch: ATMEL AT89LP2052
GHOST von Dipl. Ing. Jürgen Hulzebosch
Buch: Basiskurs MC ISBN 3-89576-141-9
Wir bedanken uns bei Herrn Schwarzer für seine Unterstützung sowie bei Herrn
Jürgen Hulzebosch vom Bentheimer Softwarehaus, der uns immer mit Rat und Tat
zur Seite stand und dem Hans-Sachs-Berufskolleg den Piezomotor sowie dessen
Entwicklungshelfer für den Atmel Mikrocontroller zum Sonderpreis verkaufte.
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 82 von 88
Anhang
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 83 von 88
Pflichtenheft
Projekt : Längenmessung mit Hilfe eines Piezomotors Thema : Automatisierungstechnik
Projektgruppe :
Martin Eberhard Jochen Thomsen Volker Gossens
Projektbetreuer: Herr Schwarzer
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 84 von 88
1. Einleitung 2. Komponentenbeschreibung 3. Projektaufbau 4. Durchzuführende Arbeiten 5. Ziel 6. Unterschriften 1. Einleitung Der Elliptecmotor ist der einzige Piezomotor der sowie Links- als auch Rechtslauf hat. Der Motor wird häufig eingesetzt, wo wenig Platz und eine genaue Positionierung erforderlich ist (Autofokus bei Kameras). Er zeichnet sich außerdem durch enorme Drehmomente aus. 2. Komponentenbeschreibung
• Motor Ein Piezomotor Starter Kit V1mit: Testprogramm ATMEL - Microcontroller. (Wird gekauft)
• 2 Fotowiderständer Als Sensor (Wird gekauft)
• Lasermodul (3V 1mW) Zur Werkstückabtastung (Wird gekauft)
• Gestell mit Einspannvorrichtung aus BOSCH Profilschiene (Material wird gekauft und selbst zusammen gebaut)
• Netzteil (2,4V – 30V)
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 85 von 88
Betriebsspannung Elektronik (Herr Feldkamp stellt das Netzteil) 3. Projektaufbau Gefertigt wird ein Gestell, auf welchem ein Piezomotor montiert ist. Ein beliebiges Werkstück mit den Höchstmaßen von 100 mm x 100 mm x 60 mm kann in die Vorrichtung eingespannt werden. Am Kopf der Einspannungsvorrichtung, befinden sich an beiden Schenkeln jeweils Fotowiderstände. Der Laser, der an der Welle des Motors befestigt ist, befindet sich in Ausgangposition. Der Laserstrahl ist auf den unteren LDR gerichtet. Der Motor beginnt nun mit einer bestimmten Geschwindigkeit zu drehen. Nun verlässt der Laserstrahl den Fotowiderstand und der Microcontroller beginnt die Impulse des Motors zuzählen. Erreicht der Laserstrahl den oberen LDR, so hört der Microcontroller auf zu zählen. Nun ist das Werkstück vermessen und der Microcontroller wandelt die Impulse in ein Längenmaß um. Der Microcontroller gibt die Werte über den Bildschirm des Computers aus. Nach Beendigung der Messung fährt der Piezomotor in seine Ausgangsstellung zurück.
4. Durchzuführende Arbeiten
• Planung des Projekts • Aussuchen der Komponenten und Materialien • Preise verhandeln • Komponenten und Materialien bestellen • Gestell aus Boschprofilschienen anfertigen • Testen des Motors auf Funktion • Montage des Motors auf das Gestell • Montage des Lasers auf die bewegliche Achse des Motors • Messen und Testen des Winkelvorschubs
Gestell
Fotowiderstand
Laser
Laserstrahl
Motor
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 86 von 88
• Ausrichten und einstellen des Motors und der Komponenten • Programmierung des Microcontrollers • Umwandlung des analogen Fotowiderstandssignal in ein digitales Signal • Umrechnung der Frequenz in eine Maßeinheit • Ausgabe der Länge des Werkstück auf dem Bildschirm des Computers
5. Ziel Ziel des Projektes ist es eine sehr genaue berührungslose Messung durchzuführen und auszugeben und herauszufinden, wie genau man mit dieser Methode messen kann. 6. Unterschriften Projektteam Projektbetreuer _______________ _____________ Martin Eberhard Herr Schwarzer _______________ Jochen Thomsen ______________ Volker Gossens Oberhausen, 29. August 2006
Projekt:
Längenmessung mit Hilfe eines Piezomotors
© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 87 von 88
Software
Auf dieser CD befindet sich:
• Dokumentation • Programm • Präsentation