-schumi-

Anmeldungsdatum: 28.10.2009 Beiträge: 131 Wohnort: Südbayern
|
Verfasst am: 14.11.2010, 20:36 Titel: Gamepad: automatisch auf analog schalten? |
|
|
Hallo
Mein Gamepad ärgert mich grad n bissel. Es geht um folgendes:
Mit einem Joystick des Gamepads kann ich meinen Roboter Robby RP6 *¹ mithilfe des Funkmoduls RFM12 *² fernsteuern,
Um z.B. auch Kurven mit unterschiedlichen Radien fahren zu können muss ich des Stick des Gamepads manuell auf analog schalten, weil sonst nur ein vollausschlag erkannt wird.
Meine Frage:
Ist es denn mit vertretbarem Aufwand möglich dass das FB-Programm beim Start das Gamepad automatisch auf analog schaltet?
Der Code (hab mir einfach das Beispiel von freebasic-portal.de geschnappt und bissel modifiziert)
Code: |
SCREEN 12
DIM AS SINGLE x, y, gasmulti, lenkmulti
DIM AS INTEGER buttons, result, i
OPEN COM "/dev/ttyUSB0:38400,N,8,1,ME,CS0,DS0,RS" AS #1
CONST JoystickID = 0
' Prüfe, ob die Joystick-Abfrage arbeitet:
IF GETJOYSTICK(JoystickID, buttons, x, y) THEN
PRINT "Joystick existiert nicht, oder ein Fehler ist aufgetreten."
PRINT
PRINT "Beliebige Taste drücken um fortzusetzen"
SLEEP
END
END IF
DO
GETJOYSTICK JoystickID, buttons, x, y
LOCATE 1,1
PRINT USING "x: +#.### y: +#.### Buttons: #### "; x; y; buttons
IF (buttons AND (1 SHL 0)) THEN 'Ermöglich langsahmes, normales und schnelles fahren
gasmulti=60
lenkmulti=40
elseif (buttons AND (1 SHL 2)) then
gasmulti=20
lenkmulti=15
else
gasmulti=40
lenkmulti=30
end if
sleep 15
y=y*-1
put #1,,chr(255) 'Übertragung einleiten
put #1,,chr(int(128+y*gasmulti+x*lenkmulti)) 'linke Kette
put #1,,chr(int(128+y*gasmulti-x*lenkmulti)) 'rechte Kette
' Bei Tastendruck beenden.
LOOP UNTIL LEN(INKEY)
close
|
MfG + schon mal Danke!
-schumi-
PS:
Die Links für Leute die es interessiert:
*¹ Robby RP6: http://arexx.com/rp6/html/de/index.htm
*² RFM-Funkmodul: http://www.pollin.de/shop/dt/MDU5OTgxOTk-/Bausaetze_Module/Module/Funkmodul_RFM12_433_Sende_Empfangsmodul.html |
|