Konzeption und Aufbau eines Prüfstandes für taktile - eLib
Transcrição
Konzeption und Aufbau eines Prüfstandes für taktile - eLib
Bachelorarbeit Konzeption und Aufbau eines Prüfstandes für taktile Sensoren Bachelorarbeit Christian Leupolz Bachelorarbeit Mechatronik Christian Leupolz Konzeption und Aufbau eines Prüfstandes für taktile Sensoren Erstprüfer: Prof. Dr.-Ing. Franz Raps Thema erhalten am: 13.01.2012 Verfasser der Bachelorarbeit Christian Leupolz Nebelhornstraße 18 86854 Amberg Telefon +49 1578 441 6605 [email protected] Eingereicht am 13.06.2012 von Christian Leupolz Studiengang Mechatronik Hochschule Augsburg - Fakultät für Elektrotechnik Prüfer: Prof. Dr.-Ing. Franz Raps Betreuer: Prof. Dr.-Ing. Franz Raps Dipl.-Ing.(FH) Michael Strohmayr M.Sc.(TUM) Institut für Robotik und Mechatronik Deutsches Zentrum für Luft- und Raumfahrt e.V. Zusammenfassung Im Rahmen der vorliegenden Bachelorarbeit wurde ein Prüfstand für taktile Sensoren konzipiert und aufgebaut. Der Prüfstand ermöglicht die Verizierung und den Vergleich neuartiger taktiler Sensorprototypen. Dies ermöglicht die Erforschung neuer Sensorwerkstoe und Sensorgeometrien, sowie eine Kalibrierung erster Sensorprototypen durch die Aufnahme einer Kraft-/Widerstandskurve. Nach der Recherche ähnlicher Prüfverfahren für die Analyse der menschlichen Haut, wurden die dort verwendeten mechanischen Lösungsansätze auf ihre Eignung als Prüfstand für taktile Sensoren hin evaluiert. Unter Verwendung einer am Institut verfügbaren Zug-/Druckprüfmaschine des Herstellers Zwick/Roell konnten erste Kraftmessungen kompletter taktiler Sensorelemente durchgeführt werden. Die gewonnenen Messdaten dienten als Grundlage für die Auslegung eines Mehrachslinearsystems und dessen Antrieb. Unter Berücksichtigung der Vor- und Nachteile der möglichen Linearachskombinationen wurde ein Portalsystem mit drei Freiheitsgraden als Prüfstand entworfen. Hierfür wurden Lineareinheiten des Herstellers Misumi angefordert und passende Aktoren ausgewählt. Aufgrund von Lieferverzögerungen musste im zeitlichen Rahmen der Bachelorarbeit auf eine kleinere Lineareinheit zurückgegrien werden. Mit dieser war die Realisierung der verschiedenen Prüfarten mecha- nisch, wie auch elektrisch und softwaretechnisch möglich. Nach der Fertigstellung einer Benutzeroberäche unter Zuhilfenahme der graschen Programmier-Software LabVIEW konnten erste Prüfversuche durchge- führt werden. Die implementierten Prüfvarianten funktionierten während den gefahrenen Messungen erwartungsgemäÿ und stellten die Funktion des Prüfstandes unter Beweis. Danksagung An dieser Stelle bedanke ich mich bei Herrn Prof. Dr.-Ing. Franz Raps für die Betreuung von Seiten der Hochschule. Von Seiten des Instituts für Robotik und Mechatronik des Deutschen Zentrums für Luft- und Raumfahrt bedanke ich mich besonders bei Herrn Dipl.-Ing. (FH) Michael Strohmayr M.Sc.(TUM) für die engagierte Unterstützung, Betreuung und fachliche Inspiration. Für zahlreiche technische Hilfestellungen bedanke ich mich zudem bei den Mitarbeitern der Mechanikwerkstatt und der Elektronikwerkstatt. Des Weiteren möchte ich mich bei Denis Schneider, Florian Schnös, Sven Grob und Daniel Pourroy, für die produktive und angenehme Zusammenarbeit bedanken. Insbesondere danke ich meiner Mutter Reinhilde Leupolz und meinem Vater Johann Leupolz, die mich stets während meines Studiums unterstützt haben. II Inhaltsverzeichnis Zusammenfassung I Danksagung II Tabellenverzeichnis V Abbildungsverzeichnis VI Quellcodeverzeichnis VIII 1 Einleitung 1 2 Stand der Technik 3 1.1 1.2 1.3 2.1 2.2 2.3 2.4 Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rahmenbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Forschungsstand taktiler Sensorsysteme . . . . . . . . . . . . . . . . . . . . . Prüfmethoden zur Charakterisierung der menschlichen Haut . . . . . . . . . . 2.2.1 R. Lundström: Lokale Vibrationen - Mechanischer Widerstand der unbehaarten menschlichen Haut . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 H. Egekvist: Kraftmessung eines Nadeleinstiches beim Menschen . . . . 2.2.3 M. F. Bruce und D. C. Sinclair: Zusammenhang zwischen der taktilen Reizschwelle und der Histologie des menschlichen Fingers . . . . . . . Mehrachssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Lineartechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1.1 Rundwelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1.2 Unterstützte Rundwelle . . . . . . . . . . . . . . . . . . . . 2.3.1.3 Schwalbenschwanzführung . . . . . . . . . . . . . . . . . . 2.3.1.4 Linearschiene . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1.5 Kombination zu einem Mehrachslinearsystem . . . . . . . . . 2.3.2 Linearantriebe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2.1 Zahnriemenantrieb . . . . . . . . . . . . . . . . . . . . . . . 2.3.2.2 Zahnstangenantrieb . . . . . . . . . . . . . . . . . . . . . . 2.3.2.3 Trapezgewindeantrieb . . . . . . . . . . . . . . . . . . . . . 2.3.2.4 Kugelumlaufantrieb . . . . . . . . . . . . . . . . . . . . . . 2.3.3 Robotertechnik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aktoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Schrittmotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Entwicklung und Realisierung der Mechanik und Elektronik 3.1 Mechanik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Vorrausgehende Druckversuche taktiler Sensorelemente 3.1.2 Planung des Mehrachslinearsystems . . . . . . . . . . 3.1.3 Auswahl der Mechanikkomponenten . . . . . . . . . . III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 3 3 4 4 5 5 5 6 6 7 7 9 9 9 10 10 10 10 11 13 13 13 14 15 Inhaltsverzeichnis 3.2 3.1.3.1 Auslegung Lineareinheiten . . . . . . . . . . . . . . . . . . 3.1.3.2 Auslegung Energieführungsketten . . . . . . . . . . . . . . 3.1.3.3 Auslegung Kupplungen . . . . . . . . . . . . . . . . . . . 3.1.4 Antriebsauswahl und Auslegung . . . . . . . . . . . . . . . . . . . . 3.1.5 Testaufbau für erste Versuche vereinfachter Prüfvorschriften . . . . . Elektronik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Steuerungselektronik Mehrachslinearsystem . . . . . . . . . . . . . . 3.2.2 Auswahl Messelektronik . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Abschirmung der Messumgebung vor elektromagnetischen Störfeldern 3.2.4 Evaluierung möglicher Sensorschnittstellen . . . . . . . . . . . . . . 4 Software 4.1 4.2 4.3 4.4 4.5 Steuerungssoftware Mehrachslinearsystem . . . . . . . . Auswahl einer geeigneten Messsoftware . . . . . . . . . Prüfvorschriften . . . . . . . . . . . . . . . . . . . . . 4.3.1 Prüfarten . . . . . . . . . . . . . . . . . . . . . 4.3.2 Implementierung der Prüfvorschriften . . . . . . Benutzeroberäche des Prüfstandes . . . . . . . . . . . Verarbeitung und Aufbereitung der Messdatenprotokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Messergebnisse 5.1 5.2 Aufnahme von Messdaten . . . . . . . . . . . . . . . . . . . . . Auswertung der Messergebnisse . . . . . . . . . . . . . . . . . . 5.2.1 Osetkompensation Feinwaage: Ermittlung der Kennlinie . 5.2.2 Osetkompensation Feinwaage: Überprüfung auf Funktion 5.2.3 Druckversuch von Sensorbahnen verschiedener Geometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 19 21 23 24 24 24 26 27 31 . . . . . . . 32 32 33 34 34 34 38 44 . . . . . 45 45 46 46 47 48 6 Ergebnis 50 7 Diskussion 52 8 Ausblick 54 Literaturverzeichnis 55 Anhang 57 57 61 64 71 72 78 81 81 A B C D E F G H Mechanik Formelsammlung . . . . . . . . . . . . EMF Schirmungsblech technische Zeichnungen . . Quellcode Steuerungssoftware Stepper Control . Quellcode Matlabskript zur Messwertaufbereitung LabVIEW Blockschaltplan Funktionsgruppen . . LabVIEW SubVIs Blockschaltpläne und Symbole Kuka Leichtbauroboter-Struktur Abmessungen . . Internationale Vergleichstabelle für Baustähle . . . Eidesstattliche Erklärung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 IV Tabellenverzeichnis 3.1 3.2 Vorhandene Messgeräte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Neuanschaung Messgeräte . . . . . . . . . . . . . . . . . . . . . . . . . . . V 27 27 Abbildungsverzeichnis 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 5.1 5.2 5.3 Mechanischer Aufbau zur Hautstimulation nach [14, S. 139] . . . . Messapparatur und Graph eines Nadeleinstiches nach [8, S. 43] . . Prüftechnik der menschlichen taktilen Reizschwelle nach [5, S. 236] Rundwelle mit Sinterbronzegleitlager . . . . . . . . . . . . . . . . Linearkugellager . . . . . . . . . . . . . . . . . . . . . . . . . . . Unterstützte Rundwelle . . . . . . . . . . . . . . . . . . . . . . . Linearkugellager für unterstützte Rundwellen . . . . . . . . . . . . Schemazeichnung Schwalbenschwanzführung . . . . . . . . . . . . Linearschiene mit Linearwagen [17, S. 567] . . . . . . . . . . . . . Linearschiene und Wagen Funktionsskizze [17, S. 567] . . . . . . . Schematischer Kreuztisch . . . . . . . . . . . . . . . . . . . . . . Typische Kombinationsmöglichkeiten von drei Linearachsen . . . . . Schrittmotor Wicklungsansteuerung Prinzipzeichnung [3] . . . . . . Druckversuch taktiler Sensor DLR mit 8x8 Taxeln [25] . . . . . . . Kuka LBR Struktur . . . . . . . . . . . . . . . . . . . . . . . . . Fünfachsmechanik Beispiel 1 . . . . . . . . . . . . . . . . . . . . . Fünfachsmechanik Beispiel 2 . . . . . . . . . . . . . . . . . . . . . Linearschiene KUT2005L Skizze Querschnittsäche Abmessungen . Linearschiene Kreuztisch Biegebeanspruchung . . . . . . . . . . . . Linearschiene X-Achse Montagevariante 2 Biegebeanspruchung . . . Linearschiene Z-Achse Biegebeanspruchung . . . . . . . . . . . . . Energiekette Querschnitt Leitungen . . . . . . . . . . . . . . . . . Energiekettenauslegung Anschlag links . . . . . . . . . . . . . . . Energiekettenauslegung Anschlag rechts . . . . . . . . . . . . . . . Testaufbau für Versuche erster Prüfabläufe . . . . . . . . . . . . . Schrittmotorsteuerkarte SMC-TR-1000 [10] . . . . . . . . . . . . . AVR STK500 Starter Kit and Development System [4, S. 2-2] . . . EMF-Schirmungsblech Hauptelement mit Rückwand . . . . . . . . EMF BNC Schaltplan . . . . . . . . . . . . . . . . . . . . . . . . Ablaufdiagramm Stepper Control Hauptschleife . . . . . . . . . . Prüfarten taktile Sensoren und Materialeigenschaften . . . . . . . . LabVIEW Blockschaltplan Leitungsfarben/Datentypen . . . . . . LabVIEW Blockschaltplan Strukturen . . . . . . . . . . . . . . . LabVIEW Blockschaltplan Flankenerkennung . . . . . . . . . . . LabVIEW Blockschaltplan Übersicht Hauptschleife . . . . . . . . LabVIEW Startbildschirm Benutzeroberäche Prüfstand . . . . . LabVIEW Benutzeroberäche Einstellungen . . . . . . . . . . . . LabVIEW Benutzeroberäche Bedienelemente Steuerung . . . . . LabVIEW Benutzeroberäche grasche Anzeige und Auswertung . Ablaufdiagramm Messdatenverarbeitung mit MATLAB . . . . . . Digitalmultimeter Fluke 45 Widerstandsmessung Genauigkeit [11] . MATLAB Plot Zugversuch Osetkurve Feinwaage . . . . . . . . MATLAB Plot Zugversuch Vergleich Wegkompensation Feinwaage VI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 5 5 6 6 7 7 7 8 8 11 13 14 14 15 16 17 17 18 20 21 21 24 25 26 28 30 33 34 35 35 35 36 38 39 40 42 44 45 46 47 Abbildungsverzeichnis 5.4 5.5 5.6 5.7 6.1 6.2 A.1 A.2 A.3 A.4 B.1 B.2 B.3 E.1 E.2 E.3 E.4 E.5 E.6 E.7 E.8 E.9 E.10 E.11 E.12 E.13 E.14 F.1 F.2 F.3 F.4 F.5 F.6 F.7 F.8 G.1 H.1 MATLAB Plot Zugversuch Wegkompensation Feinwaage Detailansicht . . Skizze Druckversuch von Sensorbahnen verschiedener Geometrie . . . . . . MATLAB Plot Druckversuch taktile Sensorbahn rund . . . . . . . . . . . MATLAB Plot Druckversuch taktile Sensorbahn dreieckig . . . . . . . . Testaufbau Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prüfhalterungen und ihre Anwendung . . . . . . . . . . . . . . . . . . . . Biegefälle Tabelle Teil 1 [15, A14.1] . . . . . . . . . . . . . . . . . . . . . Biegefälle Tabelle Teil 2 [15, A14.1] . . . . . . . . . . . . . . . . . . . . . Flächenmomente 2. Grades [15, A7.1] . . . . . . . . . . . . . . . . . . . . Elastizitätsmodul E [15, A14.1] . . . . . . . . . . . . . . . . . . . . . . . EMF Schirmungsbelch Hauptrahmen . . . . . . . . . . . . . . . . . . . . EMF Schirmungsblech Rückseite . . . . . . . . . . . . . . . . . . . . . . EMF Schirmungsblech Deckel . . . . . . . . . . . . . . . . . . . . . . . . LabVIEW Blockschaltplan Ansteuerung Schrittmotor Messung . . . . . LabVIEW Blockschaltplan Ansteuerung Schrittmotor fahre zu Wert . . LabVIEW Blockschaltplan Ansteuerung Schrittmotor fahre zu Wert . . LabVIEW Blockschaltplan Waage Wert auslesen . . . . . . . . . . . . LabVIEW Blockschaltplan Digitalmultimeter Wert auslesen . . . . . . . LabVIEW Blockschaltplan Thermometer Wert auslesen . . . . . . . . . LabVIEW Blockschaltplan Motorschritte in Weg umrechnen . . . . . . LabVIEW Blockschaltplan Osetkorrektur / Dehnung . . . . . . . . . LabVIEW Blockschaltplan Messwertanzeige Graphen, Messwertprotokoll stellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LabVIEW Blockschaltplan Rücksetzen der seriellen Schnittstellen . . . . LabVIEW Blockschaltplan Vorzeichen für Zug-/Druckversuch . . . . . . LabVIEW Blockschaltplan Berechnung/Anzeige des Messfortschritts . . LabVIEW Blockschaltplan Schrittmotor manuelle Steuerung . . . . . . . LabVIEW Blockschaltplan Schleifen beenden . . . . . . . . . . . . . . . LabVIEW SubVI Stepper Control Symbol . . . . . . . . . . . . . . . . LabVIEW SubVI Stepper Control Blockschaltplan . . . . . . . . . . . . LabVIEW SubVI SerialTemperatureP600 Symbol . . . . . . . . . . . . LabVIEW SubVI SerialTemperatureP600 Blockschaltplan . . . . . . . . LabVIEW SubVI Osetkorrektur Symbol . . . . . . . . . . . . . . . . . LabVIEW SubVI Osetkorrektur Blockschaltplan . . . . . . . . . . . . LabVIEW SubVI Dehnung ZV Symbol . . . . . . . . . . . . . . . . . . LabVIEW SubVI Dehnung ZV Blockschaltplan . . . . . . . . . . . . . Kuka LBR Struktur Abmessungen . . . . . . . . . . . . . . . . . . . . . . Internationale Vergleichstabelle für Baustähle [12] . . . . . . . . . . . . . VII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . er. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 48 49 49 50 51 57 58 59 60 61 62 63 72 72 72 73 73 73 74 74 75 76 76 76 77 77 78 78 79 79 79 80 80 80 81 81 Quellcodeverzeichnis C.1 Ausführliche Dokumentation Steuerungssoftware Stepper Control . . . . . . C.2 Steuerungssoftware Stepper Control vollständig . . . . . . . . . . . . . . . . D.1 Matlabskript Auswertung Zugversuch . . . . . . . . . . . . . . . . . . . . . VIII 64 67 71 1 Einleitung Die sich schnell weiterentwickelnde Digitaltechnik treibt im gleichen Maÿe auch die Robotertechnik immer weiter voran. Vor allem in der Industrie schreitet die zunehmende Automatisierung von Prozessen weiter fort. Immer häuger können komplizierte Arbeitsschritte, die bisher nur von Menschen durchgeführt werden konnten, durch Mehrachsrobotersysteme ebenfalls erledigt werden. Nicht nur die Industrie protiert von den immer besser werdenden Robotersystemen, sondern auch für die Anwendung in Krankenhäusern zur minimal-invasiven Chirurgie werden bereits Robotersysteme wie das da Vinci System von Intuitive Surgical am Deutschen DaVinci Zentrum (DDVZ) erfolgreich eingesetzt. Ein weiteres noch in der Entwicklung bendliches Chirurgiesystem ist das am Deutschen Zentrum für Luft- und Raumfahrt (DLR) entwickelte MiroSurge System. In Zukunft sollen autonom agierende Roboter auch in Haushalten und Gastronomien als Servicekraft vermehrt eingesetzt werden. Der Kontakt zwischen Mensch und Maschine wird daher immer stärker, was eine Gefährdung des Menschen durch den Roboter zur Folge haben kann. Um ein sicheres Miteinander zu gewährleisten, müssen Roboter ihre Umwelt möglichst genau wahrnehmen können. Dafür ist eine Vielzahl an Sensorsystemen notwendig. Einer der wichtigsten Sinne für den Menschen zur Wahrnehmung seiner Umwelt ist der Tastsinn. Er ermöglicht es, Oberächen verschiedenen Materialien zuzuordnen, die Temperatur von Gegenständen zu erfassen und feinfühlige motorische Bewegungen durchzuführen. Vor allem aber können durch schnelle Reaktion auf Kontaktereignisse Verletzungen vermieden werden. Wären Robotersysteme ebenfalls ächendeckend mit solchen Sensoren ausgestattet, könnte durch Integration von Schutzverhaltensmustern ein Arbeiten des Roboters zusammen mit den Menschen gefahrlos realisiert werden. Diese Tastsensoren werden in der Robotik als taktile Sensoren bezeichnet. Derzeit werden am Institut für Robotik und Mechatronik des Deutschen Zentrums für Luft- und Raumfahrt taktile Sensoren für Robotersysteme entwickelt. Um die Entwicklung dieser Sensoren voranzutreiben, sind Messaufbauten zur Bestimmung der Sensoreigenschaften notwendig. 1.1 Aufgabenstellung Für die Entwicklung neuer, polymer-basierter, taktiler Sensoren ist es notwendig, die hergestellten Prototypen auf ihre mechanischen und elektrischen Eigenschaften zu prüfen. Des Weiteren gibt es bisher keinen standardisierten Test, der taktile Sensoren verschiedener Hersteller untereinander vergleichbar macht. Im Rahmen der Bachelorarbeit sollen verschiedene Prüfkonzepte erarbeitet werden, deren Hauptaugenmerk vorerst auf der statischen Prüfung für die Prototypenentwicklung taktiler Sensoren liegt. Die Bewertung der verschiedenen Prüfkonzepte geschieht durch die physiologischen Anforderungen an taktile Sensoren. Anhand dieser Bewertung ist das geeignetste Prüfverfahren auszuwählen und ein entsprechender Teststand umzusetzen. 1 Kapitel 1. Einleitung Aufgaben: • Evaluierung verschiedener Prüfkonzepte und Auswahl • Ausarbeitung des ausgewählten Prüfkonzeptes • Erstellung einer Stückliste und Bestellung • Inbetriebnahme des Prüfstandes mechanisch • Entwurf der Prüfsoftware und Prüfvorschrift • Fertigstellung des Prüfstandes • Dokumentation des Prüfstandes 1.2 Rahmenbedingungen Die Aufgabenstellung wird im Rahmen einer Bachelorarbeit des Fachbereiches Elektrotechnik der Hochschule Augsburg in Zusammenarbeit mit dem Institut für Robotik und Mechatronik des Deutschen Zentrums für Luft- und Raumfahrt in Oberpfaenhofen bearbeitet. Grundlage für die Aufgabenstellung ist ein institutseigener taktiler Sensor, anhand dessen erste Versuche zu Materialeigenschaften und Signalanalysen durchgeführt werden sollen. Aufbauend auf diesen Erkenntnissen soll eine Auslegung des Prüfstandes erfolgen. Der zeitliche Rahmen für die Erstellung verschiedener Prüfkonzepte, deren Auswahl und Bewertung und die Umsetzung in einen Prüfstand beträgt zwei Mannmonate. 1.3 Problemstellung Anforderungen an den Prüfstand: • Sensorgröÿen ca. 25cm × 15cm × 12cm siehe Abb. G.1 • Taxelanzahl 64 (Sensormesspunkte auf Sensoräche) • Wegauösungsvermögen der statischen Anregung im 1/100mm Bereich • Schutz gegenüber Störquellen (z.B. Elektromagnetische Störfelder) • Aufzeichnung der Messbedingungen (z.B. Temperaturverlauf) • Orientierung der Sensorächen im Raum (Sensor auf Roboterstrukur) 2 2 Stand der Technik 2.1 Forschungsstand taktiler Sensorsysteme Die nachfolgende Auistung enthält typische Funktionsprinzipien taktiler Sensorsysteme. Tiefergehende Informationen können den Quellen [25], [24], [23], [6], [27], [13] entnommen werden. • • • • Resistiv Kapazitiv Induktiv Magnetisch • • • • Piezoelektrisch Pneumatisch Hydraulisch Optisch Das langfristige Ziel der Entwicklung von taktilen Sensorsystemen für Roboter ist es die mechanischen und sensorischen Eigenschaften der menschlichen Haut nachzuempnden. Daher wird im Folgenden auf Prüfmethoden zur Analyse der Eigenschafen der menschlichen Haut eingegangen. 2.2 Prüfmethoden zur Charakterisierung der menschlichen Haut 2.2.1 R. Lundström: Lokale Vibrationen - Mechanischer Widerstand der unbehaarten menschlichen Haut Um eine Vorhersage menschlicher Reaktionen auf Vibrationen treen zu können, baute Lundström einen Apparat, der es ihm ermöglichte, eine denierte Anregung mit bestimmter Frequenz, Stärke, Dauer, Richtung, Kontaktpunkt und Anpresskraft aufzubringen. Damit gelang es ihm, den mechanischen Widerstand der Haut zu bestimmen.[14, S. 137.] Abbildung 2.1: Mechanischer Aufbau zur Hautstimulation nach [14, S. 139] 3 Kapitel 2. Stand der Technik 2.2.2 H. Egekvist: Kraftmessung eines Nadeleinstiches beim Menschen Henrik Egekvist, Peter Bjerrring und Lars Arendt-Nielsen studierten die Schmerzempndung während des Einstechens einer Nadel in die menschliche Haut. Dabei wurden Messdaten zur Kraft, Geschwindigkeit und Einstichwinkel aufgenommen. Nachfolgend ist der Messaufbau, welcher aus einer Linearschiene, Kraftmessdose und Antriebsspindel besteht, dargestellt.[8, S. 41.] Abbildung 2.2: Messapparatur und Graph eines Nadeleinstiches nach [8, S. 43] 2.2.3 M. F. Bruce und D. C. Sinclair: Zusammenhang zwischen der taktilen Reizschwelle und der Histologie des menschlichen Fingers Mit dem in Abb. 2.3 dargestellten Messaufbau, wurden über die an der Halterung (H) befestigten Nylonfäden (F) Kräfte auf verschiedene Bereiche des kleinen Fingers einer menschlichen Hand aufgebracht. Die Probanden mussten antworten, sobald sie einen Druck verspürten. Die Kräfte wurden festgelegt, indem Nylonfäden soweit gestaucht wurden, bis sie sich krümmten, wobei zu diesem Zeitpunkt die Kraft gemessen wurde. Über unterschiedliche Längen der Nylonfäden war es möglich, verschiedene Kräfte während der Krümmung zu erzielen. Abbildung 2.3: Prüftechnik der menschlichen taktilen Reizschwelle nach [5, S. 236] Die Betrachtung der verwendeten Prüfmethoden zeigt, dass obwohl die mechanischen und sensorischen Eigenschaften der taktilen Sensoren denen der menschlichen Haut ähneln, die Prüfmethoden jedoch nicht direkt für die Analyse von technischen taktilen Sensoren verwendet werden können. Insbesondere die dreidimensionalen Oberächen der Roboterstrukturen erfordern ein Prüfverfahren, das in der Lage ist denierte Eindruckkräfte in mehreren Achsen zu erzeugen. Daher wird im Folgenden grundsätzlich auf den Aufbau von mechanischen Mehrachssystemen eingegangen. 4 Kapitel 2. Stand der Technik 2.3 Mehrachssysteme 2.3.1 Lineartechnik Die Lineartechnik ist eine der Hauptbereiche der Antriebstechnik. Sie beschreibt Führungssysteme, die sich auf translatorische Bewegungen beschränken. Diese Führungen sind zum Beispiel in Werkzeugmaschinen, im industriellen Anlagenbau, sowie in konventionellen Tintenstrahldruckern vorzunden. 2.3.1.1 Rundwelle Eines der einfachsten Linearsysteme ist die Rundwelle mit Lineargleitlager oder Linearkugellager. Es besteht aus einer geschlienen Präzisionswelle, auf die zum Beispiel ein Gleitlager aus Sinterbronze aufgeschoben wird, siehe Abb. 2.4. Um eine Rotation um die Welle zu vermeiden, sind mindestens zwei parallele Lineareinheiten, deren Schlitten miteinander starr verbunden sind, nötig. Abbildung 2.4: Rundwelle mit Sinterbronzegleitlager Eine höherwertige Ausführung gegenüber den Lineargleitlagern sind die Linearkugellager. Sie bestehen aus einer Metallbuchse, die Führungsbahnen für Kugeln beinhaltet. Die Linearbewegung ist selbst bei hohen Traglasten durch die Abrollbewegung der Kugeln leichtgängig. Siehe Abb. 2.5 Abbildung 2.5: Linearkugellager 5 Kapitel 2. Stand der Technik 2.3.1.2 Unterstützte Rundwelle Groÿe Längen oder höhere Traglasten können bei einfachen Rundwellen zu einer starken Durchbiegung der Welle führen, da diese nur an den Wellenenden fest gelagert sind. Es wäre möglich, Wellen mit gröÿerem Durchmesser zu verwenden, jedoch sind diese teurer und benötigen mehr Platz bei der Installation. Eine einfachere Lösung bieten unterstützte Rundwellen. Sie sind längs auf ein Aluminium-V-Prol aufgebracht, welches wiederum über die gesamte Länge verschraubt wird. Siehe Abb. 2.6 Abbildung 2.6: Unterstützte Rundwelle Die unterstützten Rundwellen benötigen angepasste Lineargleit- oder Kugellager mit einem Önungswinkel für das Alustützprol, siehe Abb. 2.7. Bei einer hängenden Montage sollte beachtet werden, dass sich die Traglast durch die fehlende Gleitäche oder Kugelreihe verringert. Abbildung 2.7: Linearkugellager für unterstützte Rundwellen 2.3.1.3 Schwalbenschwanzführung Der Name kommt von dem gegabelten Schwanz der Schwalbe, an den diese Trapezführung erinnert. Diese Führung ist meist als Gleitführung vorzunden. Sie besteht aus geschlienen Präzisionsstahlteilen, eines in Form des Schwalbenschwanzes und das andere als Negativ, siehe Abb. 2.8. Die Rotation um die Linearachse ist im Gegensatz zu den Rundwellenführungen aufgrund der Schwalbenschwanzform ausgeschlossen. Diese Führung wird aufgrund ihrer groÿen Masse und den daraus resultierenden guten Dämpfungseigenschaften oft in Metall zerspanenden Maschinen eingesetzt. 6 • • • • • • • • • • • Kapitel 2. Stand der Technik 2.3.2 Linearantriebe Die Auswahl des Linearantriebs hängt stark vom Einsatzzweck ab. Die Hauptaufgabe eines Linearantriebes ist es, die Rotationsbewegung eines Aktors in eine Translationsbewegung umzuwandeln. Nachfolgend ndet sich eine Auistung häug verwendeter Linearantriebe, siehe auch [16], [17] und [18]. 2.3.2.1 Zahnriemenantrieb Vorteile: • Kostengünstig • Hohe Verfahrgeschwindigkeiten Nachteile: • Auösung hängt stark von Drehwinkelauösung und Spiel des Antriebes ab • Geringere Antriebskraft • Gefahr durch Schwingungen des Zahnriemens Merkmale: • Antrieb sowohl feststehend mit geschlossenem umlaufenden Zahnriemen, wie auch mitfahrend bei oenem feststehenden Zahnriemen • Groÿzahl an Anwendungsfällen durch verschiedene Zahnprole wie z.B.: T, AT, HTD, Zoll • Erreichbare Wegauösung im 1/10mm - 1/100mm Bereich Beispiele: Tintenstrahldrucker, Scanner 2.3.2.2 Zahnstangenantrieb Vorteile: • Kostengünstig • groÿe Kräfte • beliebig lange Verfahrwege Nachteile: • Auösung hängt stark von Drehwinkelauösung und Spiel des Antriebes ab • Zusätzliches Spiel durch wechselnden Zahnradeingri bei Richtungswechsel Merkmale: • Antrieb mitfahrend auf Lineareinheit für groÿe Zahnstangenlängen und oft feststehend für kurze Zahnstangenlängen • Erreichbare Wegauösung im 1/10mm Bereich Beispiel: Zahnradbahn 9 Kapitel 2. Stand der Technik 2.3.2.3 Trapezgewindeantrieb Vorteile: • Kostengünstig • Verschiedene Übersetzungen durch unterschiedliche Steigungen • Hohe Vorschubkräfte erreichbar Nachteile: • Erhöhter Verschleiÿ durch Reibung an den Muttern • Spiel zwischen Trapezgewinde und Mutter • Eingeschränkte Spindellängen Merkmale: • Antrieb feststehend an Trapezgewindespindelende • Muttern meist aus Sinter-Bronze oder Nylatron • Erreichbare Wegauösung 1/10mm - 1/100mm Bereich (bei gegeneinander verspannten Muttern) Beispiel: Wagenheber mit Kurbel 2.3.2.4 Kugelumlaufantrieb Vorteile: Nachteile: • Spielfrei einstellbar • Kostenintensiv • groÿe Vorschubkräfte • Eingeschränkte Spindellängen • Sehr hohe Wegauösung Merkmale: • Erreichbare Wegauösungen für geschliene Kugelumlaufspindeln im 1/1000mm Bereich • Antrieb sowohl feststehend an Kugelumlaufspindelende, wie auch mitfahrend auf Linearschlitten als Direktantrieb der Kugelumlaufmutter Beispiel: Linearantrieb Werkzeugmaschinen 2.3.3 Robotertechnik Für Anwendungsfälle, die sechs oder mehr Achsen benötigen werden typischerweise hochpräzise Robotersysteme eingesetzt (z.B. DLR LBR, als Leichtbauroboter allerdings weniger präzise als gröÿere Kuka oder Stäubli Industrieroboter). Die Kosten moderner Robotersysteme überschreiten jedoch das Budget dieser Arbeit und stehen im Auswahlprozess daher nicht zur Verfügung. 2.4 Aktoren Die Aktorauswahl wird auf elektrische Antriebe angesichts exiblerer Aufstellungsorte des Prüfstandes eingeschränkt. (Grundlegende Informationen dieses Kapitels wurden bezogen aus [21]) 10 Kapitel 2. Stand der Technik Häug verwendete Aktoren sind: • Schrittmotoren • Servomotoren(AC/DC) • Linearmotoren • Piezoelektrische Antriebe Aufgrund der am Institut verfügbaren Schrittmotoren wird im Folgenden detaillierter auf diesen Antrieb eingegangen. 2.4.1 Schrittmotor Abbildung 2.13: Schrittmotor Wicklungsansteuerung Prinzipzeichnung [3] Schrittmotoren sind bürstenlose Gleichstrommotoren, deren Position und Beschleunigung gesteuert werden kann, ohne dafür eine zusätzliche externe Positionsrückmeldung zu benötigen. Sie bestehen typischerweise aus einem rotierenden Permanentmagneten (Rotor), der von Elektromagneten (Stator) umschlossen ist. Wenn die Elektromagneten in richtiger Polarität und Reihenfolge bestromt werden, wird ein Moment erzeugt, das den Rotor in Schritten bewegt. Diese Einzelschritte können aufeinanderfolgend den Motor in verschiedenen Drehzahlen, entsprechend der Wechselrate der Schritte, drehen. Auf die Position kann durch Überwachung der Anzahl der durchgeführten Schrittreihenfolgen rückgeschlossen werden. Indem man den Strom in den einzelnen Motorphasen genau reguliert, ist es möglich einen ganzen Schrittwinkel eines Schrittmotors in kleinere Mikroschritte zu unterteilen. Der Mikroschrittbetrieb ermöglicht eine höhere Positionsauösung, vermindert Resonanzprobleme und verringert somit Betriebsgeräusche, siehe [3]. 11 Kapitel 2. Stand der Technik In Abb. 2.13 ist die Ansteuerung der beiden Elektromagneten für die normalen Betriebsmodi Voll-Schritt und Halb-Schritt und für den Mikroschrittbetrieb bis Achtel-Schritt dargestellt. Vorteile: • • • Nachteile: • • Keine komplexe Regelung erforderlich Kostengünstig Schrittverluste im Fehlerfall (Überlast) Mögliche Resonanzfrequenzen Einfache Ansteuerung (z.B. Schritt / Richtung) • Wartungsarm (Bürstenlos) Für die gelisteten Nachteile des Schrittmotorantriebs ist jedoch zu beachten, dass Schrittverluste nur bei einer fehlerhaften Auslegung der dynamischen Antriebsdrehmomente, der Beschleunigungswerte oder bei zu niedriger Versorgungsspannung auftreten. Besonders zu beachten ist, dass die Versorgungsspannung meist viel höher als die angegebene Nennspannung zu wählen ist, da ansonsten der Nennstrom, wegen den Gegeninduktivitäten der Motorwicklungen bei hohen Drehzahlen, nicht aufrecht erhalten werden kann. Die höhere Versorgungsspannung wird ermöglicht durch die Stromregelung der Schrittmotortreiberstufen. Das Problem der Resonanzfrequenzen kann meist durch den Mikroschrittbetrieb behoben werden. 12 3 Entwicklung und Realisierung der Mechanik und Elektronik 3.1 Mechanik 3.1.1 Vorrausgehende Druckversuche taktiler Sensorelemente Um erste Aussagen zu den mechanischen Anforderungen an den Prüfstand treen zu können, müssen die Materialeigenschaften des vorliegenden taktilen Sensors in Druckversuchen auf einer Zwick/Roell Material-Prüfmaschine [30] ermittelt werden. Abb. 3.1 zeigt das Weg/Kraft Diagramm des vorliegenden taktilen Sensorelements, wobei der mechanische Messbereich des Sensors bei ca. 1,5mm endet. An diesem Punkt wird eine Kraft von 57N auf die gesamte Sensoräche gemessen. Da der Sensor 64 Messpunkte besitzt, wirkt auf einen einzelnen Sensormesspunkt eine Kraft von 0,89N. Dies ist folglich die Maximalprüfkraft, die der geplante Prüfstand mindestens aufbringen können muss. Abbildung 3.1: Druckversuch taktiler Sensor DLR mit 8x8 Taxeln [25] 13 • • • • • • • • Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik Benötigte Verfahrwege der Lineareinheiten: Die minimal benötigten Verfahrwege, sind anhand eines Elements einer Kuka LeichtbauroboterStruktur, auf die taktile Sensorelemente aufgebracht werden, mit den Abmessungen 25cm · 15cm · 12cm, siehe Anhang Abb. G.1, vorgegeben. Es ist vorgesehen diese auf ihrer Zielstruktur prüfen zu können. Damit alle Messpunkte der taktilen Sensorelemente auf dieser Struktur mit einer zur Oberäche senkrechten Prüfkraft beaufschlagt werden können, ist eine Erweiterung des Prüfstandes um zwei Rotationsachsen nötig und der zusätzlich benötigte Freiheitsraum für diese vorzusehen. Aus diesen Gründen sind folgende Verfahrwege gewählt worden: Annahme benötigter Platz für Rotationskopf: ca. 20cm Verfahrweg x/y ≈ LBRmax +Rotationskopflinks +Rotationskopfrechts = 25cm+2·20cm = 65cm Verfahrweg z ≈ LBRmax + Rotationskopfoben+ = 25cm + 20cm = 45cm Gewählte Verfahrwege nach Datenblatt [17, S. 465] und [17, S. 422]: X/Y-Achse (KUT2005L-820-200): 610mm Z-Achse (LX3005P-S2-T3056.4-600): 467mm Anordnung der Linearachsen hinsichtlich ihrer Biegebeanspruchung: Da das Flächenträgheitsmoment der Lineareinheit KUT2005L weder im Datenblatt angegeben ist, noch über den telefonischen Support der Firma Auskunft darüber geben werden kann, muss dieses näherungsweise berechnet werden. Für das Material der Grundplatte AlMg0,7SiT6 wird zur Annäherung der mittlere Elastizitätsmodul (E-Modul) von Aluminiumlegierungen aus Anhang Abb. A.4 verwendet. E Aluminiumleg. = 70kN/mm2 Abbildung 3.5: Linearschiene KUT2005L Skizze Querschnittsäche Abmessungen Mit den Angaben aus Abb. 3.5 kann das Flächenträgheitsmoment nach Anhang Abb. A.3 wie folgt berechnet werden. Iz = 1 3 · (BH 3 + bh3 ) − (BH + bh) · e1 2 mit B = W 1 − P 3 = 75mm / H = H 1 = 28mm / b = P 3 = 120mm / h = t1 = 12mm +120mm·(12mm) +bh und e1 = 12 · BH = 12 · 75mm·(28mm) = 10, 75mm BH+bh 75mm·28mm+120mm·12mm 2 2 2 2 16 ⇒I = I = 1 12 1 3 · (75mm · (28mm)3 + 120mm · (12mm)3 ) −(75mm · 28mm + 120mm · 12mm) · (10, 75mm)2 = 57, 99cm4 · (BH 3 − bh3 ) B = H = 28mm ⇒I = 1 12 H = W = 195mm b = H − t = 16mm · (28mm · (195mm)3 − 16mm · (120mm)3 ) = 1499, 74cm4 F ⇒ w = F l3 3EI = w = F l3 48EI = 10kg · 9, 81 sm2 = 98, 1N 98,1N ·(610mm/2)3 3·70kN/mm2 ·57,99cm4 F ⇒ h = P = 120mm = = 23μm = 10kg · 9, 81 sm2 = 98, 1N 98,1N ·(610mm)3 48·70kN/mm2 ·1499,74cm4 = 0, 4μm ⇒ 210kN/mm2 I = 2, 5 · 104 mm4 F 49, 05N ⇒ ⇒ = 5kg · 9, 81 sm2 = M = 0, 05m · 49, 05N = 2, 45N m w = M l2 2EI = 2,45N m·(467mm)2 2·210kN/mm2 ·25000mm4 = 0, 05mm Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik Vorschubkraft X/Y-Achse: Angaben: Schrittmotor dyn. Drehmoment: ca. M Haltemoment/2 ⇒ 2, 7N m/2 = 1, 35N m (Annäherung, da dynamisches Drehmoment abhängig von der Drehzahl) Steigung P Kugelgewindetrieb Lineareinheit KUT2005L: 5mm F Vorschub X/Y = M Motor dynamisch = P Kugelgewindetrieb 2,7N m/2 0,005m = 270N Hubkraft Z-Achse: Angaben: Schrittmotor dyn. Drehmoment: ca. M Haltemoment/2 ⇒ 3, 1N m/2 = 1, 55N m (Annäherung, da dynamisches Drehmoment abhängig von der Drehzahl) Steigung P Kugelgewindetrieb Lineareinheit LX3005P: 5mm F Vorschub X/Y = M Motor dynamisch = P Kugelgewindetrieb 3,1N m/2 0,005m = 310N Alle Angaben zu den Daten können in folgenden Dokumenten nachgeschlagen werden: Formeln siehe Anhang Abb. A.1 und Abb. A.2 Lineareinheit KUT [17, S. 461] Lineareinheit LX [17, S. 401] Schrittmotoren [26], [22] 3.1.3.2 Auslegung Energieführungsketten Energieketten werden zum mechanischen Schutz für Stromleitungen, Druckluftleitungen, Signalleitungen usw. verwendet. Sie ermöglichen es, Kabel und Schläuche zwischen translatorisch bewegten Mechanikkomponenten zu verlegen. Dabei kann der minimal zulässige Biegeradius der Kabel und Schläuche eingehalten und somit die Lebensdauer verlängert werden. 1. Innerer Querschnitt Der benötigte Querschnitt der Energiekette wird, wie in Abb. 3.9 dargestellt, anhand der einzelnen Leitungsquerschnitte ermittelt. ⇒ Gewählte Energiekette MHPUS206 [17, S. 642] mit Querschnitt innen : 14mm · 40mm (Leitungsquerschnitte siehe [9], [26], [22], [17]) 19 Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik Abbildung 3.9: Energiekette Querschnitt Leitungen 2. Biegeradius Um Leitungsschäden vorzubeugen ist der minimale Biegeradius aller Leitungen zu beachten. Im vorliegenden Fall ist der Biegeradius durch den Druckluftschlauch PU-99003-0604 der Firma Eisele mit 14 mm vorgegeben, siehe [9, S. 7]. Damit der sichere Betrieb bei dynamischer Beanspruchung garantiert werden kann, wird ein Sicherheitsfaktor von 2-3 angenommen. Daraus resultiert ein minimaler Biegeradius von 28-42 mm. Anhand des benötigten Energiekettenquerschnitts und des Biegeradius el die Wahl auf die Misumi MHPUS206-38 siehe [17, S.1-642]. 3. Energiekettenlänge Die benötigte Länge der Energiekette setzt sich aus zwei Teilen zusammen. Der notwendigen Länge für den halben Umfang des Biegeradius und der benötigten Länge zur Abdeckung des Verfahrweges der Lineareinheit, siehe Abb. 3.10 und Abb. 3.11. Anhand der benötigten Gesamtlänge kann über die Gliederabstand die benötigte Kettengliederzahl ermittelt werden. ⇒ ΔL + 12 · (2π · r) + 2 · Sicherheit = 305mm + 119, 4mm + 200mm = 624.4 mit Gliederabstand [17, S. 642]: 32mm ⇒ 624.4mm ÷ 32mm = 19.5 ≈ 20 Kettenglieder ⇒ gewählte Energiekette nach [17, S. 642]: MHPUS206-38-20 20 Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik Beispiel: T orsionsf ederkonstante = 100N m/rad Annahme Drehmoment = 1N m ⇒ 1N m/100N m/rad = 0, 01rad = 0, 01 ∗ (360◦ /2π) = 0, 573◦ ((2π)rad = 360◦ ) Die folgenden Berechnungen beziehen sich auf die maximalen Haltemomente der verwendeten Schrittmotoren und auf die maximal zulässigen Drehmomente der Kupplungen. Die dynamischen Drehmomente der Schrittmotoren während des Betriebs sind wesentlich geringer und können den Graphen der Datenblätter entnommen werden. Für die Auslegung sind nur die Extrema von Bedeutung. LINEAREINHEIT KUT2005L: - Spindelsteigung 5mm - Max. Haltemoment Schrittmotor (SANYO DENKI 103H7822-5740) = 2,7Nm Kupplung SCXW34-8-12 - Maximales Drehmoment 4,0Nm - Torsionsfederkonstante = 5700Nm/rad Maximaler Winkelversatz ⇒ 4, 0N m ÷ 5700N m/rad = 0, 000702rad = 0, 040◦ ⇒ 2, 7N m ÷ 5700N m/rad = 0, 000474rad = 0, 027◦ Resultierender Positionsfehler der Lineareinheit ⇒ (0, 040◦ ÷ 360◦ ) · 5mm = 0, 6μm ⇒ (0, 027◦ ÷ 360◦ ) · 5mm = 0, 4μm LINEAREINHEIT LX3005P: - Spindelsteigung 5mm - Max. Haltemoment Schrittmotor (QMOT 6018-86-28-310) = 3,10Nm Kupplung SCXW21-6-8 - Maximales Drehmoment 1,2Nm - Torsionsfederkonstante = 900Nm/rad Maximaler Winkelversatz ⇒ 1, 2N m ÷ 900N m/rad = 0, 00133rad = 0, 076◦ Resultierender Positionsfehler der Lineareinheit ⇒ (0, 076◦ ÷ 360◦ ) · 5mm = 1, 1μm 22 Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik Kupplung MCSLC25-6-8 - Maximales Drehmoment 2,8Nm - Torsionsfederkonstante = 950Nm/rad Maximaler Winkelversatz ⇒ 2, 8N m ÷ 950N m/rad = 0, 00295rad = 0, 169◦ Resultierender Positionsfehler der Lineareinheit ⇒ (0, 169◦ ÷ 360◦ ) · 5mm = 2, 3μm Alle Angaben zu den Daten können in folgenden Dokumenten nachgeschlagen werden: Lineareinheit KUT [17, S. 461] Lineareinheit LX [17, S. 401] Kupplungen [17, S. 959] Schrittmotoren [26], [22] 3.1.4 Antriebsauswahl und Auslegung Lineareinheiten mit Spindelantrieb wandeln eine rotatorische in eine translatorische Bewegung um. Es sind daher Aktoren auszuwählen, die eine Rotationsbewegung mit hoher Winkelauösung bereitstellen, über eine Bremse zum Halten der jeweiligen Position verfügen und über eine vorhandene Energiequelle versorgt werden können. Da das System möglichst unabhängig von seinem Standort eingesetzt werden soll, wird als Energiequelle Strom vorausgesetzt. Damit verringert sich die Auswahl der Aktoren auf Piezoantriebe, Servomotoren und Schrittmotoren. Nachdem die auftretenden Kräfte des Prüfstandes verhältnismäÿig gering sind und Schrittmotoren einfach in der Ansteuerung und preiswert in der Anschaung sind, el die Wahl auf dieses Antriebskonzept. In der nachstehenden Auistung sind die gewählten Schrittmotoren zu den jeweiligen Lineareinheiten aufgeführt. Die Schrittmotoren wurden anhand ihrer mechanischen Kennwerte Flanschmaÿ, Wellendurchmesser, Haltemoment, dynamisches Drehmoment und Masse, sowie ihrer elektrischen Daten Ansteuerung, Phasenstrom, Versorgungsspannung und Wicklungswiderstand ausgewählt. LINEAREINHEIT LX3005P: Schrittmotor Trinamic QMot QSH6018-86-28-310 LINEAREINHEIT KUT2005L: Schrittmotor SANYO DENKI 103H7822-5740 (Lineareinheiten KUT siehe [17, S. 461], LX siehe [17, S. 401] Schrittmotoren siehe [26], [22]) 23 • • • • • • • • • Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik Abbildung 3.14: AVR STK500 Starter Kit and Development System [4, S. 2-2] 3.2.2 Auswahl Messelektronik Hauptkriterien für die Auswahl der Messelektronik sind: • Hohe Messgenauigkeit • Hohe Anzahl an Messeingängen (umschaltbar) • Galvanische Trennung des Messaufbaus von der Messumgebung • Gleiche Datenschnittstellen (z.B. RS232, GPIB) • Einfache Ansteuerung über ein gemeinsames Bussystem • Einfache und schnelle Implementierung in eine Messsoftware (z.B. MATLAB , LabVIEW ) • Möglichkeit einer Signalabschirmung (Messbuchsen der Messgeräte z.B. BNC-Anschluss) • Verwendung vorhandener Messgeräte (Fluke 45, Frequenzgenerator HP3314A, Oszilloskop Tektronix TDS 510A) Die Tabelle 3.1 beinhaltet bereits vorhandene Messgeräte, die sich für den geplanten Messaufbau eignen. 26 Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik Messgerät Fluke 45 Fluke 80TK Waage Kern EG DOSTMANN P600 NI GPIB-USB-HS HP3314A Tektronix TDS 510A *optional Typ Multimeter Temperaturfühler Feinwaage präz. Thermometer GPIB-USB Adapter Frequenzgenerator Oszilloskop 4 ch. Schnittstellen RS232/GPIB für Fluke45 RS232 RS232 GPIB/USB GPIB GPIB Verwendungszweck Widerstandsmessung Raumtemperaturmessung Kraftaufnahme Raumtemperaturmessung Kommunikation GPIB-PC *Anregung Prüing *Aufnahme Signalantwort Stk. 2 2 1 1 1 1 1 Tabelle 3.1: Vorhandene Messgeräte Die Tabelle 3.2 beinhaltet zugekaufte Messgeräte, welche für den geplanten Messaufbau noch benötigt werden. Messgerät HP 3488A Typ Modulares Schalt-/ Steuerungs-System Opt.010/HP 44470A Multiplexer Opt.012/HP 44472A VHF Multiplexer BNC Opt.013/HP 44474A Digitale I/O Karte Schnittstellen Verwendungszweck GPIB Multiplex / I/O Stk. 1 HP Einschub Multiplex 2 HP Einschub Multiplex (EMV) 2 HP Einschub I/O Zugprüfmaschine 2 Tabelle 3.2: Neuanschaung Messgeräte 3.2.3 Abschirmung der Messumgebung vor elektromagnetischen Störfeldern In der heutigen Zeit sind elektromagnetische Felder (EMF) überall vorhanden. Jedes Mobiltelefon sendet ununterbrochen elektromagnetische Wellen aus, um eine Verbindung mit dem jeweiligen Sendemasten aufrecht zu erhalten. Dutzende Radiostationen senden im Dauerbetrieb rund um die Uhr. Prozessoren in Computern besitzen inzwischen sehr hohe Taktraten, die ebenfalls elektromagnetische Felder erzeugen können. Beinahe jeder Arbeitsplatz und Haushalt besitzt ein drahtloses Netzwerk für die Internetverbindung. Bekannte Störungen, die durch diese Felder verursacht werden können, sind beispielsweise das Knacken und Rauschen in Lautsprecheranlagen während eines eingehenden Mobiltelefonanrufs. Im gleichen Maÿe können diese Felder auch Messungen verfälschen, weswegen Messumgebungen nach Möglichkeit eine Abschirmung gegenüber diesen Störungen erhalten sollten, siehe [28]. Zu diesem Zweck wird mit dem CAD-Werkzeug Pro/ENGINEER Wildre 4.0 ein EMF-Schirmungsblech als Blechteilkonstruktion entworfen. In Abb. 3.15 ist die Baugruppe des Hauptbiegeblechrahmens mit eingebauter Rückwand dargestellt. Zur besseren Ansicht wurde der Deckel ausgeblendet. (Informationen zu Blechteil biegen siehe [7, S. 376]) Die zu prüfenden Sensorelemente besitzen zwar lediglich je acht Anschlüsse für die Spalten und Zeilen, jedoch verlaufen die Anschlussbahnen, je nach Sensor, rechtwinklig oder 180 ◦ versetzt zueinander. Daher wurden in der Konstruktion des Hauptrahmens drei Seitenwände mit Aussparungen für BNC-Anschlussbuchsen vorgesehen, um die verschiedenen Sensortypen, ohne diese 27 Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik zu verspannen, kontaktieren zu können. Abbildung 3.15: EMF-Schirmungsblech Hauptelement mit Rückwand Wie in Abb. 3.16 zu sehen ist, bendet sich das taktile Sensorelement in einer Art faradayschem Käg, dessen Potential auf Masse liegt. An drei Seitenwänden des Abschirmungsbleches (siehe Abb. 3.15) benden sich je acht BNC-Buchsen für die Zeilen und Spalten. Über diese werden die einzelnen Sensoranschlüsse über 16 BNC-Kabel geschirmt zu zwei VHF-Multiplexern HP 44472A geführt. Die Multiplexer benden sich in Einschüben des modularen Schalt-/SteuerungsSystems HP 3488A, welches über die GPIB-Schnittstelle angesteuert wird. Es sind immer vier BNC-Eingangsbuchsen auf eine BNC-Ausgangsbuchse verschaltet, um exiblere Aufbauten mit den Multiplexern zu ermöglichen. Da hierbei jedoch pro Multiplexereinheit nur ein Signal von Interesse ist, werden die beiden getrennten Common 0 und Common 1 Ausgänge jeweils über BNC-Kabel mit einem T-Stück zusammengeführt. Es liegen nun die über die Multiplexer ausgewählten Sensoranschlüsse auf zwei BNC Anschlüssen vor. Um diese mit dem Digitalmultimeter verbinden zu können, wurde eine spezielle BNC-Adapterbox angefertigt, welche eine Signalleitung auf den inneren Leiter eines BNC Anschlusses führt und die andere Signalleitung mit dem Masseanschluss verbindet. Der BNC Ausgang der Adapterbox ist über ein BNC-Kabel mit einem BNC zu 4mm-Federstecker-Adapter verbunden, welcher an den vorderen Messeingängen des Digitalmultimeters Fluke 45 angeschlossen ist. Diese Maÿnahmen sollen die Widerstandsmessungen des Sensorelements vor Störeinkopplungen durch elektromagnetische Felder schützen. 28 Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik Die Widerstandsmesswerte des Digitalmultimeters werden über dessen GPIB-Schnittstelle abgefragt. Der GPIB Bus wird wiederum über einen GPIB-USB-Adapter, der mit einem Laborrechner verbunden ist, über die grasche Programmierumgebung LabVIEW angesteuert. 29 % & '() 1-#"#*2 -/##'"3 ,' &-#(- -./0 *+( *+( 30 Abbildung 3.16: EMF BNC Schaltplan " ! "#! Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik $ " Kapitel 3. Entwicklung und Realisierung der Mechanik und Elektronik 3.2.4 Evaluierung möglicher Sensorschnittstellen Als Grundlage für einen standardisierten Test verschiedener Arten taktiler Sensoren ist es notwendig, ein breites Spektrum an Datenbussen anzubieten. Die nachfolgende Auistung ist eine Zusammenstellung der meist verwendeten Schnittstellen für den Datenaustausch. • CAN-Bus Parallelport • Ethernet • FlexRay RS232 • USB • Modbus RS485 • Firewire • AS-Interface GPIB • Bluetooth • Probus I2C / TWI • Wireless LAN • Interbus LIN-Bus • NFC • EtherCAT SPI Weiterführende Informationen zu Bussystemen sind den Quellen [1] und [20] zu entnehmen. Da die Implementierung aller Schnittstellen den Rahmen dieser Arbeit überschreiten würde, werden nur die für das Institut notwendigen Anschlüsse verwendet. • • • • • • • 31 4 Software 4.1 Steuerungssoftware Mehrachslinearsystem Die Schrittmotortreiberkarte SMC-TR-1000 der EMIS GmbH erlaubt die Steuerung von drei Schrittmotoren über den Schritt-Richtungs-Modus. Das heiÿt, für jeden der drei Schrittmotoren steht ein TTL Eingang für ein Schrittsignal und ein Richtungssignal zur Verfügung. Um eine komfortable und einfache Steuerung des Mehrachslinearsystems zu ermöglichen, wird zur Ansteuerung der Schrittmotortreiberkarte ein Mikrocontroller-Evaluierungsboard STK500 der Atmel Corporation eingesetzt. Ziel ist es, über dieses Evaluierungsboard eine Schnittstelle zwischen Schrittmotorkarte und einem Personal Computer zu schaen, wobei der PC lediglich zur Benutzereingabe von Positions-, Richtungs- und Geschwindigkeitssteuerbefehlen dienen soll. Eine weitere Motivation bestand darin, den Echtzeitsteuerungsteil aus dem nur bedingt echtzeitfähigen Betriebssystem des PCs auszulagern. Die Wahl der Schnittstelle zwischen Mikrocontroller-Evaluierungsboard und Personal Computer el auf die serielle Schnittstelle, da diese über einen Pegelwandler am STK500 schon vorhanden war und des Weiteren noch an vielen Arbeitsrechnern vorzunden ist oder einfach über USBzu-Seriell Adapter nachgerüstet werden kann. Nachfolgend nden sich die wesentlichen Abschnitte des in C verwirklichten Steuerprogramms, welches sich auf einem Atmega16 auf dem STK500 bendet, als Ablaufdiagramm dargestellt, siehe Abb. 4.1. Der kommentierte Quellcode ist unter Quellcode C.1 aufgeführt. 32 Hauptprogramm Stepper Control Hauptschleife Stepper Control Initialisiere: Eingänge / Ausgänge Zählerregister Kommunikationsschnittstelle Interrupts Steuerungsbefehl erhalten X/Y/Z Motordrehrichtung entsprechend Steuerbefehl setzen JA Ausgabe der Versionsnummer und Paramterformatierung NEIN Initialisierung aller benötigten Variablen Auswerten des Steuerungsbefehls X/Y/Z Motorschritt ausführen Zuweisen der Steuerungsbefehlparameter auf zugehörige Motorachsparameter X/Y/Z Schrittzählervariable dekrementieren Hauptschleife Stepper Control JA X/Y/Z Zeit seit letztem Motorschritt größer als berechnete Zeit für vorgegebene Schrittgeschwindigkeit und Schritte zu fahren Ende NEIN • • • • • • • X/Y/Z Aktuelle Zeit speichern Kapitel 4. Software Aufgrund dieser Kriterien wird für die Bedienung, Visualisierung und Messwerterfassung des Prüfstandes die grasche Programmieroberäche LabVIEW verwendet. Für die Aufbereitung und grasche Auswertung der Messdaten el die Entscheidung auf MATLAB . Die Kombination der beiden Softwarelösungen deckt alle angeführten Anforderungen ab. 4.3 Prüfvorschriften 4.3.1 Prüfarten Neben der statischen Prüfung einzelner Taxelelemente taktiler Sensoren (siehe Abb. 4.2) werden weitere Materialprüfverfahren verwirklicht. Um eine Vorauswahl geeigneter Sensorbahnmaterialien ohne zeit- und kostenintensive Prototypenfertigung treen zu können, ist ein weiterer Zugund Druckversuch von Bedeutung. Im Zugversuch einzelner taktiler Sensorbahnen wird eine Bahn ähnlich einem Schulterstab an beiden Enden eingespannt und es werden Messklemmen zur Widerstandsmessung angebracht, um das Verhalten von Kraft, Weg/Dehnung und Widerstand zu untersuchen, siehe Abb. 4.2. Der Druckversuch zeigt das Verhalten der Kontaktäche zwischen zwei Sensorbahnen in Bezug auf Kraft, Weg und Widerstand, siehe Abb. 4.2. Abbildung 4.2: Prüfarten taktile Sensoren und Materialeigenschaften 4.3.2 Implementierung der Prüfvorschriften Vorwort: LabVIEW Programme bestehen im Grundsatz aus einer Benutzeroberäche und einem dazugehörigen Blockdiagramm. Des Weiteren wird es in sogenannte Hauptprogramme namens VI ( = virtual instrument) und Unterprogramme namens SubVI unterteilt. Jedes Programm kann mehrere Schleifen, Fallunterscheidungen und Sequenzen beinhalten. Für SubVIs müssen eigens Symbolblöcke und Verbindungen angelegt werden, mit denen sie im Hauptprogramm eingebunden werden können. Im folgenden Abschnitt ist eine Kurzübersicht über die Hauptelemente aus LabVIEW zu nden: 34 !"# , - ! "# $! # %&'()'*+* +( Kapitel 4. Software Abbildung 4.6: LabVIEW Blockschaltplan Übersicht Hauptschleife 36 Kapitel 4. Software Die Hauptschleife des LabVIEW -Blockschaltplans setzt sich im wesentlichen aus folgenden 13 Komponenten (siehe Abb. 4.6) zusammen: 1. Ansteuerung des Schrittmotors während des Messvorgangs 2. Ansteuerung des Schrittmotors für Funktion Fahre zu Wert 3. Schrittmotor Sofort-Halt 4. Messwert der Waage auslesen 5. Messwert des Digitalmultimeters auslesen 6. Messwert des Digitalthermometers auslesen 7. Motorschrittbefehle in realen Weg umrechnen 8. Wegfehler Waage Osetkorrektur 9. Berechnung der Dehnung für Zugversuch 10. Grasche Anzeige der Messwerte und erstellen des Messprotokolls 11. Rücksetzten der seriellen Schnittstellen im Fehlerfall 12. Anpassung des Vorzeichens für Zug-/Druckversuch 13. Berechnung und Anzeige des Messvorgangfortschritts (Detailansichten aller Blockschaltpläne des LabVIEW -Programms siehe Anhang E) 37 Kapitel 4. Software 4.4 Benutzeroberäche des Prüfstandes Die mit LabVIEW erstellte Benutzeroberäche zur Bedienung des Prüfstandes ist in fünf Hauptbereiche (siehe Abb. 4.7) unterteilt: Abbildung 4.7: LabVIEW Startbildschirm Benutzeroberäche Prüfstand 1. 2. 3. 4. 5. Einstellungen für Antrieb und Messgeräte und Kurzanleitung Bedienelemente zur Steuerung des Prüfstandes Grasche Anzeige und Auswertung der laufenden Messung Ausgabe des Messprotokolls (Speicherort und Kommentar) Zusätzliche Anmerkungen zu Bedienelementen 38 Kapitel 4. Software (a) Antrieb/Vorschub (b) Waage/Kraftmessung (c) Thermometer/Temperaturerfassung (d) Digitalmultimeter/Widerstandsmessung Abbildung 4.8: LabVIEW Benutzeroberäche Einstellungen Abb. 4.7 (1) Einstellungen für Antrieb und Messgeräte: • Abb. 4.8 (a): Reiter Antrieb Hier sind alle Einstellungen für die Hublineareinheit (Z-Achse) vorzunehmen. Im I/O Feld ist die serielle Schnittstelle der Schrittmotorsteuerkarte auszuwählen. Unter Messablauf (Stepper Control Parameter) sind die logische Achse der Schrittmotortreiberstufe, die Wegauösung der Messung in Schritten und die Geschwindigkeit in Schritten pro Sekun- 39 Kapitel 4. Software de anzugeben. In den Feldern von Fahre zu Wert (Stepper Control Parameter) kann ebenfalls wieder die Achse, der maximal zu fahrende Weg in Schritten und die Geschwindigkeit in Schritten pro Sekunde angegeben werden. (Die Funktion von Fahre zu Wert ist unter 2. Bedienelemente beschrieben). Die Taste RS232 Reset verwirft den Puerspeicher der seriellen Schnittstelle. Dies kann erforderlich sein, wenn das Prüfprogramm nicht mit der EXIT Taste beendet wurde. • Abb. 4.8 (b): Reiter Waage Hier sind alle Einstellungen für die serielle Kommunikation mit der Waage auszuwählen. Da die verwendete Waage KERN EW EG420-3NM verschiedene Baudraten und sonstige Einstellungen zulässt, können diese Parameter ebenfalls angepasst werden. Der RS232 Reset Taster ist im vorhergehenden Reiter Antrieb erklärt. • Abb. 4.8 (c): Reiter Temp. Hier ist die serielle Schnittstelle an dem das Thermometer (Dostmann P600) angeschlossen ist auszuwählen. Der RS232 Reset Taster ist im vorhergehenden Reiter Antrieb erklärt. Der Enable Taster erlaubt die Temperaturerfassung zu deaktivieren, für den Fall, dass kein Thermometer vorhanden sein sollte. Des Weiteren beinhaltet dieser Reiter eine grasche Anzeige über die letzten 100 Temperaturmesspunkte, die während der laufenden Prüfung aufgenommen wurden. Im Feld Temperatur Messwert kann der letzte Messpunkt direkt abgelesen werden. • Abb. 4.8 (d): Reiter DMM Das verwendete Digitalmultimeter (Fluke 45) wird über die GPIB Schnittstelle ausgelesen. Dazu muss im Feld GPIB Adresse die eingestellte Adresse des Messgerätes eingetragen werden. Der Enable Taster erlaubt die Messwertauslesung des Digitalmultimeters zu deaktivieren. Abbildung 4.9: LabVIEW Benutzeroberäche Bedienelemente Steuerung 40 Kapitel 4. Software Abb. 4.7 (2) Bedienelemente zur Steuerung des Prüfstandes: • • • • • • • Abb. 4.9 (a): Hauptsteuerelemente START: Verfährt die Hublineareinheit einen Schritt um die eingestellte Wegauösung in Prüfrichtung. Dies sollte eine messbare Kraftänderung auf der Waage zur Folge haben, welche wiederum ihren Status auf Messwert instabil ändert (siehe Abb. 4.9 (e) Indikator Stable leuchtet nicht). Falls der Taster Enable aus Abb. 4.9 (d) gesetzt ist, erfolgt der nächste Hubschritt in Prüfrichtung, sobald die Waage wieder stabil anzeigt (siehe Abb. 4.9 (e) Indikator Stable leuchtet). Die Messung läuft nun stetig weiter. EXIT: Beendet das laufende LabVIEW Programm des Prüfstandes und gibt alle Steuerund Messschnittstellen frei. NOTHALT: Sendet sofort einen Stopbefehl an die Stepper Control der Hublineareinheit. Abb. 4.9 (b): Prüfart Über die Schalterstellung wird zwischen Druckversuch und Zugversuch gewählt. Diese Option legt das Vorzeichen der Kraftmessung fest und bestimmt die Fahrtrichtung der Hublineareinheit in Prüfrichtung. Das heiÿt, bei einem Zugversuch fährt die Hublineareinheit nach oben und bei einem Druckversuch nach unten. Abb. 4.9 (c): Osetkorrektur Waage Sie bezieht sich auf den Wegfehler der Waage, der sich durch die aufgebrachte Kraft ergibt. Über das Dropdown-Menü kann für die drei verfügbaren Prüfarten (Zugversuch Stab, Druckversuch Taxel, Druckversuch Bahnen) die entsprechende Korrekturkurve ausgewählt werden. Mit dem Taster Enable wird die Osetkorrektur aktiviert. Abb. 4.9 (d): Enable Taster Der Taster Enable aktiviert die Überwachung der Statusanzeige der Waage. Sobald ein Flankenwechsel des Waagenstatus von instabil zu stabil erfolgt, werden alle aktuellen Messwerte aufgezeichnet und anschlieÿend die Hublineareinheit in Prüfrichtung um die angegebene Wegauösung verfahren. Abb. 4.9 (e): LED Indikatoren Stable: Zeigt den Status der Waage an (stabil ⇒ leuchtet, instabil ⇒ leuchtet nicht) Flanke: Leuchtet bei einer negativen Flankenerkennung des Waagenstatus auf. Stepper: Leuchtet nach Ausführung eines Motorschritts der Hublineareinheit während des Messablaufs auf. Abb. 4.9 (f): Fahre zu Wert Taster Ermöglicht am Ende einer Messung das Rückkehren der Hublineareinheit zu einer vorgegebenen Kraft (siehe 4.9 (h)). Abb. 4.9 (g): Manuelles Verfahren der Hublineareinheit Im Texteingabefeld kann eine Verfahrgeschwindigkeit in Schritten pro Sekunde angegeben werden, mit der die Hublineareinheit manuell über die beiden Taster nach oben oder nach unten, entsprechend der Pfeilrichtungen, verfahren werden kann. Dies ist meist am Anfang einer Messung erforderlich um z.B. bei einem Zugversuch die Einspannklemmen auf Einspannlänge des Prüings zusammenzufahren. 41 Kapitel 4. Software • • • Abb. 4.9 (h): Fahre zu Wert: Eingabefeld Hier ist die Eingabe des anzufahrenden Kraftwertes zu Abb. 4.9 (f) erforderlich. Abb. 4.9 (i): Ausgelesene Zeichenfolge Waage, DMM; Abbruchbedingung; Einspannlänge Anzeigefeld Waage: Zeigt den unbearbeiteten aktuellen Messwert der Digitalwaage die Messwerteinheit (G = Gramm) und den Status der Messung (S = Messwert stabil, U = Messwert instabil) an. Eingabefeld MAX WERT: Es ist der Maximalwert für die Messwerte der Waage anzugeben, bei welchem die Messung angehalten werden soll. Anzeigefeld DMM: Zeigt den unbearbeiteten ausgelesenen Wert des Digitalmultimeters an. Eingabefeld L0: Hier kann im Falle eines Zugversuches die Zugstablänge angegeben werden. Der Wert dient lediglich einer prozentualen Anzeige der Dehnung im Benutzeroberächenbereich 3. Abb. 4.9 (j): Weg Startpunkt setzen Der Taster setzt den Wegzähler für die aktuelle Position der Hublineareinheit auf Null. Dies kann am Anfang einer Messung erforderlich sein, falls z.B. eine vorhergehende Messung abgebrochen wurde. Abbildung 4.10: LabVIEW Benutzeroberäche grasche Anzeige und Auswertung Abb. 4.7 (3) Grasche Anzeige und Auswertung der laufenden Messung: • Abb. 4.10 (a): Grak: Elektrischer Widerstand zu aufgebrachter Kraft Stellt die bisher aufgezeichneten Messpunkte in einem X-Y-Diagramm dar. 42 Kapitel 4. Software • • • Abb. 4.10 (b): Grak: Aufgebrachte Kraft zu verfahrenem Weg Stellt die bisher aufgezeichneten Messpunkte in einem X-Y-Diagramm dar. Abb. 4.10 (c): Grak: Elektrischer Widerstand zu verfahrenem Weg Stellt die bisher aufgezeichneten Messpunkte in einem X-Y-Diagramm dar. Abb. 4.10 (d): Messwerte und Fortschrittsanzeige Die oberen drei Textfelder Kraft, Widerstand und Weg zeigen die aktuellen Messwerte des letzten Messpunktes. Das Feld Dehnung ist nur im Falle eines Zugversuches relevant und bezieht sich auf die aktuelle Längenänderung im Verhältnis zur angegebenen Einspannlänge L0, siehe Abb. 4.9 (i). In der unteren Zeile wird der aktuelle Messfortschritt grasch und numerisch angezeigt. Er bezieht sich auf den aktuellen Messwert der Waage im Verhältnis zu dem eingetragenen Wert im Feld MAX WERT, siehe Abb. 4.9 (i). Abb. 4.7 (4) Ausgabe des Messprotokolls (Speicherort und Kommentar): Im Eingabefeld Dateiname ist der Speicherort des von LabVIEW erzeugten Messprotokolls zu wählen. Im Eingabefeld Kommentar Messung können zusätzliche Angaben zu dem zu prüfenden Material gemacht werden. Diese werden im Messprotokoll mit abgelegt. Abb. 4.7 (5) Zusätzliche Anmerkungen zu Bedienelementen: Hier sind die Ausführungen der Fuÿnoten einzelner Bedienelemente zu nden. 43 Start Importieren der von Achsbeschriftungen hinzufügen LabVIEW erstellten Messprotokolldatei Einheitenkonvertier ung der zweiten Messwertspalte [g] → [N] Exportieren des Graphen in den Dateiformaten *.fig, *.png und *.pdf Daten der Spalte 2 und 3 in einen Graphen plotten Ende (9, 81 sm2 ÷ 1000) = 0, 00981 sm2 5 Messergebnisse 5.1 Aufnahme von Messdaten Für alle Widerstandsmessungen die mit dem Prüfstand dieser Arbeit und folglich mit dem Digitalmultimeter Fluke 45 durchgeführt werden, sind die Genauigkeitsangaben der jeweiligen Messbereiche nach Abb. 5.1 zu beachten. Für niederohmige, taktile Sensoren ist der Zuleitungswiderstand der Messleitungen ebenfalls zu beachten. Er kann mit der Relativ-Zusatzfunktion des Digitalmultimeters Fluke 45 abgeglichen werden. !"#$ ()""& "%!"!"&&!!$'$! )/ 0&!' *+,"#$,)) .!"#$% .%"&%!#$%"1'%"!2&3!4"%!&)%1!5%&&$'%"%%" 6"%!"#$5"%""&7% 6"&&!%$'$#$5"%""&7- !"#$3 &!$) 1'8 35 "&9:;9!#$"&"%!3"<!4"%!&2%&!%"'"4!&8%%"=',&!-0#$"&&&%&9>-9 Abbildung 5.1: Digitalmultimeter Fluke 45 Widerstandsmessung Genauigkeit [11] Ist bei einer Messung nicht nur die Kraft-/Widerstandskennlinie sondern auch der Weg von Bedeutung, kann dessen Genauigkeit über die in der LabVIEW -Benutzeroberäche implementierten Osetkompensation (Abb. 4.9 (c)) des Waagenweges für die verschiedenen Prüfarten verbessert werden, siehe Kap. 5.2. 45 Kapitel 5. Messergebnisse 5.2 Auswertung der Messergebnisse 5.2.1 Osetkompensation Feinwaage: Ermittlung der Kennlinie Die Verwendung einer Feinwaage als Kraftmesser hat den Nachteil, dass diese bei Belastung nachgibt und somit ein Wegfehler der Messung die Folge ist. Zur Kompensation dieses Fehlers muss die Kraft-/Wegkennlinie der Waage ermittelt werden. Die einfachste Variante um diese Kennlinie zu erhalten ist anstatt eines elastischen Prüfkörpers einen nicht elastischen zu verwenden. Somit konnte am Beispiel des Zugversuches nach Abb. 6.2 (ZV) mithilfe eines festen Stück Drahtes die Kraft-/Wegkennlinie der Waage nach Abb. 5.2 ermittelt werden. Anhand der Kennlinie konnte mit MATLAB eine Trendlinie und deren Formel als Polynom zweiten Grades erstellt werden. Polynom zweiten Grades der Trendlinie der Wegosetkorrektur der Feinwaage für Zugversuche: y[mm] = 2 · 10−6 mm g2 · x2 + 0, 001 mm g · x + 0, 0011mm (Variable x ist der Messwert der Waage in Gramm) Die Wegoset-Korrekturformeln für die beiden Druckversuche nach Abb. 6.2 (DV1 und DV2) wurden entsprechend dem Zugversuch ermittelt. 0.16 Kraft/Weg Trendlinie 0.14 0.12 Weg [mm] 0.1 0.08 0.06 0.04 0.02 0 0 0.2 0.4 0.6 0.8 Kraft [N] 1 1.2 Abbildung 5.2: MATLAB Plot Zugversuch Osetkurve Feinwaage 46 1.4 Kapitel 5. Messergebnisse 5.2.2 Osetkompensation Feinwaage: Überprüfung auf Funktion Die in Kap. 5.2.1 erarbeitete Formel der Osetwegkompensation der Feinwaage wird geprüft, indem der beschriebene Zugversuch mit einem nicht elastischen Prüfkörper mit deaktivierter und darauf mit aktivierter Osetwegkompensation durchgeführt wird. Einen direkten Vergleich der Kompensationswirkung zeigt die Abb. 5.3. Die detaillierte Ansicht der Zugversuchsauswertung mit aktivierter Kompensation ist in Abb. 5.4 zu sehen. 0.8 ne K m en ati n mit K m en ati n 0. Weg [mm] 0.6 0. 0.4 0. 0.2 0.1 0 0.1 0 0.2 0.4 0.6 0.8 Kraft [N] 1 1.2 1.4 Abbildung 5.3: MATLAB Plot Zugversuch Vergleich Wegkompensation Feinwaage 0.02 Weg [mm] 0.01 0.01 0.00 0 0.00 0.01 0 0.2 0.4 0.6 0.8 Kraft [N] 1 1.2 1.4 Abbildung 5.4: MATLAB Plot Zugversuch Wegkompensation Feinwaage Detailansicht 47 Kapitel 5. Messergebnisse Abbildung 5.6: MATLAB Plot Druckversuch taktile Sensorbahn rund Abbildung 5.7: MATLAB Plot Druckversuch taktile Sensorbahn dreieckig 49 • • • !"#$ Kapitel 6. Ergebnis Abbildung 6.2: Prüfhalterungen und ihre Anwendung Für die drei Prüfverfahren werden verschiedene Halterungen für die unterschiedlichen Prüinge benötigt. Die Einzelkomponenten dieser Halterungen sind in Abb. 6.2 zu sehen. Druckversuch von einzelnen Messtaxeln (siehe Abb. 6.2 DV1) Der Halter (7) wird in die Halterung der Linearschiene eingesetzt und über eine Madenschraube xiert. Anschlieÿend kann das Miniaturschnellspannfutter (4) auf den Halter (7) geschraubt und der Prüfstempel (5) im Spannfutter befestigt werden. Der Prüing wird unter dem Prüfstempel ausgerichtet. Druckversuch zweier Sensorbahnen (siehe Abb. 6.2 DV2) Der Halter (7) wird in die Halterung der Linearschiene eingesetzt und über eine Madenschraube xiert. Die zu prüfenden Sensorbahnen benden sich auf kontaktierten Trägerplatinen. Diese werden auf die Klebestreifen der Halter (1) und (2) geklebt. Halter (2) wird an Halter (7) angeschraubt und Halter (1) wird, mit den Leiterbahnen im rechten Winkel, darunter auf der Feinwaage platziert. Zugversuch von einzelnen Sensorbahnen (siehe Abb. 6.2 ZV) Der Klemmhalter (6) wird in die Halterung der Linearschiene eingesetzt und über eine Madenschraube angezogen. Das Miniaturschnellspannfutter (4) wird auf den Halter (3) geschraubt und mittig auf der Feinwaage platziert. Die zu prüfende Sensorbahn wird unten mit dem Schnellspannfutter (4) und oben über die Klemmhalterung (6) festgeklemmt. Zuletzt sind die Widerstandsmessklemmen wie in Abb. 6.2 (ZV) zu sehen anzubringen. 51 7 Diskussion Die Anforderungen an den Prüfstand aus Kap. 1.3 wurden wie folgt eingehalten: Sensorgröÿen Die maximale Sensorgröÿe ist anhand der Kuka Leichtbauroboter-Struktur, die mit taktilen Sensoren bestückt werden soll, vorgegeben. Sie hat die Abmessungen von 25cm · 15cm · 12cm (siehe Abb. G.1). Die Lineareinheiten der X und Y-Achse (KUT2005L-820-200-D3 [17, S. 461]) sind auf einen Verfahrweg von maximal 610mm und die Lineareinheit der Z-Achse (LX3005P-S2-T3056.4600-OPS2 [17, S. 401]) auf 467mm ausgelegt. Der gröÿere Verfahrweg wurde als zusätzlicher Bewegungsfreiraum für einen geplanten Zweiachsen-Rotationsprüfkopf, ähnlich der Rotationsachsen siehe Abb. 3.4, vorgesehen. Taxelanzahl 64 Die Verwendung der zwei VHF-Multiplexern HP 44472A in den Einschüben des modularen Schalt-/Steuerungs-Systems HP 3488A ermöglicht es, die 64 Sensormesspunkte über multiplexen der acht Sensorspalten und Sensorzeilen auf den Anschluss des Digitalmultimeters Fluke 45 zu führen, siehe Kap. 3.2.2 und Kap. 3.2.3. Die elektrische Kontaktierung des Sensorelementes zur Auswertung aller 64 Messpunkte ist somit möglich. Die selbstständige mechanische Positionierung des Sensorelements unter dem Prüfstempel mithilfe des geplanten Linearachsportals konnte aufgrund zu langer Lieferzeiten im Bearbeitungszeitraum dieser Arbeit nicht realisiert werden. Wegauösungsvermögen der statischen Anregung im 1/100mm Bereich Die Wegauösung in Prüfrichtung wird durch die Wegauösung der Z-Achse bestimmt. Diese Achse wird mit einem Schrittmotor mit 1,8 ◦ mechanischer Winkelauösung angetrieben, wobei die Schrittmotorkarte mikroschrittfähig ist und daher eine Winkelauösung von 0,11 ermöglicht. Daraus resultiert eine Wegauösung von 0,002mm. Mikroschrittbetrieb: 1/16 Schritt Spindelsteigung LX3005P: 5mm ⇒ 1 16 · 1, 8◦ = 0, 11◦ ⇒ 0, 11◦ ÷ 360◦ · 5mm = 0, 002mm (Z-Achse LX3005P-S2-T3056.4-600-OPS2 siehe [17, S. 401]) (Schrittmotor QMOT 6018-86-28-310 siehe [26]) Schutz gegenüber Störquellen (z.B. Elektromagnetische Störfelder) Eine Schirmungslösung der Messumgebung gegen elektromagnetische Störfelder wurde in Kap. 3.2.3 erarbeitet. Die technische Umsetzung konnte aufgrund von Lieferschwierigkeiten der Blechbiegekonstruktion im zeitlichen Rahmen der Bachelorarbeit nicht abgeschlossen werden. 52 Kapitel 7. Diskussion Aufzeichnung der Messbedingungen (z.B. Temperaturverlauf) Wie in Abb. 3.12(b) zu sehen ist, wurde ein Messfühler des Präzisionsthermometers DOSTMANN P600 (siehe Tab. 3.1 in der Nähe des Prüings angebracht. Die Temperaturerfassung (siehe Abb. 4.8(c)) ndet mit LabVIEW statt. Orientierung der Sensorächen im Raum (Sensor auf Roboterstruktur) Um in Zukunft die Prüfung von Sensorelementen auf ihrem Zielsystem, wie der Oberäche einer Kuka LBR Struktur (siehe Abb. G.1), zu erlauben, wurden die Lineareinheiten und die Konstruktion dermaÿen ausgelegt, dass ausreichend Platz und Verfahrweg für die zusätzliche Montage von zwei Rotationsachsen (siehe Abb. 3.4) vorhanden ist. Diese Erweiterung in Kombination mit einer Kraftmessdose ermöglicht die Prüfung von Sensorelementen auf dreidimensionalen Freiformächen, siehe Kap. 3.1.2. 53 8 Ausblick Damit der Prüfstand auch als alleinstehendes System ohne Personal Computer eingesetzt werden kann, wurden Kommunikationsschnittstellen zu einer aktuell am Institut entwickelten Auswerteelektronik für taktile Sensoren (siehe [23]) vorgesehen. Dadurch wäre die Realisierung einer autonomen Sensorkalibrier- und Prüfeinheit denkbar, welche zuerst alle Kraftkurven des jeweiligen taktilen Sensorelements aufzeichnet und diese als Kalibrierwerte der Auswerteelektronik zur Verfügung stellt. Des Weiteren wird das geplante Linearachsportal nicht nur für statische Sensortests Verwendung nden, sondern mit einer Erweiterung der Z-Achse um einen geeigneten Aktor für hohe Frequenzanregungen auch als dynamischer Teststand dienen. Aufgrund von Lieferschwierigkeiten konnte, wie in den vorrausgehenden Kapiteln beschrieben, nicht das komplette geplante System im Zeitraum der Bachelorarbeit realisiert werden. Die Fertigstellung des vollständigen Prüfstandes wird jedoch als Werkstudententätigkeit am Deutschen Zentrum für Luft- und Raumfahrt fortgesetzt. 54 Literaturverzeichnis [1] Bussysteme für die Messtechnik . In: Böge, W. und W. Plaÿmann (Hrsg.): Vieweg Handbuch Elektrotechnik , S. 797802. Vieweg+Teubner, 2007. 10.1007/978-3-8348-92171_65. [2] Allegro MicroSystems, Inc. , 115 Northeast Cuto, Box 15036 / Worcester, Massa- chusetts 01615-0036 (508) 853-5000: lator , 2007-2008. A4983 DMOS Microstepping Driver with Trans- http://www.allegromicro.com/Products/Motor-Driver-And-Interface- ICs/Bipolar-Stepper-Motor-Drivers/ /media/Files/Datasheets/A4983-Datasheet.ashx. [3] Allegro MicroSystems, Inc. ter, vers , Massachusetts 05 2012. 01615-0036 , 115 Northeast (508) 853-5000: Cuto, Box 15036 / Worces- Bipolar Stepper Motor Dri- http://www.allegromicro.com/en/Products/Motor-Driver-And-Interface- ICs/Bipolar-Stepper-Motor-Drivers.aspx. [4] [5] Atmel Corporation User Guide , 2003. BRUCE, M. F. , 2325 Orchard Parkway / San Jose, CA 95131 USA: AVR STK500 http://www.atmel.com/Images/doc1925.pdf. und D. C. SINCLAIR The relationship between tactile thresholds and histology in the human nger . : Journal of Neurology, Neurosurgery, and Psychiatry, 43:235242, 1980. [6] Dahiya, R. S. und M. Valle Tactile Sensing for Robotic Applications : . Sensors Peter- borough NH, December, 2008. [7] [8] [9] Doege, E. B.-A. Behrens Handbuch Umformtechnik: Grundlagen, Technologien, : Maschinen (VDI-Buch) (German Edition) . Egekvist, H. P. Bjerring , und Springer, 2007. L. Arendt-Nielsen Pain and mechanical injury of human skin following needle insertions . Eisele Pneumatics GmbH + Co. KG Germany: [10] und : European Journal of Pain, 3:4149, 1999. , Hermann-Hess-Straÿe 14-16 71332 Waiblingen Eisele Kunststoschläuche Katalogprogramm . EMIS GmbH , Zur Drehscheibe 4 92637 Weiden Germany: SMC-TR-1000-Handbuch-v1 . http://www.emisgmbh.de/antriebs/smc/smc-tr/SMC-TR-1000-Handbuch-v1.pdf. [11] Fluke Deutschland GmbH [12] HUG Industrietechnik und Arbeitssicherheit GmbH , In den Engematten 14, 79286 Glottertal: Multimeter mit Doppelanzeige Gebrauchsanleitung , 2 Au., 04 1989. gleis 7, D-84030 Ergolding: , Am FLUKE 45 Internationale Vergleichstabelle für Baustähle , Industrie06 2012. http://www.tabelle.info/baustahl.html. [13] John M. Vranish, Crofton; Pradeep K. Yadav, B. b. o. M. MAGNETO: INDUCTIVE SENSOR FOR PERFORMING TACTILE AND PROXIMITY SENSING . Techn. Ber., United States Patent, 08 1990. Patent Number: 4,950,987. [14] Lundström, R. Local vibrations - mechanical impedance of the human hand's glabrous skin. : Pergamon Press Ltd., 17:137144, 1987. 55 Literaturverzeichnis [15] [16] [17] Mayr, M. : Technische Mechanik: Anhang Tabellen Diagramme Formeln . In: Technische Mechanik: Statik-Kinematik-Kinetik-Schwingungen-Festigkeitslehre . Hanser Verlag, 2008. Mädler GmbH, Tränkestr. 6-8, 70597 Stuttgart: Mädler-Katalog 39 , 3 Au., 01 2012. MISUMI Europa GmbH , Katharina-Paulus-Str. 6 65824 Schwalbach am Taunus Ger- MiSUMi Band 1/2 Mechanische Komponenten für Sondermaschinenbau & Montageautomation , 2011-2012. many: [18] MISUMI Europa GmbH , Katharina-Paulus-Str. 6 65824 Schwalbach am Taunus Ger- MiSUMi Band 2/2 Mechanische Komponenten für Sondermaschinenbau & Montageautomation , 2011-2012. Pfeifer, C.: Entwurf und Konstruktion eines Kleinstmengenmischgeräts für Silikonelastomere . Diplomarbeit, Hochschule für angewandte Wissenschaften Augsburg, Deutsches many: [19] Zentrum für Luft- und Raumfahrt, 2010. [20] Reif, K. : Bussysteme . In: Reif, K. (Hrsg.): Batterien, Bordnetze und Vernetzung , S. 134207. Vieweg+Teubner, 2010. 10.1007/978-3-8348-9713-8_7. [21] Sack, L. Elektrische Antriebstechnik . In: Gevatter, H.-J. und U. Grünhaupt (Hrsg.): Handbuch der Mess- und Automatisierungstechnik in der Produktion , VDI-Buch, : S. 657692. Springer Berlin Heidelberg, 2006. 10.1007/3-540-34823-9_22. [22] SANYO DENKI GERMANY GmbH ny: , Frankfurter Str.92, D-65760 Eschborn, Germa- SANMOTION 2-PHASE STEPPING SYSTEMS F2 , 3 Au., 06 2012. CATALOG No. S0832B010 '12.1.IT. [23] Schneider, D. Unveröentlichtes Dokument, Erweiterung einer Auswerteelektronik für taktile Sensoren zum multimodalen Sensorsystem . Bachelorarbeit, Hochschule für ange: wandte Wissenschaften Augsburg, Deutsches Zentrum für Luft- und Raumfahrt, 2012. [24] [25] Schnös, F. Strohmayr, M. Bachelor thesis, Technische Universität München, Munich, 2011. : Articial Skin in Robotics . Doktorarbeit, Karlsruhe Institute of Tech- nology (KIT), 2012. submitted May 03, 2012. [26] TRINAMIC Motion Control GmbH & Co. KG Germany: [27] [28] , Waterloohain 5, 22769 Hamburg, QMOT QSH6018 MANUAL , 1.07 Au., 02 2012. Wettels, N. V. J. Santos R. S. Johansson Sensor Array . , , und G. E. Loeb Biomimetic Tactile : Advanced Robotics, 22(8):829849, 2008. Wolfsperger, H. : Elektromagnetische Schirmung: Theorie und Praxisbeispiele . Sprin- ger Verlag, 2008. [29] [30] www.mikrocontroller.net AVR-GCC-Tutorial , 01 2012. Zwick GmbH & Co. KG , Andreas Schwarz, Drausnickstr. 1a, 91052 Erlangen: , August-Nagel-Str. 11, D-89079 Ulm: Tisch-Prüfmaschinen Allround-Line , 05 2012. 56 Zwick Materialprüfung Anhang A Mechanik Formelsammlung Abbildung A.1: Biegefälle Tabelle Teil 1 [15, A14.1] 57 Anhang Abbildung A.2: Biegefälle Tabelle Teil 2 [15, A14.1] 58 Anhang Abbildung A.3: Flächenmomente 2. Grades [15, A7.1] 59 Anhang Abbildung A.4: Elastizitätsmodul E [15, A14.1] 60 Anhang B EMF Schirmungsblech technische Zeichnungen Abbildung B.1: EMF Schirmungsbelch Hauptrahmen 61 Anhang Abbildung B.2: EMF Schirmungsblech Rückseite 62 Anhang Abbildung B.3: EMF Schirmungsblech Deckel 63 Anhang C Quellcode Steuerungssoftware Stepper Control Nachfolgend nden sich die wesentlichen Abschnitte des in C verwirklichten Steuerungsprogramm mit ausführlicher Kommentierung. (Vollständiger Quellcode siehe Quellcode C.2) Quellcode C.1: Ausführliche Dokumentation Steuerungssoftware Stepper Control 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 // ...// <-- Markiert ausgelassene Programmabschnitte , die nicht zum // Verständnis des Hauptprogramms vonnöten sind . // ( Vollständiger Sourcecode siehe Anhang ) # define CYCLES_PER_S 31250 // ...// // # define perf_log # ifdef perf_log uint8_t perf_loop =0; uint32_t perf_count =0; # endif // 16000000/256/2 // ( clk ) /( prescaler ) /(2 Pegelwechsel = 1 Step ) // Performanceausgabe : Gibt einen der Zykluszeit direkt // proportionalen Wert aus . Sie dient somit der // Performanceüberprüfung während der Entwicklung // Die Variablen tcnt1_x /y /z speichern den Zeitpunkt , zudem die jeweilige Achse // den letzten Schritt ausführte , um damit die Zeitdifferenz bis zum nächsten // Schritt bestimmen zu können . ( siehe Codezeile 119) // Die Variablen offset_x / y/z werden für eine Zähleroffsetkorrektur nach einem // Zählerüberlauf benötigt . ( siehe Codezeile 168 ff .) volatile uint16_t tcnt1_x , tcnt1_y , tcnt1_z , offset_x = 0, offset_y = 0, offset_z = 0; /* INITIALIZE */ void port_init () { // ...//} void timer_init () { // ...//} void uart_init () { // ...//} // Voreinstellung der I/O - Register // Voreinstellung der Zählerregister // Voreinstellung der Uartschnittstelle void uart_putc ( unsigned char uart_char ){ // ...//} void uart_puts ( char * uart_string ) { // ...//} int main () { port_init () ; timer_init () ; uart_init () ; // --- BEGINN DES HAUPTPROGRAMMS --- sei () ; // Interrupts aktivieren OCR1A = 65535; // Wert ab dem der Zähler zurückgesetzt wird _delay_ms (10) ; // Ausgabe über Uart : Versionsnummer & Datum uart_puts (" UART Stepper Control V1 .1 (05.02.2012) \n"); _delay_ms (10) ; // Ausgabe über Uart : Bedienhinweise uart_puts (" Input : stepper (x ,y ,z) | steps (3200 steps / round )"); uart_puts (" | dir (0= ccw 1= cw ) | speed ( steps /s)\n"); struct stepper_motor { // Struct eines einzelnen Schrittmotors uint32_t steps ; uint8_t dir ; uint16_t speed ; }; 64 Anhang 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 struct axis { // Struct für ein Drei - Achs - System struct stepper_motor x_axis ; struct stepper_motor y_axis ; struct stepper_motor z_axis ; } coordinate_table = {{0 ,1 ,1} ,{0 ,1 ,1} ,{0 ,1 ,1}}; // Default Werte while (1) // --- HAUPTSCHLEIFE DES MIKROCONTROLLERS --{ if ( uart_str_complete ) // Aufruf wenn neue Benutzereingabe vorhanden { struct stepper_motor * stepper_motor_pt = 0; // Zeiger vom Typ Schrittmotor // wird nachfolgend einer // Schrittmotorachse zugeordnet // switch ( uart_string [0]) // { // case 'x ': stepper_motor_pt case 'y ': stepper_motor_pt case 'z ': stepper_motor_pt } Zuordnung Schrittmotor - Achse uart_string [0] entspricht dem ersten Zeichen der Benutzereingabe = & coordinate_table . x_axis ; break ; = & coordinate_table . y_axis ; break ; = & coordinate_table . z_axis ; break ; // Ordnet die restlichen Benutzereingaben , zu fahrende Schritte , Richtung // und Geschwindigkeit , den entsprechenden Variablen der Motorachsen zu . sscanf (( char *) uart_string , " %* s % lu % hhu %u", & stepper_motor_pt -> steps , & stepper_motor_pt -> dir , & stepper_motor_pt -> speed ); stepper_motor_pt -> steps *= 2; // // // // 2 Pegelwechsel = 1 Step Schrittanzahl wird verdoppelt , da ein Schritt aus einem high Pegel und einem low Pegel besteht stepper_motor_pt -> speed = CYCLES_PER_S / stepper_motor_pt -> speed ; // CYCLES_PER_S steht für die Anzahl der Inkrementierungen des // Zählers Timer1 pro Sekunde . // In stepper_motor_pt -> speed befindet sich die Benutzereingabe // der Geschwindigkeit in Schritte pro Sekunde . // // // // } Benötigt wird jedoch die Wartezeit zwischen zwei Motorschritten als Anzahl der Inkrementierungen des Zählers Timer1 . Folglich müssen die Anzahl der Timer1 Inkrementierungen pro Sekunde durch die gewünschten Schritte pro Sekunde dividiert werden . // ...// // --- ANSTEUERUNG DER X - ACHSE --// Wird ausgeführt , wenn delta Zählerstand // ( TCNT1 ( aktueller Zählerstand ) - tcnt1_x ( alter Zählerstand )) // gröÿer als die Wartezeit zwischen zwei Motorschritten ist . if (((( TCNT1 - tcnt1_x ) + offset_x ) > coordinate_table . x_axis . speed ) && coordinate_table . x_axis . steps ) { if ( coordinate_table . x_axis . dir ) // Schaltet den Richtungspin entsprechend { // der Benutzereingabe PORTA &=~(1 < < PA0 ); // Direction cw } else { PORTA |= (1 < < PA0 ); // Direction ccw } PORTA ^= (1 < < PA1 ); // Step PIN togglen coordinate_table . x_axis . steps - -; // Schrittezähler um eins verringern tcnt1_x = TCNT1 ; // aktuelle Zeit sichern um naechstes dt bilden zu können offset_x = 0; // Offset , falls vorhanden von Timerüberlauf , 65 Anhang 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 } // nun wieder zurücksetzen , da tcnt1_x nicht mehr // " ueber das Register übersteht " // --- ANSTEUERUNG DER Y - ACHSE --- ( vergleiche X - ACHSE ) if (((( TCNT1 - tcnt1_y ) + offset_y ) > coordinate_table . y_axis . speed ) && coordinate_table . y_axis . steps ) { if ( coordinate_table . y_axis . dir ){ PORTA &=~(1 < < PA2 ) ;} else { PORTA |= (1 < < PA2 ) ;} PORTA ^= (1 < < PA3 ); coordinate_table . y_axis . steps - -; tcnt1_y = TCNT1 ; offset_y = 0; } // --- ANSTEUERUNG DER Z - ACHSE --- ( vergleiche X - ACHSE ) if (((( TCNT1 - tcnt1_z ) + offset_z ) > coordinate_table . z_axis . speed ) && coordinate_table . z_axis . steps ) { if ( coordinate_table . z_axis . dir ){ PORTA &=~(1 < < PA4 ) ;} else { PORTA |= (1 < < PA4 ) ;} PORTA ^= (1 < < PA5 ); coordinate_table . z_axis . steps - -; tcnt1_z = TCNT1 ; offset_z = 0; } } } # ifdef perf_log // siehe oben Performanceausgabe if ( perf_loop == 1) { char string_temp [20]; ultoa ( perf_count , string_temp , 10) ; uart_puts ( string_temp ) ; uart_puts ("\n"); perf_loop = 2; perf_count = 0; } else if (! perf_loop ){ perf_count ++;} # endif ISR ( TIMER1_COMPA_vect ) // Interrupt - Service - Routine Zähler Timer1 überlauf { if ( tcnt1_x ){ offset_x = OCR1A - tcnt1_x ;} // Falls ein Zählerstand gespeichert if ( tcnt1_y ){ offset_y = OCR1A - tcnt1_y ;} // wurde , muss ein Offsetwert berechnet if ( tcnt1_z ){ offset_z = OCR1A - tcnt1_z ;} // werden . // OCR1A entspricht dem maximalen // Zählerstand des Timer1 Registers tcnt1_x = 0; // Zählerstandvariablen rücksetzen tcnt1_y = 0; tcnt1_z = 0; } # ifdef perf_log // siehe oben Performanceausgabe perf_loop = ! perf_loop ; # endif ISR ( USART_RXC_vect ){ // ...//} // Interrupt - Service - Routine Uart Empfangspuffer 66 Anhang Quellcode C.2: Steuerungssoftware Stepper Control vollständig 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 # include # include # include # include # include # include < avr / io .h > < stdio .h > < stdlib .h > < string .h > < util / delay .h > < avr / interrupt .h > # define BAUD 9600 UL # include < util / setbaud .h > # define UBRR_VAL (( F_CPU + BAUD *8) /( BAUD *16) -1) # define BAUD_REAL ( F_CPU /(16*( UBRR_VAL +1) )) # define BAUD_ERROR (( BAUD_REAL *1000) / BAUD ) // clever runden // Reale Baudrate // Fehler in Promille , 1000 = kein Fehler . # if (( BAUD_ERROR <990) || ( BAUD_ERROR >1010) ) # error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch ! # endif # define UART_MAXSTRLEN 30 # define CYCLES_PER_S 31250 // 16000000/256/2 // ( clk ) /( prescaler ) /(2 Pegelwechsel = 1 Step ) volatile uint8_t uart_str_complete = 0; // 1 .. String komplett empfangen volatile uint8_t uart_str_count = 0; volatile char uart_string [ UART_MAXSTRLEN + 1] = ""; // # define perf_log # ifdef perf_log uint8_t perf_loop =0; uint32_t perf_count =0; # endif // Performanceausgabe volatile uint16_t tcnt1_x , tcnt1_y , tcnt1_z , offset_x = 0, offset_y = 0, offset_z = 0; /* INITIALIZE */ void port_init () { DDRA |= 0 xff ; PORTA |= 0 x00 ; DDRB |= 0 xff ; PORTB |= 0 xff ; DDRD |= (1 < < PD1 ); DDRD &=~(1 < < PD0 ); } void timer_init () { /* TIMER */ TCCR1B |= (1 < < WGM12 ); TCCR1B |= (1 < < CS12 ); TIMSK |= (1 < < OCIE1A ) ; } // CTC Mode4 ( TOP = OCR1A ) // clk /256 // Interrupt Output Compare A Match void uart_init () { UBRRH = UBRR_VAL >> 8; UBRRL = UBRR_VAL & 0 xFF ; UCSRB |= (1 < < TXEN ) |(1 < < RXEN ) |(1 < < RXCIE ); 67 // UART TX & RX einschalten Anhang 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 } UCSRC = (1 < < URSEL ) |(1 < < UCSZ1 ) |(1 < < UCSZ0 ); void uart_putc ( unsigned char uart_char ) { while (!( UCSRA & (1 < < UDRE ))) { } UDR = uart_char ; } // Asynchron 8 N1 // warten bis Senden moeglich void uart_puts ( char * uart_string ) { while (* uart_string ) // so lange * uart_string != '\0 ' ( ungleich String - Ende ) { uart_putc (* uart_string ); uart_string ++; } } int main () { port_init () ; timer_init () ; uart_init () ; sei () ; OCR1A = 65535; _delay_ms (10) ; uart_puts (" UART Stepper Control V1 .1 (05.02.2012) \n"); _delay_ms (10) ; uart_puts (" Input : stepper (x ,y ,z) | steps (3200 steps / round ) | dir (0= ccw 1= cw ) | speed ( steps /s)\ n"); struct stepper_motor { uint32_t steps ; uint8_t dir ; uint16_t speed ; }; struct axis { struct stepper_motor x_axis ; struct stepper_motor y_axis ; struct stepper_motor z_axis ; } coordinate_table = {{0 ,1 ,1} ,{0 ,1 ,1} ,{0 ,1 ,1}}; while (1) { if ( uart_str_complete ) { struct stepper_motor * stepper_motor_pt = 0; switch ( uart_string [0]) // Zuordnung { case 'x ': stepper_motor_pt = break ; case 'y ': stepper_motor_pt = break ; case 'z ': stepper_motor_pt = break ; 68 Stepper - Achse & coordinate_table . x_axis ; & coordinate_table . y_axis ; & coordinate_table . z_axis ; Anhang } sscanf (( char *) uart_string , " %* s % lu % hhu %u", & stepper_motor_pt -> steps , & stepper_motor_pt -> dir , & stepper_motor_pt - > speed ); stepper_motor_pt -> steps *= 2; // 2 Pegelwechsel = 1 Step stepper_motor_pt -> speed = CYCLES_PER_S / stepper_motor_pt -> speed ; 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 uart_str_complete = 0; } char string_temp [20]; // DEBUG Delta t Step Toggle utoa ( stepper_motor_pt -> speed , string_temp , 10) ; uart_puts ( string_temp ) ; uart_puts ("\n"); if (((( TCNT1 - tcnt1_x ) + offset_x ) > coordinate_table . x_axis . speed ) && coordinate_table . x_axis . steps ) // CYCLES_PER_S = 7812 = 1 Step / s; stepper [0][0] <- noch Schritte ueber ? { if ( coordinate_table . x_axis . dir ){ PORTA &=~(1 < < PA0 ) ;} // Direction cw else { PORTA |= (1 < < PA0 ) ;} // Direction ccw PORTA ^= (1 < < PA1 ); // Step PIN togglen coordinate_table . x_axis . steps - -; // Uebrige Steps um eins verringern tcnt1_x = TCNT1 ; // aktuelle Zeit sichern um naechstes Delta t bilden zu koennen offset_x = 0; // Offset , falls vorhanden von Timerueberlauf , } // nun wieder zuruecksetzen , da tcnt1_x nicht mehr " ueber das Register geht " if (((( TCNT1 - tcnt1_y ) + offset_y ) > coordinate_table . y_axis . speed ) && coordinate_table . y_axis . steps ) { if ( coordinate_table . y_axis . dir ){ PORTA &=~(1 < < PA2 ) ;} else { PORTA |= (1 < < PA2 ) ;} PORTA ^= (1 < < PA3 ); coordinate_table . y_axis . steps - -; tcnt1_y = TCNT1 ; offset_y = 0; } if (((( TCNT1 - tcnt1_z ) + offset_z ) > coordinate_table . z_axis . speed ) && coordinate_table . z_axis . steps ) { if ( coordinate_table . z_axis . dir ){ PORTA &=~(1 < < PA4 ) ;} else { PORTA |= (1 < < PA4 ) ;} PORTA ^= (1 < < PA5 ); coordinate_table . z_axis . steps - -; tcnt1_z = TCNT1 ; offset_z = 0; } # ifdef perf_log if ( perf_loop == 1) { char string_temp [20]; ultoa ( perf_count , string_temp , 10) ; uart_puts ( string_temp ) ; uart_puts ("\ n "); perf_loop = 2; perf_count = 0; } else if (! perf_loop ) { perf_count ++; 69 Anhang 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 } # endif } ISR ( TIMER1_COMPA_vect ) { if ( tcnt1_x ){ offset_x = OCR1A - tcnt1_x ;} if ( tcnt1_y ){ offset_y = OCR1A - tcnt1_y ;} if ( tcnt1_z ){ offset_z = OCR1A - tcnt1_z ;} tcnt1_x = 0; tcnt1_y = 0; tcnt1_z = 0; } # ifdef perf_log perf_loop = ! perf_loop ; # endif ISR ( USART_RXC_vect ) { unsigned char nextChar ; 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 } } // Daten aus dem Puffer lesen nextChar = UDR ; if ( uart_str_complete == 0) // wenn uart_string gerade in Verwendung , neues Zeichen verwerfen { // Daten werden erst in uart_string geschrieben , wenn nicht String - Ende / max Zeichenlänge // erreicht ist / string gerade verarbeitet wird if ( nextChar != '\ n ' && nextChar != '\ r ' && uart_str_count < UART_MAXSTRLEN - 1) { uart_string [ uart_str_count ] = nextChar ; uart_str_count ++; } else { uart_string [ uart_str_count ] = '\0 '; uart_str_count = 0; uart_str_complete = 1; } } (USART Routine siehe [29]) 70 Anhang D Quellcode Matlabskript zur Messwertaufbereitung Quellcode D.1: Matlabskript Auswertung Zugversuch 1 2 3 4 5 6 % Einlesen der Messprotokolldatei " data . lvm ". % Daten in einer Zeile sind durch Tabulator getrennt ("\ t ") . % Die ersten 23 Zeilen sind Kopf des Messprotokolls . % -> Anfang der Messdaten in Zeile "24" Zeilenanfang "0". % Erzeugen der Matrix x. x = dlmread ( ' data . lvm ','\t ' ,24 ,0) 7 8 9 10 11 % Umrechnung in Einheit Newton % Multiplikation der zweiten Messspalte ( Datenreihe Waage [g ]) % mit [9 ,81 m/ s ^2 / 1000] x (: ,2) = x (: ,2) *0.00981 12 13 14 % Daten der Spalte "2" und "3" plotten . plot ( x (10: end ,2) ,x (10: end ,3) , ' LineWidth ' ,2) 15 16 17 18 % Achsbeschriftungen xlabel ( ' Force [N] ',' FontSize ' ,16) ylabel ( ' Resistance [\ Omega ] ' ,' FontSize ' ,16) 19 20 21 22 %( Optional ) Legende hinzufügen legend ( ' force / resistance ' ,' NorthEast ') set ( legend , ' FontSize ' ,16) 23 24 25 26 27 28 % Ablegen der Grafik in den drei % Dateiformaten *. fig , *. png und *. pdf . saveas ( gcf , ' Plot . fig ') saveas ( gcf , ' Plot . png ') saveas ( gcf , ' Plot . pdf ') Die Matlabskripte zur Auswertung von Druckversuchen sind analog dem Zugversuch aufgebaut. 71 Anhang E LabVIEW Blockschaltplan Funktionsgruppen Abbildung E.1: LabVIEW Blockschaltplan Ansteuerung Schrittmotor Messung Abbildung E.2: LabVIEW Blockschaltplan Ansteuerung Schrittmotor fahre zu Wert Abbildung E.3: LabVIEW Blockschaltplan Ansteuerung Schrittmotor fahre zu Wert 72 Anhang Abbildung E.4: LabVIEW Blockschaltplan Waage Wert auslesen Abbildung E.5: LabVIEW Blockschaltplan Digitalmultimeter Wert auslesen Abbildung E.6: LabVIEW Blockschaltplan Thermometer Wert auslesen 73 Anhang Abbildung E.7: LabVIEW Blockschaltplan Motorschritte in Weg umrechnen Abbildung E.8: LabVIEW Blockschaltplan Osetkorrektur / Dehnung 74 Anhang Abbildung E.9: LabVIEW Blockschaltplan Messwertanzeige Graphen, Messwertprotokoll erstellen 75 Anhang Abbildung E.10: LabVIEW Blockschaltplan Rücksetzen der seriellen Schnittstellen Abbildung E.11: LabVIEW Blockschaltplan Vorzeichen für Zug-/Druckversuch Abbildung E.12: LabVIEW Blockschaltplan Berechnung/Anzeige des Messfortschritts 76 Anhang Abbildung E.13: LabVIEW Blockschaltplan Schrittmotor manuelle Steuerung Abbildung E.14: LabVIEW Blockschaltplan Schleifen beenden 77 Eidesstattliche Erklärung Hiermit erkläre ich, dass ich die vorliegende Bachelorarbeit Konzeption und Aufbau eines Prüfstandes für taktile Sensoren selbständig erstellt und keine anderen als die angegebenen Hilfsmittel und Quellen verwendet habe. Die aus fremden Quellen (einschlieÿlich elektronischer Quellen) direkt oder indirekt übernommenen Gedanken sind als solche kenntlich gemacht worden. Die Arbeit ist in gleicher oder ähnlicher Form oder auszugsweise im Rahmen einer anderen Prüfung noch nicht vorgelegt worden. Oberpfaenhofen, den 13.06.2012 Christian Leupolz Sperrvermerk Die vorliegende Bachelorarbeit beinhaltet vertrauliche Informationen. Die Weitergabe des Inhaltes der Arbeit und eventuell beiliegender Zeichnungen und Daten im Gesamten oder in Teilen ist grundsätzlich untersagt. Es dürfen keinerlei Kopien oder Abschriften - auch nicht in digitaler Form - gefertigt werden. 82