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

Moderator: bbiernat

Post Reply
User avatar
pancio
Administrator
Posts: 43
Joined: 18 September 2013, 23:02 - Wed
Location: SILESIA

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

Post by pancio »

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 NEO 6M
U-BLOX NEO 6M
u-blox-6m.jpg (20.29 KiB) Viewed 7171 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.
Prolific Technology, Inc. PL2303 Serial Port
Prolific Technology, Inc. PL2303 Serial Port
A tak wygląda mój "zestaw":
Zestaw: Cubietruck + U-blox + konwerter
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 w akcji...
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ę...

Post Reply