FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Воскресенье, 04.12.2016, 09:13
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Давайте соберем пользовательский блок для GPS NEO6 вместе.
Давайте соберем пользовательский блок для GPS NEO6 вместе.
Ernesto
Дата: Воскресенье, 11.09.2016, 13:29 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Приветствую всех, не давно наткнулся на сей занимательный проект, и выражаю благодарность его создателю за столь удачную программу.
Посидев вечер я разобрался в основных функциях, в создании пользовательского блока я потерпел фиаско несмотря на то что читал и смотрел гайд автора.
Цель заставить работать GPS NEO-6 в рамках FLProg.
Я решил пойти от простого к сложному. Для начал просто получит с GPS широту и отправить ее по UART.
Подработав напильником пример из библиоткеи у меня получилось так:



тут уже и широта и долгота выводится, можно конечно сразу обрезать и оставить широту но пока оставлю так для наглядности.
Пользуясь руководством автора я на собрал блок, в итоге при компиляции непосредственно в ардуиновской апликашке пишут кучу ошибок.
Танцы с бубном не возымели действия, прошу помощи аксакалов .

Мой черновик блока и базовый скетч прилагаю.
 
slavas Дата: Воскресенье, 11.09.2016, 13:37 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 264
Награды: 6
Репутация: 5
Статус: Offline
Поставьте галку "использовать один раз".

Сообщение отредактировал slavas - Воскресенье, 11.09.2016, 13:38
 
Слимпер Дата: Воскресенье, 11.09.2016, 13:48 | Сообщение # 3
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Online
А еще лучше, выложите сам ваш блок сюда. Тогда проще понять, что у вас не так происходит.
 
Ernesto Дата: Понедельник, 12.09.2016, 09:42 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Очень странно что файлы вложения не сохранились, добавлю опять

Добавлено (12.09.2016, 08:49)
---------------------------------------------
по библиотеке почитать тут http://arduiniana.org/libraries/tinygpsplus/

Добавлено (12.09.2016, 09:42)
---------------------------------------------
Постарался по максимуму упростить код который должен работать в блоке.



Прикрепления: GPSNEO7_LAT-COD.ubi(649Kb) · CustomFields0_1.ino(3Kb)


Сообщение отредактировал Ernesto - Понедельник, 12.09.2016, 08:45
 
Слимпер Дата: Понедельник, 12.09.2016, 10:57 | Сообщение # 5
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Online
Цитата Ernesto ()
Постарался по максимуму упростить код который должен работать в блоке.
Приложил Новый вариант, в старом было множество ошибок.
1. в нескольких местах объявлялось latitude(переменная, выход, объект одновременно ).
2. Секции Loop Лишний знак "}"
3. Вызов несуществующего объекта 

Это я чисто по описанию библиотеки  дела, может тоже, что не так понял tongue
Прикрепления: GPSNEO7_LAT_N.ubi(669Kb)
 
Ernesto Дата: Понедельник, 12.09.2016, 11:21 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Сейчас по кручу ваш вариант, спасибо. :up:

Добавлено (12.09.2016, 11:21)
---------------------------------------------
Проверил с компиляцией все хорошо вот только при отсыле любой переменной в UART на порту тишина.
В обоих примерах что есть на этом сайте автор настраивал поле FunctionSection, в Вашем примере там пусто, чисто интуитивно предполагаю что в этом проблем.
Как подключил блок  UART добавил вложением.
Прикрепления: GPS_test_0.1a.flp(707Kb)


Сообщение отредактировал Ernesto - Понедельник, 12.09.2016, 11:24
 
Слимпер Дата: Понедельник, 12.09.2016, 11:39 | Сообщение # 7
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Online
Цитата Ernesto ()
В обоих примерах что есть на этом сайте автор настраивал поле FunctionSection, в Вашем примере там пусто, чисто интуитивно предполагаю что в этом проблем.
Ну проблема точно не в этом. Любая область может быть пустой.
А для начал вы лучше напрямую из Arduino  IDE загрузите примеры из библиотеки работы с модулем (например BasicExample) и попробуйте.
Может у вас проблема вообще в подключении или спутники не ловит.

Да и простого мониторинга в терминале, лучше использовать просто "Отправка в UART"
 
Ernesto Дата: Понедельник, 12.09.2016, 11:52 | Сообщение # 8
Рядовой
Группа: Проверенные
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Вот что я еще заметил в блоке
void setup()
отсутствует  ss.begin(GPSBaud); хотя эта строка есть в SetupSection

Добавлено (12.09.2016, 11:43)
---------------------------------------------
Вот этот код прямо сейчас крутится в ардуине выдает координаты в UART
#include <TinyGPS++.h>
#include <SoftwareSerial.h>

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

// For stats that happen every 5 seconds
unsigned long last = 0UL;

