RPIGPS

Z Poznámkový blok
Verze z 22. 7. 2017, 20:36, kterou vytvořil Tydyt (diskuse | příspěvky) (Zablokování sériové konzoly)
Přejít na: navigace, hledání

Raspberry a GPS - zde se pokusím shrnout způsob rozchození GPS modulu na Raspberry V.3 - Jessie.


Zablokování sériové konzoly

Prvně musíme systému Linux odebrat nastavení pro spuštění sériové konzole. Pokud by jsme tak neučinili, tak nám sériový port obsadí systémová konzole a nešel by následně použít pro GPS. To provedeme editací souboru /boot/cmdline.txt

sudo nano /boot/cmdline.txt

kde změníne

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

na ( odeberte console=ttyAMA0,115200 a pokud existuje, kgdboc=ttyAMA0,115200 )

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Poznámka:

  • může se zobrazit konzola = serial0,115200 nebo console = ttyS0,115200 a měla by odstranit ty části řádku, pokud jsou k dispozici.
  • na Raspberry v.3 také konzole nastavena být nemusí.

Povolení sériového rozhraní

Na Raspberry V.3 je standartní sériové rozhraní využito pro Bluetooth. Proto musíme dodatečně povolit sériové rozhraní na GPIO portech v souboru /boot/config.txt

sudo nano /boot/config.txt

kde na konec přidáme parametr

enable_uart=1

Poté restartujeme celé Reaspberry

sudo reboot

Instalace ovladače GPS

Po přípravě sériového portu pro komunikaci z GPS můžeme nainstalovat vlastní podporu pro GPS "gpsd":

sudo apt-get install gpsd gpsd-clients python-gps

Pro pokračování je dobré se přesvědčit že má GPS dostatek dat ze satelitů. To je signalizováno led "Fix" na modulu:

  • Bliká v intervalu 1s - No Fix (nedostatek dat)
  • Blikne jednou za 10s - OK Fix

Je možné,že bude nutné přijímač GPS dát blíže k oknu, nebo připojit externí anténu. Pak můžeme pokračovat v ověření "surových" dat z přijímače přímo ze sériového portu:

stty -F /dev/ttyS0 raw 9600 cs8 clocal -cstopb
cat /dev/ttyS0

Pokud je vše v pořádku, nasměrujeme gpsd na seriový port

 sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock

a můžeme ověřit zda GPS funguje příkazem

cgps -s

NTP z GPS

Pro server NTP musíme vlastní balíček NTP nainstalovat:

sudo apt-get install ntp

Aby si NTP server bral čas z GPS, musíme upravit konfigurační soubor /etc/ntp.conf kam přidáme

# gps ntp
server 127.127.28.0 minpoll 4
fudge  127.127.28.0 time1 0.183 refid NMEA
server 127.127.28.1 minpoll 4 prefer
fudge  127.127.28.1 refid PPS

a následně službu NTP restartujeme pro načtení změn

sudo service ntp restart

Po chvíli by jsme měli vidět, že se synchronizuje čas z GPS

pi@raspberrypi:~$ ntpq -p
remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ns1.luns.net.uk 33.117.170.50    2 u   54   64    7   65.454    2.666   5.800
+resntp-b-vip.lo 127.151.91.34    3 u   45   64   17   55.704   -5.169   8.482
+bart.nexellent. 194.242.34.149   2 u   17   64   17   76.585   -4.271  57.595
+v01.s01.be.it2g 193.190.230.65   2 u   20   64   37   86.464   -2.374 228.460
xSHM(0)          .NMEA.           0 l   11   16  377    0.000  144.714   3.026
SHM(1)          .PPS.            0 l    -   16    0    0.000    0.000   0.000

Poznámka: Někdy se spustí gpsd bez nastavení sériového portu. Pak je vhodné provést spuštění následujícím způsobem

sudo killall gpsd
sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock
sudo service ntp restart

Zdroje: