Bauen Sie einen 5-Achs-Roboterarm mit Arduino und DynamixShield (18 / 19 schritt)


Schritt 18: Programm der Arm.

Hier finden Sie die Skizze, die den Roboterarm im Github Repository unter DynamixShield/Skizzen/Roboterarm steuert. Ich erkläre kurz die wichtigsten Teile der Skizze.

1. zuerst müssen Sie die DynamixSerial-Klasse aufnehmen. Diese Klasse ist, was Sie zur Kommunikation mit dem Dynamixel Servos verwenden.

#include

2. als nächstes haben wir einige Variablen, die Pins für den Joystick und Drucksensoren zuzuweisen und zu verfolgen die Servo-Bewegungen.

#define SERVO_COUNT 5

#define AXIS_COUNT 4

Diese konstanten wird sich nicht ändern. Sie werden verwendet, um Namen zu geben

an den Pins verwendet:

const Int x1Pin = A0;

const Int y1Pin = A1;

const Int x2Pin = A2;

const Int y2Pin = A3;

const Int PressurePin = A11;

Index des Arrays AxisPos, die steuert, Greifer öffnen/schließen

const Int GripperCloseIdx = 1;

const Int GripperOpenIdx = 3;

const Int GripperIdx = 4;

Int ServoPos [SERVO_COUNT];

Int ServoDir [SERVO_COUNT];

Int ServoAdd [SERVO_COUNT];

Int AxisID [AXIS_COUNT];

Int AxisPos [AXIS_COUNT];

Int GripPressure = 0;

3. dann erklären wir die DynamixelSerial-Klasse. Diese Klasse setzt voraus, dass es Serial1 für Mitteilungen an die Dynamixel Servos verwendet wird. Jedoch, wenn Sie einen seriellen Anschluss hier Hardware übergeben können Sie überschreiben. Dies ist die Software auf eigene Projekte verwendet werden kann, die nicht den DynamixShield verwenden.

DynamixelSerial Dynamixel;

(4) die nächste wichtigste Teil ist das Setup. Wir starten unsere Debuggen serieller Verbindung und dann beginnen die DynamixelSerial-Klasse. Der Standardwert ist maximal 1 Mbaud Kommunikation und die Pin, die es verwendet, um die Halbduplex-Dynamixel Protokoll Steuern wird basierend auf dem Brett, die du verwendest. So weiter eine Due es Pin 22 ist, aber es ist auf den Nullpunkt Pin 2. Allerdings haben Sie auch die Option zur Angabe dieser Parameter im Aufruf an die Begin-Methode überschreiben, was für kundenspezifische Projekte verwendet wird.

#ifdef ENABLE_DEBUG

Serial.Begin(57600);

während (!) Seriell);

Serial.println ("Start-Setup");

#endif

(Dynamixel.Begin); oder Dynamixel.begin (1000000, 22);

5. Setup hat dann einige Code zurücksetzen alle Servos auf ihre Standardposition für Bewegung bereit. Es wird auch alle Variablen auf ihren Standardzustand zurückgesetzt.

6. die wichtigsten Verarbeitungsschleife ist ziemlich einfach. Er fordert nur processJoysticks() und dann Verzögerungen 20 Millisekunden.

leere Schleife () {}

processJoysticks();

Verzögerung (20);

}

7. die Process-Joystick-Methode hat eine Schleife, die durchläuft jeder Joystick-Achse und liest den analogen Wert aus den Joystick.

void processJoysticks() {}

String ServoPosReport = "", ServoAddReport = "", AxisReport = "";

das analoge Wert zu lesen:

für (Int ich = 0; ich

AxisPos [i] = analogRead(axisID[i]);

8. es skaliert dann den Wert aus den Joystick, die zwischen 255 und 755 in einen Wert von-5 bis 5. Wenn der Wert größer als 1020 ist dann bedeutet dies, wir unten auf dem Joystick drängen, um die Greiferbacken zu schließen, so lassen wir die Process-Greifer-Methode damit umzugehen.

Wenn es größer als 1020 ist ist die Taste gedrückt wird.

Wenn (AxisPos [i] < 1020) {}

ServoAdd [i] = Karte (AxisPos [i], 255, 755, -5, 5);

}

Else {}

ServoAdd [i] = 0;

}

9. dann wir die Bewegung der Servos Position aufwerten.

Wenn ((ServoPos [i] + servoAdd[i]) > = 0 & & (ServoPos [i] + ServoAdd [i] < 1024)) {}

ServoPos [i] += (ServoDir [i] * servoAdd[i]);

}

10. dann hätten wir Bewegung auf dieser Achse setzen wir die neue Position des Servos.

Wenn (ServoAdd [i]! = 0) {}

Dynamixel.moveSpeed (i + 1, ServoPos [i], 150); Delay(10);

}

11. Schließlich nennt es ProcessGripper. Dass Methoden beginnt durch das analoge Signal für den Drucksensor zu lesen.

void ProcessGripper (String & ServoPosReport, String & ServoAddReport) {}

GripPressure = analogRead(pressurePin);

12. Herunterdrücken der rechten Joystick schließt die Girpper unten am linken Joystick drücken, öffnet sich. Die Methode prüft dies durch den Anblick, wenn die Achsenposition des engen oder offene Greifer 1023 entspricht. Dies ist der Wert vom Joystick zu lesen, wenn Sie nach unten darauf drängen. Wenn es ausfällt, dann setzen wir das Servo hinzufügen um plus oder minus 10 sein. Andernfalls wird null hinzugefügt.

Wenn (AxisPos [GripperCloseIdx] == 1023) {}

Wenn (GripPressure < 850) {}

ServoAdd [GripperIdx] =-10;

}

}

ElseIf (AxisPos [GripperOpenIdx] == 1023) {}

ServoAdd [GripperIdx] = 10;

}

Else {}

ServoAdd [GripperIdx] = 0;

}

13. dann setzen wir die Servoposition, solange es innerhalb von 0 und 512 bleibt. Der Greifer kann nicht mehr verschoben.

Wenn ((ServoPos [GripperIdx] + servoAdd[gripperIdx]) > = 0
& & (ServoPos [GripperIdx] + ServoAdd [GripperIdx] < = 512)) {}

ServoPos [GripperIdx] += (ServoDir [GripperIdx] * servoAdd[gripperIdx]);

}

14. schließlich, wenn wir die Position hinzugefügt müssen wir die neue Servoposition des Greifers festgelegt.

Wenn (ServoAdd [GripperIdx]! = 0) {}

Dynamixel.moveSpeed (GripperIdx + 1, ServoPos [GripperIdx], 150);

}

Und das war's. Es gibt einige andere Dinge in der Skizze, die ich hier nicht behandelt wurde, aber das ist vor allem für debugging-Zwecke. Sie können das Debuggen durch uncommenting die //#define ENABLE_DEBUG 1 Zeile am oberen aktivieren. Dies druckt, was, wie Sie die Skizze geschieht. Der Arduino IDE verwenden, um die Skizze in Ihren Mikrocontroller zu programmieren und dann laufen lässt unseren neuen Roboterarm!

In Verbindung stehende Artikel

BAUEN Sie IHR eigenes Insekt Roboter mit ARDUINO und SERVO

BAUEN Sie IHR eigenes Insekt Roboter mit ARDUINO und SERVO

Hey bin, ich wieder mit einem mehr Instructalble. Ich werde Ihnen beibringen, wie ein Insekt Roboter mit Arduino zu bauen und Servomotoren. Klingt cool, nicht wahr?. Was denken Sie über die Verwendung dieses Roboters? Aufgrund ihrer kompakten Größe,
Bauen Sie einen Remote aktivierten Sprinkler mit PiFace und Ubidots

Bauen Sie einen Remote aktivierten Sprinkler mit PiFace und Ubidots

Dies ist ein cooles Beispiel, das lehrt, wie man ein Raspberry Pi, PiFace und Ubidots verwenden, um Ihren Garten aus der Ferne zu bewässern. Sie werden Steuern ein Magnetventil aus der Ferne, um Ihre Pflanzen von jedem Ort aus Wasser nur mit Ihrem Ha
Bauen Sie einen sehr einfachen Schreibtisch mit nur einem Dremel (und einem Schraubendreher)

Bauen Sie einen sehr einfachen Schreibtisch mit nur einem Dremel (und einem Schraubendreher)

kann man einen Schreibtisch mit begrenzten Erfahrung und nur einen Dremel und einem Schraubendreher.  Ein Baumarkt sollte in der Lage, Ihr Holz zu schneiden.Ich wollte meinem Schreibtisch durch eine viel größere aus Holz zu ersetzen.  Ich habe fast k
Bauen Sie einen Meerschweinchen Käfig mit leicht zu reinigen! (Projekte mit Kindern)

Bauen Sie einen Meerschweinchen Käfig mit leicht zu reinigen! (Projekte mit Kindern)

Meine Kinder haben ihre drei Meerschweinchen zwischen ihren zwei Schlafzimmern und zwei Käfige aufgeteilt. Sie brauchten einen größeren Bereich und setzen sie zusammen machte Sinn, denn sie sehr soziale Tiere sind. Aber dieser Projekte wurde mehr übe
Bauen Sie eine winzige elektronische Tastatur mit LEGO und Faya-Nugget

Bauen Sie eine winzige elektronische Tastatur mit LEGO und Faya-Nugget

In meiner letzten Instructable ich gezeigt, wie mithilfe von Lego, ein Arduino Board und Faya-Nugget-Module, ein Fan zu bauen: http://goo.gl/brQ9tR,Dieses Mal werde ich Ihnen zeigen, wie, Faya-Nuggets mit einem winzigen elektronischen Keyboard erstel
Gewusst wie: verwenden Sie einen Vibrationssensor (schütteln Schalter) - Arduino Tutorial

Gewusst wie: verwenden Sie einen Vibrationssensor (schütteln Schalter) - Arduino Tutorial

In diesem Tutorial verwenden wir eine Vibration Sensor (oder Shake-Schalter), ein akustisches Signal machen aus einem Summer sound, während wir unser Steckbrett schütteln.Sehen Sie eine Demo-Video:Los geht's!Schritt 1: Was Sie benötigenFür dieses Tut
Hausgemachte Roboterarm mit Normteilen mit Arduino und eine Verarbeitung GUI

Hausgemachte Roboterarm mit Normteilen mit Arduino und eine Verarbeitung GUI

Ich vor kurzem im Ruhestand und war eines der Dinge, die ich mir selbst versprochen, dass wenn ich in Rente gehen, ich wollte all diese Projekte abgeschlossen, die ich herumlaufen in meinem Kopf, hatte seit ich ein Teenager war. Das ist etwa 50 Jahre
Hausgemachte 3-Achsen Roboterarm mit Arduino Uno gebaut

Hausgemachte 3-Achsen Roboterarm mit Arduino Uno gebaut

Hallo Jungs,Dies ist ein 3-Achsen Roboterarm mit Arduino Uno Karte gebaut, fand ich nichts, was ich als Arm verwenden können, so dass ich Kunststofflineale montiert mit Leim verwendet. Ich habe nicht genug Pins in die Arduino-Karte, so habe ich einen
Steuern Sie Ihr Tv, Dvd und Audio System mit Arduino und Android

Steuern Sie Ihr Tv, Dvd und Audio System mit Arduino und Android

Hallo alle, dies ist mein zweiter instructable und mein erster in englischer Sprache, also, sorry für die Fehler.Ich möchte dieses Projekt zu teilen, es geht darum wie Sie Ihren Fernseher, DVD und Ihrem Audio-System mit Arduino und eine app für Andro
Entwerfen Sie und bauen Sie einen Gegner aufladen. Machen Sie Ihr Boxsack-Training ein echtes Workout der Welt

Entwerfen Sie und bauen Sie einen Gegner aufladen. Machen Sie Ihr Boxsack-Training ein echtes Workout der Welt

Vom Pendel laden Gegner--die neue schwere TascheDieses Instructable bietet zahlreiche Fotos und endet mit einem Video demonstriert eine transformierende Boxsack Bewegung Gerät. Diese überzeugende Gerät Transformationen eine gemeinsame schwere Tasche,
Hexabot: Bauen Sie einen heavy-Duty sechsbeinigen Roboter!

Hexabot: Bauen Sie einen heavy-Duty sechsbeinigen Roboter!

Diese Instructable wird Ihnen zeigen, wie Hexabot, eine große sechsbeinigen Roboter-Plattform bauen, die in der Lage, die menschliche Passagiere! Der Roboter kann auch völlig autonom mit der Zugabe von ein paar Sensoren und ein wenig Reprogrammierung
Holen Sie sich von der Couch, mit Arduino, 3d gedruckte Gehäuse und programmiert mit Embrio

Holen Sie sich von der Couch, mit Arduino, 3d gedruckte Gehäuse und programmiert mit Embrio

Die Grundidee ist, etwas zu schaffen, die erkennen kann, wenn meine Hunde zu, auf der Couch bekommen, wenn ich nicht da bin und "ermutigen, aussteigen". Dies geschieht mit A Passive Ifrared Sensor und machen Geräusche, dass die Hunde nicht mögen
Wie erstelle ich einen Thermometer mit Arduino und LM35

Wie erstelle ich einen Thermometer mit Arduino und LM35

heute werde ich Ihnen zeigen, wie man einen Thermometer mit Arduino und LM35 Temperatursensor, LCD-Display auf ein Steckbrett zusammen mit Drähten verbunden. Es zeigt die Temperatur in Celsius und Fahrenheit.Andro-WurzelSchritt 1: Anforderungen:- Die
Wie erstelle ich einen elektronischen Würfel mit ARDUINO

Wie erstelle ich einen elektronischen Würfel mit ARDUINO

Hey Jungs sind wir wieder mit einem anderen coolen Arduino Projekt für Sie. In dieser Instructable zeige ich Ihnen wie erstelle ich einen elektronischen Würfel mit Arduino. Ich weiß, es wird Ihnen gefallen. Beobachten Sie das Video.Schritt 1: Kompone