GPS pour les paresseux vieux Geeks (3 / 5 étapes)

Étape 3: Mon programme GPS

je ne vais pas tenter n’importe qui apprennent à écrire des programmes en Visual Express. Mon programme est un exemple de comment vous pouvez personnaliser le logiciel GPS pour vos seuls besoins.
Ce que je vais aborder sont certains des problèmes et des solutions en termes généraux.

Objectifs du programme :
Discutez avec GPS et échantillon de données GPS.
Afficher la latitude, longitude, altitude.
Calculer une moyenne mobile de ce qui précède.

Étape 2: Je voulais voir était exacte de mon GPS. Reportez-vous à l’étape suivante.

Problème : Discutez avec GPS. Le BU-353 est un périphérique USB. Il reçoit + 5V sur la connexion USB. Une des fonctionnalités sympa est qu’une fois qu’elle a le pouvoir, il commence à envoyer des données série NMEA 0183 à 4800 bauds automatiquement chaque seconde.
Solution : VB Express a donc déjà un contrôle appelé Serialport. Réglez-le à 4800 bauds, affectez-lui le nombre correct de Com et ouvrez-le.

Problème : Exemples de données GPS. Si vous avez une façon de regarder les données sérielles de la BU-353, une ligne serait quelque chose comme ceci :
$GPGGA, 233632.000, 3913.9963, N, 10844.2590, W, 2, 09, 0,9, 1424.3, M, -16,7, M, 0,8, 0000 * 79

Voici comment le NMEA 0183 définit ceci :
GGA - données de correctif essentiel qui fournissent des données 3D d’emplacement et de la précision.
$GPGGA, 123519, 4807.038, N, 01131.000, E, 1, 08, 0,9 545,4, M, 46,9, M,, * 47

Où :
Système de positionnement Global GGA Difficulté données
123519 fix prise à 12:35:19 UTC (Coordinated Universal Time)
4807.038, N Latitude 48 deg 07.038' N
01131.000, E Longitude 11 deg 31,000' E
1 qualité de fix: 0 = non valide
1 = les coordonnées GPS (SPS)
2 = correction DGPS (cela signifie WAAS est activé et le travail)
08 nombre de satellites étant l’objet d’un suivi
0,9 horizontale dilution de position (quelque chose à voir avec précision)
545,4, M d’Altitude, mètres, au-dessus du niveau de mer
46,9, M hauteur du géoïde (niveau moyen de la mer) au dessus l’ellipsoïde WGS84
temps (champ vide) en secondes depuis la dernière mise à jour de la DGPS
(champ vide)   Numéro d’ID station DGPS
* 47 les données de checksum, commence toujours par *

Astuce : Je viens d’apprendre quelque chose sur la latitude et la longitude. Latitude ne peut aller de 0 à 90 ; longitude peut aller de 0 à 180. C’est pourquoi la valeur de la latitude ci-dessus a quatre chiffres avant la virgule et la longitude a cinq. Dans l’exemple ci-dessus les 11 degrés est écrit 011.

NMEA 0183 protocoles sont définies partout sur l’Internet. En Voici une :
http://biostatmatt.com/uploads/DescriptionNMEA.pdf
Ce protocole n’est pas juste pour le GPS donc pas que toutes les phrases sont pertinentes.

SubproblemA : Le BU-353 envoie plusieurs chaînes de données par seconde. Le programme informatique reçoit le flux de données en série mais ne sait pas où il « commence. » (Cela s’appelle des communications asynchrones).
SolutionUne : Ce que le programme doit faire, c’est sans cesse regarder le flux de données jusqu'à ce qu’il voit « $GPGGA », puis il sait que les données pertinentes suivra.

SubproblemB : Les données $GPGGA sont une ligne de données. L’ordinateur a besoin de séparer les données dans les différentes parties.
SolutionB : En langage de programmation, cela s’appelle l’analyse. Le protocole NMEA a des règles assez strictes sur la façon dont les cordes sont définis. Chaque élément est dans une position spécifiée et séparées par une virgule. Si le programme doit passer par les données et extraire ce qu’il veut et ignorer le reste. Dans mon cas, j’ai lu jusqu'à l’Altitude et sauté le reste de la ligne.
Pour info: Le checksum est un moyen de vérifier si la chaîne de données est corrompue ou intacts. En général, si vous obtenez des données corrompues, il sera habituellement illisible en tout cas. J’ai simplement ignorer les sommes de contrôle.

Problème : Afficher la latitude, longitude, altitude. À ce stade, toutes les données est en caractères. Il pourrait simplement être affiché dans les zones de texte. Mais dans mon cas, il y a deux problèmes. L’un est ordinateurs sont muets, ils ne peuvent pas moyen des personnages, ils doivent utiliser les nombres. J’utilise un certain nombre de type « double » qui signifie qu'il peut inclure une virgule, comme 545,4. Le deuxième problème est que la latitude et la longitude sont entrés dans le format de degrés et de minutes dans un certain nombre. 4807.038 est 48 deg 07.038'. Les ordinateurs sont muets, qu'ils ne peuvent pas comprendre cela.

