Присоединяйтесь!
Авторизация
navit    gps    uart   

Основы GPS навигации на Raspberry Pi

14 January 2014 - Автор Mike3

Привет. Сегодня будем рассматривать вопрос использования gps навигации на Raspberry Pi. Для того, чтобы превратить Raspberry Pi в gps навигатор потребуется:

1.GPS приёмник

Существует 2 варианта:

1. USB gps приёмник (подключается к USB порту,http://raspberrypi.ru/blog/readblog/220.html- вот есть небольшая статья по использованию USB GPS)

2. UART GPS модуль (подключается к линиям GPIO: 5v, GND, RX, TX). Мне больше нравится второй вариант, т.к он дешевле и меньше по размеру. Я использую GPS модуль на базе чипа u-Blox Neo 6M с подключаемой внешней антенной (покупалтут)

Подключается очень просто: VCC-5V, GND-GND, RXD-TXD, TXD-RXD.

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

В ОС Raspbian UART интерфейс представлен устройством /dev/ttyAMA0 (UPD: в новых моделях, начиная с Raspberry Pi 3 - /dev/tty/S0 ). Если вы используете Raspbian, то там на UART'е висит терминал. Чтобы освободить UART интерфейс для GPS приёмника выполняем следующие процедуры:

1 . В /etc/inittab эту строчку закоментить или удалитьT0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

2 . В /boot/cmdline.txt console=ttyAMA0,115200 заменить на console=tty1 После того, как модуль подключён устанавливаем скорость UART 9600kbit/s stty -F 9600 /dev/ttyAMA0

Теперь, если всё правильно подключено, и в консоли набрать команду cat /dev/ttyAMA0 , то в выводе побегут сообщения в форматеNMEA, которые GPS приёмник передаёт на RasPi.

2. Навигационное программное обеспечение

gpsd - служба, которая принимает данные в NMEA формате от GPS модуля и "расшаривает" доступ к ним для стороннего программного обеспечения. Один из вариантов получения данных от gpsd - это получение их от сокет-сервера, который gpsd поднимает на порту 2947 (по умолчанию), в "человеческом" JSON формате. Значительная часть навигационного ПО требует наличия gpsd, установить можно из репозитория: sudo apt-get install gpsd После установки запускаем службу: gpsd /dev/ttyAMA0

Navit

К сожалению, качественного навигационного программного обеспечения (Navitel, iGo и т.д) для Linux'а практически не существует. Navit - единственное достойное навигационное ПО, которое мне удалось найти. Рассмотрим настройку Navit'а. В первую очередь нам нужно достать для него карты. Самый простой способ получения карт - вырезать нужную область из карты Open Street при помощи сервисаhttp://maps5.navit-project.org/. На этом сайте слева карта мира, справа панель управления. Выбираем справа пункт "Select" в блоке "Map controls" и мышкой на карте выделяем область, карту которой нужно получить, далее нажимаем кнопку "Get Map" и векторная карта в формате *.img начинается скачиваться. Главный минус таких карт - невозможность поиска точки по адресу. Navit поддерживает также карты Garmin, там такая возможность есть, но до прикручивания гарминовских карт руки у меня пока не дошли. Когда Open Street карта скачена, нужно прописать её в конфиг Navit'a ( /etc/navit/navit.xml ): Остальным блокам mapset в конфиге поставить параметр enabled=no Ну вот собственно всё. В следующих статьях, попробую рассказать про более детальное конфигурирование Navit'а

7 дорог

Лучшее навигационное ПО для gps навигации от Navikey

Скачать можно отсюда -https://navikey.org/7ways/download

14 January 2014
Mike3
автор статьи

Комментариев: 7

  1. kukabu1

    15 January 2014 - Ответить

    посмотрите qlandkartegt

  2. ivanivs6

    15 January 2014 - Ответить

    Отлично. То что нужно. Как только приедет, сразу буду пробовать, про JSON и сокеты порадовало, планирую получать данные прямо на php.

  3. Azimuth

    01 January 2015 - Ответить

    Ссылка на USB GPS не существует. Странно, но почему-то на всем сайте по GPS только Ваша статья. Я пытаюсь работать посредством Си с приемником через порт. Все хорошо, когда примемник один, но когда присутствует USB-модем, то переподключении/перезагрузки порты на dev/ttyUSBXXX у них меняются случайным образом. Пытался читать все сущевствуюшие порты, чтобы найти внутри NMEA, так если попытаться прочитать один из портов модема получаю отваливалие по ssh устройства.

    • piman

      04 January 2015 - ответить

      Надо парсить вывод команды dmesg, чтобы получить какому устройству какой ttyUSB файл назначился.

      • Azimuth

        04 January 2015 - ответить

        Подсказали еще один способ: настроить так, чтобы определенное устройство подключалось на нужный порт: robocraft.ru/blog/arduino/2985.html

  4. BABUT

    02 November 2015 - Ответить

    есть вменяемое навигационное ПО- «семь дорог» от навикей. сборка под армовый линь. проверял- пашет даже без gpsd(если гпс-приёмник отдаёт данные в nmea)

  5. Nemolrs

    30 November 2015 - Ответить

    Спасиб, мне попомгло

  6. raspiman

    10 May 2016 - Ответить

    Небольшое дополнение: в Raspbian Jessie нет файла inittab. Чтобы убрать терминал с UART интерфейса нужно выполнить команду: sudo systemctl stop serial-getty@ttyAMA0.service и запретить запусу при последующих загрузках системы: sudo systemctl disable serial-getty@ttyAMA0.service

  7. veter900

    31 July 2016 - Ответить

    видео есть как прописать кофиг, не понимаю где открывать и где прописать и как сохранить??????????????

Отправить комментарий

Авторизуйтесь для отправки комментария

Присоединяйтесь
Новые сообщения