Bonjour à tous!
Je suis débutant en electronique et surtout dans le domaine des GPS... Je viens d’acquérir un gps (le MT3339 PA6C GPS ) que j'utilise et j'en suis très satisfait.
Néanmoins j'ai un problème pour la mémorisation de mes paramètres, il est réglé pour 115200 bauds mais je n'arrive pas à le faire fonctionner avec les librairies des GPS d'adafruit qui de base sont à 9600 bauds...
Voici la configuration avec laquelle ça fonctionne:
Mais comme la mémoire est volatile, je n'arrive pas à garder cette config... et je préfèrerais éviter de mettre une pile.
Le code que j'utilise, bien sûr j'ai modifié GPS.begin par 115200...
stein:
Bonjour à tous!
Je suis débutant en electronique et surtout dans le domaine des GPS... Je viens d’acquérir un gps (le MT3339 PA6C GPS ) que j'utilise et j'en suis très satisfait.
Néanmoins j'ai un problème pour la mémorisation de mes paramètres, il est réglé pour 115200 bauds mais je n'arrive pas à le faire fonctionner avec les librairies des GPS d'adafruit qui de base sont à 9600 bauds...
bonjour
ton GPS sort "nativement" selon un taux de transfert
certains modules peuvent etre "programmés" pour sortir à d'autres taux (c'est d'ailleurs valable pour d'autres equipement serie qu'un GPS )
mais pour ça , il faut déjà communiquer avec eux au taux "natif' , modifier la nouvelle valeur, et ensuite relancer la comm au nouveau taux.
apres il faut verifier si cette "manip" doit etre faite une fois (valeur maintenue) , ou à chaque ON/OFF du GPS
Ce genre d'info se deduit de la lecture des datasheet
Salut! merci de ta réponse rapide
J'ai bien compris ça, néanmoins la mémoire est volatile et comme je n'ai pas de pile, je suis obligé de le reconfigurer à chaque fois.
Mon problème est que après mon gps doit tenir un moment avec cette config, avant d'enclencher ma arduino (le but final est de faire une geobox arduino).
Je préfère éviter d'utiliser une pile, l'idéal serait de faire fonctionner le code à 115200...
La libraire GPS d'Adafruit utilise elle même la librairie software serial. Je ne suis pas certain que cette librairie supporte le 115200.
Sur le site de Mikal Hart le développeur de cette librairie il est dit:
digitalread/write scrapped in favor of direct port I/O. Revised routines now get perfect RX up to 57.6K on 16MHz processors and 31.25K on 8MHz processors.
Donc en réception il ne garantie pas un fonctionnement à 115200 bauds
Plus loin il marque:
Thanks to Garret Mace, who contributed the delay tables for 20MHz processors and claims that he can send and receive at 115K baud. Cool!
Donc, là c'est dit clairement pour faire du 115200, il faudrait plutôt booster l'Arduino à 20MHz
On a pas dit que ça ne le faisait pas, mais stein dit qu'il ne veut pas modifier sa carte.
En même temps du 115200 bauds par soft faut pas rêver même avec un quartz à 20MHz cela ne doit pas laisser beaucoup de ressource pour faire autre chose.
(j'ai du mal à comprendre l’intérêt de cette librairie en faite)
Pourquoi l'avoir choisie alors?
As-tu cherché pour voir s'il en existait d'autres?
Merci pour les liens, pour les autres librairies, j'ai regardé. J'avais trouvé "tinyGPS" mais elle utilise également SoftwareSerial.h...
Je regarde ça pour AltSoftSerial, il faut que je modifie dans mon code et directement dans la librairie d'adafruit si j'ai bien compris?
stein:
Si j'ai bien compris, je remplace cette ligne là #include "SoftwareSerial.h"
par ça: #include "AltSoftSerial.h"
et les SoftwareSerial par HardwareSerial le tout dans ma librairie Adafruit?
Je fais pareil du coté code arduino également?
Oula ... t'as pas compris.
Le maximum de AltSoftSerial comme pour tout les librairies de software serial c'est 57K, donc tu n'arriveras jamais à 115200 bauds !
Pour ça il faut utiliser le port série hardware.
Donc dans la librairie :
SoftwareSerial.h -> HardwareSerial.h
Et tu enlèves la variable de type SoftwareSerial pour la remplacer par Serial.
stein:
Si j'ai bien compris, je remplace cette ligne là #include "SoftwareSerial.h"
par ça: #include "AltSoftSerial.h"
et les SoftwareSerial par HardwareSerial le tout dans ma librairie Adafruit?
Je fais pareil du coté code arduino également?
j'essaye tout ça, encore merci !
bonsoir
pourquoi veux tu absolument utiliser ton gps avec une sortie en 115200 ?
meme avec un refresh en 10Hz (et encore sous condition ) du NMEA RMC (ou autre) n'a pas besoin de ça
Ton projet c'est de faire quoi exactement avec ce module ?
J'ai le même problème: j'ai acheté le même GPS et je souhaiterais juste pouvoir récupérer ses informations mais je n'arrive à rien.
J'ai essayer les bibliothèques adafruit et TinyGPS mais apparemment aucune des 2 ne fonctionne en 115200 baud
Donc déjà, existe-il une librairie GPS simple qui fonctionne en 115200?
Je précise que j'utilise pour le moment une Arduino mega (pour les testes) mais que à terme j'utiliserais une Arduino mini 3.3v
Autre chose que j'aimerais comprendre: les bauds définissent la vitesse de communication entre le GPS et L'arduino c'est bien ça? Dans ce cas, est-ce que une liaison 115200 provoquerais une consommation plus grande qu'une 9600?
J'ai le même problème: j'ai acheté le même GPS et je souhaiterais juste pouvoir récupérer ses informations mais je n'arrive à rien.
J'ai essayer les bibliothèques adafruit et TinyGPS mais apparemment aucune des 2 ne fonctionne en 115200 baud
Donc déjà, existe-il une librairie GPS simple qui fonctionne en 115200?
...
Autre chose que j'aimerais comprendre: les bauds définissent la vitesse de communication entre le GPS et L'arduino c'est bien ça? Dans ce cas, est-ce que une liaison 115200 provoquerais une consommation plus grande qu'une 9600?
Bonsoir
le probleme de libraries c'est qu'elles font de la presentation "cosmetique" de sentences NMEA
c'est a dire pour faire rapide qu'une fois les trames acquises/recupérées, elles (les libraries) font de l’interprétation/parsing/etc des data, il faut laisser du temps temps à l'arduino pour pouvoir le faire.
La norme NMEA "basique" prevoit du 4800, beaucoup de modules sortent en 9600 et il y a quelques exotiques 57600,115200 ou autre .
là vu de l'arduino une comm à 115200 est plus consommatrice en temps (de calcul) qu'à 9600, ce genre de modules ayant une propension à cracher des sentences en permanence à occupation baud max
Mais 9600 ça reste assez rapide?
J'ai essayé de comprendre mais je suis pas sur de moi: 9600 correspond au 1hz annoncé et 115200 au 10hz
Et cette fréquence est la fréquence de rafraichissement du gps?
Du coup à 9600 ça ferait un rafraîchissement par seconde, vous pensez que c'est assez rapide pour connaitre sa vitesse à vélo?
Mais est-ce qu'un GPS peut fonctionner en 10hz et en 9600bauds? Ou est-ce que ces deux valeurs sont liées?
Et dernière chose: est-ce qu'une arduino mini 3.3v 8MHz peut fonctionner avec un GPS en 115200? et en 9600?
LeDahu:
Mais 9600 ça reste assez rapide?
J'ai essayé de comprendre mais je suis pas sur de moi: 9600 correspond au 1hz annoncé et 115200 au 10hz
Et cette fréquence est la fréquence de rafraichissement du gps?
Du coup à 9600 ça ferait un rafraîchissement par seconde, vous pensez que c'est assez rapide pour connaitre sa vitesse à vélo?
Mais est-ce qu'un GPS peut fonctionner en 10hz et en 9600bauds? Ou est-ce que ces deux valeurs sont liées?
Et dernière chose: est-ce qu'une arduino mini 3.3v 8MHz peut fonctionner avec un GPS en 115200? et en 9600?
Merci
bonsoir
la norme NMEA c'est une sentence RMC par seconde
les taux superieurs de "refresh" >1 Hz (en segment civil) ne sont utiles que dans des cas bien particuliers et compte tenu de la dilution
due à la constellation un taux de 1Hz est le plus souvent tres suffisant.
Si j'ai bien compris le GPS est en 9600bauds et la librairie Adafruit laisse le choix de la fréquence de rafraichissement (1,5 ou 10hz), c'est bien ça?
Du coup, quel est l'intérêt d'un GPS 115k par rapport à un 9600 si on peut obtenir les même fréquences de rafraichissement dans les deux cas?