Страница 1 из 1

Блоки для геопозиционирования

Добавлено: 13 сен 2021, 22:51
rw6cm
Блоки для проектов позиционирования на местности и в пространстве.

1. Мульти блок компаса GY511 LSM303.
2. Мульти блок "GPS NMEA Parser".
3. Блок расчета расстояния и курса по координатам.
4. Вспомогательные блоки.

[spoiler title=Важная информация!]
В проекте блоки из мульти блока должны быть одной версии.
(мульти блок - блок объединяющий в себе несколько блоков сделанных в редакторе Code-Professional)
В моих блоках версия означает дата в низу описания мульти блока.
В первых моих мульти блоках дата стоит только в описании основы мульти блока.
Что не удобно в определении версии отдельного блока в проекте (упустил из вида)
В следующих обновлениях и новых мульти блоках будет дата в каждом блоке.
Если в проекте используются несколько блоков из одного мульти блока,
и вышло обновление связанное с каким то блоком из пакета мульти блока,
то заменить в проекте надо не только этот блок, но и все остальные блоки из этого мульти блока.
Иначе могут быть проблемы в работе проекта.
Это касательно не только моих блоков, но и всех мульти блоков сделанных в редакторе Code-Professional
[/spoiler]

Тема работы блоков в проектах Здесь

Блоки для геопозиционирования

Добавлено: 13 сен 2021, 22:53
rw6cm
Мульти блок компаса GY511 LSM303.
gy511 .jpg
.
Описание блока:
Описание мульти блока GY511.pdf
Библиотека:
lsm303flp.zip
Блок:
Компас_GY511_(LSM303)_(Code_-_Professional).zip
Проекты с этим блоком рассматриваются Здесь
FLProg 7.3.8
09/2021

Блоки для геопозицианирования

Добавлено: 13 сен 2021, 23:15
rw6cm
Мульти блок "GPS NMEA Parser".

Мульти блок GPS, выбирает данные из пакета NMEA-0183 формата, принятого по UART от GPS.
Приводит их к нужному виду и выдает для последующего использования.
Принятые данные с GPS могут быть, как общепринятые, так и дополнительные, заложенные производителем.

Мультиблок имеет блоки:
"Дата" "Время" "Координаты" "Курс" Высота" "Скорость" Спутники" "Точность места"
А также блок « доп. данные*» извлекающий выбранные дополнительные данные, заложенные производителем GPS.
Во многих блоках есть подсчет времени загрузки цикла блоком.
Некоторые блоки имеют дополнительные выходы (встроенные детекторы изменения сигналов).
Блоки используются в проекте один раз, кроме блока со звездочкой.
Библиотека используется TinyGPSflp. (уже в блоке)
Это слегка измененная под FLProg библиотека «TinyGPS++» version=1.0.2.
Изменения коснулись лишь в названии. Сделано что бы не возмущался FLProg в отсутствии библиотеки,
(т.к не умеет читать символы «++» в ее старом названии), и было меньше путаницы с версиями библиотек.
Примеры работы блока в проектах рассматриваются Здесь
Блок:
GPS_NMEA_Parser_(Code_-_Professional).zip
Библиотека:
TinyGPSflp.zip
FLProg 7.3.8
27.09.21

Блоки для геопозицианирования

Добавлено: 13 сен 2021, 23:15
rw6cm
Блок расчета расстояния и курса по координатам.

Блок рассчитывает расстояния и курс по координатам двух точек земли.
На входах данные градусов двух точек, вида ( 47.653124) тип строчный.
Если выбран 8бит контроллер, координаты вводятся раздельно целая и дробная части.
Пример: широта = 47.653124, записывать как lat1 = 57 lat1* = 0.653124
Почему именно в таком виде расписано Здесь
На выходе дистанция до второй точки в метрах, курс в градусах 0-360.
Определить_курс-дистанцию_(Code_-_Professional).ubi
FLProg 7.3.8
27.09.21

Блоки для геопозиционирования

Добавлено: 27 сен 2021, 14:18
rw6cm
Вспомогательные блоки.

Конвертер строки с дробным числом в тип Double.
Нужен в FLProg для 32-битных контроллеров.
Точность в расчетах с этим типом до 17-ти значного числа.
В проекте блоки должны уметь работать с типом Double.
Для размышления на эту тему
Конвертер_String_Double_(Code_-_Professional).ubi

Блок делит градусы азимута 0-360 на 16 именованных секторов,
и выводит в виде: N, NNE, NE, ENE, E, итд.
Градус_курса_в_символы_(Code_-_Professional).ubi

Блок передает выбранное количество знаков float в UART
Количество знаков в параметрах блока.
Удобен при проверке точности алгоритма расчета дробных чисел в проекте.
Кол.знаков_float_в_UART_(Code_-_Professional).ubi
.
Пример работы некоторых блоков GPS в FLProg
rw6cm 27.09.21
flp 7.3.8

Блоки для геопозицианирования

Добавлено: 09 окт 2021, 13:59
zed15
Добрый день . Подскажите пожалуйста где взять библиотеку TinyGPSflp.h на нее ругаетьса FLprog и IdE

Блоки для геопозицианирования

Добавлено: 09 окт 2021, 15:36
vitko112
zed15 писал(а): 09 окт 2021, 13:59 Добрый день . Подскажите пожалуйста где взять библиотеку TinyGPSflp.h на нее ругаетьса FLprog и IdE
Вот и я споткнулся на этом месте. :smile390:

Блоки для геопозиционирования

Добавлено: 10 окт 2021, 06:18
rw6cm
zed15 писал(а): 09 окт 2021, 13:59 Подскажите пожалуйста где взять библиотеку TinyGPSflp.h
[ref]vitko112[/ref],
Библиотека уже в блоке. должна при первой компиляции сама ставится в нужное место.
Видать не всегда это происходит.
Добавил библиотеку отдельно.

Блоки для геопозиционирования

Добавлено: 04 фев 2022, 20:01
AndrejK
rw6cm писал(а): 27 сен 2021, 14:18 Конвертер_String_Double_(Code_-_Professional).ubi viewtopic.php?f=74&t=7582#p106911
Что-то не конвертирует. STM32F411CE. Переменные из float в double в скетче перевел. Но тут это не участвует.

Блоки для геопозиционирования

Добавлено: 05 фев 2022, 14:54
AndrejK
Сам спросил, сам отвечу. Конвертация проходит, но чтобы видеть все цифры, в Serial.print() надо добавить цифру, указывающую сколько знаков выводить после запятой. В данном случае это вот так:
Serial.println(Out_97211626_238334010.toDouble(), 6);
Serial.println(Out_97211626_238334010.toDouble()); получаем 54.68
Serial.println(Out_97211626_238334010.toDouble(), 6); получаем 54.682241

Отправлено спустя 9 минут 7 секунд:
На STM32F411CE toDouble() занимает 18 мкс.

Re: Блоки для геопозиционирования

Добавлено: 05 окт 2024, 17:15
knopas
Добрый день, подскажите пожалуйста. Модуль neo-6m. Почему при выводе координат в порт пропадает ноль? Пример: в программе u-blox 55.012345, через блок выводит в порт как - 55.1234.

Re: Блоки для геопозиционирования

Добавлено: 13 окт 2024, 17:19
rw6cm
knopas писал(а): 05 окт 2024, 17:15 Модуль neo-6m. Почему при выводе координат в порт пропадает ноль? Пример: в программе u-blox 55.012345, через блок выводит в порт как - 55.1234.
Только в порт?
Настройки блока под 8бит или 32?