Cookie Hinweis
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
x

Raspberry Pi Dynamixel Servo Controllerboard

09 / March 2018

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.h

int 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.


Bitte melden Sie sich an, um einen Kommentar zu schreiben.