Comment créer un smoth motion sur esp32 piloter par joystick bluetooh

j ai des difficultés a transposer des codes arduino contrôlant des servomoteurs en smoth motion(mouvement lisse consistant a ne pas mettre d à-coup, mouvement fluide) sur un esp32 piloter par un joystick type manette ps3.

lien youtube pour comprendre: How To Make Robots Move Smoothly | Arduino Tutorial - YouTube

voici les codes:

#include <Servo.h>

int pot1;
int pot2;
int pot3;
int pot4;
int pot5;
int pot6;

float pot1Scaled;
float pot2Scaled;
float pot3Scaled;
float pot4Scaled;
float pot4aScaled;
float pot5Scaled;
float pot6Scaled;

float pot1Smoothed;
float pot2Smoothed;
float pot3Smoothed;
float pot4Smoothed;
float pot4aSmoothed;
float pot5Smoothed;
float pot6Smoothed;

float pot1SmoothedPrev;
float pot2SmoothedPrev;
float pot3SmoothedPrev;
float pot4SmoothedPrev;
float pot4aSmoothedPrev;
float pot5SmoothedPrev;
float pot6SmoothedPrev;

Servo servo1;
Servo servo2;
Servo servo3;

Servo servo4;
Servo servo5;
Servo servo6;
Servo servo7;

void setup() {

pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(A4, INPUT);
pinMode(A5, INPUT);

Serial.begin(115200);

servo1.attach(4);
servo2.attach(5);
servo3.attach(6);

servo4.attach(7);
servo5.attach(8);
servo6.attach(9);
servo7.attach(10);

servo1.writeMicroseconds(1200);
servo2.writeMicroseconds(1650);
servo3.writeMicroseconds(1650);

servo4.writeMicroseconds(1500);
servo5.writeMicroseconds(1550);
servo6.writeMicroseconds(1500);
servo7.writeMicroseconds(1450);

}

void loop() {

pot1 = analogRead(A0);
pot2 = analogRead(A1);
pot3 = analogRead(A2);
pot4 = analogRead(A3);
pot5 = analogRead(A4);
pot6 = analogRead(A5);

// scale all pots for the servo microseconds range

pot1Scaled = ((pot1 - 512) * -1.6) + 1200;
pot2Scaled = (pot2 - 512) + 1500;
pot3Scaled = (pot3 - 512) + 1500;
pot4Scaled = ((pot4 - 512) * 1.2) + 1500;
pot4aScaled = ((pot4 - 512) * -1.2) + 1500;
pot5Scaled = (pot5 - 512) * 1.5;
pot6Scaled = (pot6 - 512) + 1650;

pot4Scaled = constrain(pot4Scaled,900,1500);
pot4aScaled = constrain(pot4aScaled,1500,2100);

// smooth pots

pot1Smoothed = (pot1Scaled * 0.02) + (pot1SmoothedPrev * 0.98);
pot2Smoothed = (pot2Scaled * 0.02) + (pot2SmoothedPrev * 0.98);
pot3Smoothed = (pot3Scaled * 0.02) + (pot3SmoothedPrev * 0.98);
pot4Smoothed = (pot4Scaled * 0.05) + (pot4SmoothedPrev * 0.95);
pot4aSmoothed = (pot4aScaled * 0.05) + (pot4aSmoothedPrev * 0.95);
pot5Smoothed = (pot5Scaled * 0.02) + (pot5SmoothedPrev * 0.98);
pot6Smoothed = (pot6Scaled * 0.02) + (pot6SmoothedPrev * 0.98);

// bookmark previous values

pot1SmoothedPrev = pot1Smoothed;
pot2SmoothedPrev = pot2Smoothed;
pot3SmoothedPrev = pot3Smoothed;
pot4SmoothedPrev = pot4Smoothed;
pot4aSmoothedPrev = pot4aSmoothed;
pot5SmoothedPrev = pot5Smoothed;
pot6SmoothedPrev = pot6Smoothed;

Serial.print(pot1Smoothed);
Serial.print(" , ");
Serial.print(pot2Smoothed);
Serial.print(" , ");
Serial.print(pot3Smoothed);
Serial.print(" , ");
Serial.print(pot4Smoothed);
Serial.print(" , ");
Serial.print(pot5Smoothed);
Serial.print(" , ");
Serial.println(pot6Smoothed);

// write servos

servo1.writeMicroseconds(pot1Smoothed);
servo2.writeMicroseconds(pot6Smoothed - pot5Smoothed);
servo3.writeMicroseconds(pot6Smoothed + pot5Smoothed);

servo5.writeMicroseconds(pot2Smoothed);
servo7.writeMicroseconds(pot2Smoothed);

servo4.writeMicroseconds(pot4Smoothed);
servo6.writeMicroseconds(pot4aSmoothed);

delay(5);

}

merci pour votre aide

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Fil de discussion clos car en doublon avec