Ne vous inquiétez pas si ce qui suit n’a aucun sens pour vous.
Solution : La plupart des langages de programmation sont un moyen pour convertir des caractères en double. Dans VB express, j’ai utilisé ceci :
dLat = Convert.ToDouble(lineArr(2))

Conversion que nombre de latitude est un peu plus compliqué, je l’ai fait
degrés = Int(dLat / 100) //This prend les deux premiers chiffres et les convertit en entier (nombre sans décimale)
decimaldegrees = (dLat - (100 * degrés)) / 60,0 / / cela prend le numéro d’origine,
soustrait la portion degrés et
Convertit un nombre décimal
fullLat = degrés + decimaldegrees //This combine les deux

Par exemple si dLat = 4807.038
degrés = Int(4807.038 / 100)
degrés = Int(48.07038)
degrés = 48

decimaldegrees = (dLat - (100 * degrés)) / 60,0
decimaldegrees = (4807.038 - (100 * 48)) / 60,0
decimaldegrees = (4807.038-4800) / 60,0
decimaldegrees = (7.038) / 60,0
decimaldegrees = 0.1173

fullLat = degrés + decimaldegrees
fullLat = 48 + 0.1173
fullLat = 48.1173

Donc la programmation n’est pas amusant ? NON ! Il n’est pas le cas ! Les bonnes nouvelles sont une fois que vous obtenez le programme de la droite, que l’ordinateur va faire tous les calculs sans effort. La mauvaise nouvelle est que si on ne va pas le programme (algorithme), il va le faire mal sans effort. Depuis que je suis pas presque parfait, j’ai à faire beaucoup de dépannage.

Carte d’emplacement : J’ai copié cette fonctionnalité d’un autre développeur (je souhaite que je me suis souvenu où j’ai trouvé ça). Si vous avez une connexion Internet et un bon processeur, appuyer sur ce bouton va ouvrir Google Maps et afficher votre position GPS. Ce n’est pas très utile pour moi. Si j’utilise mon ordinateur portable Pentium III dans ma voiture, c’est trop lent pour afficher cela et je n’ont généralement connexion internet sur la route de toute façon.

Problème : Calculer une moyenne mobile de ce qui précède.
Solution : C’est relativement facile, juste garder additionner les valeurs et diviser par le nombre d’échantillons.

J’ai inclus deux versions de mes logiciels.

Pour utiliser la première, publish.zip, vous avez besoin d’une connexion internet. (Je n’ai pas testé) Enregistrer le fichier zip sur votre ordinateur, exécutez setup.exe. Si cela fonctionne de la manière il permet, il va télécharger tous les fichiers de support et installer le programme. Vous devriez être capable de l’utiliser avec n’importe quel GPS USB qui supporte les protocoles NMEA 0183.
La deuxième version, Michaels GPS.zip contient tout le code source. Je vous suggère d’installer Microsoft Visual Basic Express 2010 tout d’abord, puis de copier mes fichiers dans le répertoire du projet. Mine ressemble à ceci :
\\MICHAEL-PC\Users\Michael\Documents\Visual studio 2010\Projects\

L’exécutable est sous le nom de projet, vers le bas de quelques annuaires... \bin\release. Théoriquement, vous pouvez exécuter le fichier .exe. La raison pour laquelle que j’ai proposé l’installation de Microsoft Visual Basic Express 2010, est qu’il installe tous les trucs de .NET, le programme. Si cela ne fonctionne pas, vous pouvez aussi commencer de VB express et ouvrez le projet et exécutez-le.

Le programme d’installation : Entrez le port Comm correct pour votre GPS USB. Cliquez sur Actualiser. Les données devraient amorcer la procédure. Si vous obtenez une erreur, Arrêter les mises à jour et mise à jour à nouveau.

Articles Liés

Enregistreur de données GPS pour les coureurs de route

Enregistreur de données GPS pour les coureurs de route

Je suis un coureur de route (à pied), moi-même, et j'aime les chiffres et les mathématiques aussi bien (comme un étudiant en génie). L'idée du suivi /marquage mon chemin en cours d'exécution pour post-analyse m'a toujours fasciné, mais j'ai toujours
Tracker GPS pour les Patients Alzheimer

Tracker GPS pour les Patients Alzheimer

Tout d'abord vous remercier pour les membres de mon équipe, Sean Halloran et Gvozden Suvajlo, ils ont eu cette idée et exécuté il, ce projet ne serait pas possible sans leurs idées et leurs compétences.Le dispositif de repérage GPS est composé d'un m
Comment construire un enregistreur de données GPS léger pour les Applications de fusée modèle

Comment construire un enregistreur de données GPS léger pour les Applications de fusée modèle

