Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

bauteile:dynamixel_servos

Dies ist eine alte Version des Dokuments!




Dynamixel-Servos

Die Dynamixel-Servos sind eine Kette aus mehreren (im Labor: drei) veknüpften Servo-Motoren. Damit kann man z.B. Bewegungen realisieren, die dennen eines Armes ähneln. Die Servos brauchen einen Treiber; Im Labor gibt es dafür den CDSXX-Controller.

Eine Übersicht darüber, wie man die Servos anschließt, kann man aus diesem Projekt bekommen. Mit der DynamixelSoftSerial-Bibliothek kann man die Motoren von Arduino ansteuern. Leider nutzt diese Bibliothek eine veraltete Version einer anderen Arduino-Bibliothek, SoftwareSerial. Um dieses Problem zu beheben, müsst ihr:
* Den Code aus der SoftwareSerial-Bibliothek (die .h- und die .cpp-Datei) in den Ordner mit der DynamixelSoftSerial-Bibliothek kopieren
* Die Methoden void setTX(uint8_t transmitPin) und void setRX(uint8_t receivePin) in den Bereich „public“ verschieben
* Überall statt „SoftwareSerial“ eine neue Klassenname vergeben, z.B. „MySoftwareSerial“ (sonst überschneiden sich die Namen mit der aktuellen Bibliothek)

Alternativ könnt ihr diese bereits modifizierte Version der DynamixelSoftSerial-Bibliothek hier herunterladen:
dynamixelsoftserial.zip

Wenn ihr mit Arduino Mega arbeitet, müsst ihr drauf achten, dass nur bestimmte Pins für SoftwareSerial dort geeignet sind. Deswegen müsst ihr in der Datei in der Zeile extern MySoftwareSerial SoftSerial(2,3); die Pin-Nummer anpassen, z.B. auf extern MySoftwareSerial SoftSerial(10,11);. Die TX- und RX-Pins des Servo-Controllers sollen trotzdem mit den Pins 2 (RX) und 3 (TX) verbunden werden.

Der Code kann dann z.B. so aussehen:

#include <DynamixelSoftSerial.h>
#include <MySoftwareSerial.h>
 
void setup() {
  Dynamixel.begin(19200, 2, 3, 4);
}
 
void loop() {
  Dynamixel.moveSpeed(1, 500, 100);       // Move Servo 1 to position 500
  Dynamixel.moveSpeed(2, 400, 100);       // Move Servo 2 to position 400
  Dynamixel.moveSpeed(3, 950, 100);       // Move Servo 2 to position 950
}
bauteile/dynamixel_servos.1513875201.txt.gz · Zuletzt geändert: 2017/12/21 17:53 von d.golovko