Поворот серво на азимут. извесно угол движения и азимут.

zDimaBY
Offline
Зарегистрирован: 10.06.2018
          ackData[1] = compass.course.deg(); // 0 (курс)
          ackData[4] = distanceMeterTo;
          ackData[5] = courseToLockation; // = 40 (азимут)

      Serial.println(ackData[4]);
      if (ackData[4] < 5) { // вычесление угола поворота. 
        flag = false;
      } else {
        int i = 80;
        if ( ackData[1] < 180 && ackData[5] < 180) {
          for (i <= 100; i++) {
            servo1.write(map(i, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH));
          }
        } else {
          if ( ackData[1] < 360 && ackData[5] < 360) {
            if ( i >= 60; i--) {
              servo1.write(map(i, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH));
            }
          }

Подскажите возможно кто знает как рассчитать функцию угола поворота на заданый азимут или возможно где-то есть wiki ?

zDimaBY
Offline
Зарегистрирован: 10.06.2018
if ( ackData[1] < ackData[5] ) {
          turn++;
          if (turn >= 100) { turn = 100; }
          servo1.write(map(turn, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH));
        } else {
          turn--;
          if (turn <= 60) { turn = 60; }
          servo1.write(map(turn, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH));
        }

Такое вычисление будет правильным ?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А словами можете сказать?

Там же, вроде, считать нечего, если текущий курс известен, то из нужного курса вычесть текущий и на этот угол повернуть.

Насчёт вики не знаю, могу предложить учебник геометрии за 7-ой класс.

rkit
Offline
Зарегистрирован: 23.11.2016

servo.write(азимут), как ни удивительно

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

rkit пишет:

servo.write(азимут), как ни удивительно

Это тока если мордой на север стоишь.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ЕвгенийП пишет:

Это тока если мордой на север стоишь.

Лучше мордой на юх стоять, тогда мох на затылке вырастет. 

rkit
Offline
Зарегистрирован: 23.11.2016

Азимут это угол между мордой и требуемым направлением.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

rkit пишет:

Азимут это угол между мордой и требуемым направлением.

Это относительный азимут. Обычно же, если нет уточнения, то имеется в виду абсолютный.

zDimaBY
Offline
Зарегистрирован: 10.06.2018

zDimaBY пишет:

if ( ackData[1] < ackData[5] ) {
          turn++;
          if (turn >= 100) { turn = 100; }
          servo1.write(map(turn, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH));
        } else {
          turn--;
          if (turn <= 60) { turn = 60; }
          servo1.write(map(turn, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH));
        }

Такое вычисление будет правильным ?

Эти вычисление более правильные. на практике. Поворачивает в нужные стороны НО на максимальные углы. плывет очень большими зигзагами и недалеко от места старта уже кружляет (потерял свой угол хода так как определяет через GPS) или стоит брать значение из HMC5883L  ?

ЕвгенийП пишет:

А словами можете сказать?

Там же, вроде, считать нечего, если текущий курс известен, то из нужного курса вычесть текущий и на этот угол повернуть.

Насчёт вики не знаю, могу предложить учебник геометрии за 7-ой класс.

Есть катер, на катере серво стоит, его ограничил 60 - 100 градусов (так как максимальный угол поворота) средние положение 80град + -  плывет ровно не учитывать ветер и волны. У него есть GPS neo 6m (минус модуля его задержка в 1с получение пакета думаю если катер будет плыть на минимальных оборотах и будет более-менее нормально ) и есть HMC5883L - думаю плохая будет идея по его показателям плыть.

rkit пишет:

servo.write(азимут), как ни удивительно

Нет, нет. Нужно при максимальном угле поворота повернуть в крайне левое или правою сторону затем при сравнении угла движения и азимута минимальные повороти. Как-то так думаю. 

ЕвгенийП пишет:

rkit пишет:

Азимут это угол между мордой и требуемым направлением.

Это относительный азимут. Обычно же, если нет уточнения, то имеется в виду абсолютный.

Относительный где бы вокруг азимута не оказался всегда знаю где он.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

zDimaBY пишет:

Относительный где бы вокруг азимута не оказался всегда знаю где он.

Ээээ .... и Вам того же :-)

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

DetSimen пишет:

Лучше мордой на юх стоять, тогда мох на затылке вырастет. 

Учебник по природоведению утверждает, что на лбу)) 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Rumata пишет:

Учебник по природоведению утверждает, что на лбу)) 

Брешет, поди?

Pyotr
Offline
Зарегистрирован: 12.03.2014

ЕвгенийП пишет:

Rumata пишет:

Учебник по природоведению утверждает, что на лбу)) 

Брешет, поди?

Евгений, учебник не может брехать)) Просто у автора того учебника была "мохнатая" голова)) Вот он и изложил правду-матку)