Dynamixel servo mit Arduino Uno ansteuern

Hallo,

Ich habe vor kurzer Zeit versucht einen Dynamixel xl430 servo über den Arduino anzusteuern. Ich weiß, das man eigentlich ein bestimmtes shield benötigt aber es hat funktioniert. Jetzt wo ich es wieder versucht habe hat es nicht mehr funktioniert(gleicher Sketch und gleich angeschlossen).

Woran könnte es liegen mir fällt echt nichts mehr ein?

Der Servo gnd und vcc wurden jeweils mit gnd(Arduino und Batterie) und 9v verbunden und der Signal pin mit tx rx und pin 2 vom arduino.

Über eure Ideen würde ich mich sehr freuen.

Mfg Tim

Der verwendete Sketch ist hier:

#include <Dynamixel2Arduino.h>
// Please modify it to suit your hardware.
#if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_MEGA2560) // When using DynamixelShield
#include <SoftwareSerial.h>
SoftwareSerial soft_serial(0, 1); // DYNAMIXELShield UART RX/TX
#define DXL_SERIAL Serial
#define DEBUG_SERIAL soft_serial
const uint8_t DXL_DIR_PIN = 2; // DYNAMIXEL Shield DIR PIN
#endif

const uint8_t DXL_ID = 1;
const float DXL_PROTOCOL_VERSION = 2.0;
Dynamixel2Arduino dxl(DXL_SERIAL, DXL_DIR_PIN);
//This namespace is required to use Control table item names
using namespace ControlTableItem;
void setup() {
// put your setup code here, to run once:
DEBUG_SERIAL.begin(115200);
// Set Port baudrate to 57600bps. This has to match with DYNAMIXEL baudrate.
dxl.begin(57600);
// Set Port Protocol Version. This has to match with DYNAMIXEL protocol version.
dxl.setPortProtocolVersion(DXL_PROTOCOL_VERSION);
// Get DYNAMIXEL information
dxl.ping(DXL_ID);
dxl.setOperatingMode(DXL_ID, OP_POSITION);
}
void loop() {
// put your main code here, to run repeatedly:
// Turn on the LED on DYNAMIXEL
dxl.ledOn(DXL_ID);
delay(500);
// Turn off the LED on DYNAMIXEL
dxl.ledOff(DXL_ID);
delay(500);
dxl.setGoalPosition(DXL_ID,0);
delay(5000);
dxl.setGoalPosition(DXL_ID,4095);
delay(5000);
}

Hey, bitte setze deinen Code in </> dann ist es besser lesbar und man kann ihn schneller kopieren.

Gruß Mücke

SoftwareSerial auf den Pins D0 und D1 ist eine ganz schlechte Lösung.
Da liegt der USB-Adapter drauf und die kommen sich u.U. in die Quere.
Und du hast evtl. RX und TX vertauscht.

Wie mache ich das genau?

Wie gesagt Softwaretechnisch kann ich rx und tx nicht vertauscht haben, da es mal genau so funktioniert hat. Und der Signal pin vom Servo ist eh auf rx und tx gebrückt.

Selbst wenn es mal funktioniert hat. Eine zweite serielle Schnittstelle genau auf die IO-pins zu legen die von der seriellen hardware-Schnittstelle benutzt werden mit denen du ein Programm auf den Arduino überträgst ist eine schlechte Idee.

Poste mal Datenblätter zu dem Shield das da eigentlich verwendet werden soll, und das Datenblatt zu dem Dynamixel-Servo.

vgs

Ok, alles klar.
Dir passieren keine Fehler.
Sorry, das wusste ich nicht.

Und was ist mit den Code-Tags ?

Sorry erst jetzt gesehen das deine Antwort auf mein Beitrag gewesen ist.

Bearbeite deinen Beitrag.

Markiere den Code
Drücke im Menü auf
grafik

Gruß Mücke

Ups…ich verstehe es nicht.
Mal sind die Quote-Beiträge sichtbar (aufgeklappt), mal sind sie nicht sichtbar (zugeklappt).

Sowas ist doch großer Mist in diesem neuen Forum. Da kann man schnell etwas übersehen.

Was funktioniert denn überhaupt noch ?

Las uns bitte in das Thema Müllhalde dafür Wechsel da kann man das alles Testen, es ist etwas OT finde ich.

Hierzu kann ich dir das empfehlen :wink:

1 Like

Ich bin eigentlich sicher, es immer markiert und per Zitat gemacht zu haben.

P.S. jetzt auch.

Aber ok, in dem Fall war es der TO und daher zugeklappt.
Ist halt Mist, da nicht direkt sichtbar.