Inhaltsverzeichnis:
- Schritt 1: Theorie hinter Projekt
- Schritt 2: PCB entwerfen
- Schritt 3: PCB herstellen
- Schritt 4: Entwerfen des Arms
- Schritt 5: Drucken der Teile
- Schritt 6: Alles zusammenfügen
- Schritt 7: Arduino programmieren
- Schritt 8: Programmieren in Python
- Schritt 9: Liste der Teile
- Schritt 10: Abschließende Gedanken
Video: Roboterarm, gesteuert von Arduino und PC - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Roboterarme sind in der Industrie weit verbreitet. Ob für Montagearbeiten, Schweißen oder auch nur zum Andocken an die ISS (Internationale Raumstation), sie helfen dem Menschen bei der Arbeit oder ersetzen den Menschen vollständig. Arm, den ich gebaut habe, ist eine kleinere Darstellung des Roboterarms, der zum Bewegen von Objekten verwendet werden soll. Es wird von Arduino Pro Mini gesteuert, das bereits über eine integrierte Bibliothek zur Steuerung von Servos verfügt. Servos werden durch PWM (Pulse Width Modulation) gesteuert, was nicht schwer zu programmieren ist, aber diese Bibliothek macht es einfacher. Der Benutzer kann diese Servos durch Potentiometer steuern, die als Spannungsteiler dienen, oder über ein Programm auf dem PC, das 4 Schieberegler zur Steuerung von Servomotoren verwendet.
Für dieses Projekt musste ich meine benutzerdefinierte Leiterplatte entwerfen und herstellen, 3D-Modelle des Arms erstellen und Code schreiben, der alles steuert. Darüber hinaus habe ich ein zusätzliches Programm in Python codiert, das Signale an Arduino sendet, das es schafft, dieses Signal zu decodieren und die Servos in die vom Benutzer eingestellte Position zu bewegen.
Schritt 1: Theorie hinter Projekt
Arduino ist insofern großartig, als es eine kostenlose Bibliothek zum Arbeiten bietet. Für dieses Projekt habe ich die Bibliothek Servo.h verwendet, die die Steuerung von Servos so viel einfacher macht.
Der Servomotor wird durch PWM - Pulsweitenmodulation - gesteuert, was bedeutet, dass Sie zur Steuerung des Servos kurze Spannungsimpulse machen müssen. Der Servo kann die Länge dieses Signals decodieren und in eine bestimmte Position drehen. Und hier habe ich die bereits erwähnte Bibliothek verwendet. Ich musste die Länge des Signals nicht selbst berechnen, aber ich habe die Funktionen der Bibliothek verwendet, an die ich nur Parameter in Grad übergebe, und es erzeugt ein Signal.
Zur Steuerung von Servos habe ich Potentiometer verwendet, die als Spannungsteiler fungieren. Arduino-Boards haben mehrere Analog / Digital-Wandler, die ich für das Projekt verwendet habe. Grundsätzlich überwacht Arduino die Spannung am mittleren Pin des Potentiometers und wenn es sich auf eine Seite dreht, beträgt die Spannung 0 Volt (Wert = 0) und auf der anderen Seite 5 Volt (Wert = 1023). Dieser Wert wird dann von 0 - 1023 auf 0 - 180 skaliert und dann an die bereits erwähnte Funktion übergeben.
Ein weiteres Thema ist die serielle Kommunikation mit Arduino, die ich nur kurz behandeln werde. Grundsätzlich sendet das auf dem PC geschriebene Programm den vom Benutzer ausgewählten Wert, Arduino kann ihn decodieren und das Servo in die gegebene Position bewegen
Schritt 2: PCB entwerfen
Ich habe 2 PCBs entworfen - eine für die Hauptsteuerung, wo Arduino und Pins für Servos sind, und auf der zweiten sind Potentiometer. Grund für 2 PCBs ist, dass ich den Roboterarm aus sicherer Entfernung steuern wollte. Beide Stromkreise sind mit Kabeln der angegebenen Länge verbunden - in meinem Fall 80 cm.
Als Stromquelle habe ich einen externen Adapter gewählt, da die von mir verwendeten Servos viel mehr Strom verbrauchen, als Arduino liefern kann. Wie Sie sehen können, gibt es einige Kondensatoren, die ich noch nicht erwähnt habe. Sie sind Kondensatoren, die zur Filterung verwendet werden. Wie Sie jetzt wissen, wird der Servomotor durch kurze Impulse gesteuert. Diese Impulse können dazu führen, dass die Versorgungsspannung abfällt und Potentiometer, die zuvor einen Bereich von 0-5 Volt hatten, jetzt einen kleineren Bereich haben. Das bedeutet, dass sich die Spannung am mittleren Pin ändert und Arduino diesen Wert erhält und die Position des Servomotors ändert. Dies kann ewig so weitergehen und führt zu unerwünschten Schwingungen, die durch einige parallel zur Versorgung geschaltete Kondensatoren beseitigt werden können.
Schritt 3: PCB herstellen
Für die Herstellung von PCB empfehle ich Ihnen, dies zu lesen.
Ich habe die Methode Iron on Glossy Paper verwendet und es hat super geklappt.
Dann habe ich Teile auf die Platine gelötet. Sie können sehen, dass ich eine Arduino-Buchse verwendet habe, falls ich sie in Zukunft benötige.
Schritt 4: Entwerfen des Arms
Dies war keineswegs der schwierigste Teil dieses Projekts.
Das gesamte Setup besteht aus 8 Teilen, von denen 4 keine beweglichen Teile sind - eine Box für Potentiometer und eine Basis, in der sich Arduino befindet - und die anderen vier sind der Arm selbst. Ich werde nicht auf viele Details eingehen, außer dass das Design ziemlich intuitiv und in gewisser Weise einfach ist. Es ist so konzipiert, dass es zu meiner benutzerdefinierten Leiterplatte und zu meinen Servos passt, die ich in die Teileliste aufnehmen werde.
Schritt 5: Drucken der Teile
Teile wurden auf Prusa Drucker gedruckt. Einige Gesichter mussten etwas geschliffen und Löcher gebohrt werden. Auch die Stützpfeiler mussten entfernt werden.
Schritt 6: Alles zusammenfügen
In diesem Schritt, wie der Titel sagt, habe ich alles zusammengefügt.
Zuerst lötete ich Drähte an den Potentiometern und dann diese Drähte auf der Platine. Potentiometer passen gut zu Löchern und ich habe die Platine auf die Säulen geklebt, die auf der Unterseite der Box gedruckt waren. Sie können Löcher in die Platine und in die Box bohren, aber ich habe festgestellt, dass das Kleben mehr als genug ist. Dann schloss ich beide Teile der Box und befestigte sie mit 4 Schrauben, die in die von mir entworfenen Löcher passen.
Als nächsten Schritt habe ich ein Flachbandkabel gemacht, um beide Platinen zu verbinden.
In der Hauptbox habe ich Drähte vom VCC-Pin des Steckers zum Schalter und dann zu Vcc der Platine und von GND der Platine zu GND des Steckers gelötet. Dann habe ich den Stecker heiß verklebt und auf Säulen geklebt. Der Stecker passt direkt in das Loch, sodass kein Heißkleber erforderlich ist.
Dann befestigte ich mit Schrauben das untere Servo an der Unterseite der Box.
Danach habe ich das Oberteil der Box auf das Unterteil gesteckt und wie bei der Potentiometerbox mit 4 Schrauben befestigt.
Der nächste Teil war etwas knifflig, aber ich habe es geschafft, den Rest des Arms mit verschiedenen Muttern und Pads zusammenzusetzen und es war nicht so eng wie erwartet, weil ich einige Toleranzen zwischen den Teilen entworfen habe, so dass es einfacher ist, damit zu arbeiten.
Und als letzten Schritt habe ich etwas Klebeband auf den Boden der Kartons geklebt, weil sie sonst rutschen würden.
Schritt 7: Arduino programmieren
Ich habe bereits erwähnt, wie das Programm theoretisch hinter dem Projekt funktioniert, aber ich werde es noch weiter aufteilen.
Am Anfang müssen wir also einige Variablen definieren. Meistens wird es 4 mal kopiert, weil wir 4 Servos haben und es meiner Meinung nach unnötig ist, kompliziertere Logik zu machen, nur um das Programm etwas kürzer zu machen.
Als nächstes gibt es ein Void-Setup, bei dem Pins von Servos definiert werden.
Dann gibt es noch void loop - ein Teil des Programms, der endlos wiederholt. In diesem Teileprogramm wird der Wert vom Potentiometer skaliert und ausgegeben. Aber es gibt ein Problem, dass der Wert des Potentiometers ziemlich springt, also musste ich einen Filter hinzufügen, der den Durchschnitt der letzten 5 Werte bildet und dann die Ausgabe ausgibt. Dies verhindert ungewolltes Wackeln.
Der letzte Teil des Programms liest Daten von der seriellen Schnittstelle und entscheidet basierend auf den gesendeten Daten, was zu tun ist.
Um den Code vollständig zu verstehen, empfehle ich Ihnen, offizielle Arduino-Websites zu besuchen.
Schritt 8: Programmieren in Python
Dieser Teil dieses Projekts ist nicht notwendig, aber ich denke, dass es diesem Projekt nur mehr Wert verleiht.
Python bietet jede Menge Bibliotheken, die kostenlos verwendet werden können, aber in diesem Projekt verwende ich nur tkinter und serial. Tkinter wird für GUI (Graphical User Interface) verwendet und Serial wird, wie der Name schon sagt, für die serielle Kommunikation verwendet.
Dieser Code erstellt eine GUI mit 4 Schiebereglern mit einem Mindestwert von 0 und einem Höchstwert von 180. Es könnte ein Hinweis für Sie sein, dass es sich um Grad handelt und jeder Schieberegler so programmiert ist, dass er ein Servo steuert. Dieses Programm ist ziemlich einfach - es nimmt den Wert und sendet ihn an Arduino. Aber die Art und Weise, wie es gesendet wird, ist interessant. Wenn Sie den Wert des ersten Servos auf 123 Grad ändern möchten, wird er auf den Arduino-Wert 1123 gesendet. Die erste Zahl jeder gesendeten Zahl sagt aus, welches Servo gesteuert werden soll. Arduino hat Code, der dies decodieren und das rechte Servo bewegen kann.
Schritt 9: Liste der Teile
- Arduino Pro Mini 1 Stück
- Servo FS5106B 1 Stück
- Servo Futaba S3003 2 Stück
- Stiftleiste 2x5 1 Stück
- Stiftleiste 1x3 6 Stück
- Kondensator 220uF 3 Stück
- Micro Servo FS90 1 Stück
- Stecker AWP-10 2 Stück
- Stecker FC681492 1 Stück
- Schalter P-B100G1 1 Stück
- Steckdose 2x14 1 Stück
- TTL-232R-5v - Konverter 1 Stück
- Potentiometer B200K 4 Stück
- und viele weitere Schrauben, Pads und Muttern
Schritt 10: Abschließende Gedanken
Vielen Dank fürs Lesen und ich hoffe, dass ich Sie zumindest motiviert habe. Dies ist mein erstes größeres Projekt, das ich ganz alleine gemacht habe, ohne Sachen aus dem Internet und dem ersten instructables Post zu kopieren. Ich weiß, dass der Arm aufgerüstet werden könnte, aber ich bin damit vorerst zufrieden. Alle Teile und Quellcodes sind kostenlos, Sie können sie gerne verwenden und nach Belieben ändern. Wenn Sie Fragen haben, können Sie diese gerne im Kommentarbereich stellen. Sie können sich auch die Videos ansehen, sie sind nicht in guter Qualität, aber sie zeigen die Funktionalität des Projekts.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir
USStepper Roboterarm 4: 5 Schritte
UStepper Robot Arm 4: Dies ist die 4. Iteration meines Roboterarms, den ich als Anwendung für unser uStepper Stepper Control Board entwickelt habe. Da der Roboter über 3 Schrittmotoren und ein Servo zur Betätigung verfügt (in seiner Grundkonfiguration) ist er nicht auf uStepper beschränkt
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A
Roboterarm mit Zio-Modulen Teil 3: 4 Schritte
Roboterarm mit Zio-Modulen Teil 3: Dieser Blogbeitrag ist Teil der Zio Robotics-Serie. Einführung In unserem vorherigen Blog haben wir die Tutorials Teil 1 und 2 zur Steuerung eines Roboterarms mit Zio-Modulen veröffentlicht. Teil 1 konzentrierte sich hauptsächlich auf die automatische Steuerung der Klaue Ihres Roboterarms