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

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

Добавлено: 13.09.2021{, 13:42}
rw6cm
Блоки для проектов позиционирования на местности и в пространстве.

1. Мульти блок компаса GY511 LSM303.
2. Мульти блок "GPS NMEA Parser".
3. Блок расчета расстояния и курса по координатам.
4. Вспомогательные блоки.
Важная информация!Показать
В проекте блоки из мульти блока должны быть одной версии.
(мульти блок - блок объединяющий в себе несколько блоков сделанных в редакторе Code-Professional)
В моих блоках версия означает дата в низу описания мульти блока.
В первых моих мульти блоках дата стоит только в описании основы мульти блока.
Что не удобно в определении версии отдельного блока в проекте (упустил из вида)
В следующих обновлениях и новых мульти блоках будет дата в каждом блоке.
Если в проекте используются несколько блоков из одного мульти блока,
и вышло обновление связанное с каким то блоком из пакета мульти блока,
то заменить в проекте надо не только этот блок, но и все остальные блоки из этого мульти блока.
Иначе могут быть проблемы в работе проекта.
Это касательно не только моих блоков, но и всех мульти блоков сделанных в редакторе Code-Professional
Тема работы блоков в проектах Здесь

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

Добавлено: 13.09.2021{, 22:53}
rw6cm
Мульти блок компаса GY511 LSM303.
gy511 .jpg
gy511 .jpg (21.5 КБ) 1893 просмотра
.
Описание блока:
Описание блока GY511.pdf
(526.77 КБ) 101 скачивание
Библиотека:
lsm303flp.zip
(7.94 КБ) 80 скачиваний
Блок:
Компас_GY511_(LSM303)_(Code_-_Professional).zip
(62.14 КБ) 84 скачивания
Проекты с этим блоком рассматриваются Здесь
FLProg 7.3.8
09/2021

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

Добавлено: 13.09.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
(87.85 КБ) 152 скачивания
Библиотека:
TinyGPSflp.zip
(6.89 КБ) 163 скачивания
FLProg 7.3.8
27.09.21

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

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

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

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

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

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

Блок делит градусы азимута 0-360 на 16 именованных секторов,
и выводит в виде: N, NNE, NE, ENE, E, итд.
Блок передает выбранное количество знаков float в UART
Количество знаков в параметрах блока.
Удобен при проверке точности алгоритма расчета дробных чисел в проекте.
Кол.знаков_float_в_UART_(Code_-_Professional).ubi
(130.98 КБ) 69 скачиваний
.
Пример работы некоторых блоков GPS в FLProg
rw6cm 27.09.21
flp 7.3.8

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

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

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

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

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

Добавлено: 10.10.2021{, 06:18}
rw6cm
zed15 писал(а):
09.10.2021{, 13:59}
Подскажите пожалуйста где взять библиотеку TinyGPSflp.h
vitko112,
Библиотека уже в блоке. должна при первой компиляции сама ставится в нужное место.
Видать не всегда это происходит.
Добавил библиотеку отдельно.

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

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

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

Добавлено: 05.02.2022{, 14:44}
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 мкс.