void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop()
{
// Dispatch incoming characters
while (ss.available() > 0)
gps.encode(ss.read());
if (gps.location.isUpdated())
{
Serial.print(F(" Lat="));
Serial.print(gps.location.lat(), 6);
Serial.print(F(" Long="));
Serial.println(gps.location.lng(), 6);
}
else if (millis() - last > 1000) // задержка разрыва вывода данных
{
Serial.println();

if (gps.charsProcessed() < 10)
Serial.println(F("WARNING: No GPS data.  Check wiring."));

last = millis();

}
}

Так что дело не в железе.

Добавлено (12.09.2016, 11:48)
---------------------------------------------
Вот что скомпилировалось у меня с вашим блоком


Добавлено (12.09.2016, 11:50)
---------------------------------------------
Кстате в коде фигурирует 2 SoftwareSerial, один от блока UART FLprog второй из исходного кода GPS может тут конфликт ?

Добавлено (12.09.2016, 11:52)
---------------------------------------------
про ss.begin(GPSBaud); проехали у видел что вы его вынесли в параметры пользователя

Сообщение отредактировал Ernesto - Понедельник, 12.09.2016, 11:44
 
Слимпер Дата: Понедельник, 12.09.2016, 12:02 | Сообщение # 9
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Online
Цитата Ernesto ()
Кстате в коде фигурирует 2 SoftwareSerial, один от блока UART FLprog второй из исходного кода GPS может тут конфликт ?
Однозначно, та делать нельзя , с  SoftwareSerial может быть только один, для передачи в монитор COM , надо использовать аппаратный порт.
 
Ernesto Дата: Понедельник, 12.09.2016, 12:04 | Сообщение # 10
Рядовой
Группа: Проверенные
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Получил первые данные (пока криво), ошибка была что в блоке UART нужно было выбирать ComPort 0.
Получаю переменную LAT в UART приходит только 2 цифры после запятой


Сообщение отредактировал Ernesto - Понедельник, 12.09.2016, 12:08
 
Слимпер Дата: Понедельник, 12.09.2016, 12:05 | Сообщение # 11
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Online
Судя по коду вы отправляли данные не на компьютер,  а модулю GPS
 
Ernesto Дата: Понедельник, 12.09.2016, 12:46 | Сообщение # 12
Рядовой
Группа: Проверенные
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
все дело в команде в коде - (gps.location.lat(), 6); цифра отвечает за количество знаков, в коде что я привел выше все работает
в коде FLprog если прописать  LAT =gps.location.lat(), 6; не работает.
Куда копать?

Добавлено (12.09.2016, 12:18)
---------------------------------------------
Цитата Слимпер ()
Судя по коду вы отправляли данные не на компьютер, а модулю GPS
Вот сейчас я как раз данные считываю с GPS и вижу их через монитор порта.

Добавлено (12.09.2016, 12:19)
---------------------------------------------
Код FLprog целиком


Добавлено (12.09.2016, 12:27)
---------------------------------------------
Прописал  LAT =gps.location.lat(), 6; и выполнил преобразование из Float в строку оставиви 6 знаков после запятой все залетело как надо.
Хотя все равно странно почему flprog обрезает после 2 знаков

Добавлено (12.09.2016, 12:46)
---------------------------------------------
Завтра пропишу остальные переменные GPS, спасибо за помощь!

Сообщение отредактировал Ernesto - Понедельник, 12.09.2016, 12:19
 
Слимпер Дата: Вторник, 13.09.2016, 05:09 | Сообщение # 13
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Online
Цитата Ernesto ()
Прописал  LAT =gps.location.lat(), 6; и выполнил преобразование из Float в строку оставиви 6 знаков после запятой все залетело как надо.Хотя все равно странно почему flprog обрезает после 2 знаков
В блок конвертации в строку, при подключении типа Float, в настройках блока появляется параметр сколько знаков после запятой оставлять (по умолчанию 2).
 
Ernesto Дата: Вторник, 13.09.2016, 05:54 | Сообщение # 14
Рядовой
Группа: Проверенные
Сообщений: 17
Награды: 0
Репутация: 0
Статус: Offline
Цитата Слимпер ()
В блок конвертации в строку, при подключении типа Float, в настройках блока появляется параметр сколько знаков после запятой оставлять (по умолчанию 2).
ту понятно,
не понятно почему когда я отправляю в UART на прямую переменную типа float в мониторе порта показывает только 2 знака после запятой.


Сообщение отредактировал Ernesto - Вторник, 13.09.2016, 05:55
 
Слимпер Дата: Вторник, 13.09.2016, 05:59 | Сообщение # 15
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Online
Цитата Ernesto ()
не понятно почему когда я отправляю в UART на прямую переменную типа float в монеторе порта показывает только 2 знака после запятой.
print()
Так команда работает.
 
Форум » Основной » Спросить у знатоков » Давайте соберем пользовательский блок для GPS NEO6 вместе.
Страница 1 из 212»
Поиск:

FLProg © 2016
Яндекс.Метрика