- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 23

Thema: Erfahrungen und Erfahrungsaustausch mit Arexx Robot-Arm-mini

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier Avatar von ralf
    Registriert seit
    13.01.2004
    Ort
    Berlin
    Beiträge
    21
    hallo,
    danke Dirk für die Software.
    Mein Arm ist gerade "teilzerlegt", da ich Servo 6 (unten Grundgestell) mit einem stabileren tauschen will.
    Der Arm wackelte ziemlich mit dem Plastelager, nun baue ich gerade ein Servo (Metallgetriebe und Kugellager)ein (12,95 Euro).
    Na ja, radbruch dürfte das Problem ja nicht haben, da die Drehbewegung von seinem RP6 ausgeführt wird.
    Hoffe, daß es jetzt einigermaßen stabil läuft, sonst wird mir die Sache langsam zu teuer.

    Ralf

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    ... nun baue ich gerade ein Servo (Metallgetriebe und Kugellager)ein (12,95 Euro).
    Ralf, welches Servo nimmst du denn dafür? Bei mir wackelt der Arm auch ziemlich.
    Auch mit dem "Bottom"-Servo bin ich nicht so zufrieden, weil es den Arm gestreckt z.B. kaum heben kann, mit einem Gewicht im Greifer schon gar nicht. Das müßte man fast auch tauschen ...

    Gruß Dirk

  3. #3
    Neuer Benutzer Öfters hier Avatar von ralf
    Registriert seit
    13.01.2004
    Ort
    Berlin
    Beiträge
    21
    Hallo Dirk,
    habe Servo ohne Probleme eingebaut und brauchte nicht mal den Servohebel am schw. Plastekasten wechseln.
    Es lief auf Anhieb und macht einen stabilen Eindruck, aber habe es natürlich noch nicht im Dauerbetrieb.

    Das Servo ist bei Conrad erhältlich, bei mir in Berlin sogar direkt in der Filiale:
    TOP-LINE STANDARD SERVO RS 2 MG/BB
    Best.-Nr.: 205111 - 62 [Teilenummer: RS2 MG/BB] 12,95 €

    Unter "Bottom-Servo" meinst du sicherlich Servo 5 /Schulter, ja das ist auch mein nächster Wechselkandidat.
    Einziges kleines Problem vielleicht, dieses Servo ist geringfügig breiter
    --unten ist das kein Problem, paßt wie angegossen.
    In dem unteren "Plastekasten" könnte es ev. Probleme mit dem Deckel geben, aber der ist bei mit jetzt in der
    Testphase sowieso offen.
    Maße des neuen Servo LBH 41x20x42

    Gruß Ralf

  4. #4
    Neuer Benutzer Öfters hier Avatar von ralf
    Registriert seit
    13.01.2004
    Ort
    Berlin
    Beiträge
    21
    Hallo Dirk,
    habe nun auch den zweiten Standard-Servo ausgetauscht, da in Grundstellung der Arm zitterte. Servo hat auch problemlos gepaßt und auch der Deckel ließ sich anschrauben....
    aber dann --trotz korrekten Einbau mußte ich feststellen, daß die Drehrichtung vertauscht war ??????????
    Servotester benutzt --- mit meinem Oszi Pulse überprüft ---bei gleicher Einbauweise (Antriebswelle ist ja nicht in der Mitte, Verwechslungen ausgeschlossen) Drehrichtung rechts/links entgegengesetzt.
    Bin da nicht so der SERVO-Pofi, aber gibt es links- oder rechtsdrehende Servos und wenn ja, wie kann man aus den techn. Daten das erkennen?

    Na ok, man kann ja die Programme umschreiben --trotzdem nicht so toll [-(

    Der etwas x-drehende
    Ralf

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    05.01.2008
    Beiträge
    6
    Hallo zusammen,

    ich schließe mich dann auch mal mit einem Erfahrungsbericht an:

    Der Fuß war bei mir aehnlich schwergaengig, hab jedoch alle schrauben mit nur geringen problemen rein bekommen.
    Die Teile sind ansonsten in ordnung, bis auf ein Steckverbindungskabel - was ich dann durch verwunderung feststellen musste als ich den angeschlossenen Motor ansteuern wollte - war aber sehr einfach zu beheben.
    Das Geraet funktioniert ansonsten einwandfrei.
    Die tastatur hatte ich auch einmal dran und aehnliche Erfahrungen gemacht, das eine Taste nicht funktioniert aber nicht weiter beachtet, da man mit der mitgelieferten racs software auch alle motoren testen kann. (das kommt dann wohl wenn ich von der tastatur mal gebrauch machen will^^ weis jetzt ja aber wonach ich gucken muss bzw. das es durchaus an Baufehlern an der Tastatur liegt.

    Mehr faellt mir grad nicht ein wie gesagt er funktioniert und hebt momentan in einem ersten Testprogramm ein Bierdeckel durch die gegend. Demnach werd ich jetzt mal weiter diesen Thread durchstoebern, unter anderem zum Thema Motor- (bzw. Gelenk-) werte. Moecht mir nach Moeglichkeit ne inverse Kinematik bauen, hab aber noch anfaengliche Probleme mit der Umsetzung, da ich das nur mit winkel Berechnung kenne, ma schaun.

    korrigiere:
    die tastatur hat 4 funktionierende tasten aber wie ich sehe sind wohl die dioden an den nicht funktionierenden tasten garnicht richtig angeloetet^^ naja... ziehmlicher kaese, aber is nun wirklich nicht sonderlich schlimm. nur frag ich mich wer die dinger zusammen loetet wenns in nem arexx forum heisst die sind per hand geloetet...
    Geändert von Mizu (23.03.2011 um 12:59 Uhr)
    Gruß Mizu

  6. #6
    Neuer Benutzer Öfters hier Avatar von ralf
    Registriert seit
    13.01.2004
    Ort
    Berlin
    Beiträge
    21
    @Dirk
    "Man könnte da einfach einen TSOP z.B. an PD7 (ist frei!) anschliessen. Eine Lib dafür kriegen wir hier schon hin ! "

    Habe mir jetzt ein IR-Empfänger besorgt und angeschlossen --- kleines Testprogramm "---bei erkannter Fernbedienung Umleitung auf LED "
    hardwaremäßig also o.k. .
    Die Einbeziehung der Programme vom RP6 brachte aber nichts ---schon beim übersetzen viele Fehler.
    RC5-Struktur ist mir schon einigermaßen klar -- aber die seriellen Daten zu übernehmen und dann in ..code, adresse umzusetzen ,da komm ich nicht richtig klar.
    Habe zwar Programme gefunden ,untersucht (ASURO oder "RC5-Decoder für ATMega" hier im Netz) aber die müssen erstmal verstanden und dann angepaßt werden.
    Wo setze ich da am besten an ? Gibt es Proramme, die nur leicht umgesetzt werden müssen ?

    Gruß Ralf

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Ralf:
    Ok, ich würde den RC5-Code in die Lib in die ISR(TIMER2_COMP_vect), also in den 100us Interrupt einklinken.
    Beispiel:
    Code:
    // Dies VOR die ISR:
    volatile RC5data_t RC5_newdata;  // Decoded RC5 data
     
    // Dies hier IN die ISR (ans Ende!):
    // ----------------------------------------------------------------------------
     // RC5 reception code (adapted for Robot Arm from Asuro Lib):
     #define F_ISR   10e3   // 10kHz (100µs)
     #define RC5_TIME   1.778e-3  // 1.778ms
     #define RC5_SAMPLES_PER_BIT_MIN  (uint8_t)(F_ISR * RC5_TIME * 0.4)
     #define RC5_SAMPLES_PER_BIT_EARLY (uint8_t)(F_ISR * RC5_TIME * 0.75)
     #define RC5_SAMPLES_PER_BIT_LATE (uint8_t)(F_ISR * RC5_TIME * 1.25)
     #define RC5_PAUSE_SAMPLES   250 // 25ms (RC5 pause: 88.889ms)
     static uint8_t RC5_lastsample = 0;  // Last read sample
     static uint8_t RC5_timecounter = 0;  // Bit time counter
     static uint16_t RC5_bitstream = 0;  // RC5 bit stream
     static uint8_t RC5_bitcounter = 0;  // RC5 bit counter
     uint8_t sample = 1;
     if(PIND & RESERVE_PD7)      // Read RC5 input (PD7)
      sample = 0;
     if(RC5_timecounter < 255)    // Time counter limited to 8 bit
      RC5_timecounter++;
     if(RC5_lastsample != sample) {   // Detect edges
      if(RC5_timecounter <= RC5_SAMPLES_PER_BIT_MIN)
       RC5_bitcounter = 0;    // Edge to early
      else {
       if(RC5_bitcounter == 0) {  // RC5 start bit
        if((sample == 1)
         && (RC5_timecounter > RC5_PAUSE_SAMPLES)) {
         RC5_bitstream = 1;  // Store start bit
         RC5_bitcounter++;
        }
        else
         RC5_bitstream = 0;  // To long pause: Error
        RC5_timecounter = 0;  // Reset bit time counter
       }
       else {       // RC5 bits 2..14:
        if(RC5_timecounter >= RC5_SAMPLES_PER_BIT_EARLY) {
         if(RC5_timecounter <= RC5_SAMPLES_PER_BIT_LATE) {
          RC5_bitstream = (RC5_bitstream << 1) | sample;
          RC5_bitcounter++;
         }
         else
          RC5_bitcounter = 0; // To late: Error
         RC5_timecounter = 0; // Reset bit time counter
        }
       }
      }
     }
     else {
      if(RC5_timecounter > RC5_SAMPLES_PER_BIT_LATE) { // No edge in bit?
       if(RC5_bitcounter == 14) {  // All 14 RC5 bits read?
        RC5_newdata.data = RC5_bitstream;
        RC5_Ready = 1;    // New data received!
       }
       RC5_bitcounter = 0;    // Reset RC5 bit counter
      }
     }
     RC5_lastsample = sample;    // Store sample in sample buffer
    // ----------------------------------------------------------------------------
    Dazu müßte man im Header der Lib die Variablen definieren:
    Code:
    typedef union {
     uint16_t data;     // RC5 data structure (14 bits):
     struct {
      unsigned key_code : 6; // RC5 key code        C0..C5
      unsigned device  : 5; // RC5 device address  A0..A4
      unsigned toggle_bit : 1; // RC5 toggle bit      F
      unsigned key_codeC6 : 1; // RC5 key code bit 6  !(C6)
      unsigned start_bit : 1; // RC5 start bit       1
      unsigned notused : 2;
     };
    } RC5data_t;
    // RC5data_t RC5_data;     // Received RC5 data
    volatile uint8_t RC5_Ready;   // RC5 data ready (true/false)
    Probier das mal! Wenn RC5_Ready true (1) wird, wurden Daten in RC5_newdata empfangen. Das Hauptprogramm müßte also RC5_Ready ständig pollen (z.B. in einer task_RC5 in der Hauptschleife). Nachdem die Daten aus RC5_newdata gelesen wurden, muss man noch RC5_Ready false setzen, damit die nächsten Daten empfangen werden können.
    Als Eingangspin habe ich PD7 genommen.
    Geändert von Dirk (27.03.2011 um 12:29 Uhr)
    Gruß
    Dirk

  8. #8
    Neuer Benutzer Öfters hier Avatar von ralf
    Registriert seit
    13.01.2004
    Ort
    Berlin
    Beiträge
    21
    Hallo Dirk,
    vielen Dank für dein Programmvorschlag. Meine Wochenendversuche haben leider noch keinen Erfolg gebracht.

    --"Nachdem die Daten aus RC5_newdata gelesen wurden" RC5_newdata wird leider nicht gefunden , habe es auch mit RC5_newdata.data versucht
    Prinzipiell scheint es aber bei mir auch nicht zu funktionieren, da RC5_Ready nicht true (1) wird.

    Mal eine Fage zum Einlesen -" if (PIND & RESERVE_PD7 ) " - was ist RESERVE_PD7 ? ( ich nutze z.B. x=PIND; x=mask & x; ....)

    Ich bleibe weiter dran ( du schreibst " in den Timer Interrupt einklinken " ok. habe ich gemacht. Ist der dann mit initRobotBase(); automat. aktiv ? )

    Gruß Ralf

  9. #9
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Meine zwei parallelen Servos sind auch RS2, allerdings ohne MG. Das Spiegeln der Drehrichtung hatte ich mal beschrieben (und oben auch verlinkt;)

    Man muss lediglich den Motor umpolen und die äußeren Anschlüsse des Potis überkreuzen:
    https://www.roboternetz.de/phpBB2/vi...=462535#462535

    Bei der Version mit Kunstoffgetriebe ist das Ritzel auf der Motorwelle am vorderen Ende so dick, dass man es nicht ohne das Zahnrad zu beschädigen rausziehen kann. Deshalb muss man unbedingt das Getriebe zerlegen bevor man den Motor demontiert. Ich vermute, beim Metallgetriebe ist es genauso:
    Bild hier  
    (Rechts oben im Bild kann man das Ritzel erkennen,
    Einbaulage des Motors wurde vor dem Auslöten markiert;)


    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Seite 2 von 2 ErsteErste 12

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress