Connecter un GPS au Raspberry Pi
Achtung : Dieser Artikel wurde automatisch von Bing Translate übersetzt
Advertencia : Este artículo ha sido traducido automáticamente por Bing Translate
Aujourd’hui ca n’est pas vraiment un tutoriel mais plus des astuces pour connecter un module GPS à votre Raspberry Pi. En effet, la configuration est extrêmement simple grâce au module gpsd.
Toujours pour mon projet de Raspberry mobile, j’ai besoin de connaitre la position régulièrement. Donc quoi de mieux qu’un GPS.
Ajouter un GPS à votre Raspberry peut se faire de trois manières (ou plus si vous avez d’autres idées !) :
- Réaliser un contrôleur GPS soit même à base de différents composants. Avantage : coût réduit, je pense moins de 20€. Seulement il faut, je pense, soit si connaitre soit oser se lancer.
- Certains comme Adafruit, propose des cartes prêtes à l’emploi (comme ici). C’était assez tentant car on branche ça sur les GPIO et on contrôle tout. Seulement pour moi le prix était un frein : la carte, une antenne, un adaptateur pour l’antenne (c’est un peu abuser de vendre ça !) et éventuellement un connecteur pour le port USB.
La facture monte donc à 57$ hors frais de port. - Le module GPS clé en main. En cherchant un peu j’ai trouvé que les BU-353 peuvent se connecter sur le Raspberry. Tout ça pour moins de 40$ en incluant les frais de port ! Assez tentant donc.
Partant donc du principe que je n’arriverais peut être pas à assembler mon GPS DIY, j’ai fait un petit tour sur un site de revente chinois et la commande a été rapidement passée. Le modèle est un module externe BU-353 qui se connecte en USB, avec un bel aimant en dessous pour le fixer ou une ventouse qui s’attache au câble. 37,80$ frais de port compris. Réception 10 jours plus tard :
Reste à le faire reconnaitre par le Raspberry Pi. Et pour ça rien de plus simple :
- Mettre à jour le système
apt-get update && apt-get upgrade -y
- Installer les outils de gestion du GPS : gpsd
apt-get install -y gpsd gpsd-clients python-gps
Voilà, c’est tout ! Vous avez même ce qu’il faut pour y accéder avec un script Python.
Pour contrôler le bon fonctionnement vous avez la commande cgps :
cgps -s
Et pour lire les données en Python, voici un exemple trouvé sur le site de Dan Mandle :
#! /usr/bin/python
# Written by Dan Mandle http://dan.mandle.me September 2012
# License: GPL 2.0
import os
from gps import *
from time import *
import time
import threading
gpsd = None #seting the global variable
os.system('clear') #clear the terminal (optional)
class GpsPoller(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
global gpsd #bring it in scope
gpsd = gps(mode=WATCH_ENABLE) #starting the stream of info
self.current_value = None
self.running = True #setting the thread running to true
def run(self):
global gpsd
while gpsp.running:
gpsd.next() #this will continue to loop and grab EACH set of gpsd info to clear the buffer
if __name__ == '__main__':
gpsp = GpsPoller() # create the thread
try:
gpsp.start() # start it up
while True:
#It may take a second or two to get good data
#print gpsd.fix.latitude,', ',gpsd.fix.longitude,' Time: ',gpsd.utc
os.system('clear')
print
print ' GPS reading'
print '----------------------------------------'
print 'latitude ' , gpsd.fix.latitude
print 'longitude ' , gpsd.fix.longitude
print 'time utc ' , gpsd.utc,' + ', gpsd.fix.time
print 'altitude (m)' , gpsd.fix.altitude
print 'eps ' , gpsd.fix.eps
print 'epx ' , gpsd.fix.epx
print 'epv ' , gpsd.fix.epv
print 'ept ' , gpsd.fix.ept
print 'speed (m/s) ' , gpsd.fix.speed
print 'climb ' , gpsd.fix.climb
print 'track ' , gpsd.fix.track
print 'mode ' , gpsd.fix.mode
print
print 'sats ' , gpsd.satellites
time.sleep(5) #set to whatever
except (KeyboardInterrupt, SystemExit): #when you press ctrl+c
print "\nKilling Thread..."
gpsp.running = False
gpsp.join() # wait for the thread to finish what it's doing
print "Done.\nExiting."En cas de soucis à lire les informations du GPS, le problème peut venir des droits sur le fichier utilisé dans /dev (souvent /dev/ttyUSB0). Pour y remédier, il faut modifier le fichier /lib/udev/gpsd.hotplug en ajoutant la ligne
chmod a+rw $DEVNAME
avant la ligne
gpsdctl $ACTION $DEVNAME
(source de l’astuce : ici)
Voici votre Raspberry mobile, autonome (grâce à l’alimentation avec 6 piles expliquée dans cet article) avec GPS connecté :
Vous remarquerez la petite lumière rouge sur le GPS qui indique la bonne alimentation. Elle reste fixe tant que le signal n’est pas fixé. Quand la position peut être reçue, la lumière se met à clignoter.
En espérant vous avoir un peu aidé pour vos projets 🙂








Pingback: Setup USB GPS - Headstation()