Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
bauteile:dynamixel_servos [2017/12/21 17:52] d.golovko |
bauteile:dynamixel_servos [2021/12/14 11:52] (aktuell) luismeixner |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
=====Dynamixel-Servos===== | =====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. | + | 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 AX-12 CDS 55xx-Controller. |
- | Eine Übersicht darüber, wie man die Servos anschließt, kann man aus [[abgeschlossene_projekte:drinkbot|diesem Projekt]] bekommen. Mit der [[https://sourceforge.net/projects/dynamixelforarduino/files/?source=navbar|DynamixelSoftSerial-Bibliothek]] kann man die Motoren von Arduino ansteuern. Leider nutzt diese Bibliothek eine veraltete Version einer anderen Arduino-Bibliothek, [[https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/libraries/SoftwareSerial/src | + | Eine Übersicht darüber, wie man die Servos anschließt, kann man aus [[abgeschlossene_projekte:drinkbot|diesem Projekt]] bekommen. Mit der [[https://sourceforge.net/projects/dynamixelforarduino/files/?source=navbar|DynamixelSoftSerial-Bibliothek]] kann man die Motoren von Arduino ansteuern. Mit Arduino Nano läuft es so, wie bei drinkbot beschrieben. Im Fall von Arduino Mega: Leider nutzt diese Bibliothek eine veraltete Version einer anderen Arduino-Bibliothek, [[https://github.com/arduino/Arduino/tree/master/hardware/arduino/avr/libraries/SoftwareSerial/src |
|SoftwareSerial]]. Um dieses Problem zu beheben, müsst ihr:\\ | |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\\ | * 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\\ | * 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)\\ | + | * Überall statt "SoftwareSerial" den neuen Klassenname angeben, z.B. "MySoftwareSerial" (sonst überschneiden sich die Namen mit der aktuell veralteten Version der Bibliothek)\\ |
Zeile 20: | Zeile 20: | ||
#include <DynamixelSoftSerial.h> | #include <DynamixelSoftSerial.h> | ||
#include <MySoftwareSerial.h> | #include <MySoftwareSerial.h> | ||
- | |||
void setup() { | void setup() { | ||
Dynamixel.begin(19200, 2, 3, 4); | Dynamixel.begin(19200, 2, 3, 4); | ||
- | | ||
} | } | ||
Zeile 31: | Zeile 29: | ||
Dynamixel.moveSpeed(2, 400, 100); // Move Servo 2 to position 400 | Dynamixel.moveSpeed(2, 400, 100); // Move Servo 2 to position 400 | ||
Dynamixel.moveSpeed(3, 950, 100); // Move Servo 2 to position 950 | Dynamixel.moveSpeed(3, 950, 100); // Move Servo 2 to position 950 | ||
- | |||
} | } | ||
</code> | </code> |