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

Компас GY511 LSM303, GPS NMEA 0183,

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

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

#1

Сообщение rw6cm » 13.09.2021{, 13:42}

Блоки для проектов позиционирования на местности и в пространстве.

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

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

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

#2

Сообщение rw6cm » 13.09.2021{, 22:53}

Мульти блок компаса GY511 LSM303.
gy511 .jpg
gy511 .jpg (21.5 КБ) 1936 просмотров
.
Описание блока:
Описание блока GY511.pdf
(526.77 КБ) 102 скачивания
Библиотека:
lsm303flp.zip
(7.94 КБ) 81 скачивание
Блок:
Компас_GY511_(LSM303)_(Code_-_Professional).zip
(62.14 КБ) 85 скачиваний
Проекты с этим блоком рассматриваются Здесь
FLProg 7.3.8
09/2021
Win10-64, FLProg (portable)

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

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

#3

Сообщение rw6cm » 13.09.2021{, 23:15}

Мульти блок "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 КБ) 154 скачивания
Библиотека:
TinyGPSflp.zip
(6.89 КБ) 167 скачиваний
FLProg 7.3.8
27.09.21
Win10-64, FLProg (portable)

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

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

#4

Сообщение rw6cm » 13.09.2021{, 23:15}

Блок расчета расстояния и курса по координатам.

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

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

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

#5

Сообщение rw6cm » 27.09.2021{, 14:18}

Вспомогательные блоки.

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

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

zed15
Рядовой
Сообщения: 2
Зарегистрирован: 30.04.2018{, 16:28}
Репутация: 0
Имя: Max

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

#6

Сообщение zed15 » 09.10.2021{, 13:59}

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

vitko112
Рядовой
Сообщения: 11
Зарегистрирован: 18.04.2020{, 22:56}
Репутация: 2
Имя: Виктор

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

#7

Сообщение vitko112 » 09.10.2021{, 15:36}

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

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

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

#8

Сообщение rw6cm » 10.10.2021{, 06:18}

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

AndrejK
Сержант
Сообщения: 119
Зарегистрирован: 20.02.2020{, 13:16}
Репутация: 14
Откуда: Вильнюс
Имя: Андрей

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

#9

Сообщение AndrejK » 04.02.2022{, 20:01}

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

AndrejK
Сержант
Сообщения: 119
Зарегистрирован: 20.02.2020{, 13:16}
Репутация: 14
Откуда: Вильнюс
Имя: Андрей

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

#10

Сообщение AndrejK » 05.02.2022{, 14:44}

Сам спросил, сам отвечу. Конвертация проходит, но чтобы видеть все цифры, в 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 мкс.

Ответить

Вернуться в «Датчики и энкодеры»