Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

Создаем свой блок. Вопросы, помощь знатоков.
Ответить
Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#1

Сообщение ViktorPetrov » 22.11.2019{, 12:40}

При изучение протокола NMEA обмена данными навигационных электронных устройств появилась необходимость вычислить расстояние от текущего положения до заданной точки. Фактически это вычисление расстояния по двум GPS координатам.
Дистанция_и_курс_(CODE).ubi
(32.51 КБ) 86 скачиваний
Раздельно:
Дистанция_до_точки._(CODE).ubi
(16.11 КБ) 87 скачиваний
Курс_gps_(CODE).ubi
(17.05 КБ) 84 скачивания
Идея такова построить управляющее устройство из связки Ардуино для реализации полноценной многозадачности,где каждый МК будет выполнять свой узкий круг задач GPS.

Для проверки блоков ,вставить свои координаторы и пройти по ссылке: Калькулятор расстояния и азимута по географическим координатам

AstroGraf
Рядовой
Сообщения: 63
Зарегистрирован: 21.08.2018{, 19:05}
Репутация: 12
Откуда: Калининград
Имя: Алексей

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#2

Сообщение AstroGraf » 03.06.2021{, 18:38}

Добрый день!

Не совсем понятно, а куда вводить координаты для расчетов? У блоков только выходы...

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#3

Сообщение ViktorPetrov » 03.06.2021{, 21:54}

По UART должен получать,как и блок GPS-Block ,хотел разобраться как в функции вход добавить ,чтоб вместе оба блока можно использовать в проекте ,время не хватило до конца разобраться, может пример неудачный выбрал ,хотел румпельный автопилот сделать для троллинга .Сама по себе тема лодочного компьютера и бортовой сети по протоколу NMEA2000 интересная, хотя и обширная.

Anydy

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#4

Сообщение Anydy » 05.06.2021{, 09:17}

ViktorPetrov писал(а):
03.06.2021{, 21:54}
хотел румпельный автопилот сделать для троллинга

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#5

Сообщение ViktorPetrov » 05.06.2021{, 12:54}

Anydy писал(а):
05.06.2021{, 09:17}
ViktorPetrov писал(а):
03.06.2021{, 21:54}
хотел румпельный автопилот сделать для троллинга
Со скоростью 6км/час :)


AstroGraf
Рядовой
Сообщения: 63
Зарегистрирован: 21.08.2018{, 19:05}
Репутация: 12
Откуда: Калининград
Имя: Алексей

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#7

Сообщение AstroGraf » 05.06.2021{, 19:39}

У меня задача попроще - нужно определить курс и дистанцию из текущей точки до предварительно заданной. Чтобы наземное транспортное средство могло доехать по прямой. Не совсем понимаю как совместить навигатор и эти блоки.
Буду очень признателен за помощь.
В наличии NEO6 и NEO8

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#8

Сообщение ViktorPetrov » 07.06.2021{, 12:53}

Чтоб курс держать нужен компас .Чтоб подключится к навигатору ,нужно NEO6 и ардуину , подключить как внешний приемник ,я попробовал на программе SASPlanet,только возникает вопрос нужен ли вообще блок GPS-Block,здесь получается проще сразу со строками работать .На форуме были хорошие примеры : Gps парсинг или разбор строки.

AstroGraf
Рядовой
Сообщения: 63
Зарегистрирован: 21.08.2018{, 19:05}
Репутация: 12
Откуда: Калининград
Имя: Алексей

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#9

Сообщение AstroGraf » 07.06.2021{, 16:38}

Виктор, объясните подробно - в каком виде Ваши блоки получаю информацию? Из UART в формате NMEA?
Зачем тогда парсер? Если нет, в другом формате, поясните, как можно подробнее.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#10

Сообщение ViktorPetrov » 08.06.2021{, 20:19}

