Joystick Technik und Auslesen
-
- Beiträge: 97
- Registriert: Sa 20. Jun 2009, 16:00
- OS, Lazarus, FPC: Win10 20H2, Laz 2.0.8 auch Linux Mint Mate 20, Laz 2.0.6
- CPU-Target: 64Bit
Joystick Technik und Auslesen
Win10 2004, Laz 2.0.8 auch Linux Mint 20, Laz 2.0.6
Ich würde gern mal wieder von eurem Erfahrungsschatz profitieren:
1. Ich kenne von früher die analogen Joysticks mit 2 Potentiometern für den Gameport. Welche Technik ist denn heute aktuell in analoge USB-Joysticks eingebaut?
2. Wie kann man die Taster und analoge x-y-Position dann unter Lazarus (Win und Lin) auslesen, um diese für die Steuerung eigener Anwendungen zu verwenden?
3. Welchen Joystick könnt ihr empfehlen (einfach, preiswert, keine Spiele-Dauernutzung, keine hohen Ansprüche)?
Danke schon mal für eure Hilfen
Ich würde gern mal wieder von eurem Erfahrungsschatz profitieren:
1. Ich kenne von früher die analogen Joysticks mit 2 Potentiometern für den Gameport. Welche Technik ist denn heute aktuell in analoge USB-Joysticks eingebaut?
2. Wie kann man die Taster und analoge x-y-Position dann unter Lazarus (Win und Lin) auslesen, um diese für die Steuerung eigener Anwendungen zu verwenden?
3. Welchen Joystick könnt ihr empfehlen (einfach, preiswert, keine Spiele-Dauernutzung, keine hohen Ansprüche)?
Danke schon mal für eure Hilfen
Re: Joystick Technik und Auslesen
Plattformübergreifend am ehesten wohl mit SDL
https://wiki.freepascal.org/FPC_and_SDL
Aber frag mich nicht...
https://wiki.freepascal.org/FPC_and_SDL
Aber frag mich nicht...
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: Joystick Technik und Auslesen
SInd die denn noch Analoglzuser hat geschrieben: Mi 25. Nov 2020, 10:03 Win10 2004, Laz 2.0.8 auch Linux Mint 20, Laz 2.0.6
Ich würde gern mal wieder von eurem Erfahrungsschatz profitieren:
1. Ich kenne von früher die analogen Joysticks mit 2 Potentiometern für den Gameport. Welche Technik ist denn heute aktuell in analoge USB-Joysticks eingebaut?

Wenn ich das noch richtig im Filter habe, waren diese doch auf dem Midi-Port?
und ich vermute mal, das diese nun nur noch Emuliert werden.
Selbiges Problem hab ich mit meinem Starto DJ-Herkules-Mischpult (2 Kanal)
Da ich leider nicht die Daten erhalten habe, welche ich letztendlich brauche, die mir auch zuverlässig was geben, haben ich diese Projekt in die Ablage P befördert und eine Alternative aufgebaut.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- Beiträge: 955
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Joystick Technik und Auslesen
Heutige Eingabegeräte arbeiten eigentlich alle mit der HID Spezifikation. Die Betriebssysteme bieten dann eine entsprechende API an, um auf diese zu zu greifen. Du kannst dir zum Beispiel mal den Code der Castle-Engline zu den Eingabegeräten anschauen (sollte sich prinzipiell aus der Engine rauslösen lassen).lzuser hat geschrieben: Mi 25. Nov 2020, 10:03 2. Wie kann man die Taster und analoge x-y-Position dann unter Lazarus (Win und Lin) auslesen, um diese für die Steuerung eigener Anwendungen zu verwenden?
FPC Compiler Entwickler
- corpsman
- Lazarusforum e. V.
- Beiträge: 1620
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Joystick Technik und Auslesen
Ich hab das mal mit SDL2 gemacht, als Anlage der notwendige Code ist recht Simpel und funktioniert unter Windows und Linux 

