STEMpedia / Dabble

Arduino Library for Dabble app, which includes virtual shields for robot control, sensors, camera, IoT and much more. Compatible with Bluetooth modules like HC-05, HC-06, HM-10, and ESP32 (BLE or Bluetooth 2.0 or 4.0)
https://thestempedia.com/product/dabble/
GNU Lesser General Public License v3.0
47 stars 17 forks source link

Gamepad/Joystick implementation #7

Open nsc-jens opened 3 years ago

nsc-jens commented 3 years ago

Hi,

I looked for a forum to bring this up for discussion, but I didn't find one so here goes:

I find the Joystick in the Gamepad Module a bit strange. Or at least the getXaxisData() and getYaxisData() functions. If I move the joystick forward I get values up to 7. This is OK. If I move it backwards I only get -6, not -7 as the documentation states. I guess this is a bug somewhere, but I can work around this. Left and right works as expected.

Now for the tricky part. The joystick is round! This works for the angle-radius functions, but is pretty useless for the Xaxis/Yaxis input since you cannot get full forward at the same time as full right. The only way to get max forward is to keep the joystick dead center. This is not how a joystick usually works, where you can move the joystick to up right corner and get both Y=7 and X=7. The joystick (or control stick on a RC controller) is square.

So my wish is for the app to have a fourth mode, besides "Digital Mode", "Joystick Mode" and "Accelerometer Mode" with a square joystick.

As I didn't find a forum to discuss this in, I don't know if this is the intended behavior. I does make perfect sense for the getAngle() and getRadius() functions I guess. If this indeed the way it is supposed to work you can close this issue immediately. :-)