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()