U-blox NEO-6M - czyli prosty sposób na własny GPS

Moderator: bbiernat

pancio
Administrator
Posts: 39
Joined: 18 September 2013, 23:02 - Wed

U-blox NEO-6M - czyli prosty sposób na własny GPS

Postby pancio » 08 January 2017, 12:25 - Sun

Wstęp i sprzęt

Dziś chciałbym przedstawić coś bardzo prostego, coś co każdy będzie mógł podłączyć do swojego PC, Rasberry, Arduino czy w końcu naszego Cubietrucka... Zajmiemy się tematem odbiornika GPS. O zaletach GPS-a raczej nie musimy wspominać, pokrótce pozwala on na zlokalizowanie naszego położenia względem poruszających się na widnokręgu satelitów geostacjonarnych. W cenie ok. 7$ możemy kupić moduł U-BLOX NEO-6M, który ze względu na swoje własności (a zwłaszcza cena!) pozwala na szersze zainteresowanie się tematem.
u-blox-6m.jpg
U-BLOX NEO 6M
u-blox-6m.jpg (20.29 KiB) Viewed 2115 times
Kilka słów o naszym odbiorniku:

Napięcie zasilania: od 2,7 V do 5,0 V
Pobór prądu: ok. 80 mA
Komunikacja: NMEA, UART 4800, 9600 (domyślnie), 19200, 38400, 57600, 115200, 230400 bps
Dokładność pozycji: 2,5 m
Czułość: -161 dBm
Odświeżenie: do 5 Hz
Ciepły/zimny/gorący start: 27 sekund / 27 sekund / 1 sekunda
Posiada wbudowaną antenę oraz złącze do wyprowadzenia wersji zewnętrznej u.F (w zestawie)

Po więcej szczegółów odsyłam do noty producenta, dodatkowo polecam wpis na blogu /dev/jarzebski

Do zabawy z naszym odbiornikiem GPS potrzebny nam będzie jeszcze konwerter USB <-> RS232 (standard TTL). Oczywiście wymagany on jest w przypadku, gdy nasze urządzenie nie posiada wyprowadzeń dla RS232 TTL (np. PC). Zastosowanie konwertera pozwala na podłączenie naszego odbiornika GPS do dowolnego urządzenia posiadającego USB.
20170108_110155-konwerter.jpg
Prolific Technology, Inc. PL2303 Serial Port
A tak wygląda mój "zestaw":
20170108_110143-zestaw.jpg
Zestaw: Cubietruck + U-blox + konwerter
Dodatkowym elementem wykorzystanym przeze mnie jest miernik poboru mocy wpięty pomiędzy port USB a konwerter. Jak łatwo zauważyć, odbiornik GPS nie jest urządzeniem bardzo energooszczędnym :-).

Po podłączeniu naszego odbiornika z wykorzystaniem konwertera możemy sprawdzić, czy odbiornik pracuje:

Code: Select all

root@ct10:~# cat /dev/ttyUSB0 
$PGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPTXT,01,01,01,NMEA unknown msg*58
$GPTXT,01,01,01,NMEA unknown msg*58
$GPTXT,01,01,01,NMEA unknown msg*58
$GPTXT,01,01,01,NMEA unknown msg*58
$GPTXT,01,01,01,NMEA unknown msg*58
$GPTXT,01,01,01,NMEA unknown msg*58
$GPTXT,01,01,01,NMEA unknown msg*58
$GPTXT,01,01,01,NMEA unknown msg*58
$GPTXT,01,01,01,NMEA unknown msg*58
^C
root@ct10:~# 



Oprogramowanie

Program gpsd jest popularnym daemonem, za pomocą którego możemy odczytywać dane z naszych odbiorników:

Code: Select all

apt-get update
apt-get install gpsd gpsd-clients

Jeśli znamy już nazwę urządzenia za pomocą którego dostępny jest nasz odbiornik powinniśmy skonfigurować gpsd poprzez edycję pliku /etc/default/gpsd:

Code: Select all

vim /etc/default/gpsd

Code: Select all

# Default settings for the gpsd init script and the hotplug wrapper.

# Start the gpsd daemon automatically at boot time
START_DAEMON="true"

# Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO="true"

# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyUSB0"

# Other options you want to pass to gpsd
GPSD_OPTIONS=""


Oczywiście, w przypadku gdy podłączamy nasz odbiornik bezpośrednio do magistrali RS232 TTL, nazwa urządzenia bedzie inna (np. /dev/ttyS0). Po edycji pliku należy zrestartować demona gpsd:

Code: Select all

service gpsd restart

Od tej pory masz gpsd będzie w stanie pobierać dane z odbiornika i można będzie je odczytywać za pomocą klientów gps (cgps, xgps, ...):
cgps.png
cgps w akcji...
Na powyższym obrazku widzimy, że nasz odbiornik "zauważył" już 2 satelity... ale wciąż nie zna swojego położenia. Generalnie w budynku trudno jest uzyskać zadowalające wyniki i czasem warto zaopatrzyć się w wydajniejszą antenę...

Who is online

Users browsing this forum: No registered users and 2 guests