- Components necessaris:
- Mòdul GPS i el seu funcionament:
- Preparació del Raspberry Pi per comunicar-se amb el GPS:
- Connexions per al mòdul GPS Raspberry Pi
- Prova abans de Python Script:
Una de les plataformes incrustades més belles com l’Arduino ha donat als fabricants i bricoladors la possibilitat d’obtenir dades d’ubicació fàcilment mitjançant el mòdul GPS i, per tant, crear coses que depenen de la ubicació. Amb la quantitat de potència que ofereix el Raspberry Pi, sens dubte serà increïble construir projectes basats en GPS amb els mateixos mòduls GPS barats i aquest és el focus d'aquesta publicació. Avui en aquest projecte farem un mòdul GPS d’interfície amb Raspberry Pi 3.
L’objectiu d’aquest projecte és recopilar dades d’ubicació (longitud i latitud) mitjançant UART des d’un mòdul GPS i mostrar-les en una pantalla LCD de 16x2, de manera que si no esteu familiaritzat amb el funcionament de la pantalla LCD de 16x2 amb el Raspberry Pi, aquest és un altre gran oportunitat per aprendre.
Components necessaris:
- Raspberry Pi 3
- Mòdul GPS Neo 6m v2
- LCD de 16 x 2
- Font d'alimentació per al Raspberry Pi
- Cable LAN per connectar el pi al vostre PC en mode sense cap
- Cables de panell i pont
- Resistència / potenciòmetre a la pantalla LCD
- Targeta de memòria de 8 o 16 GB amb Raspbian Jessie
A part d’això, hem d’instal·lar la biblioteca GPS Daemon (GPSD), la biblioteca Adafruit LCD de 16x2, que instal·lem més endavant en aquest tutorial.
Aquí estem utilitzant Raspberry Pi 3 amb Raspbian Jessie OS. Tots els requisits bàsics de maquinari i programari s’han comentat prèviament. Podeu consultar-los a la introducció de Raspberry Pi.
Mòdul GPS i el seu funcionament:
GPS significa Sistema de Posicionament Global (Global Positioning System) i s’utilitza per detectar la latitud i la longitud de qualsevol ubicació de la Terra, amb hora UTC exacta (temps universal coordinat). El mòdul GPS és el component principal del nostre sistema de seguiment de vehicles. Aquest dispositiu rep les coordenades del satèl·lit per cada segon, amb hora i data.
El mòdul GPS envia les dades relacionades amb la posició de seguiment en temps real i envia tantes dades en format NMEA (vegeu la captura de pantalla següent). El format NMEA consta de diverses frases, en què només necessitem una frase. Aquesta frase comença a partir de $ GPGGA i conté les coordenades, el temps i altra informació útil. Aquest GPGGA es refereix a dades de correcció del sistema de posicionament global. Obteniu més informació sobre la lectura de dades GPS i les seves cadenes aquí.
Podem extreure coordenades de la cadena $ GPGGA comptant les comes de la cadena. Suposem que trobeu una cadena $ GPGGA i la deseu en una matriu; llavors Latitude es pot trobar després de dues comes i la Longitud es pot trobar després de quatre comes. Ara, aquestes latituds i longituds es poden posar en altres matrius.

