navit gps uart

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

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

1.GPS приёмник

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

1. USB gps приёмник (подключается к USB порту, http://raspberrypi.ru/220-raspberry-pi-podklyuchenie-gps-usb-priemnika - вот есть небольшая статья по использованию 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

Тэги:

 

Автор:

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

  • kukabu1
    15.01.2014 в 13:00 ответ

    посмотрите qlandkartegt

  • ivanivs6
    15.01.2014 в 16:37 ответ

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

  • Azimuth
    01.01.2015 в 18:59 ответ

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

    • piman
      04.01.2015 в 16:57 ответ

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

      • Azimuth
        04.01.2015 в 17:12 ответ

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

    • ala_nicola
      17.05.2024 в 12:27 ответ

      Можно прописать правило в /etc/udev/rules.d - в котором присвоить имя для устройства, например "MyGPS" и обращайтесь к dev/MyGPS

  • BABUT
    02.11.2015 в 09:08 ответ

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

  • Nemolrs
    30.11.2015 в 11:04 ответ

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

  • raspiman
    10.05.2016 в 20:39 ответ

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

  • veter900
    31.07.2016 в 22:11 ответ

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

Ваш комментарий

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

© Сообщество пользователей RaspberryPi 2021