AstroGraf писал(а):
07.06.2021{, 16:38}
Зачем тогда парсер?
Чтоб двойное преобразование не делать : с NEO6 или NEO8 по RX и TX ,ардуино получает строку типа - $GPRMC,180301.45,A,5546.8890,N,03733.3533,E,22.4,090.4,190608,10,E*45 и пересылает в СОМ порт навигационной программы,получается внешний приемник GPS для навигатора . Парсингом получаешь данные для управления ,расстояние нужно для переключения на следующию точку (когда расстояние минимальное до точки,пройден марширут до первой точки, переходим к второй и т.д.). Полученный направление движения от GPS сверяется с компасом ,получаем управляющий сигнал на автопилот (не зависимо от течения и ветра,лодку может сносить приходим на заданную точку). Ну и там разные плюшки :количество топлива в баке ,расход топлива ,обороты ,скорость и т.д. виртуальная приборная панель,все приборы объединить в одну сеть.

AstroGraf
Рядовой
Сообщения: 63
Зарегистрирован: 21.08.2018{, 19:05}
Репутация: 12
Откуда: Калининград
Имя: Алексей

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#11

Сообщение AstroGraf » 08.06.2021{, 21:51}

Т.е. я пишу парсер, который выделяет текущие координаты - это понятно.
Но не понимаю, что значит "пересылает в СОМ порт навигационной программы"?
Поясните как пользоваться Вашими блоками, как и в каком виде можно передать в блоки координаты, полученные парсером?

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#12

Сообщение Ingwar » 08.06.2021{, 22:08}

ViktorPetrov, эту бибку рассматривали https://www.arduino.cc/reference/en/libraries/tinygps/ ? https://github.com/mikalhart/TinyGPSPlus

Отправлено спустя 2 минуты 23 секунды:
Или http://arduiniana.org/libraries/tinygpsplus/
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#13

Сообщение ViktorPetrov » 10.06.2021{, 17:28}

Ingwar, Обновленная библиотека TinyGPS++ ,это как раз и не хватало в блоке GPS-Block_v0.5 :smile9:

AstroGraf
Рядовой
Сообщения: 63
Зарегистрирован: 21.08.2018{, 19:05}
Репутация: 12
Откуда: Калининград
Имя: Алексей

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#14

Сообщение AstroGraf » 13.07.2021{, 21:33}

Добрый день!

Мои пионеры доработали блоки ViktorPetrov, приделав им входы. Работу начали в новом конструкторе блоков, однако из-за отсутствия стандартного блока ATAN2 (как позднее выяснилось не только его) пришлось сделать и второй блок (программный), в котором заканчиваются расчеты дистанции и вычисляется курс.
Пока данные берутся из переменных, далее планируется получать их из GPS-блока. Однако возникли проблемы с работой программы - вычисления происходят как бы не сразу, а через 5-10 секунд, при этом в монитор выводятся ненужные нули.

Может кто-то подскажет где ошибка и поможет доделать программу?


Программа
0.2 version.flp
(2.45 МБ) 41 скачивание

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#15

Сообщение rw6cm » 14.07.2021{, 11:34}

AstroGraf писал(а):
13.07.2021{, 21:33}
Может кто-то подскажет где ошибка и поможет доделать программу?
Много лишнего, и да и расчет не точный. особенно расстояние.
Хотя бы по гуглу сравнили, или онлайн калькулятором, :)
Если это творят детишки, то зачет :smile9:
Win10-64, FLProg (portable)

AstroGraf
Рядовой
Сообщения: 63
Зарегистрирован: 21.08.2018{, 19:05}
Репутация: 12
Откуда: Калининград
Имя: Алексей

Расчет дистанции и курса на точку, между двумя точками по GPS координатам.

#16

Сообщение AstroGraf » 14.07.2021{, 12:29}

rw6cm писал(а):
14.07.2021{, 11:34}
Если это творят детишки, то зачет
Спасибо огромное, rw6cm! Как всегда, выручил!

Да, это ребята 13-15 лет тренируются.
Со схемотехникой я им помогаю, а вот по С++ должным образом помочь не могу , как говорится, читаю, но не разговариваю.

Ответить

Вернуться в «Разработка пользовательских блоков»