Plot Clock - Winkelberechnung aus X Y

Gast #5473920
Lesenswert?

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
#5474070
Lesenswert?

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
Moderator #5474102
Lesenswert?

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.
Moderator #5474808
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren