Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: 3D-gedruckte Teile
- Schritt 2: Gleitlager
- Schritt 3: Mirco Servo und Verlängerungsarm
- Schritt 4: Schieber und drehbare Welle
- Schritt 5: Servogelenk
- Schritt 6: Servohalterung
- Schritt 7: Längsbewegung
- Schritt 8: Abdeckung
- Schritt 9: Arduino-Skizze (optional)
- Schritt 10: Über ein Programmierbeispiel hinaus (optional)
- Schritt 11: Referenzen
Video: Linear- und Drehantrieb - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
In diesem Instructable geht es darum, wie man einen Linearantrieb mit einer drehbaren Welle herstellt. Das heißt, Sie können ein Objekt vor- und zurückbewegen und gleichzeitig drehen. Es ist möglich, ein Objekt 45 mm (1,8 Zoll) vor und zurück zu bewegen und um 180 Grad zu drehen.
Die Kosten betragen etwa 50 US-Dollar. Alle Teile können entweder 3D-gedruckt oder in einem Baumarkt gekauft werden.
Bei den verwendeten Motoren handelt es sich um zwei handelsübliche Servomotoren. Neben dem günstigen Preis haben Servos eine nützliche Eigenschaft: Servos benötigen keine zusätzliche Steuerlogik. Falls Sie einen Arduino [1] und dessen Servo-Bibliothek [2] verwenden, ist das Schreiben eines Wertes zwischen 0 und 180 direkt die Position des Servomotors und in unserem Fall die Position des Aktuators. Ich kenne nur den Arduino, aber ich bin mir sicher, dass es auf anderen Plattformen auch sehr einfach ist, Servos und damit diesen Aktuator zu steuern.
Zum Bauen benötigen Sie eine stehende Bohrmaschine und einen 4,2 mm Metallbohrer. Sie werden M4-Muttern ausbohren, um Ihre Gleitlager zu sein.
Außerdem benötigen Sie einen guten Schraubstock und eine Schraubenmatrize, um ein M4-Gewinde an einer Metallstange zu schneiden. Zur Fixierung der Stäbe wird ein Gewindebohrer M4 benötigt.
Lieferungen
1 Standard-Servoturm Pro MG946R. Lieferung mit Servoarm, 4 M2-Befestigungsschrauben und 4 D3-Messingrümpfen
1 Micro Servo Tower Pro MG90S. Lieferung mit Servoarm und 2 Befestigungsschrauben
11 M2 x l10 mm Flachkopfschraube
4 M4 Unterlegscheibe
6 M4 Mutter
1 Sprengring d4 mm
1 Büroklammer d1 mm
1 Holzdübel d6 x l120
2 Stange aus Stahl oder Aluminium d4 x l166 mit Gewinde M4 x l15 an einem Ende
1 Stab aus Stahl oder Aluminium d4 x l14 mit Sprengringkerbe
1 Stab aus Stahl oder Aluminium d4 x l12
Legende: l:Länge in Millimeter, d:Durchmesser in Millimeter
Schritt 1: 3D-gedruckte Teile
Sie müssen entweder die links- oder rechtsseitigen Teile drucken. Die Bilder in diesem Instructable zeigen einen linksseitigen LnR-Aktuator (von vorne betrachtet befindet sich der Holzdübel auf der linken Seite).
Wenn Sie keinen 3D-Drucker haben, empfehle ich, nach einem 3D-Druckservice in der Nähe zu suchen.
Schritt 2: Gleitlager
Als Lager werden die M4 Muttern verwendet! Dazu bohren Sie die (M4/3,3 mm) Löcher mit dem 4,2 mm Metallbohrer aus. Drücken Sie die aufgebohrten M4-Muttern in die Öffnungen im Schieber.
Kleben Sie 2 M4-Unterlegscheiben auf den Schieber und die Schieberoberseite.
Schritt 3: Mirco Servo und Verlängerungsarm
Montieren Sie den Micro Servo auf den Schieber.
Auf der rechten Seite sehen Sie den Ausleger und die restlichen 2 M4 Muttern. Drücken Sie die aufgebohrten M4-Muttern in die Öffnungen des Auslegers.
Schritt 4: Schieber und drehbare Welle
Schieber, Ausleger und Schieberoberteil zusammenbauen. Verwenden Sie als Achse den kleinen 12 mm langen Metallstab.
Unten im Bild sehen Sie den Flansch, der am Micro Servo Arm befestigt ist.
In den Holzdübel (unten rechts im Bild) muss ein 1,5 mm Loch gebohrt werden, sonst bricht das Holz.
Schritt 5: Servogelenk
Bohren Sie ein 4,2 mm Loch in den Standard-Servoarm und fügen Sie eine Kerbe in den 14 mm Metallstab für den Sprengring ein.
Kleben Sie eine der Unterlegscheiben auf den Servoarm.
So stapeln Sie die Komponenten von oben nach unten:
1) Montieren Sie den Sprengring auf die Achse
2) Fügen Sie eine Unterlegscheibe hinzu
3) Halten Sie den Servoarm unter den Ausleger und drücken Sie die montierte Achse hindurch.
4) Geben Sie etwas Kleber auf den Fixierring und drücken Sie ihn von unten auf die Achse.
Das Bild ist nicht aktuell. Anstelle des zweiten Sprengrings wird der Befestigungsring angezeigt. Die Idee mit dem Fixierring ist eine Weiterentwicklung des ursprünglichen Designs.
Schritt 6: Servohalterung
Das Standard-Servo ist am Aktuator befestigt. Um das Servo durch die Öffnung zu führen, müssen Sie die untere Kappe entfernen, damit Sie das Kabel nach unten biegen können.
Die Befestigungsschrauben gehen zuerst in die Messrümpfe, dann durch die Löcher im Aktuator. Bohren Sie die Schrauben in die Befestigungsblöcke, die unter der LnR-Basis angebracht sind.
Schritt 7: Längsbewegung
Mit dem M4 Gewindebohrer schneiden Sie ein Gewinde in die 3,3 mm Löcher der Rückwand der LnR-Base.
Die Schieber bewegen sich auf den beiden Metallstangen. Diese werden durch die 4,2 mm Frontbohrungen der LnR-Base, dann durch die Gleitlager geschoben und mit dem M4-Gewinde in der Rückwand des Aktuators fixiert.
Schritt 8: Abdeckung
Das ist der LnR-Aktor!
Zur Fixierung des Micro Servo Kabels wird ein Teil einer Büroklammer verwendet. Haube auf den Antrieb montieren und fertig.
Schritt 9: Arduino-Skizze (optional)
Verbinden Sie zwei Potentiometer mit den Arduino-Eingängen A0 und A1. Die Signalstifte sind 7 für Dreh- und 8 für Längsbewegung.
Wichtig ist, dass Sie die 5 Volt vom Arduino für die Potentiometer nehmen und nicht vom externen 5 V Netzteil. Zum Antrieb der Servos muss ein externes Netzteil verwendet werden.
Schritt 10: Über ein Programmierbeispiel hinaus (optional)
So lösche ich systematische Fehler in der Software, die den LnR-Aktor steuert. Durch Eliminierung des Positionierfehlers durch mechanische Transformation und durch mechanisches Spiel ist eine Positioniergenauigkeit von 0,5 Millimeter in Längsrichtung und 1 Grad in Drehbewegung möglich.
Mechanische Transformation: Arduinos Map-Funktion [5] kann geschrieben werden als: f(x) = a + bx. Für den Demodatensatz [6] beträgt die maximale Abweichung 1,9 mm. Das bedeutet, dass die Position des Aktors irgendwann fast 2 Millimeter vom Messwert entfernt ist.
Bei einem Polynom vom Grad 3, f(x) = a + bx + cx^2 + dx^3, beträgt die maximale Abweichung für die Demodaten 0,3 Millimeter; 6 mal genauer. Um die Parameter a, b, c und d zu bestimmen, müssen Sie mindestens 5 Punkte messen. Der Demodatensatz hat mehr als 5 Messpunkte, aber 5 sind ausreichend.
Mechanisches Spiel: Durch das mechanische Spiel entsteht ein Positionsversatz, wenn Sie den Antrieb zuerst nach vorne und dann nach hinten oder im Uhrzeigersinn und dann gegen den Uhrzeigersinn bewegen. In Längsrichtung hat der Aktuator in den beiden Gelenken zwischen Servoarm und Läufer mechanisches Spiel. Für die Drehbewegung hat der Aktuator mechanisches Spiel zwischen Schieber und Wellen. Auch die Servomotoren haben selbst etwas mechanisches Spiel. Um das mechanische Spiel aufzuheben, gelten folgende Regeln: A) Beim Vorwärts- oder im Uhrzeigersinn lautet die Formel: f(x) = P(x) B) Beim Rückwärts- oder gegen den Uhrzeigersinn lautet die Formel: f(x) = P (x) + O(x)
P(x) und O(x) sind Polynome. O ist der Versatz, der aufgrund des mechanischen Spiels hinzugefügt wird. Um die Polynomparameter zu bestimmen, messen Sie 5 Punkte bei der Bewegung in eine Richtung und die gleichen 5 Punkte bei der Bewegung in die entgegengesetzte Richtung.
Wenn Sie planen, mehrere Servomotoren mit einem Arduino zu steuern und ich Sie davon überzeugt habe, eine Softwarekalibrierung mit Polynomen durchzuführen, werfen Sie einen Blick in meine prfServo Arduino-Bibliothek [4].
Für das Bleistiftmine-Laufwerksvideo wurde die prfServo-Bibliothek verwendet. Für jedes der vier Servos wurde eine 5-Punkt-Kalibrierung in beide Richtungen durchgeführt.
Andere systematische Fehler: Der Aktuator hat zusätzliche systematische Fehler: Reibung, Exzentrizität und die Auflösung der verwendeten Servobibliothek und Servomotoren.
Vielleicht, eher als Fun Fact, beträgt die Auflösung des Adafruit Servo Shield [3] 0,15 mm in Längsrichtung! Hier ist der Grund: Das Servoschild verwendet den PCA9685-Chip, um das PWM-Signal zu erzeugen. Der PCA9685 ist darauf ausgelegt PWM-Signale zwischen 0 und 100 % zu erzeugen und hat dafür 4096 Werte. Aber für ein Servo werden nur Werte von sagen wir 200 (880 μs) bis 500 (2215 μs) verwendet. 45 mm Nabe geteilt durch 300 ergibt 0,15 mm. Wenn Sie die Rotationsbewegung berechnen, ergibt 180º geteilt durch 300 Punkte 0,6º.
Schritt 11: Referenzen
[1] Arduino: https://www.arduino.cc/[2] Servobibliothek: https://www.arduino.cc/en/reference/servo[3] Adafruit ServoShield: https://www.adafruit. com/product/1411[4] prfServo-Bibliothek: https://github.com/mrstefangrimm/prfServo[5] Arduino-Map-Funktion:
[6] Beispieldatensatz:0 4765 42610 38815 35620 32525 30030 27635 25240 22445 194