GPS навигатор своими руками

Модераторы: новичок, Володька Николаев, mmcl200, Вопрос, argon84

Ответить
vks
Сообщения: 155
Зарегистрирован: 31 дек 2014, 18:16
Репутация: 60
Имя: Владимир
Откуда: Норильск
Возраст: 32

GPS навигатор своими руками

Сообщение vks » 19 мар 2020, 23:50

Небольшой мануал по сборке навигатора на базе RaspberryPi

Набросал в качестве памятки для себя, возможно кому-то из самодельщиков пригодится материал по сборке кастомной навигации для вездехода.



6859



6502


Навигатор испытан на железе:

Raspberry Pi 3 A (Быстрая и компактная версия Распберри с одним USB. Недостаток - греется при работе). Стоит на фото выше.
Raspberry Pi 4 B (Очень быстрая, греется так же как и третья версия, но имеет бОльшие размеры)
Raspberry Pi Zero W (Медленная версия Распберри, но не греется и не жрет. Подходит для софта Navit)

HDMI TFT 7" display с емкостным сенсором (можно взять с Алиэкспресса дисплей 10 или 12 дюймов, что удобнее)

GPS приемник. Cтавлю GNSS GG1802, питание 5 вольт.

Подключение

1. РАСПБЕРРИ

Запитана от импульсного стаба 12/5 В типа DD4012SA. Стоит sd card на 8Гб.

2. GPS

GPS приемник запитан от отдельного стабилизатора L7805 для минимизации помех. Подключен по UART к serial0 RPi.

TX вывод приемника подключаем через резисторный делитель 5.1/10кОм (ВАЖНО!) подключен к выводу 10 RPi (RX, GPIO15).


3. ЭКРАН

Я не нашел коротких HDMI кабелей для подключения RPi к дисплею. Видимо дефицит. Поэтому взял магазинный, укоротил, удалил пластик с разъема и распаял. Там около 5 витых пар в индивидуальных экранах.

Стоит иметь ввиду, что у каждой версии распберри свой разъем HDMI:

RPi 3 обычный HDMI, подойдет простой кабель
RPi 4 micro HDMI, нужен переходник
RPi Zero W, mini HDMI нужен другой переходник


4. ТАЧСКРИН

Емкостный тачскрин подключается проводами к RPi по USB.


5. ПИТАНИЕ

Питание планируется от бортовой сети 12В. Распберри и экран запитаны с импульсного 5В стабилизатора. GPS приемник с отдельного L7805.

Софт

Из доступного софта имеется: отечественный софт 7 Дорог от Навиком (7ways) и буржуйский Navit (последний работает напрямую с картами Garmin и мне понравился больше).


Навигатор на 7ways

Качаем навигационный софт для ARM - 7 дорог от Навикома (сборка 1308).
https://navikey.ru/files/7w/7ways-1308/ ... pi-arm.zip

Ставим на флешку дистрибутив Linux NOOBS v2.9.0.
ВАЖНО! Более новые версии Raspbian Booster не идут с 7ways. Проблема с библиотекой libcurl4. (CURL_OPENSSL_3 not found). Кто знает, как профиксить проблему, дайте знать.


Подключаем клаву. Заходим в терминал (Alt+F2, выполняем команду lxterminal)

>sudo raspi-config

Заходим в Interfacing Options

Включаем SSH (Для Raspberry 3 c Wi-Fi)
Включаем Serial (Login Shell - NO, Enable Serial - YES)

Перезагружаем

>sudo reboot


Проверяем работу GPS приемника:

>cat /dev/ttyS0

Данные с приемника должны приходить раз в 1 секунду и быть в подобном формате:

$GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E

$GPGSV,1,1,00*79

$GLGSV,1,1,00*65

$GNGLL,,,,,,V,N*7A


После того, как приемник нашел спутники, пустые поля должны заполниться актуальными данными


Выход - Ctrl+C

Подключаем WiFi к Raspberry.

Подключаемся удаленно по SSH к Raspberry (для RPi3 и RPi Zero W это очень удобно - по WiFi) с помощью программы PuTTY.

На удаленном компе расшариваем средствами Windows папку, к примеру, RaspberryPi.
В нее кидаем 7ways и карты в папке 7ways/maps.

Создаем пустую папку share

>mkdir share

Монтируем на распберри нашу расшаренную папку с софтом

>sudo mount.cifs //192.168.178.xxx/RaspberryPi /home/pi/share/ -o user=<YourWindowsLogin>

Проверяем что данные видно:

> cd share
> ls

Далее копируем содержимое на флешку:

>cp -r 7ways ../

Далее заходим в папку с 7ways

>cd /home/pi/7ways


Если работаем удаленно по SSH, то перед запуском делаем экспорт дисплея
> export DISPLAY=:0.0

Запускаем 7ways

>./7ways

После запуска программы с помощью сенсорного экрана (или мыши) заходим в Satellites

Ставим галку Use Port
Подключаем клаву к Raspberry. В поле PORT пишем /dev/ttyS0 (в ряде случаев может подойти /dev/ttyAMA0)
В поле SPEED 9600


7141


Карты

Берем Гарминовские карты. Открываем в GPSMapEdit 2.1.

Заходим в Свойства Карты -> Уровни. Записываем себе таблицу уровней Level0-Level5.

7143


Конвертируем карту в Польский формат .mp - Файл->Сохранить как


Ставим себе утилиту для конвертации карт в формат 7w - 7WaysConv

В папке с утилитой редактируем текстовый файл layers.dat согласно таблице уровней см. выше.

Выбираем карту в Польском формате .mp . Выбираем файл с конфигой config_with_layers.cfg
Конвертируем.

Копируем карту 7W в папку 7ways/maps

>cp share/gmapsup2.7w 7ways/maps/gmapsup2.7w


Перезапускаем 7ways. Проверяем отображение карты. Готово.


7142



Выводы

1. Отрисовка ландшафта 7ways не самая точная. Город и дороги рисует хорошо.
2. На RPi Zero W программа жутко тормозит. Поэтому только RPi 3, 4
3. Внутри корпуса качество приема GPS сигнала оставляет желать лучшего, попробую данную панель с внешней GPS антенной. К тому же стоять он будет под металлическим потолком.



Позже сдлаю схему подключения и мануал по программе Navit.

vks
Сообщения: 155
Зарегистрирован: 31 дек 2014, 18:16
Репутация: 60
Имя: Владимир
Откуда: Норильск
Возраст: 32

GPS навигатор своими руками

Сообщение vks » 30 июн 2020, 19:02

Достал снова панельку. Попробовал программку Navit на RaspberryPi 3.
Графика у нее получше, чем 7 дорог. Ест карты Garmin. Вид менюшек и кнопок настраивается в файле конфигурации.
Быстрая. Короче для одноплатников хороший вариант.



7609


Основные моменты

1. Нашел причину глюков GPS приемника. Оказалось, на плате дисплея стоит ужасный китайский стаб на 3,3в, клон LM2576. Он, сволочь, генерировал помехи по питанию до ГГц, перекрывая сигналы GPS и даже Wi-Fi! Заменил на современный dc-dc, проблема отпала.

2. Закинул Navit в автозагрузку, грузится после подачи питания быстро, около 8с.

3. Матрицу лучше было взять подороже IPS, эта бликует на солнце. Заказал новую

Ответить

Вернуться в «Электроника»