вариантов много, дело вкуса и фантазии. с инетом тут туго, на смарте могу только в общем корявенько описать. один из простеньких вариантов может быть примерно таким: получаем данные с потенциометров. значения 0..1024 переводим в +-100%. "center" - это позиция джойстиков, которые считаем нулём. мало ли, может с отпущенной ручкой не всегда будет 512 возвращать. перемещая вверх/вниз, управляем скоростью моторов с обеих сторон. +- это соответственно будет направление. для дальнейшего упрощения максимумом делаем 70% вместо 100%. перемещая джойстик вправо/влево, корректируем процентики. чтобы не вылазить за 100%, соответственно берём не 100, а 30. в коде это примерно так будет выглядеть
Код:
x_position = (analogRead(pin_analog_x) - 512) / 5.12;
y_position = (analogRead(pin_analog_y) - 512) / 5.12;
center = 5;
if(abs(x_position) <= center) x_position = 0;
else x_position *= 0.3;
if(abs(y_position) <= center) y_position = 0;
else y_position *= 0.7;
left = y_position;
right = y_position;
if(x_position > 0)
{
left += x_position;
right -= x_position;
}
else
{
left -= x_position;
right += x_position;
}
а дальше из этих процентиков получаете значения шимов и какие направления вращения моторов. с флоатом или инверсией данных если что дорихтуйте. ну и в коде может чего накосячил, проверить сейчас нет возможности, да и для передачи смысла это не особо нужно.