février 2009Vue d'ensembleJ'ai toujours rêvé de construire un ordinateur de vol qui sera non seulement contrôler la séquence de vol, mais aussi enregistrer des données à bord d'une fusée modèle. Mais j'ai besoin de marcher avant que je peux courir, a
Smartphone pour les personnes âgées/nuls

Smartphone pour les personnes âgées/nuls

So thisLAZY vieux GEEK (LOG) a décidé d'obtenir un smartphone. Donc être qui je suis, il s'agissait d'une prise de décision et ce Instructable explique certaines de mes décisions, alors peut-être que ce pourrait être appelé :Smartphone pour les nuls,
BRICOLAGE moto Sound System pour les casques. Se connecter au téléphone, GPS ou appareil de musique

BRICOLAGE moto Sound System pour les casques. Se connecter au téléphone, GPS ou appareil de musique

AVERTISSEMENT : il est déconseillé d'utiliser ce système alors qu'il circulait sur votre moto.  Il est plus important garder alerte et être conscient de votre environnement qu'au bourrage le bas de la route.  Seulement, j'utilise ce système lorsque v
Soie, filature pour les gens paresseux

Soie, filature pour les gens paresseux

Tout d'abord, un grand Merci à Michael de wormspit.com pour me permettre de faire un lien vers son site merveilleux. Si vous êtes curieux de savoir sikworms et productrices de soie cottage, c'est le site d'aller !Ma tante m'a récemment envoyé un tas
IDE favoris ! Nouvelle vie pour les vieux câbles !

IDE favoris ! Nouvelle vie pour les vieux câbles !

Nouvelles technologies sont de bonnes choses, surtout celles qui, comme SATA qui nous donnent un câblage simple, taux de transfert de données ultra-rapides et nouveaux jouets à acheter. Cependant, il y a un autre côté plus malheureuse au progrès. Ce
Comment faire pour avoir une fille : un guide pour les geeks comme moi.

Comment faire pour avoir une fille : un guide pour les geeks comme moi.

Dans ce Instructable, vous, oui, vous, apprendrez les secrets de l'atterrissage vous-même un vrai girlfreind. Ce n'est pas un guide uniquement pour les geeks, mais pour tous les gars qui peuvent dire « Im seul » suivez ces étapes simples, et les dame
Argent pour les vieux cordages

Argent pour les vieux cordages

tant que grimpeur, j'ai de temps en temps à la retraite d'une corde. Que ce soit de vieillesse ou d'usure, il est préférable de les remplacer tous les 3-5 ans, ou plus tôt s'ils sont endommagés. Notre université club d'escalade a se retirer de toutes
Comment faire : Utiliser des vieux disques pour les projets Craft mosaïque - Backsplash de cuisine bricolage trucs et astuces

Comment faire : Utiliser des vieux disques pour les projets Craft mosaïque - Backsplash de cuisine bricolage trucs et astuces

Cette instructable va dans les détails sur la façon de nous (mon partenaire Renier et moi) créé un dosseret de mosaïque à l'aide de CDs et les trucs et astuces que nous avons appris le long du chemin.Le dosseret est vraiment impressionnant. Lorsque l
Faire A un bureau laboratoire d’électronique (dans un petit endroit, pour les débutants)

Faire A un bureau laboratoire d’électronique (dans un petit endroit, pour les débutants)

Vivre sans toilettes et sans une salle de travail n'est pas facile, n'aime vraiment pas que j'ai une petite pièce. Nous avons une maison de week-end, que je visite très souvent parce que j'ai un laboratoire d'électronique entière là (avec les station
Comment faire pour convertir un vieux téléphone portable (NOKIA 6600) en A SUPERGADGET-MICRO-ORDINATEUR

Comment faire pour convertir un vieux téléphone portable (NOKIA 6600) en A SUPERGADGET-MICRO-ORDINATEUR

http://www.internetsecretbook.comAu milieu de difficultés se trouve occasion. -Albert EinsteinLes caractéristiques du téléphone Nokia 6600 affichent les nouvelles fonctionnalités d'imagerie avancées, notamment un brillant TFT 65 536 couleurs et appar
Un jouet génial seulement pour les chats non-lazy !

Un jouet génial seulement pour les chats non-lazy !

Il y a quelques mois, j'ai publié mon premier tutorial - un autre jouet - qui fut un succès à la maison. Mon chat adoré ! Les anciens cat...well, elle a fondamentalement doesn´t Sex toys... elle serait plutôt de dormir !Malheureusement, mon chat est
Créer des accessoires réalistes pour les films Halloween/home #1

Créer des accessoires réalistes pour les films Halloween/home #1

Cet Instructable va vous montrer comment faire pour créer un accessoire de machette réaliste (semi) pour des films à la maison ou pour compléter des costumes de déguisements. Il peut être adapté pour créer d'autres articles pales comme des épées ou d