- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: me-arm, 12bit servotreiber und ein joystick

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180

    me-arm, 12bit servotreiber und ein joystick

    Anzeige

    Powerstation Test
    hallo allerseits,

    ich habe mir den billig-robot-arm angeschafft, die Servos sollen über die 12bit-servo-treiber-platine betrieben werden, alles funktioniert in ansätzen:
    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_20190219_5940.jpg
Hits:	13
Größe:	104,5 KB
ID:	34013
    der arm ruckelt aber ziemlich...
    Da Suche ich nun nach lösungsansätzen, dabei habe ich mir auch verschiedene beispiele aus der adafruit lib angeschaut, z.b. dieses hier:

    Code:
    /* meArm_Adafruit IK joysticks - York Hackspace May 2014
     * Using inverse kinematics with joysticks
     * Uses two analogue joystcks (two pots each)
     * First stick moves gripper forwards, backwards, left and right
     * Second stick moves gripper up, down, and closes and opens.
     * 
     * I used Sparkfun thumbstick breakout boards, oriented 'upside down'.
     * 
     * Pins:
     * Arduino    Stick1    Stick2   PWMServo  
     *    GND       GND       GND        GND
     *     5V       VCC       VCC   VCC & V+
     *     A0       HOR
     *     A1       VER
     *     A2                 HOR
     *     A3                 VER
     *     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>
    
    
    int xdirPin = 0;
    int ydirPin = 1;
    int zdirPin = 3;
    int gdirPin = 2;
    
    
    meArm arm;
    
    
    void setup() {
      arm.begin();
    }
    
    
    void loop() {
      float dx = map(analogRead(xdirPin), 0, 1023, -5.0, 5.0);
      float dy = map(analogRead(ydirPin), 0, 1023, 5.0, -5.0);
      float dz = map(analogRead(zdirPin), 0, 1023, 5.0, -5.0);
      float dg = map(analogRead(gdirPin), 0, 1023, 5.0, -5.0);
      if (abs(dx) < 1.5) dx = 0;
      if (abs(dy) < 1.5) dy = 0;
      if (abs(dz) < 1.5) dz = 0;
      
      if (!(dx == 0 && dy == 0 && dz == 0))
        arm.goDirectlyTo(arm.getX() + dx, arm.getY() + dy, arm.getZ() + dz);
      
      if (dg < -3.0)
        arm.closeGripper();
      else if (dg > 3.0)
        arm.openGripper();  
      delay(50);
    }
    die/den joystick (selbstgebaut) muss ich an die pins A0 bis A5 des arduino anschliessen um den sketch ausprobieren zu können. Wie man im bild sehen kann, hat der roboter schon einiges "onboard" und daher sind einige der arduino mega 2560 schon belegt, z.b. ein paar der im fraglichen sketch verwendeten (a0 und A3). Die hier verwendeten libs ( meArm_Adafruit.h bzw. Adafruit_PWMServoDriver.h) wie auch die *.cpp dateien habe ich mir angeschaut, ich finde einfach die stelle nicht wo die pins A0 bis A5 (aus dem sketch) abgefragt werden? Hat sich schon jemand damit beschäftigt?

    wäre super...
    gruß inka

  2. #2
    HaWe
    Gast
    Zitat Zitat von inka Beitrag anzeigen
    Wie man im bild sehen kann, hat der roboter schon einiges "onboard" und daher sind einige der arduino mega 2560 schon belegt, z.b. ein paar der im fraglichen sketch verwendeten (a0 und A3). Die hier verwendeten libs ( meArm_Adafruit.h bzw. Adafruit_PWMServoDriver.h) wie auch die *.cpp dateien habe ich mir angeschaut, ich finde einfach die stelle nicht wo die pins A0 bis A5 (aus dem sketch) abgefragt werden? Hat sich schon jemand damit beschäftigt?

    wäre super...
    Code:
    int xdirPin = 0;
    int ydirPin = 1;
    int zdirPin = 3;
    int gdirPin = 2;
    
    //...
    
    void loop() {
      float dx = map(analogRead(xdirPin), 0, 1023, -5.0, 5.0);
      float dy = map(analogRead(ydirPin), 0, 1023, 5.0, -5.0);
      float dz = map(analogRead(zdirPin), 0, 1023, 5.0, -5.0);
      float dg = map(analogRead(gdirPin), 0, 1023, 5.0, -5.0);
    
    
      //...


  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    und das hier?

    Code:
     *     A0       HOR
     *     A1       VER
     *     A2                 HOR
     *     A3                 VER
     *     A4                            SDA
     *     A5                            SCL
    ist das wirklich das gleiche?

    Code:
    int xdirPin = 0;
    int ydirPin = 1;
    int zdirPin = 3;
    int gdirPin = 2;
    gruß inka

  4. #4
    HaWe
    Gast
    kA, aber was soll analogRead anderes lesen als analoge Pins?
    Zugegeben, schon seltsam, dass xdirPin, ydirPin,... usw, als 0,1,... definiert werden und nicht als A0, A1,...

    PS,
    ebenfalls seltsam:
    Code:
     *     A4                            SDA
     *     A5                            SCL
    das gilt für den Uno, nicht aber für den mega2560.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    und das die anzahl nicht übereinstimmt...
    gruß inka

  6. #6
    HaWe
    Gast
    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

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    die zahlen hier
    Code:
    *       0      Base
     *       1  Shoulder (right)
     *       2     Elbow (left)
     *       3   Gripper
    sind aber die pinn-nummern des 12bit-servotreibers und nicht des arduino, nehme ich mal an...
    gruß inka

  8. #8
    HaWe
    Gast
    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

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    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

  10. #10
    HaWe
    Gast
    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.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Servotreiber RNS1
    Von Naturp im Forum Elektronik
    Antworten: 33
    Letzter Beitrag: 07.02.2010, 20:38
  2. ADC mit 12bit besser 16bit mit 1Wire oder I2C gesucht
    Von mat-sche im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 3
    Letzter Beitrag: 25.01.2010, 20:54
  3. wie verschicke ich 12bit per spi??
    Von drivepro82 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 21
    Letzter Beitrag: 16.09.2008, 18:36
  4. AVR 12Bit-PWM Lookuptable
    Von teslanikola im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 17.06.2008, 13:05
  5. einen 4bit und 8bit wertals 12bit Wert verarbeiten
    Von Olle_Filzlaus im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 14.08.2007, 10:42

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress