- Erforderliche Komponenten
- Bau eines Roboterarms
- Schaltplan und Funktionserklärung:
- So bedienen Sie den Roboterarm:
In diesem Tutorial werden wir einen Arduino Uno-basierten Roboterarm aus einigen Pappen und Servomotoren entwerfen. Der gesamte Bauprozess wurde nachstehend ausführlich erläutert. Hier in diesem Projekt ist Arduino Uno so programmiert, dass Servomotoren gesteuert werden, die als Gelenke des Roboterarms dienen. Dieses Setup sieht auch wie ein Roboterkran aus, oder wir können ihn durch einige einfache Änderungen in einen Kran umwandeln. Dieses Projekt ist hilfreich für Anfänger, die lernen möchten, einen einfachen Roboter kostengünstig zu entwickeln, oder einfach nur die Arbeit mit Arduino- und Servomotoren erlernen möchten.
Dieser Arduino-Roboterarm kann mit vier daran angebrachten Potentiometern gesteuert werden. Jedes Potentiometer dient zur Steuerung jedes Servos. Sie können diese Servos bewegen, indem Sie die Töpfe drehen, um ein Objekt auszuwählen. Mit etwas Übung können Sie das Objekt einfach auswählen und von einem Ort zum anderen bewegen. Wir haben hier Servos mit geringem Drehmoment verwendet, aber Sie können leistungsstärkere Servos verwenden, um schwere Gegenstände aufzunehmen. Der gesamte Prozess wurde am Ende im Video gut demonstriert. Überprüfen Sie auch unsere anderen Robotikprojekte hier.
Erforderliche Komponenten
- Arduino Uno
- 1000uF Kondensator (4 Stück)
- 100nF Kondensator (4 Stück)
- Servomotor (SG 90 - vier Stück)
- 10K Topf - variabler Widerstand (4 Stück)
- Stromversorgung (5 V - vorzugsweise zwei)
Servomotor
Zuerst sprechen wir ein bisschen über Servomotoren. Servomotoren werden hauptsächlich verwendet, wenn eine genaue Wellenbewegung oder -position erforderlich ist. Diese werden für Hochgeschwindigkeitsanwendungen nicht vorgeschlagen. Servomotoren werden für niedrige Drehzahl, mittleres Drehmoment und genaue Positionsanwendung vorgeschlagen. Daher eignen sich diese Motoren am besten für die Konstruktion von Roboterarmen.
Servomotoren sind in verschiedenen Formen und Größen erhältlich. Wir werden kleine Servomotoren verwenden, hier verwenden wir vier SG90-Servos. Ein Servomotor hat hauptsächlich dort Drähte, einer für positive Spannung, ein anderer für Masse und der letzte für die Positionseinstellung. Das ROTE Kabel ist an die Stromversorgung angeschlossen, das schwarze Kabel ist an Masse angeschlossen und das GELBE Kabel ist an das Signal angeschlossen. In diesem Tutorial zur Steuerung des Servomotors mit Arduino erfahren Sie mehr darüber. In Arduino haben wir vordefinierte Bibliotheken zur Steuerung des Servos, so dass die Steuerung des Servos sehr einfach ist, was Sie zusammen mit diesem Tutorial lernen werden.
Bau eines Roboterarms
Nehmen Sie eine flache und stabile Oberfläche wie einen Tisch oder eine Hartkartonplatte. Als nächstes platzieren Sie einen Servomotor in der Mitte und kleben ihn fest. Stellen Sie sicher, dass der Rotationsgrad in dem in der Abbildung dargestellten Bereich liegt. Dieses Servo dient als Armbasis.
Legen Sie ein kleines Stück Pappe auf das erste Servo und legen Sie dann das zweite Servo auf dieses Stück Pappe und kleben Sie es fest. Die Servodrehung muss mit dem Diagramm übereinstimmen.
Nehmen Sie einige Pappen und schneiden Sie sie in 3 cm x 11 cm große Stücke. Stellen Sie sicher, dass das Stück nicht weich ist. Schneiden Sie an einem Ende ein rechteckiges Loch (lassen Sie 0,8 cm vom Boden entfernt) gerade genug, um ein anderes Servo aufzunehmen, und an einem anderen Ende das Servogetriebe mit Schrauben oder durch Kleben fest anbringen. Setzen Sie dann das dritte Servo in das erste Loch ein.
Schneiden Sie nun ein weiteres Pappstück mit den in der Abbildung unten gezeigten Längen und kleben Sie ein weiteres Zahnrad unten auf dieses Stück.
Kleben Sie nun das vierte und letzte Servo wie in der Abbildung gezeigt an den Rand des zweiten Teils.
Damit sehen zwei Teile zusammen aus.
Wenn wir dieses Setup an der Basis anbringen, sollte es so aussehen:
Es ist fast fertig. Wir müssen nur den Haken machen, um das Objekt wie eine Roboterhand zu greifen und zu pflücken . Schneiden Sie für den Haken zwei weitere Pappstücke mit den Längen 1 cm x 7 cm und 4 cm x 5 cm. Kleben Sie sie wie in der Abbildung gezeigt zusammen und kleben Sie das letzte Zahnrad ganz an die Kante.
Montieren Sie dieses Stück oben und damit haben wir unseren Roboterarm gebaut.
Damit wurde unser grundlegendes Roboterarmdesign fertiggestellt und so haben wir unseren kostengünstigen Roboterarm gebaut. Schließen Sie nun den Stromkreis gemäß Schaltplan im Steckbrett an.
Schaltplan und Funktionserklärung:
Die Schaltungsverbindung für den Arduino Uno Robotic Arm ist unten dargestellt.
Die Spannung an variablen Widerständen ist nicht vollständig linear. es wird laut sein. Um dieses Rauschen herauszufiltern, werden Kondensatoren über jedem Widerstand angeordnet, wie in der Abbildung gezeigt.
Jetzt werden wir die von diesem variablen Widerstand bereitgestellte Spannung (Spannung, die die Positionssteuerung darstellt) in ADC-Kanäle von Arduino einspeisen. Wir werden dafür vier ADC-Kanäle von UNO von A0 bis A3 verwenden. Nach der ADC-Initialisierung haben wir den digitalen Wert der Töpfe, die die vom Benutzer benötigte Position darstellen. Wir werden diesen Wert nehmen und ihn mit der Servoposition abgleichen.
Arduino hat sechs ADC-Kanäle. Wir haben vier für unseren Roboterarm verwendet. Der UNO-ADC hat eine Auflösung von 10 Bit, sodass die ganzzahligen Werte zwischen 0 und 1023 liegen (2 ^ 10 = 1024 Werte). Dies bedeutet, dass Eingangsspannungen zwischen 0 und 5 Volt auf ganzzahlige Werte zwischen 0 und 1023 abgebildet werden. Also für jede (5/1024 = 4,9 mV) pro Einheit. Weitere Informationen zum Abbilden der Spannungspegel mithilfe von ADC-Kanälen in Arduino finden Sie hier.
Damit die UNO ein analoges Signal in ein digitales Signal umwandeln kann, müssen wir den ADC-Kanal von Arduino Uno mit Hilfe der folgenden Funktionen verwenden:
1. analogRead (Pin); 2. analogReference (); 3. analogReadResolution (Bits);
Arduino ADC-Kanäle haben einen Standardreferenzwert von 5V. Dies bedeutet, dass wir für die ADC-Wandlung an jedem Eingangskanal eine maximale Eingangsspannung von 5 V angeben können. Da einige Sensoren Spannungen von 0 bis 2,5 V liefern, erhalten wir bei einer 5-V-Referenz eine geringere Genauigkeit, sodass wir eine Anweisung haben, mit der wir diesen Referenzwert ändern können. Zum Ändern des Referenzwerts haben wir also "analogReference ();"
Standardmäßig erhalten wir die maximale ADC-Auflösung der Karte von 10 Bit. Diese Auflösung kann mithilfe des Befehls ("analogReadResolution (bits);") geändert werden.
In unserer Roboter- Handschaltung haben wir diese Referenzspannung auf die Standardeinstellung belassen, damit wir den Wert vom ADC-Kanal lesen können, indem wir direkt die Funktion „analogRead (Pin);“ aufrufen. Hier steht „Pin“ für den Pin, an den wir beispielsweise das analoge Signal angeschlossen haben wir wollen "A0" lesen. Der Wert von ADC kann in einer Ganzzahl gespeichert werden als int SENSORVALUE0 = analogRead (A0); .
Jetzt reden lassen sie über die SERVO, hat das Arduino Uno ein Merkmal, das uns die Servoposition steuern kann nur durch den Grad Wert zu geben. Angenommen, das Servo soll 30 sein, wir können den Wert direkt im Programm darstellen. Die SERVO-Header- Datei ( Servo.h ) übernimmt intern alle Berechnungen des Tastverhältnisses.
#einschließen
Hier repräsentiert die erste Anweisung die Header-Datei zur Steuerung des SERVO MOTOR. Die zweite Anweisung nennt das Servo; Wir lassen es als servo0, da wir vier verwenden werden. Die dritte Anweisung gibt an, wo der Servosignalstift angeschlossen ist. Dies muss ein PWM-Pin sein. Hier verwenden wir PIN3 für das erste Servo. Die vierte Anweisung enthält Befehle zum Positionieren des Servomotors in Grad. Wenn 30 angegeben ist, dreht sich der Servomotor um 30 Grad.
Jetzt haben wir eine SG90-Servoposition von 0 bis 180 und die ADC-Werte liegen zwischen 0 und 1023. Wir werden eine spezielle Funktion verwenden, die beide Werte automatisch abgleichen.
sensorvalue0 = map (sensorvalue0, 0, 1023, 0, 180);
Diese Anweisung ordnet beide Werte automatisch zu und speichert das Ergebnis in der Ganzzahl 'servovalue0' .
So haben wir die Servos in unserem Robotic Arm-Projekt mit Arduino gesteuert. Überprüfen Sie den vollständigen Code unten.
So bedienen Sie den Roboterarm:
Dem Benutzer stehen vier Töpfe zur Verfügung. Durch Drehen dieser vier Töpfe stellen wir eine variable Spannung an den ADC-Kanälen von UNO bereit. Die digitalen Werte von Arduino werden also vom Benutzer gesteuert. Diese digitalen Werte werden abgebildet, um die Position des Servomotors anzupassen. Daher hat der Benutzer die Kontrolle über die Servoposition. Durch Drehen dieser Töpfe kann der Benutzer die Gelenke des Roboterarms bewegen und jedes Objekt aufnehmen oder greifen.