Go Down

Topic: Winkelberechnung mit Arduino UNO (Read 2502 times) previous topic - next topic

fridi

Jun 07, 2018, 02:23 pm Last Edit: Jun 07, 2018, 02:28 pm by fridi
Moin moin aus HU.
ich habe nicht geglaubt, dass ich mich mit 68 Jahren noch mal mit Winkelberechnungen rum  schlagen muss.
Konstellation:
Ich habe einen Scanner mit waagerechter variabler Entfernung des Scann Objekts.
Die Kamera sitzt auf dem senkrechten Balken mit variabler Höhe.
Problem:
Ich möchte, dass die Kamera automatisch in festen Höhen abhängig von der Höhe des Scann-Objekts und der Entfernung einen Bogen fährt, um das Objekt aus allen Richtungen zu scannen.
Dazu muss der Uno den Winkel für die Kamera berechnen.
Ich würde die Kamera waagerecht zum Start auf das Objekt ausrichten. Danach soll die Kamera nach unten fahren und nach oben fotografieren. Danach ein Stück höher, den Winkel einstellen und Fotos machen.

Irgendwie bin ich zu alt oder zu blöd, die entsprechende Winkelberechnung zu machen.
Es versteht sich von selbst, dass das Objekt sich beim Fotografieren um 360° dreht. Kann mir jemand die Formel für den Arduino erstellen. Das in Schritte um zu wandeln ist dann kein Problem.
Liebe Grüße an die Mathematiker hier im Forum.

Theseus

Viel Hilfreicher als ein Photo des Bedienpanels wäre eine Skizze deines Aufbaus.
In welche Richtung fährt die Kamera? Wo ist das Objekt? Wo sind die Winkel, die berechnet werden müssen? Aus deiner Beschreibung wird nicht klar, wie die Kamera fährt. Zum einen soll sie einen 360° Bogen machen, zum anderen fährt sie Hoch und runter also auf einer Geraden. Was denn nun?

fridi

#2
Jun 07, 2018, 03:00 pm Last Edit: Jun 07, 2018, 03:06 pm by fridi
Das Objekt ist auf einem Schlitten in der Waagerechten montiert und kann da gedreht werden. Die Kamera sitzt auf einem senkrechten Schlitten mit Stepper verfahr bar. Die Kamerahalterung kann mit einem Stepper gekippt werden.
Nun soll die Kamera auf der Senkrechten stückweise nach oben fahren und so ausgerichtet werden, dass sie immer auf das Objekt zeigt, also um das Objekt einen senkrechten Bogen  fährt. Es ist damit immer eine Berechnung eines rechtwinkligen Dreiecks.

Das da keine 360° möglich sind, erklärt sich von selbst. Das Objekt dreht sich beim Fotografieren um 360°.

Theseus

#3
Jun 07, 2018, 03:22 pm Last Edit: Jun 07, 2018, 03:22 pm by Theseus
Jetzt ist alles klarer. Mit Skizze ist das kein Problem. Die Lösung ist der Tangens s ist horizontaler Abstand zum Drehteller, h ist die Kamerahöhe, phi ist der Winkel um den, die Kamera nach unten gekippt werden muss.



fridi

Danke für die Antwort. Bei einer Höhe von 10 und einer Entfernung von 20 komme ich auf einen Wert von 0,5. Soweit war ich bisher auch schon. Wie komme ich jetzt auf den Winkel von 63,4°. Grafisch ermittelt.

Doc_Arduino

Hallo,

du nimmst den tangens von h / s (Gegenkathete durch Ankathete) = 10 / 20 = 0,5 und davon den Tangens = 26,565°
Der gesuchte Winkel im Bild links oben ist gleich groß.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Whandall

Hallo,

du nimmst den tangens von h / s (Gegenkathete durch Ankathete) = 10 / 20 = 0,5 und davon den Tangens = 26,565°

Arkustangens doch eher, oder?
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

Doc_Arduino

#7
Jun 07, 2018, 05:13 pm Last Edit: Jun 07, 2018, 05:16 pm by Doc_Arduino
Hallo,

