diff --git a/Arduino/dinput/dinput.ino b/Arduino/dinput/dinput.ino index 5df5816..1dbb43a 100644 --- a/Arduino/dinput/dinput.ino +++ b/Arduino/dinput/dinput.ino @@ -15,10 +15,14 @@ Joystick_ Joystick(0x03, JOYSTICK_TYPE_GAMEPAD); #define LEFT_PIN 11 #define RIGHT_PIN 10 -#define MULTIPLEXER 0x70 - +// negative offset of the tof sensors measure +#define OFFSET_TOP 17 +#define OFFSET_MID 15 +#define OFFSET_BOTTOM 0 #define LASER_FLOOR 5 //increase to increate the minimum distance +#define MULTIPLEXER 0x70 + #define ABS(val) (val > 0 ? val : -val) //on sépare les instances de la librarie car je ne lui fais pas confiance pour opérer plusieurs lasers à la fois @@ -126,14 +130,14 @@ void loop() { selectI2C(0); - bool newState = lasers[0].readRange() < LASER_FLOOR; + bool newState = lasers[0].readRange() - OFFSET_BOTTOM < LASER_FLOOR; if(newState != laser1State) { Joystick.setButton(1, newState); laser1State = newState; } selectI2C(1); - newState = lasers[1].readRange() - 15 < LASER_FLOOR; + newState = lasers[1].readRange() - OFFSET_MID < LASER_FLOOR; if(newState != laser2State) { //2 & 4 car 2 est censé être le bouton X mais est cable sur 4 Joystick.setButton(2, newState); @@ -142,7 +146,7 @@ void loop() { } selectI2C(2); - newState = lasers[2].readRange() - 17 < LASER_FLOOR; + newState = lasers[2].readRange() - OFFSET_TOP < LASER_FLOOR; if(newState != laser3State) { Joystick.setButton(3, newState); laser3State = newState; @@ -165,11 +169,11 @@ void loop() { selectI2C(1); Serial.println("Laser Mid"); Serial.println(lasers[1].readRange()); - Serial.println(lasers[1].readRange() - 15 < LASER_FLOOR); + Serial.println(lasers[1].readRange() < LASER_FLOOR); selectI2C(2); Serial.println("Laser Haut"); Serial.println(lasers[2].readRange()); - Serial.println(lasers[2].readRange() - 17 < LASER_FLOOR); + Serial.println(lasers[2].readRange() < LASER_FLOOR); delay(1000); #endif } diff --git a/Arduino/xbox/xbox.ino b/Arduino/xbox/xbox.ino index f8ab9d7..d0ae10c 100644 --- a/Arduino/xbox/xbox.ino +++ b/Arduino/xbox/xbox.ino @@ -16,9 +16,14 @@ #define LEFT_PIN 11 #define RIGHT_PIN 10 +// negative offset of the tof sensors measure +#define OFFSET_TOP 17 +#define OFFSET_MID 15 +#define OFFSET_BOTTOM 0 +#define LASER_FLOOR 5 //increase to increate the minimum distance + #define MULTIPLEXER 0x70 -#define LASER_FLOOR 5 //increase to increate the minimum distance #define ABS(val) (val > 0 ? val : -val) @@ -128,21 +133,21 @@ void loop() { selectI2C(0); - bool newState = lasers[0].readRange() < LASER_FLOOR; + bool newState = lasers[0].readRange() - OFFSET_BOTTOM < LASER_FLOOR; if(newState != laser1State) { XInput.setButton(BUTTON_B, newState); laser1State = newState; } selectI2C(1); - newState = lasers[1].readRange() - 15 < LASER_FLOOR; + newState = lasers[1].readRange() - OFFSET_MID < LASER_FLOOR; if(newState != laser2State) { XInput.setButton(BUTTON_Y, newState); laser2State = newState; } selectI2C(2); - newState = lasers[2].readRange() - 17 < LASER_FLOOR; + newState = lasers[2].readRange() - OFFSET_TOP < LASER_FLOOR; if(newState != laser3State) { XInput.setButton(BUTTON_X, newState); laser3State = newState; @@ -156,7 +161,7 @@ void loop() { Serial.println(button); // o- 13 20 30 - // c- 0 15 16 + // c- 0 15 17 selectI2C(0); Serial.println("Laser Bas"); @@ -165,11 +170,11 @@ void loop() { selectI2C(1); Serial.println("Laser Mid"); Serial.println(lasers[1].readRange()); - Serial.println(lasers[1].readRange() - 15 < LASER_FLOOR); + Serial.println(lasers[1].readRange() < LASER_FLOOR); selectI2C(2); Serial.println("Laser Haut"); Serial.println(lasers[2].readRange()); - Serial.println(lasers[2].readRange() - 17 < LASER_FLOOR); + Serial.println(lasers[2].readRange() < LASER_FLOOR); delay(1000); #endif }