Servomotor fürs Kippen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Die continuous rotation Servos haben einen ganz entschiedenen Nachteil: Du kannst nicht mehr bestimmen wie weit er drehen soll, wie du es bei einem Standard Servo kannst. Du kannst dem Servo zwar sagen wie schnell und in welche Richtung er drehen soll, aber kannst keine Positionen mehr anspringen. Bei einem Standard Servo mit ~180° Winkel kannst du ja sagen, dass er z.B. auf 20 oder 160 drehen soll. Bei einem continuous rotation Servo kannst du das nicht, du müsstest den Endpunkt über eine Kombination aus Geschwindigkeit und Zeit anfahren.

    Bei einem Pan - Tilt Kit (bei dem Standard Micro Servos verbaut sind) kannst du hingegen sagen, dass er 30 Schritte nach Links und 50 Schritte nach Oben drehen soll. Verbaut sind bei dem Adafruit Pan - Tilt Kit die SG-90 Micro Servos mit Plastik Zahnrädern, es gehen aber auch die MG-90 mit Metall Zahnrädern, die bei mir einen deutlich besseren Eindruck hinterlassen haben...

  • Vielen Dank, das sieht sehr gut aus;
    Wie sieht es mit der Positionsrückgabe aus; ist ein Winkelsensor verbaut, oder welche Möglichkeiten habe ich für eine Positionsausgabe?
    VG

  • Hallo D_M,


    Wie sieht es mit der Positionsrückgabe aus; ist ein Winkelsensor verbaut, oder welche Möglichkeiten habe ich für eine Positionsausgabe?

    Du - bzw. Dein Programm - mach(s)t die Vorgabe. Neue Position = Alte Position + Delta.

    Aus dem maximal möglichen Winkel und der Anzahl der Schritte kannst Du ausrechnen, wieviel Schritte pro Grad oder wieviel Grad einem Schritt entsprechen. Und wenn Du dann noch die Geschwindigkeit kennst, mit der ein Schritt zurückgelegt wird, kannst Du auch die Zeit ermiteln, wann Delta abgeschlossen sein wird, um die neue Endposition erreicht zu haben.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • OK, soweit klar. aber was ist, wenn ich dies für eine andere Anwendung möchte, wo die Position für eine exakte Messung benötigt wird. Kann ich implizieren, dass meine per Rechnung ermittelten Werte stets korrekt sind, also sagen wir eine Genauigkeit von 1° haben?; d.h. liefert der Motor trotz des Gewichts der Kamera stets eine korrekte Position? (wirklich relevant, wenn ich z.B. eine Spiegelreflex auf einen größeren, stärkeren Motor platziere)
    Beste Grüße

    D_M

  • Wie Andreas schrieb, der Servo hat genau die Position, die Du im zugewiesen hast. Also hast Du das PWM-Signal so berechnet, das der Servo 30° hat, dann hat er das auch und zwar ganz exakt. Eine Weitere Möglichkeit wäre ein Schrittmotor, da Du da kein PWM (ist programmtechnisch anspruchsvoll) brauchst sondern einfach sagst z.B. 30 Schritte nach links, dann macht das der Motor auch. Da ein Schrittmotor in einem Schritt immer den gleichen Winkel dreht weißt Du jeder zeit die Position (muss man sich im Programm "merken". Sonst ist es nach einem Neustart schwierig, weil Du da die Position nicht kennst).

  • Hallo D_M,

    wie exakt die Wiederholgenauigkeit (so der Terminus Technicus) ist, musst Du selber heausfinden.

    Ich hatte mal einen Tisch-Sonar gebaut. Im Prinzip drehte ein Servo eine Platine um rund 180 ° um die Z-Achse. Auf der Platine befanden sich zwei US-Sensoren (der eine schaut nach vorne, der andere nach hinten), die zu jeder Einzelschritt-Position den Abstand zu irgendwelchen Objekten (Wände, Bildschirm unterhalb des Glanzwinkels, Bleistifte, Flaschen, ...) gemessen haben. Die Daten hat ein Arduino erfasst und per serieller Schnittstelle an einen RPi (mit entsprechendem Auswerte- und Anzeige-Programm) geschickt. Das Programm hat die eingelesenen Werte (Winkel und Abstände) graphisch angezeigt. Da für die 180 ° etwas über eine Sekunde benötigt wurden (abhängig auch von den gemessenen Abständen), konnte man leicht erkennen, wann ein neues Objekt erkannt wurde inkl. dessen Bewegungen relativ zu anderen unbewegten Objekten).

    Die Wiederholgenauigkeit fand ich recht annehmbar. Die festen Objekte haben sich auf dem Bildschirm - wenn überhaupt nur - um wenige cm (Messgenauigkeit der US-Sensoren) "verschoben" und bzgl. Wiederholgenauigkeit der Winkelposition haben sich die Objekte meist nur um 1 oder zwei Pixel unterschieden.
    Das heißt, dass ein Objekt, das morgens um 8 Uhr im Winkel von 20 ° festgestellt wurde, dies an der gleichen Position befindlich, 12 Stunden später auf den gleichen PWM-Parameter angesteuert ( = Winkel) immer noch die gleichen Koordinaten (Winkel, Entfernung) aufwies. Irgendeinen Trend, dass die Winkel beispielsweise "wandern", hätte ich bei solchen 12 Stunden-Tests sicherlich bemerkt ;) .


    Alles Weitere musst Du selber bzgl. Hardware und Software ausprobieren. Da helfen Dir schöne Text von uns auch nicht viel weiter.

    Brauchbare Hardware und sinnvollen Quellcode vorausgesetzt funktioniert das.


    Beste Grüße

    Andreas

    Bilder

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (2. Juli 2016 um 10:21)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!