Ik ben momenteel bezig een klein tooltje te maken om wat servo's en motoren te kunnen bedienen op een Arduiono, waar ik als input device een stuurtje voor wil gebruiken welke over Force Feedback beschikt (in dit geval een Thrustmaster T150). Dit werkt via Pygame die de input van het device leest en daar weer acties aan koppelt.
De inputs werken netjes, maar ik loop tegen het probleem aan dat het stuurtje in de locked positie blijft staan. Als ik de Thrustmaster software eerst start wordt het stuur vrijgegeven en werkt het. Het is echter natuurlijk niet de bedoeling om continue dit op de achtergrond open te hebben staan. Als ik de software sluit, dan "locked" het stuur zich. Wel zie ik dat er dan nog steeds netjes input wordt gelezen van het stuurwiel, maar het voelt alsof Force Feedback maximaal in alle twee de richtingen aan staat.
Mijn vraag
Is het mogelijk om via Pygame (of een andere library) Force Feedback toe te passen, of indien niet mogelijk om het te gebruiken, het volledig uit te schakelen en het stuur vrij te geven?
Relevante software en hardware die ik gebruik
Python27 op Windows 10, Pygame
Wat ik al gevonden of geprobeerd heb
Diverse artikelen spreken over een (zeer) beperkte ondersteuning van Force Feedback in Pygame onder Linux, echter zijn deze al wel redelijk gedateerd en dus onbekend of dat nog van toepassing is. Recentere informatie kwam ik er niet direct over tegen.
Onder windows wordt, voor zover ik kan achterhalen, DirectX / DirectInput gebruikt voor het aanspreken van het stuur. Een Python library voor DirectX
Na wat zoekwerk kwam ik uit bij DirectPython 11(http://directpython11.sourceforge.net/) kan wel overweg met DirectInput. Voor zover ik na kan gaan zou het daar ergens in moeten zitten. Xinput zou dan weer additioneel nodig zijn om ook op de Xbox360-controller het werkend te krijgen als ik de documentatie op MSDN: XInput and DirectInput (Windows) mag geloven. Daarnaast lijkt zowel DirectPython als de documentatie van Microsoft nogal gedateerd te zijn, maar moet voor zover ik kan overzien nog wel werken.
DirectPython is echter weer een C++ extension, en mijn programmeer-kunsten in Python zijn al zeer beperkt, en van C++ weet ik zo mogelijk nog minder
Iemand die me in de juiste richting kan wijzen?
.--Edit--
Nog even verder gezocht, en het lijkt inderdaad via DirectInput te moeten verlopen. Dit zou via FreePIE / vJoy mogelijk moeten zijn, maar voor alsnog begrijp ik nog niet helemaal wat hierin de bedoeling is om het werkend te krijgen...
De inputs werken netjes, maar ik loop tegen het probleem aan dat het stuurtje in de locked positie blijft staan. Als ik de Thrustmaster software eerst start wordt het stuur vrijgegeven en werkt het. Het is echter natuurlijk niet de bedoeling om continue dit op de achtergrond open te hebben staan. Als ik de software sluit, dan "locked" het stuur zich. Wel zie ik dat er dan nog steeds netjes input wordt gelezen van het stuurwiel, maar het voelt alsof Force Feedback maximaal in alle twee de richtingen aan staat.
Mijn vraag
Is het mogelijk om via Pygame (of een andere library) Force Feedback toe te passen, of indien niet mogelijk om het te gebruiken, het volledig uit te schakelen en het stuur vrij te geven?
Relevante software en hardware die ik gebruik
Python27 op Windows 10, Pygame
Wat ik al gevonden of geprobeerd heb
Diverse artikelen spreken over een (zeer) beperkte ondersteuning van Force Feedback in Pygame onder Linux, echter zijn deze al wel redelijk gedateerd en dus onbekend of dat nog van toepassing is. Recentere informatie kwam ik er niet direct over tegen.
Onder windows wordt, voor zover ik kan achterhalen, DirectX / DirectInput gebruikt voor het aanspreken van het stuur. Een Python library voor DirectX
Na wat zoekwerk kwam ik uit bij DirectPython 11(http://directpython11.sourceforge.net/) kan wel overweg met DirectInput. Voor zover ik na kan gaan zou het daar ergens in moeten zitten. Xinput zou dan weer additioneel nodig zijn om ook op de Xbox360-controller het werkend te krijgen als ik de documentatie op MSDN: XInput and DirectInput (Windows) mag geloven. Daarnaast lijkt zowel DirectPython als de documentatie van Microsoft nogal gedateerd te zijn, maar moet voor zover ik kan overzien nog wel werken.
DirectPython is echter weer een C++ extension, en mijn programmeer-kunsten in Python zijn al zeer beperkt, en van C++ weet ik zo mogelijk nog minder
.--Edit--
Nog even verder gezocht, en het lijkt inderdaad via DirectInput te moeten verlopen. Dit zou via FreePIE / vJoy mogelijk moeten zijn, maar voor alsnog begrijp ik nog niet helemaal wat hierin de bedoeling is om het werkend te krijgen...
[ Voor 5% gewijzigd door kroegtijger op 11-10-2017 16:24 ]