wenn damit der Cotangens gemeint sein soll, bleibe ich bei nein. Außer du vertauscht die Gegenkathete mit der Ankathete, dann stimmt auch das wieder. Obiges Bild neu gezeichnet. Man hat 2 Möglichkeiten.
tangens (@) = b/a   oder    cotanges (@) = a /b
Auf Grund des rechtwinkliges Dreiecks und Höhe kleiner Abstand (10/20) muss der Winkel kleiner 45° sein.
Wäre Höhe und Abstand gleich groß, dann wäre der Winkel 45°.


Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Whandall

wenn damit der Cotangens gemeint sein soll, bleibe ich bei nein.
Nein, meist meine ich das was ich schreibe nämlich genau den Arkustangens.

Du errechnest zwar den Wert des Tangens, willst aber den dazu gehörenden Winkel wissen.
Dazu benötigst du die eingeschränkte Umkehrfunktion von Tangens namens Arkustangens.
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

Doc_Arduino

Hallo,

ja stimmt, Punkt für dich.  :)

Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

fridi

Bei der Berechnung muss der Winkel größer 45° sein. Grafisch im CAD Programm 63,4°.
Arkustangens kann aber der Arduino nicht.
Ich bekomme aber bei der Berechnung mit dem WIN Rechner mit TAN nur Werte kleiner 1 raus.

Whandall

#11
Jun 07, 2018, 05:59 pm Last Edit: Jun 07, 2018, 06:05 pm by Whandall Reason: es mussten 2*Pi sein
Arkustangens kann aber der Arduino nicht.
Woher beziehst du diese Fehlinformation?

Code: [Select]
void setup() {
  Serial.begin(250000);
  Serial.print(F("Arkustangens von 0.5 ist "));
  Serial.print(atan(.5));
  Serial.print(F(" das entspricht "));
  Serial.print(atan(.5) * 360 / (2 * PI));
  Serial.println(F(" Grad"));
}
void loop() {}

Code: [Select]
Arkustangens von 0.5 ist 0.46 das entspricht 26.57 Grad

Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

Doc_Arduino

#12
Jun 07, 2018, 06:09 pm Last Edit: Jun 07, 2018, 06:19 pm by Doc_Arduino
Hallo,

gut, dann haben wir aneinander vorbei geredet, Du suchst den Winkel gegenüber von alpha. Wäre dann 90° abzüglich des berechneten Winkels.  Sorry.   arctan (@) =  a/b = Abstand/Höhe, dann musste nichts von 90° abziehen.

Mich machen nur die unterschiedlichen Werte stutzig.
Mein Taschenrechner sagt mir von arctan () = 20/10 = 63,43°
Der Windows 10 Rechner sagt mir 70,48°.
Arduino ermittelt 26,57°, was im gleichen Kontext bezogen 90-26,57 = 63,43° entspricht.
Was zur Hölle macht der Windowsrechner? Oder bedien ich den falsch?
wissenschaftlich  > 2 > Pfeil nach oben > tan^-1

Edit:
wegen Win Rechner, hatte ausversehen zwischen RAD und GRAD umgeschalten, dass Problem sitzt immer vorm Rechner  :)
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Whandall

Mein Windows 7 Calc hat keinen atan, dafür tanh.

Vielleicht hast du Deg/Rad/Grad (oder wie es bei dir heißt) unglücklich ausgewählt.
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

Doc_Arduino

#14
Jun 07, 2018, 06:25 pm Last Edit: Jun 07, 2018, 06:29 pm by Doc_Arduino
Hallo,

ja genau, da bin ich ausversehen draufgekommen. Wenn du in den wissenschaftlichen Modus gehst, sollte eine Taste mit Pfeil nach oben auf dem Tastenfeld sein. Die heißt invers Taste oder so ähnlich. Dann ändern sich die anderen Tastenbeschriftungen und es sollte tan-1 sichtbar sein. Probier mal ...     wissenschaftlich  > 2 > Pfeil nach oben > tan^-1

Edit:
nicht oben die HYP Funktion aktivieren!, dann wechselt es zwischen tan und tanh

Ich liebe meinen einfachen Schulrechner.   :)
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Go Up