A continuació es mostra la cadena $ GPGGA, juntament amb la seva descripció:
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0,9,510,4, M, 43,9, M,, * 47
$ GPGGA, HHMMSS.SSS, latitud, N, longitud, E, FQ, NOS, HDP, altitud, M, alçada, M,, dades de suma de verificació
|
Identificador |
Descripció |
|
$ GPGGA |
Dades de correcció del sistema de posicionament global |
|
HHMMSS.SSS |
Temps en format hora hora segon i mil·lisegons. |
|
Latitud |
Latitud (coordenada) |
|
N |
Direcció N = nord, S = sud |
|
Longitud |
Longitud (coordenada) |
|
E |
Direcció E = Est, O = Oest |
|
FQ |
Corregir dades de qualitat |
|
NOS |
Nombre de satèl·lits que s’utilitzen |
|
HPD |
Dilució horitzontal de precisió |
|
Altitud |
Altitud respecte al nivell del mar |
|
M |
Metre |
|
Alçada |
Alçada |
|
Suma de control |
Dades de suma de verificació |
Podeu consultar els nostres altres projectes de GPS:
- Localitzador de vehicles basat en Arduino que utilitza GPS i GSM
- Sistema d’alerta d’accidents de vehicles basat en Arduino mitjançant GPS, GSM i acceleròmetre
- Com utilitzar el GPS amb Arduino
- Feu un seguiment d'un vehicle a Google Maps mitjançant Arduino, ESP8266 i GPS
Preparació del Raspberry Pi per comunicar-se amb el GPS:
D’acord, doncs, per entrar-hi, de manera que això no s’avorreix, suposo que ja en sabeu molt sobre el Raspberry Pi, prou per instal·lar el vostre sistema operatiu, obtenir l’adreça IP, connectar-vos al programari del terminal, com ara massilla i altres coses sobre el PI. Si teniu algun problema en fer alguna de les coses esmentades anteriorment, escriviu-me a la secció de comentaris i estaré encantat d'ajudar-vos.
El primer que hem de fer per posar en marxa aquest projecte és preparar el nostre Raspberry Pi 3 per poder comunicar-se amb el mòdul GPS mitjançant UART, creieu-me, és bastant complicat i he intentat fer-ho bé, però si seguiu la meva guia amb cura ho aconseguirà d’un sol cop, aquesta és la part més difícil del projecte. Aquí hem utilitzat el mòdul GPS Neo 6m v2.

Per submergir-vos, aquí teniu una petita explicació de com funciona el Raspberry Pi 3 UART.
El Raspberry Pi té dos UART integrats, un PL011 i un mini UART. S’implementen utilitzant diferents blocs de maquinari de manera que tenen característiques lleugerament diferents. Tanmateix, al raspberry pi 3, el mòdul sense fil / bluetooth està connectat al PLO11 UART, mentre que el mini UART s’utilitza per a la consola linux ouptut. Depenent de com ho vegeu, definiré el PLO11 com el millor dels dos UART pel seu nivell d’implementació. Per a aquest projecte, desactivarem el mòdul Bluetooth del PLO11 UART mitjançant una superposició disponible a la versió actualitzada de Raspbian Jessie.
Pas 1: actualització del Raspberry Pi:
El primer que m'agrada que m'agrada fer abans de començar cada projecte és actualitzar el raspberry pi. De manera que fem el normal i executem les ordres següents;
sudo apt-get update sudo apt-get upgrade
després reinicieu el sistema amb;
sudo reiniciar
Pas 2: Configuració de l'UART a Raspberry Pi:
El primer que farem en aquest sentit és editar el fitxer /boot/config.txt . Per fer-ho, executeu les ordres següents:
sudo nano /boot/config.txt
a la part inferior del fitxer config.txt, afegiu les línies següents
dtparam = spi = on dtoverlay = pi3-disable-bt core_freq = 250 enable_uart = 1 force_turbo = 1
ctrl + x per sortir i prémer y i entrar per desar.

