und das die anzahl nicht übereinstimmt...
und das die anzahl nicht übereinstimmt...
gruß inka
wieso, die Anzahl stimmt doch: A0...A3
A4+A5 (für den Mega: fälschlich) als I2C Pins
- - - Aktualisiert - - -
ich könnte mir vorstellen, dass
int xdirPin = 0;
int ydirPin = 1;
int zdirPin = 3;
int gdirPin = 2;
intern von der Lib auf A0...A3 "umgemapped" werden
die zahlen hier
sind aber die pinn-nummern des 12bit-servotreibers und nicht des arduino, nehme ich mal an...Code:* 0 Base * 1 Shoulder (right) * 2 Elbow (left) * 3 Gripper
gruß inka
und die sollen per analogRead gelesen werden?
Servo-Pins sind digitale pwm- Outputs, keine analogen Inputs.
Ich vermute, die tragen nur zu Querreferenz-Zwecken die gleichen Nummern
weiss ich ja nicht, sonst hätte ich doch nicht gefragt...
aber hast du dich schon mit dem me-arm, 12bit treiber und so beschäftigt?
gruß inka
nein, aber analogRead kann nur analoge Input-Pins lesen, und die hat nur der Arduino an A0, A1,... , oder nicht?
Daran müssten ja auch die Joystick-Pins angeschlossen sein.
ehrlich gesagt, nein.
Ich wollte dir nur logische Erlärungsansätze liefern.
ich stell die ursprüngliche frage mal anders herum:
mit diesem sketch:
werden diese bewegungen erzeugt:Code:/* meArm_Adafruit IK test - York Hackspace May 2014 * Test applying Nick Moriarty's Inverse Kinematics solver * to Phenoptix' meArm robot arm, to walk a specified path. * * Pins: * Arduino PWMServo * GND GND * 5V VCC & V+ * A4 SDA * A5 SCL * * The Servos attach to the first block of four servo connections on * the Adafruit board, brown wire at the bottom, yellow wire at the top. * Adafruit Servo * 0 Base * 1 Shoulder (right) * 2 Elbow (left) * 3 Gripper * * You can attach to a different block of four by changing the 'begin' call * to specify a block 0-3, e.g. to use the second block call arm.begin(1); * - to mirror movements to all 4 blocks, call arm.begin(-1); */ #include "meArm_Adafruit.h" #include <Adafruit_PWMServoDriver.h> #include <Wire.h> meArm arm; void setup() { Serial.begin(115200); arm.begin(); } void loop() { //Go to start position arm.gotoPoint(0,100,50); //Clap - so it's obvious we're at this part of the routine arm.openGripper(); arm.closeGripper(); arm.openGripper(); arm.closeGripper(); arm.openGripper(); delay(500); //Go up and left to grab something arm.gotoPoint(-80,100,140); arm.closeGripper(); //Go down, forward and right to drop it arm.gotoPoint(70,200,60); arm.openGripper(); //Back to start position arm.gotoPoint(0,100,50); delay(2000); }
https://youtu.be/lR8RHupNr-s
was haltet ihr davon, ist es für den aufbau ok und sollte ich meine erwartungen runterschrauben?
gruß inka
Was hast du denn für Servos verbaut?
Für den Fall, dass es diese billigen SG-90 für 2€ sind (oder vergleichbarer Ramsch) finde ich, der bewegt sich doch ganz gut.
Bei _diesen_ Hebellängen würde ich, wenn der Arm irgendwas anheben soll, wenigstens MG-90 verwenden.
Die sind kräftiger und schneller.
Das Problem bei Billigservos (auch den MG-90, nur sind die halt schon etwas besser) ist, dass sie gegen Ende des Weges kaum mehr Kraft haben, weil die Regelung sie dann "runterfährt" (wahrscheinlich um ein überfahren der Soll-Position zu verhindern), dadurch erreichen sie PosSoll aber nur schwer, vor allem, unter Last.
Wenn du wissen willst, ob die Servos überhaupt ausreichend stark sind: lass den Greifer mal das schwerste halten, was der Arm bewältigen soll, und dann fahr den Arm möglichst weit aus- so dass du maximale Last am unteren Servo hast.
Wenn es an dieser Position brummt, sind die Servos zu schwach.
Ansonsten: bei vielen billigen Servos ist es so, dass die sich-selbst ohne Last-teilweise nicht wirklich geschmeidig bewegen. Das liegt einfach daran, dass in denen das billigste Gerümpel verbaut ist, was der Wühltisch hergab. Bessere Servos haben z.B. Doppelschleifer-Potis. Sowas fährt dann auch beim tausendsten Mal die gleiche Position immernoch _genau_ an.
Billige schätzen ihre Position öfter einfach nur....
Ebenfalls gern genommen, bei billigen Servos mit Kunstoff-Welle: wenn man die Schraube, die das Servohorn sichert, zu fest zieht, spreizt sich die Welle etwas auf- und das ganze Servo läuft schwer oder überhaupt nicht mehr.
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
die servos, die bei dem arm dabei waren sind auch verbaut, es steht SG-90 drauf und beim preis des bausatzes von 12€ können sie nicht mal 2€ pro stück gekostet haben...
mir ging es bei diesem experiment - ich hatte vorher so gut wie nichts mit Servos am hut (ausser mal den Ultraschallsensor ein bischen hin und her zu schwenken) - hauptsächlich um die bewegung, die inverse kinematik (verstanden habe ich das thema noch lange nicht) weniger um das heben/halten von lasten. Aber den versuch mit den MG-servos mache ich noch...
Aber du scheinst da einiges zu wissen? Beim drehen des arms wackelt ja das ganze ziemlich, wird das mit den MG-servos besser? Die geschwindigkeit ist nicht so das, was ich anstrebe, eine saubere bewegung schon...
gruß inka
Lesezeichen