Joystick (analog) Umsetzung auf Motorensteuerung

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
jomifa
Beiträge: 41
Registriert: 09 Jun 2019, 15:22

Joystick (analog) Umsetzung auf Motorensteuerung

Beitrag von jomifa » 04 Mär 2020, 18:19

Hallo zusammen,
ich versuche meinen KY-023 Joystick (x-/y-Achsen analog, Knopf digital) auf meine Motorensteuerung umzusetzen. Der Joystick funktioniert und lässt sich auch in dem zugehörigen Unterroutine "X-Achse Joystick" ansprechen, sodass ich die Joystick-Ausschläge auf den zugehörigen Encoder-Motor in Drehimpulse umsetzen kann.

Das Programm zur Steuerung des Joysticks ist so aufgebaut:

1. Setze den Encoder-Motor auf eine bestimmte Anfangsposition im UP "VSG Position Z" <-- OK
2. Schalte Joystick-Steuerung ein in UP "Check Joystick" <-- OK
3. Setze den Motor durch den Joystick auf eine andere Postion <-- OK
4. Setze den Motor wieder auf die Anfangsstellung zurückgesetzt >-- NOK

Sobald das Unterprogramm "X-Achse Joystick" verlassen wird (Druck Joystick-Druckkopf), wird das danach aufgerufene UP "VSG Position Z" nicht ausgeführt. Der dazugehörende Encoder-Motor, der derselbe wie der in dem zuvor aufgerufenen UP ist, lässt sich auch über das Interface nicht mehr bedienen. Man sieht auch im Interface, dass ein Motorbefehl (drehen links) ausgeführt werden soll. Aber nichts tut sich. Es sieht so aus, dass nach der Ausführung des UP "X-Achse Joystick", der TXT Controller nicht mehr mit dem ausführenden Programm interagiert. Dieser Fehler ist reproduzierbar.

Hat jemand eine Idee, was in dem UP "X-Achse Joystick" falsch läuft, sodass die übergeordneten Programme nicht mehr ausgeführt werden? Bei Bedarf kann ich auch von den anderen beteiligten Unterprogrammen entsprechendes Material zur Verfügung stellen.

Grüße,
Joachim
Dateianhänge
UP X-Achse Joystick.JPG
UP X-Achse Joystick.JPG (127.21 KiB) 2007 mal betrachtet
HP Joystick x-Achse Umsetzung auf Motor.JPG
HP Joystick x-Achse Umsetzung auf Motor.JPG (53.66 KiB) 2007 mal betrachtet

jomifa
Beiträge: 41
Registriert: 09 Jun 2019, 15:22

Re: Joystick (analog) Umsetzung auf Motorensteuerung

Beitrag von jomifa » 05 Mär 2020, 10:03

Hallo,
habe das Problem in der Zwischenzeit gefunden. Es war wie vermutet das falsche Beenden der Motoren im Unterprogramm.

Gruß
Joachim

Benutzeravatar
PHabermehl
Beiträge: 2436
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: Joystick (analog) Umsetzung auf Motorensteuerung

Beitrag von PHabermehl » 05 Mär 2020, 10:14

Hallo Joachim,
schön, dass Du den Fehler gefunden hast.

Ich finde Deine Idee insgesamt sehr interessant. Würdest du das korrekte Programm hier nochmal einstellen, so dass die Lösung auch allgemein verfügbar ist? Vielleicht möchte das ja jemand nachmachen.

Danke und Gruß
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

jomifa
Beiträge: 41
Registriert: 09 Jun 2019, 15:22

Re: Joystick (analog) Umsetzung auf Motorensteuerung

Beitrag von jomifa » 05 Mär 2020, 11:45

Hallo Peter,
kann ich gerne machen. Allerdings ist das nur eine vereinfachte Komponente, die ich hier dargestellt habe, damit nicht mehr Informationen als notwendig zu vermitteln waren (frei nach Ockham eben). Ich war schon auf der richtigen Fährte mit dem Motor-Management. Ursprünglich bin ich aus der Unterroutine herausgesprungen, unabhängig wie der Motorenzustand war. Der TXT braucht wohl einen definitiven STOPP Befehl für die benutzten Motoren (in diesem Beispiel M3). Macht man das nicht, können diese Motoren nicht mehr in anderen Unterroutinen oder auch im Hauptprogramm angesprochen werden. Dabei habe ich leider das falsche Symbol benutzt (siehe erster Anhang). Im nächsten Anhang habe ich das richtige Symbol für das Stoppen des Motors benutzt und siehe da, alles ist wieder in Ordnung.

PS
Auch die vielen globalen Variablen sind eigentlich für das Funktionieren nicht notwendig. Ich baue in der Anfangsphase eben gerne Variablen ein, um mir so den Zustand der Routinen besser darstellen zu lassen. Später fliegen diese Variablen aus dem Programm raus. In diesem Fall sind nur die Variablen "Var_J1ximpulse" und "Var_J1D" für den Ablauf notwendig.

Grüße
Joachim
Dateianhänge
UP X-Achse Joystick (richtig).JPG
UP X-Achse Joystick (richtig).JPG (100.67 KiB) 1905 mal betrachtet

Antworten