Assegureu-vos que no hi hagi errors tipogràfics o errors mitjançant una doble comprovació, ja que un error amb això pot evitar que arrenci el pi.
Quins són els motius d’aquestes ordres, force_turbo permet a UART utilitzar la freqüència màxima del nucli que estem establint en aquest cas a 250. La raó d’això és garantir la coherència i la integritat de les dades de sèrie rebudes. És important tenir en compte en aquest moment que l’ús de force_turbo = 1 anul·larà la garantia del vostre raspberry pi, però, a part, és molt segur.
El dtoverlay = pi3-disable-bt desconnecta el bluetooth del ttyAMA0 , això ens permet l'accés per utilitzar la potència UART completa disponible mitjançant ttyAMAO en lloc del mini UART ttyS0.
El segon pas d'aquesta secció de configuració de UART és editar el fitxer boot / cmdline.txt
Us suggeriré que feu una còpia del cmdline.txt i que deseu primer abans d’editar-lo per tornar-hi més tard si cal. Això es pot fer utilitzant;
sudo cp boot / cmdline.txt boot / cmdline_backup.txt sudo nano /boot.cmdline.txt
Substitueix el contingut per;
dwc_otg.lpm_enable = 0 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 elevator = deadline fsck.repair = yes rootwait quiet splash plymouth.ignore-serial-consoles
Guardar i sortir.
Fet això, haurem de reiniciar el sistema de nou per efectuar canvis ( sudo reboot ).
Pas 3: desactivació del servei Raspberry Pi Serial Getty
El següent pas és desactivar el servei serial de Pi del getty , l'ordre evitarà que es torni a iniciar en reiniciar:
sudo systemctl atura [email protected] sudo systemctl desactiva [email protected]
Les ordres següents es poden utilitzar per habilitar-la de nou si cal
sudo systemctl habilitar [email protected] sudo systemctl iniciar [email protected]
Reinicieu el sistema.
Pas 4: Activació de ttyAMAO:
Hem desactivat ttyS0, el següent és que activem ttyAMAO .
sudo systemctl habilita [email protected]
Pas 5: instal·leu Minicom i pynmea2:
Serem minicom per connectar-nos al mòdul GPS i donar sentit a les dades. També és una de les eines que farem servir per provar si el nostre mòdul GPS funciona bé. Una alternativa a minicom és el programari de dimonis GPSD.
sudo apt-get install minicom
Per analitzar fàcilment les dades rebudes, farem ús de la biblioteca pynmea2 . Es pot instal·lar mitjançant;
sudo pip instal·la pynmea2
La documentació de la biblioteca es pot trobar aquí
Pas 6: Instal·lació de la biblioteca LCD:
Per a aquest tutorial utilitzarem la biblioteca AdaFruit. La biblioteca es va crear per a pantalles AdaFruit, però també funciona per a taulers de visualització amb HD44780. Si la vostra pantalla es basa en això, hauria de funcionar sense problemes.
Em sembla millor clonar la biblioteca i instal·lar-la directament. Clonar l'execució;
git clon
canvieu al directori clonat i instal·leu-lo
cd./Adafruit_Python_CharLCD sudo python setup.py install
En aquesta etapa, suggeriré un altre reinici perquè estiguem a punt per connectar els components.
Connexions per al mòdul GPS Raspberry Pi
Connecteu el mòdul GPS i la pantalla LCD al Raspberry Pi tal com es mostra al diagrama de circuits següent.

Prova abans de Python Script:
Crec que és important provar la connexió del mòdul GPS abans de passar a l’escriptura python, per a això utilitzarem minicom. Executeu l'ordre:
sudo minicom -D / dev / ttyAMA0 -b9600
on 9600 representa la velocitat en bauds a la qual es comunica el mòdul GPS. Això es pot fer servir una vegada que estiguem segurs de la comunicació de dades entre el GPS i l'RPI, és hora d'escriure el nostre script python.
La prova també es pot fer amb cat
sudo cat / dev / ttyAMA0

A Window, podeu veure frases NMEA que hem comentat anteriorment.
A la secció Codi es mostra a continuació l’ escriptura Python d’aquest tutorial GPS de Raspberry Pi.
Amb tot dit i fet, és hora de provar tot el sistema. És important que us assegureu que el vostre GPS tingui una bona solució, ja que traient-lo, la majoria de GPS necessiten entre tres i quatre satèl·lits per obtenir una solució, tot i que el meu funcionava a l'interior.

Funciona oi? Sí…
Tens preguntes o comentaris? Deixeu-los anar a la secció de comentaris.
A continuació es mostra el vídeo de demostració, on hem mostrat la ubicació en latitud i longitud en pantalla LCD mitjançant GPS i Raspberry Pi.
