Please click here for visiting the quick start guide in English
Das Dynamixel Servo Controllerboard (DSC) ist ein Raspberry Pi kompatibles Expansion Board, um Servomotoren des Herstellers ROBOTIS anzusteuern und auszulesen. Diese Version ist ausgelegt, um mit Dynamixel Servomotoren folgender Serien zu interagieren
- AX / MX / X Serie
- Half Duplex UART Schnittstelle
Folgende Aspekte waren uns bei der Entwicklung besonders wichtig!
Wir haben uns für die Entwicklung des DSC's entschieden, da das Raspberry Pi von ROS.org (Willow Garage) als sehr gut geeignetes Entwicklungsboard empfohlen wird, jedoch kein passendes Expansion Board am Markt erhältlich war. Selbstverständlich sind bereits Controllerboards erhältlich, die man in Kombination mit dem Raspberry Pi verwenden kann, was jedoch durch die beiden unterscheidlichen Signalpegel von 3,3V und 5V zusätzliche Hardware erfordert.
In unserem Fall kann das DSC bequem auf die GPIO leiste gesteckt werden, und das integrierte Step Down Modul versorgt sowohl das RPi als auch das uC mit der benötigten Spannung. Zusätzlich dazu kann ebenfalls auf einen externen Logic Converter verzichtet werden.
Funktionsumfang
Das Dynamixel Servo Controllerboard bietet folgende Funktionen
- Ansteuerung der ROBOTIS DYNAMIXEL Servomotoren ( AX / MX / X Serie )
- Auslesefunktion des gewünschten Servomotors ( Temperatur, Position, anliegende Spannung )
- RPi GPIO
- uC Digital & Analog Ports
- uC & RPi I2C
- Erweiterung / Ansteuerung 6 x PWM Servos
Das DSC kann ebenfalls als Stand alone Device verwendet werden bzw. kann durch hinzunahme eines FTDI Converters ebenfalls mittels USB Schnittstelle betrieben, werden. Einen kompatiblen Adapter kann bei Bestellung optional hinzugefügt werden.
Erstinbetriebnahme unter der Arduino IDE
Treiberinstallation
Wir empfehlen die Verwendung eines USBASP Programmers zum Upload des Codes. Die Treiberinstalltion unter Windows kann komfortabel mittels Zadig ausgeführt werden. Bei Verwendung eines Linux oder Mac OS sind keine zusätzlichen Treiber von nöten.
MYBOTSHOP DSC in Arduino IDE hinzufügen
Wir stellen sowohl den Bootloader für das Atmega644P uC, als auch Bibliotheken und Programmbeispiele zur Verfügung, welche HIER heruntergeladen werden können. Die ZIP Datei muss nachfolgend entpackt, und der hardware sowie libraries Ordner unter C:/Dokumente/Arduino eingefügt werden. Nach Neustart der Arduino IDE sollte nun das DSC, als auch dazugehörige Beispiele auffindbar sein.
Hochladen des Codes
Der Upload des Codes kann leider nicht über den dazugehörige Button erfolgen, sondern muss nach Auswahl des USBASP als Programmers, unter Sketch - Hochladen mit Programmer gestartet werden.
Softwareumfang
Zur Ansteurung der Dynamixel Servomotoren behelfen wir uns der Bibliothek von Savage Electronics, welche einen umfangreichen Funktionsumfang bereitstellt, sowie sehr einfach in seinen Code zu implementieren ist. Diese Bibliothek mit Anwendungsbeispielen kann HIER heruntergeladen werden. Wie diese Dateien in der Arduino IDE eingebunden werden, wird im darüberliegenden Abschnitt erläutert.
Position, Temperatur und anliegende Spannung auslesen
Die Dynamixel Servomotoren verfügen über einen Internen Encoder, sowie Sensorik um eine hohe Positioniergenauigkeit sowie Zuverlässigkeit gewährleisten zu können. Die gewünschten Paramter lassen sich mittels zweiter UART (Dynamixel.read[...];) Schnittstelle auslesen und über die erste (Serial.print([...]); ausgeben. Dies kann wie nachfolgend gezeigt bereits mit wenigen Codezeilen umgesetzt werden:
#include DynamixelSerial1.hint Temperature,Voltage,Position;
void setup(){
Serial.begin(9600); // Begin Serial Comunication
Dynamixel.begin(1000000,0); // Inicialize the servo at 1Mbps (Standard) and Pin Control 0
delay(1000);
}
void loop(){
Temperature = Dynamixel.readTemperature(1); // Request and Print the Temperature
Voltage = Dynamixel.readVoltage(1); // Request and Print the Voltage
Position = Dynamixel.readPosition(1); // Request and Print the Position
Serial.print(" *** Temperature: "); // Print the variables in the Serial Monitor
Serial.print(Temperature);
Serial.print(" Celcius Voltage: ");
Serial.print(Voltage);
Serial.print(" Volts Position: ");
Serial.print(Position);
Serial.println(" of 1023 resolution");
delay(1000);
}
Dynamixel Servomotoren ansteuern
Um die Dynamixel Servomotoren anzusteuern, sind im Vergleich zur Auslesefunktion, noch weniger Codezeilen nötig. Wie im darüberliegenden Beispiel gezeigt, muss zunächst der entsprechende Servomotor mit seiner eindeutigen ID und Baudrate definiert werden, und kann nachfolgend sofort in der Hauptscheleife angesteuert werden.
void loop(){ Dynamixel.move(1,random(200,800)); // Move Servomotor with ID 1 radomly from 200 to 800
Dynamixel.setEndless(1,ON); //Endless rotation
Dynamixel.turn(1,RIGTH,1000);
Dynamixel.ledStatus(1,ON); //Define status LED
Dynamixel.moveRW(1,512);
delay(1000);
}
Der Übersicht halber wurden die Beispiele teilweise gekürzt. Nach Einbindung des DSC in der Arduino IDE sind selbstverständlich auch vollständige Codebeispiele unter Datei - Beispiele einsehbar.
Verwendung unter ROS
Bei der Konzeptionierung des DSC war uns ebenfalls überaus wichtig, dass auch die Implemtierung und Verwendung in ROS (Robot Operating System) so benutzerfreundlich wie nur möglich gestaltet wird. Auf Grund dessen haben wir uns für ein AT644P uC entschieden, welche über zwei UART Schnittstellen verfügt. Die erste wird zur Kommunikation zwischen uC und RPi verwendet, und die zweite zur Ansteuerung der Dynamixel Servomotoren.
Überprüfung der Betriebsspannung für das Raspberry Pi
Bei erstmaliger Inbetriebnahme des DSC in Kombination mit dem Raspberry Pi, legen wir unseren Kunden nahe, die voreingstellte Spannung zu überprüfen. Durch Vibrationen resultierend aus dem Transport könnte es möglich sein, dass sich die voreingestellte Betriebsspannung für das Raspberry Pi verstellt hat. Die Nachjustierung ist sehr einfach und erfolgt wie nachfolgend abgebildet. DAS DSC WÄHRENDDESSEN NICHT AUF DEM RASPBERRY PI GESTECKT LASSEN!
Bei sehr leistungsstarken Prozessen / Zusatzmodulen empfehlen wir das anbringen einer externen Kühlung auf dem Step-Down Modul. Abhängig von der Temperaturentwicklung kann entweder zu einer passiven Kühlung (Rippenkühlkörper) oder einer aktiven Kühlung (Kleiner Lüfter) zurückgegriffen werden.
Inbetriebnahme
Eine detaillierte Anleitung, welche Vorbereitungen getroffen werden müssen, und wie mit dem ROS Node umgegangen wird, kann in unserem entsprechendem Artikel nachgelesen werden - Dafür bitte HIER klicken, oder folgenden Link in den Browser eingeben.https://www.mybotshop.de/MYBOTSHOP-DSC-ROS-NODE
Schaltplan & Boardlayout
Board Layout
Gefahrenhinweis & Haftungsausschluss
ACHTUNG! Falsche Handhabung des Dynamixel Servo Controllerboards kann irreparable Schäden am Produkt, und allen angeschlossenen Gerätschaften hervorrufen!
HINWEIS! Vor dem Anschluss einer Spannungsquelle bitte alle getätigten Verkabelungen nochmals überprüfen. Änderungen jeglicher Art sind im spannungslosen Zustand durchzuführen.
GEFAHR! Bei unsachgemäßer Handhabung wird weder für Sach.- noch Personenschäden Haftung übernommen. Dieses Controllerboard dient lediglich der Entwicklung eigener Applikationen, und ist somit nur von geschulten Personen zu verwenden.
Bei Anmerkungen, Verbesserungsvorschlägen oder allgemeinen Fragen stehen wir Ihnen selbstverständlich gerne jederzeit zur Verfügung. Kontaktinformationen befinden sich in den Fußzeilen.
Diese Anleitung beschreibt lediglich das MYBOTSHOP Dynamixel Servo Controllerboard. Da das Board zur Verwendung mit dem Raspberry Pi entwickelt wurde, stellen einige Abbildungen ebenfalls das Raspberry Pi dar. Für dieses gelten jedoch separate Sicherheits.- und Gefahrenhinweise, welche unter folgendem Link eingesehen werden können: www.raspberrypi.org
Unsere Informations- und Rücknahmepflichten nach dem Elektrogesetz (ElektroG)
Als Endnutzer können Sie beim Kauf eines neuen Gerätes, Ihr Altgerät (das im Wesentlichen die gleiche Funktion wie das bei uns erworbene neue erfüllt) kostenlos zur Entsorgung abgeben.
Unabhängig vom Kauf eines Neugerätes, können Sie jederzeit Ihr bei uns erworbenes Altgeräts, zur Entsorgung abgeben. Bitte nehmen Sie dazu per Email unter info@mybotshop.de Kontakt mit uns auf. Sie werden im Anschluss eine Paketmarke von uns erhalten, mit welcher Sie das Altgerät kostenlos an uns versenden können. Sollte Ihnen keine geeignete Verpackung zur Verfügung stehen, lassen wir Ihnen selbstverständlich auch diese kostenlos zukommen.
Bitte informieren Sie uns, sollten dem Paket ebenfalls Akkus beiliegen. In diesem Fall muss ggf. ein zusätzlicher Warnhinweis angebracht werden.