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

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

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

    Praxistest und DIY Projekte
    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!

  2. #12
    Benutzer Stammmitglied Avatar von efb
    Registriert seit
    08.03.2011
    Beiträge
    51
    Hier ist noch einer:

    hatte sehr ähnliche Probleme wie in den ersten Posts geschildert. Alles letztlich nicht sooo wild, bis auf zwei schon ziemlich ärgerliche Sachen:

    Auch bei mir brach promt der erste Abstandshalter ab, weil man einfach nicht damit rechnet, das der nicht vollständig reingeht. Man denkt so lange, das es durch die Farbreste so schwer geht, bis das Teil abbricht und man gemerkt hat, das das Loch nicht tief genug ist!
    Später merkte ich, das man die Teile gar nicht so tief reindrehen solle, da sonst die Platine mit einzelnen Lötstellen auf das Metallgehäuse aufsetzen kann...
    Da gehört dringend ein Hinweis in die Anleitung.

    Und zweitens etwas zeitraubend:
    Tastatur war auch bei mir defekt. Ersteinmal muss man drauf kommen, das es die Tastatur ist und dann noch die Fehler finden.
    1) Eine SMD- Diode war ohne Ring und der Kollege hat sie also einfach auf gut Glück eingelötet. Prompt verkehrtherum. Umlöten war nicht so schwer.
    2) Zu merken, das aber auch noch das blöde Flachbandkabel nicht richtig Kontakt bekam hat schon etwas länger gedauert. Auch ich dachte erst einmal, durch die falsche Diode sei etwas an den Ports kaputt gegangen...

    Na, ich werde leider nicht der letzte sein, der diese Posts zu spät liest...
    Schreib ich also noch mal für die Suche: Roboterarm RA-2 Hobby oder so: Arexx RA2-Hobby

    Das der Ganze Kram trotzdem Spaß macht will ich aber nicht abstreiten

    Viel Erfolg noch allen Roboterarm-Nutzern.

    efb

  3. #13
    Neuer Benutzer Öfters hier Avatar von ralf
    Registriert seit
    13.01.2004
    Ort
    Berlin
    Beiträge
    21
    Hallo efb,

    Willkommen in der Arexx-Arm-Gemeinde. Hast also auch viel "Lehrgeld" zahlen müssen.

    Inzwischen habe ich einen Joystick zur Armsteuerung (Keybordanschluß) angeschlossen (plus Masse extra)
    Port 0 bis 5 auf Eingang und Widerstände ein 0b00011111 ergibt 32 Möglichkeiten.
    Aber es ist kein analoger PC-Joystick --- sondern ein älterer Joystick von meinem
    ATARI 800/130 -Hobby(ältere Homecomputer). Dieser hat 5 Microschalter, die auf Masse geschaltet
    werden.

    Schade, daß es keine neuen Digital-Joysticks mehr zu kaufen gibt, denn meiner ist schon etwas ausgeleiert.

    Hallo radbruch,
    die Servos habe ich (noch ??) nicht umgebaut, sondern die Programme entsprechend umgeschrieben.

    Ein weiteres Projekt wäre, eine Steuerung über eine IR-Fernbedienung, wie z.B. bei ROBBY6.
    Die Arm-Platine hat leider keinen Empfänger, müßte doch aber nachzurüsten sein.
    Kann man da vielleicht dann die Lib vom Robby nehmen ?
    IR bei Robby an PD7, am Arm geht PD7 an eine Buchse SPI und scheint frei zu sein.

    MfG

    Ralf
    Geändert von ralf (09.03.2011 um 18:21 Uhr)

  4. #14
    Benutzer Stammmitglied Avatar von efb
    Registriert seit
    08.03.2011
    Beiträge
    51
    Zitat Zitat von ralf Beitrag anzeigen

    Inzwischen habe ich einen Joystick zur Armsteuerung (Keybordanschluß) angeschlossen
    ...
    Schade, daß es keine neuen Digital-Joysticks mehr zu kaufen gibt, denn meiner ist schon etwas ausgeleiert.
    Hallo Ralf,
    gute Idee mit den alten digitalen Joysticks, habe ich auch noch da, vom C64 .
    Und die gibts auch noch reichlich bei ebay: z.B. "competition pro"
    Viele Grüße

    efb

  5. #15
    Neuer Benutzer Öfters hier Avatar von ralf
    Registriert seit
    13.01.2004
    Ort
    Berlin
    Beiträge
    21
    Hallo efb,
    darf man dich auch mit einem Vornamen ansprechen ?

    Die Ebay "competition pro" sind ja auch nicht neu oder einige Jahre alt.
    Kenne die auch, sehr robust für viele alte WeltraumBallerspiele sehr geeignet aber nicht gerade feinfühlig.
    Benutze einen QuickShot II, der den Feuerknopf oben im Hebel hat, damit ist eine EinHandBedienung möglich, beim
    "compiPro" geht das nicht.

    Eine Frage am Rande--- hast du noch einen C64 und benutzt ihn auch ? --
    Die alte Konkurrenz C64-Atari ist doch wohl vorbei

    Gruß Ralf

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Ralf:
    Ein weiteres Projekt wäre, eine Steuerung über eine IR-Fernbedienung, wie z.B. bei ROBBY6. Die Arm-Platine hat leider keinen Empfänger, müßte doch aber nachzurüsten sein.
    Kann man da vielleicht dann die Lib vom Robby nehmen ? IR bei Robby an PD7, am Arm geht PD7 an eine Buchse SPI und scheint frei zu sein.
    Man könnte da einfach einen TSOP z.B. an PD7 (ist frei!) anschliessen. Eine Lib dafür kriegen wir hier schon hin !
    Gruß
    Dirk

  7. #17
    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 13:59 Uhr)
    Gruß Mizu

  8. #18
    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

  9. #19
    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 13:29 Uhr)
    Gruß
    Dirk

  10. #20
    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

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test