De UBLOX NEO-6M GPS module is een GPS ontvanger die veelvuldig wordt gebruikt in modelvliegtuigen. Op basis van een seriële verbinding kun je GPS data zoals positie, snelheid, hoogte uitlezen. In dit stappenplan gaan we de UBLOX NEO-6M GPS module aansluiten op een Raspberry Pi 3 en lezen we de GPS data uit met behulp van cgps.
Componenten voor dit project
• GY-NEO6MV2 GPS Module € 3,50 (link)
• Dupont verbindingkabels male/female (link)
Raspberry Pi 3
Raspbian Jessie (2016-11-26 kernel 4.4.34)
Aansluitschema
GPS module | RPI functie | RPI pin |
---|---|---|
TXD | UART TXD | 8 |
RXD | UART RXD | 10 |
VCC | 3v3 | 1 |
GND | GND | 6 |
UART activeren op de Raspberry Pi 3
Om te kunnen communiceren met de GPS ontvanger moeten we pin 8 en 10 activeren als seriële interface. Deze activatie procedure verschilt per type Raspberry Pi, in dit stappenplan gaan we uit van een Raspberry Pi 3.
Bewerk met nano het het bestand config.txt:
sudo nano /boot/config.txt
Voeg de onderstaande regel toe aan het bestand en bewaar de wijzigingen:
enable_uart=1
Nadat de config.txt is aangepast moet we het inloggen over de seriële verbinding uitschakelen, open hiervoor cmdline.txt.
sudo nano /boot/cmdline.txt
Plaats een # voor de originele regel, en voeg de tweede regel uit het voorbeeld toe:
#dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Herstart nu je Raspberry pi:
sudo reboot -h 0
Verbinding maken met de UBLOX NEO-6M GPS module
Nu de seriële poort actief is kunnen we verbinding gaan maken met de GPS ontvanger, dit moet in het geval van een UBLOX NEO 6M GPS Module gebeuren met 9600 baud, 8 data bits, geen pariteit en één stop bit.
stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb
Hierna kunnen we de seriële verbinding gaan testen.
sudo hexdump -C < /dev/ttyS0
In het venster zal nu de RAW data van de GPS ontvanger verschijnen:
GPS software installeren
Als je gebruik wilt maken van positie bepaling dan kun je gebruik maken van gpsd, deze installeer je met:
sudo apt-get install gpsd gpsd-clients python-gps
Stop na de installatie de gpsd daemon:
sudo systemctl stop gpsd.socket sudo systemctl disable gpsd.socket
Koppel de seriële verbinding aan gpsd:
sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock
Start cgps en de ontvangen GPS data zal op scherm op verschijnen:
cgps -s
Sommige GPS ontvangers zijn voorzien van een LED, op het moment dat de LED gaat knipperen betekent dit dat het satelliet signaal is gevonden en gefixeerd. Wanneer de fixatie nog niet heeft plaatsgevonden wordt door cgps alleen 'NO FIX' weergegeven. Wacht dan tot de LED gaat knipperen en start cgps opnieuw.
Excelente Tutorial funciona perfecto con la PI3.
Muchas Gracias !!
Sir,
I’m getting hex dump but not able to get the coordinates in cpgs
kindly help
Sir,
i’m getting hex dump but still its showing NO FIX
Is deze gps ontvangen ook via een ttl-usb kabel op de pi aan te sluiten?
i see this error
bash: /dev/ttyS0: Permission denied
will running following command
stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb
what should i do ?
Harry dat vroeg ik mij ook af
Misschien te weinig power?