Ваш GPS-приемник должен вывести NMEA, который содержит предложение NMEA под названием RMC. Поле 5 этого предложения - это скорость относительно земли в узлах, а поле 6 - это курс в градусах. Поля 1 и 2 дают вам координаты вашей текущей позиции A = (lat1, lon1), и вы ввели пункт назначения как B = (lat2, lon2)
Теперь заголовок, в котором вы хотите находиться, рассчитывается с использованием atan2 следующим образом:
heading = atan2( sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2) - sin(lat1)*cos(lat2)*cos(lon2-lon1))
А затем преобразовать это из радиан в градусы, но вам также нужно добавить 180 градусов к любому отрицательному ответу (в результате курс будет от -180 до 180).
Итак, теперь у вас есть фактический заголовок hA, а заголовок должен быть в hB. Вычтите одно из другого (hA - hB), и если ваш ответ положительный, начните поворачивать направо, а если ваш ответ отрицательный, начните поворачивать налево.