GPS+Arduino (модуль NEO-6M-0-001)

Тема в разделе "Глядите, что я сделал", создана пользователем ostrov, 23 июл 2017.

  1. ostrov

    ostrov Гуру

    Не то чтобы сделал, но разобрался как оно работает, что почти то же самое. А может быть даже лучше. )

    Задача была - периодически узнавать точное время для сверки часов. В качестве источника выбрал недорогой GPS приемник, мне показалось что это слегка надежнее и намного проще чем извлекать время из интернет-ресурсов, особенно в чистом поле.

    [​IMG]

    Получив устройство первым делом погуглил готовые решения, нашел вот эту статью. Не вдумываясь сделал все как там написано, включая установку библиотеки - ничего не происходит. Стал разбираться вручную. И вот что узнал. Данный GPS модуль по умолчанию работает на передачу RMC-строк по довольно простому протоколу NMEA 0183, то есть это обычные текстовые строки периодически, примерно два раза в секунду, передающиеся по UART на скорости 9600 (а не 4800 как в примерах библиотеки), содержащие информацию о времени, положении, отклонении, направлении и прочем, что требуется этим протоколом. Всего строк выдает 8 штук, но нужная мне информация содержится здесь:
    23 часа, 58 минут, 40 секунд 22.07.17 по всемирному времени UTC.

    Библиотека лишь парсит строки, извлекая из них нужную информацию. Пока что не выяснил, если ли с модулем обратная связь. Вполне вероятно, что некими командами производится настройка, но пока что не уверен в этом, да оно и не нужно.

    Примечание: компьютер с испытуемым находится за толстой стеной вдали от окна, поэтому данные от спутников принимаются плохо, о чем говорит хотя бы буква V после времени (недостоверные данные) и отсутствие координат. Но время принимается верное. Наверняка, когда я попробую сделать то же самое с ноутбуком на балконе, все будет гораздо надежнее и четче.

    Вывод. Модуль NEO-6M-0-001 работоспособен, довольно компактен, качественно собран и не дорог. Прост в подключении и освоении. С задачей своей справляется отлично. Библиотек не требуется, раздербанить строку самостоятельно можно намного проще и короче. Для сверки часов так лучше и не придумаешь. К приобретению рекомендую.
     
  2. issaom

    issaom Гуру

    Я тоже сижу развлекаюсь с GPS модулем от Амперки - правда в их библиотеке они забыли курс вытащить - вот теперь думаю Амперошную библиотеку подпилить или поискать другую ))) На окне он довольно неплохо свое местоположение определяет ))) а с точки зрения определения времени да - неплохо иметь в огороде Атомные часы )))
     

    Вложения:

  3. ostrov

    ostrov Гуру

    Сделал парсинг наиболее простым способом, при помощи методов класса String. В итоге так выглядит извлеченное из GPS время и дата:
    Не знаю, насколько использование String в данном случае тру, но полный разбор строки на 6 переменных int этим способом при 16МГц занимает 1 мс времени и 5 кб памяти, что для atmega328 не так уж критично. Наверняка, собирая и разбирая строку в массиве, а то налету, было бы компактнее, будет нужда, сделаем и так.
     
  4. ostrov

    ostrov Гуру

    Про нее я и писал выше. Неуклюжая и неповоротливая конструкция, особенно если требуется небольшая часть функций. Да и памяти жрет куда больше чем тот же String со своими процедурами.
     
    ИгорьК нравится это.
  5. issaom

    issaom Гуру

    Я в программировании вообще не разбираюсь - поэтому я открыл в ворде исходники для http://amperka.ru/product/troyka-gps-glonass
    и вытащил оттуда нужное мне значение курса :)
    GPS навигатор.JPG
    Пошарился с ней по городу - направление на Север модуль показывает. Кстати если Вам понадобиться что-то большее чем часы то запаритесь вы там парсить + в амперковской библиотеке еще и матан присутствует по переводу координатат в десятичные градусы. Шикарно короче. Поэтому скорее всего заморачиваться особого смысла нет с разработкой своего кода. Теперь надо какой-то алгоритм расчета пройденой дистанции придумывать....
     
    Последнее редактирование: 24 июл 2017
  6. ostrov

    ostrov Гуру

    О чем спор не пойму. Я в самом начале написал, что мне нужно только время и дату, что и извлек десятком строк. Если нужен матан, пользуемся готовыми чужими наработками. Впрочем, если что то потребуется доделать или переделать, опять проблемы начнутся. Может быть навигатор купить, или смартфон, там уже вообще все готово.
     
  7. issaom

    issaom Гуру

    Я дак и не спорю - вы поделились своим опытом, я поделился своим. - на форуме не так уж много сообщений где юзаются вещи не имеющие отношения к умным домам или дипломным проектам ))) Ждем от Вас часовую станцию )))
     
    ИгорьК нравится это.
  8. ИгорьК

    ИгорьК Гуру

    :)
     
  9. ostrov

    ostrov Гуру

    Так запросто. К слову, я уже делал ЧС в конце 90х на базе компьютера. Время подводилось по сигналу точного времени от радио. Бой игрался через звуковую карту и так далее. Вот интересно сделать то же самое на контроллерах в компактном виде.