Inhaltsverzeichnis:

Roboterarm, gesteuert von Arduino und PC - Gunook
Roboterarm, gesteuert von Arduino und PC - Gunook

Video: Roboterarm, gesteuert von Arduino und PC - Gunook

Video: Roboterarm, gesteuert von Arduino und PC - Gunook
Video: Xiao R DIY GFS WiFi Wireless Video Control Roboterfahrzeug - Arduino UNO by Bangood 2024, Juli
Anonim
Image
Image
Theorie hinter Projekt
Theorie hinter Projekt

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

Theorie hinter Projekt
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

PCB entwerfen
PCB entwerfen
PCB entwerfen
PCB entwerfen
PCB entwerfen
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

PCB herstellen
PCB herstellen
PCB herstellen
PCB herstellen
PCB herstellen
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

Den Arm gestalten
Den Arm gestalten
Den Arm gestalten
Den Arm gestalten
Den Arm gestalten
Den Arm gestalten

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

Drucken der Teile
Drucken der Teile
Drucken der Teile
Drucken der Teile
Drucken der Teile
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

Alles zusammenfügen
Alles zusammenfügen
Alles zusammenfügen
Alles zusammenfügen
Alles zusammenfügen
Alles zusammenfügen
Alles zusammenfügen
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

Arduino programmieren
Arduino programmieren
Arduino programmieren
Arduino programmieren
Arduino programmieren
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

Programmieren in Python
Programmieren in Python
Programmieren in Python
Programmieren in Python
Programmieren in Python
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

Liste der Teile
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: