Hallo zusammen! Ich hoffe jemand von euch kann mir jemand weiterhelfen... Ich würde gerne eine Plot Clock bauen mit Teensy 3.6 als mikrocontroller: https://m.youtube.com/watch?v=2DZSj8b2RGw Mathe-Unterricht ist bei mir schon länger her. Ich bräuchte eine Formel, wo ich mit gegebener X- und Y Koordinaten die beiden Soll-Drehwinkel der Servos berechnen kann. Angenommen alle Schenkel sind gleich lang (50mm) und die Dreh-Achsen der Servos sind 70mm voneinander entfernt. Wie berechne ich das? Wenn der Nullpunkt genau zwischen den Beiden Servo-Drehachsen liegt Wäre der die X- Koordinate des linken Gelenkes: xLinks = cos(a) * Schenkellänge - (50mm/2) YLinks = sin (a) * Schenkellänge... ...weiter komme ich nicht... Vielen Dank im Vorras für nützliche Tips Mfg Iguan
Schau dir den Einheitskreis an -> https://de.wikipedia.org/wiki/Sinus_und_Kosinus x -> X-Koordinate y -> Y-Koordinate a -> Winkel (besser wäre alpha aber da finde ich das Symbol nicht) l -> Länge (am besten auf 1 normiert) x = cos(a) * l y = sin(a) * l Mit Normierung: x = cos(a) y = sin(a) a = arccos(x) Arccos ist die Inverse von cos. Das ist auch in der math.h drinnen. vgl. http://www.cplusplus.com/reference/cmath/acos/ Das als ersten Denkanstoß. TIP 1: Lege den Nullpunkt in die Mitte TIP 2: Denke an die Extremabehandlung. z.B. Was ist wenn x = 0 ist? Dann ist meist ein if/else schneller
Der Abstand des linken Gelenks zur linken Servoachse ist gleich der Schenkellänge. Der Abstand des linken Gelenks zum Stift Servoachse ist ebenfalls gleich der Schenkellänge. Das ergibt zwei Gleichungen, aus denen du die Position des linken Gelenk berechnen kannst. Der Drehwinkel des Servos kann dann über die atan2-Funktion berechnet werden. Für die rechte Seite erfolgt die Berechnung entsprechend. Du bekommst für die linke und die rechte Gelenkposition jeweils zwei Lösungen. Das liegt daran, dass bei gleicher Stiftposition die Gelenke nach links oder nach rechts geknickt sein können. Da man weiß, dass das linke Gelenk immer nach links und das rechte Gelenk immer nach rechts geknickt ist, sollte klar sein, welche der beiden Lösungen jeweils auszuwählen ist. Dieser einfache Rechenweg setzt voraus, dass der Stift zentrisch im vorderen Gelenk montiert ist. Ist er das nicht (wie im Video), wird die Berechnung etwas komplizierter.
Schau dir mal atan(y,x) an, ist in vielen Sprachen definiert, teilweise als atan2.
Das passende Stichwort ist hier "inverse Kinematik" Gruß Günter
Ach ja, schau Dir doch mal den Text vom Original-Designer an: http://wiki.fablab-nuernberg.de/w/Ding:Plotclock
Hier hat der Erfinder dieser Uhr den Quellcode veröffentlicht (plotclock_v1_03.ino): https://www.thingiverse.com/thing:248009/files Darin stehen nicht nur die Formeln, sondern auch Erläuterungen, wie diese zustande gekommen sind. In der Berechnung wird insbesondere auch berücksichtigt, dass die Stifthalterung ein Stück schräg außerhalb des vorderen Gelenks liegt. Durch Anpassen der Parameter L1, L2, L3, L4 und 0.621 kann der Code leicht an andere Armdimensionen angepasst werden.
Vielen Dank für eure super Inputs!! Ich konnte die beiden Winkel nun berechnen! Eine gute masstäbliche Skizze, der Cosinussatz sowie Trigonometrie (GAGA-HühnerHof AG) waren der Schlüssel!
Top finde ich, dass der Ersteller trotz Hindernissen mit den Tips auf die Lösung gekommen ist und nicht wie die heutigen Schüler die Lösung in Bunt fordern!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.