- Dateianhänge
-
- usdl_joystick.pas
- (1.96 KiB) 110-mal heruntergeladen
--
Just try it
Just try it
-
- Beiträge: 97
- Registriert: Sa 20. Jun 2009, 16:00
- OS, Lazarus, FPC: Win10 20H2, Laz 2.0.8 auch Linux Mint Mate 20, Laz 2.0.6
- CPU-Target: 64Bit
Re: Joystick Technik und Auslesen
Danke für deine Unit.
Erster Versuch: Mini-Anwendung zum Auslesen der X und Y-Achsen mit einem Timer
Könnte das überhaupt so klappen?
Warum wird das Create mit einem Index versehen?
Benötigt man für jede Achse eine eigene Instanz von TSDL_Joystick?
Erste große Hürde: Laz2.0.8 kennt sdl2 nicht, nur sdl. -->Debuggerfehler-Abbruch
Im Online Package Manager habe ich es nicht gefunden.
Wo könnte ich mich denn über sdl2 informieren, wie installieren?
Hast du auch eine Tastenauswertung probiert?
Zuletzt: Kannst du einen einfachen USB-Joystick z.B. mit 2 Achsen, 2 Taster benennen?
Ich fange erst an, mich damit zu beschäftigen.
Danke schon mal.
Erster Versuch: Mini-Anwendung zum Auslesen der X und Y-Achsen mit einem Timer
Code: Alles auswählen
uses usdl_joystick;
var JoyXAchse,JoyYAchse:TSDL_Joystick;
procedure TJoystickTestForm.FormCreate(Sender: TObject);
begin
JoyXAchse:=TSDL_Joystick.Create(0);
JoyYAchse:=TSDL_Joystick.Create(1);
end;
procedure TJoystickTestForm.FormDestroy(Sender: TObject);
begin
JoyXAchse.Destroy; JoyYAchse.Destroy;
end;
procedure TJoystickTestForm.TimerCheckBoxChange(Sender: TObject);
begin
JoystickTimer.enabled:=TimerCheckBox.checked;
end;
procedure TJoystickTestForm.JoystickTimerTimer(Sender: TObject);
begin
xAchseEdit.Text:=IntToStr(JoyXAchse.Axis[0]);
yAchseEdit.Text:=IntToStr(JoyYAchse.Axis[1]);
end;
Warum wird das Create mit einem Index versehen?
Benötigt man für jede Achse eine eigene Instanz von TSDL_Joystick?
Erste große Hürde: Laz2.0.8 kennt sdl2 nicht, nur sdl. -->Debuggerfehler-Abbruch
Im Online Package Manager habe ich es nicht gefunden.
Wo könnte ich mich denn über sdl2 informieren, wie installieren?
Hast du auch eine Tastenauswertung probiert?
Zuletzt: Kannst du einen einfachen USB-Joystick z.B. mit 2 Achsen, 2 Taster benennen?
Ich fange erst an, mich damit zu beschäftigen.
Danke schon mal.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1620
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Joystick Technik und Auslesen
Also
du musst die sdl2.dll selber runterladen ( https://www.libsdl.org/download-2.0.php )
Der Index beim Create ist deswegen notwendig, weil es ja sein kann das du mehrere Joysticks im System hast und damit wählst du aus welchen du haben willst
Anbei mein Demoprojekt zu dem Thema, da musst dann auch noch die sdl2.pas und die DLL mit anfügen
du musst die sdl2.dll selber runterladen ( https://www.libsdl.org/download-2.0.php )
Der Index beim Create ist deswegen notwendig, weil es ja sein kann das du mehrere Joysticks im System hast und damit wählst du aus welchen du haben willst
Anbei mein Demoprojekt zu dem Thema, da musst dann auch noch die sdl2.pas und die DLL mit anfügen
- Dateianhänge
-
Joystick_Demo.zip
- (3 KiB) 86-mal heruntergeladen
--
Just try it
Just try it
Re: Joystick Technik und Auslesen
Auf Linux musst du wohl via Paket Manger libSDL2-devel und Freunde installieren.
-
- Beiträge: 97
- Registriert: Sa 20. Jun 2009, 16:00
- OS, Lazarus, FPC: Win10 20H2, Laz 2.0.8 auch Linux Mint Mate 20, Laz 2.0.6
- CPU-Target: 64Bit
Re: Joystick Technik und Auslesen
Vielen Dank für die Materialien und Hinweise. Dann könnte ich wohl loslegen, fehlt nur noch ein USB-Joystick, mit dem ich die tollen Einstiegshilfen auch testen kann.
Ich suche ja einen "analogen" Joystick, der je nach Neigung andere Werte (16bit wie in der Unit angegeben) liefert, so wie früher die Realisierung mit Potentiometern. Leider konnte ich über die heutige Technik nichts finden.
Aktuell scheinen die meisten Joysticks bis 60€ auch ausverkauft zu sein.
Habt ihr denn noch einen Tipp für einen Joystick?
Vielen Dank nochmal.
Ich suche ja einen "analogen" Joystick, der je nach Neigung andere Werte (16bit wie in der Unit angegeben) liefert, so wie früher die Realisierung mit Potentiometern. Leider konnte ich über die heutige Technik nichts finden.
Aktuell scheinen die meisten Joysticks bis 60€ auch ausverkauft zu sein.
Habt ihr denn noch einen Tipp für einen Joystick?
Vielen Dank nochmal.
- corpsman
- Lazarusforum e. V.
- Beiträge: 1620
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Joystick Technik und Auslesen
Ich hatte als Joystick meine Taranis Q7 genommen, geht auch wunderbar 
bzw hab ich noch einen Adapter der nen Uralt Analogen auf einen USB umsetzt
Wenn du da googelst gibts schon welche für 3 Euro
Auch ne Idee ist einen Arduino zu nehmen, da gibts ne Lib mit der er sich als Joystick registriert glaubig und dann das AD-Samplen selber machen, dürfte aber sicher keine 16-Bit sein ..

bzw hab ich noch einen Adapter der nen Uralt Analogen auf einen USB umsetzt
Wenn du da googelst gibts schon welche für 3 Euro
Auch ne Idee ist einen Arduino zu nehmen, da gibts ne Lib mit der er sich als Joystick registriert glaubig und dann das AD-Samplen selber machen, dürfte aber sicher keine 16-Bit sein ..
--
Just try it
Just try it
-
- Beiträge: 1224
- Registriert: So 20. Mär 2016, 22:14
- OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
- CPU-Target: Raspberry Pi 3
Re: Joystick Technik und Auslesen
Hab hier einen Logitech Extreme 3D pro stehen, der hat so viele Potis, da kannst Du Dich richtig austoben. Ca. 50€, aber momentan schwer zu bekommen anscheinend.