GPS логгер
- Войдите на сайт для отправки комментариев
Изначально я открыл тему в ветке "Проекты" но уже задолбали советами перенеси... Перенес, вот только судя по предыдущим советам с NMEA протоколом никто толком не работал... Изнальная тема тут - http://arduino.ru/forum/proekty/gps-logger#comment-454549
Взялся за создание автономного GPS логгера с большим временем автономной работы с упором именно на пониженное энергопотребление, аппаратная часть ясна и уже вся купленна.
Arduino Pro Mini - 8Мгц 3,3В - минумум "левых" потребителей энергии и штатные 3,3 В питания(меньше выпаивать лишние детали)
Приемник GPS G28U7FTTL - у него есть аппаратный вход EN, при подаче на него 0 - приемник засыпает
За питание отвечает хитрый Step-Down-Step-Up-Converter - любое напряжение от 1,8 до 5 В от переганяет в 3,3 вольта и собственное потребление мизерное.
Экран 5110 - сильно удився когда узнал насколько маленькое у него потребление, а информативность...
Li-Io и зарядок для него немерянно в любом магазине радиодеталей...
За основу был взят логгер из статьи https://pluspda.ru/blog/aliexpress/62773.html, с использованием прогрмамного COM порта пока мирюсь. Видимо автор в статье забыл описать какуе то тонкость для конвертации результатов в Excel и Google Earth Pro, пришлось допиливать скетч чтобы долгота и широта сразу писались в виде 47.907878,33.329908, а не 47907878,33329908.
Поскольку логер нужен для пешеходного туризма скорость и высота не интересуют совсем, зато очень хотелось бы вытащить информацию о количестве найденных спутников и горизонтальной точности - хоть какой то фильтр можно будет сделать.
Нашел статью http://cxem.net/arduino/arduino123.php фактически это более подробное расмотрение того что есть в примерах к библиотеке TinyGPS (Файл - Примеры - TinyGPS - test_with_gps_device), меня интересуют строки:
print_int(gps.satellites(), TinyGPS::GPS_INVALID_SATELLITES, 5); print_int(gps.hdop(), TinyGPS::GPS_INVALID_HDOP, 5);
Как минимум в СОМ порт эта информация уходит...
Беда в том что програмирования у меня 2 семестра Бейсика в институте, остальное самоучка, нормального описания возможностей TinyGPS нет. Если касается формул, работы с портами и простыми операторами проблем нет, но с библиотеками и вложенными функциями мозгов уже не хватает.
Подскажите как вытащить информацию о спутниках и погрешности желательно в виде byte, int или word?
Как я понял gps.satellites()- вычислить/парсить нужную величину, TinyGPS::GPS_INVALID_SATELLITES - это уже ее получение...
Вот скетч который я пробовал - неудачные варианты закоментированны, бредятина получается
В данный моменнтересует только та часть где идет вывод на LCD, записать на CD потом не проблема, я понимаю как работает тот кусок программы что пишет на CD карту.
судя по предыдущим советам с NMEA протоколом никто толком не работал...
для работы с NMEA никаких особых талантов не нужно - это текстовой протокол и разбирается он соответвенно - как строка
Прямо в этом же разделе форума на этой же странице - свежая тема посвещенная NMEA
http://arduino.ru/forum/programmirovanie/parsing-nmea
Еше один умник подтвердил всказаное мною в начале предположение "судя по предыдущим советам с NMEA протоколом никто толком не работал..." - суть совета: ты не смотри что библиотека TinyGPS уже умеет вытаскивать и выводить в COM порт нужные тебе значения(как описанно здесь), а именно эти:
Изучи весьма неслабый обьем по работе тексотм, изобрети велосипед, напиши парсер, а все почему? Да автор совета просто сам нифига не знает про TinyGPS, соответственно и подсказать как нужно задать вопрос библиотеке для получения нужных данных не может, сам не знает...
Я понимаю что днные скорее всего выводятся в виде char и это будут числа от 48 до 56 для цифр и 127 для пробелов, но собрать из них десятичное числос помощью if проще чем парсер писать....