-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Roboterarm-Projekt

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    09.06.2010
    Beiträge
    9

    Roboterarm-Projekt

    Anzeige

    Hallo,

    ich habe mir vor einigen Monaten vorgenommen, einen beweglichen Roboterarm zu bauen, den ich dann vom ASURO steuern lasse.

    Die Hardware hab ich mehr oder weniger fertig gebaut.
    Hier ein Bild:



    (Bitte keine Riesenbilder posten! Gruß radbruch)

    Entschuldigung, war leider die falsche Version, ich dachte ich hätte ein Kleineres gepostet.

    Zum Aufbau:
    Das "Gerüst" mit Teilen aus einem Metalbaukasten gebaut, den ich noch rumliegen hatte.
    Der Arm besteht aus zwei (bzw. eigentlich drei) Gliedern, die mit zwei Servos bewegt werden sollen.
    Die zwei Teile des Sockels (bzw. der Sockel und das unterste Glied des Arms) sollen von einem Schrittmotor bewegt werden.

    Die Servos habe ich an die BackLED Plätze angeschlossen und nach einiger Recherche hier im Forum ein erstes sehr kurzes Programm zum ansteuern der Servos geschrieben.

    Ich habe schonmal einen Thread gestartet, um ein paar weitere Infos zur Servoansteuerung zu bekommen. Leider haben mir die erteilten Ratschläge nicht weiter geholfen.

    Nochmal mein kurzer erster Programmentwurf zum Ansteuern eines Servos:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
       Init();
       BackLED(ON,OFF);
            Sleep(104);
       BackLED(OFF,OFF);
       Sleep(255);Sleep(255);Sleep(255);Sleep(255);
       BackLED(ON,OFF);
       Sleep(104);
       BackLED(OFF,OFF);
       Sleep(255);Sleep(255);Sleep(255);Sleep(255);
       
       while(1);
       return 0;
    }
    Vor einigen Wochen habe ich mich dann, nach einigen Monaten der frustrierten Pause weil es nicht so funktionierte wie ich wollte, nochmal versucht den Arm (bzw. einen Servo des Arms) zu programmieren.

    Der neuere Versuch:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
       Init();
       while(1)
       {
          BackLED(ON,OFF);
          Sleep(28);
          BackLED(OFF,ON);
          Sleep(144);
          BackLED(OFF,OFF);
          Sleep(255);Sleep(255);Sleep(255);
       }
       return 0;
    }
    Beim zweiten Versuch hat sich immerhin der Servo bewegt.
    Danach habe ich einfach andere Werte hinter Sleep() geschrieben, um zu bewirken, dass der Servo sich "woanders" hinbewegt.
    Das hat allerdings nicht funktioniert, der Servo hat sich immernoch so bewegt wie vorher. Ich denke das ist ein Problem das beim Flashen entstanden ist.

    Ich dachte das mir eventuell in paar der versierten User hier im Forum ein wenig unterstützend zur Seite stehen könnten.

    Ich werde hier einfach ab und zu ein paar Neuigkeiten zu meinem Projekt posten.

    Vielen Dank.

    P.S.: Mein aktuelles, konkretes Problem ist, dass ich immernoch nicht die Servos so bewegt bekomme, wie ich es will. Falls jemand da einen Tip hat...

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    mach das bild mal auf eine humane größe
    die edit funktion wirst du sicher finden

  3. #3

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.785
    Blog-Einträge
    8
    Hallo

    Dass der erste Versuch nicht funktioniert ist ja klar:
    Code:
       while(1);
       return 0;
    Zum zweiten Versuch:

    Sleep() dauert je nach Version der Lib 1/36000 oder 1/72000 (CD-Version) Sekunden. Dein Programm scheint für eine 36kHz-Lib geschrieben worden zu sein:

    3*255/36000=0,021ms für die Impulspause scheint mir ein Indiz dafür zu sein. Bei dieser Taktfrequenz erzeugt ein Sleep(36) eine Pause die 1ms dauert. Sleep(28) wäre 1/36*28=0,77ms, Sleep(144) entsprechend 4ms (bei 72kHz-Takt allerdings nur 2ms)! Da Servos (je nach Doku) bei 1ms (oder 1,5ms) in die Mittelstellung fahren, wären bei Sleep(18) und Sleep(54) jeweils die Impulslängen für den Vollausschlag erreicht. Welche Version der Lib verwendest du?

    Die Mechanik des Arms sieht echt prima aus. Wird der Schrittmotor über die H-Brücke des asuro angesteuert?

    Gruß

    mic

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

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    09.06.2010
    Beiträge
    9
    Ich bitte um Entschuldigung für das überdimensionale Bild. Da hab ich aus versehen die Originalgröße genommen.

    Ich benutze die CD-Version der Bibliothek. Ich hab noch nicht so ganz kapiert wie ich eine andere Bibliothek verwende (bin einer Belehrung aber durchaus nicht abgeneigt).

    Zum zweiten Versuch kann ich nur sagen, dass ich das auch für 72kHz geschrieben habe. Ich habe es da mit Pulswerten versucht, die ein User hier im Forum irgendwann mal ermittelt hat (finde den Beitrag grade leider nicht) Dabei war ein Anschlag bei 0,4mS und der andere bei 2,4mS.
    Dazu kommt, dass ich, wie mir grade auffällt beim zweiten Servo den falschen Wert eingetragen habe (bin in den Notizen verrutscht, es war wol etwas spät und ich entsprechend müde als ich das geschrieben und probiert habe).

    Zum Schluss möchte ich mich noch für die schnellen Antworten bedanken.
    Und bitte entschuldigt meine eventuell für versierte Programmierer usw. dämlich wirkenden Fragen (ich bin immernoch ziemlicher ASURO-, Programmier- und "Elektronikbastelanfänger).

    P.S.: über den Schrittmotor habe ich mir noch keine Gedanken gemacht, da ich erstmal von den Servos in Anspruch genommen werde.
    Aber irgendwas mit H-Brücke hatte ich auch schon im Sinn (wie genau das funktioniert hab ich noch nicht recherchiert).

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.785
    Blog-Einträge
    8
    Hallo

    Das mit der Bildgröße ist nicht dramatisch. Die Riesenbilder verbiegen das Layout und es gibt auch Benutzer, die nicht über ein TurboDSL ans Internet angebunden sind.

    Kurz zu den Libs: Auf der CD ist (immer noch) die orginale Ur-Version vom DLR. Das wichtigste Merkmal ist ihr 72kHz-Takt. Neuere Versionen verwenden einen 36kHz-Takt, seid Waste im Phase-Correct-Mode für die IR-Abstandsmessung. Dazugekommen sind noch die Funktionen PrintInt(), Msleep() und gettime(). Diese ersten modifizierten Libs bindet man ein, indem man die Dateien asuro.h und asuro.c durch die neuen Versionen ersetzt. Ich verwende Version 2.3:

    http://sourceforge.net/projects/asur...o%20lib%20V2.3

    Ab ca. V2.6 ist der Aufbau der Lib stark modernisiert, viele neue Befehle wurden aufgenommen und es werden nur die Funktionen in das Programm gelinkt, die auch verwendet werden. Die Lib kann sich in der aktuellen Version zudem noch selbst installieren:

    http://www.roboternetz.de/phpBB2/vie...=275614#275614

    Wieder zu den Servos:
    Um die Impulslänge für die Mittelstellung eines Servos zu ermitteln, markiere ich das Servohorn, ertaste durch vorsichtiges(!) Drehen die Positionen der Endanschläge und ermittle so die mittige Stellung des Servohorns auf der Vielverzahnung der Abtriebswelle des Servos. Dann sende ich eine bekannte Impulslänge (z.B. 1ms). Beachten sollte man noch, dass der Drehbereich der Servos, zumindest in der Low-Cost-Klasse, nicht linear ist.

    Zur H-Brücke:
    Ein Schrittmotor hat meist zwei Spulen die man, wie die zwei Motoren des asuros, direkt an der H-Brücke anschliessen könnte. Allerdings können die Transistoren der H-Brücke beim asuro nur 0,5A treiben (wenn ich mich recht erinnere), das wäre wohl etwas wenig. Abhängig von den Motordaten könnte man stärkere Transistoren oder eine komplett neue H-Brücke einsetzen. Möglicherweise muss man den Schrittmotor auch mit einer deutlich höheren Spannung versorgen, dann wird unbedingt eine andere Ansteuerung benötigt.

    Gruß

    mic

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

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    09.06.2010
    Beiträge
    9
    Schön.
    Das hat schonmal geklappt. Die Servos haben sich so bewegt wie ichs wollte.
    Jetzt heißt es sich eine brauchbare Bewegung oderso auszudenken.

    Danke schonmal für die Hilfe.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    09.06.2010
    Beiträge
    9
    Hallo,

    nach längerer Sendepause melde ich mich mal wieder.

    Jetzt gehts um den Schrittmotor. Die Idee mit der H-Brücke ist die schönste.
    Wie genau soll ich das am besten machen? Ich hab leider nicht so viel ahnung wie mir in letzter Zeit immer wieder deutlich bewust geworden ist.

    Meine Idee:
    H-Brücke mit mehr Leistung nachbauen, an zusätzliche, stärkere Energiequelle anschließen, H-Brücke Dort in den ASURO einstöpseln wo jetzt auch die H-Brücke ist.

    Da fällt mir ein, der Schrittmotor den ich gewählt habe war der erstbeste, billigste (und kleinste). Bei Reichelt wird er als TMCM-Motor verkauft.

    Auf meinem Motor steht:
    QHS 4218-41-10-035

    Diese Seriennummer hat mich per Google zu folgender Website geführt, wo es eine Gebrauchsanweisung und ein Blatt mit Kurzbeschreibung.
    http://www.trinamic.com/tmc/render.php?sess_pid=261
    Allerdings bin ich da absolut nicht draus schlau geworden.

    Ich wäre wiedermal sehr froh über ein paar Tips.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    09.06.2010
    Beiträge
    9
    Ich dachte mir, das man die H-Brücke doch einfach leistungsstärker kopieren könnte und dann statt der alten einbauen.

    Zum Thema leistungsstärker machen dachte ich mir, dass doch vor allem die Transistoren entscheidend sind, also einfach die gleichen transistoren die einfach mehr Volt abkönnen. Aber welche sind das? Welche könnte ich da nehmen.

    Ich hab auch leider nichts hilfreiches mit der Suchfunktion gefunden.

    D.h. doch, ich hab erfahren, dass es solche H-brücken (und sogar Doppel H-Brücken) als Bauteil gibt (z.b. bei Conrad). In dem speziellen Fall war von L298 die Rede.

    Das wäre im Prinzip noch einfacher.


    So, weiter mit dem Schrittmotor.
    Ich dachte, ich kann den Schrittmotor einfach wie damals die Motoren am ASURO ansteuern. Also die gleichen Befehle benutzen. Desshalb ja auch die H-Brücken.
    Wenn ich die H-Brücken ausbaue und leistungsstärkere anbaue und an diese den Schrittmotor anschließe müsste das doch funktionieren.

    Oder nicht??

    Vielen dank schonmal,
    frieMo

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.03.2010
    Ort
    Hamburg
    Beiträge
    333
    moin,

    wär cool wenn du nochmal ein paar Fotos von deinem Arm machen könntest.
    Hab auch vor aus so einem Baukasten einen zu Bauen.

    Gruß Alex

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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