Pages: [1] 2   Go Down
Author Topic: Problème de baud GPS  (Read 3116 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Quote

void setup()  
{
  Serial.begin(115200);
  Serial.println("Adafruit GPS library basic test!");
  GPS.begin(115200);
  
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);
  GPS.sendCommand(PGCMD_ANTENNA);

  useInterrupt(true);

  delay(1000);
  mySerial.println(PMTK_Q_RELEASE);
}



Comment faire?

Merci d'avance,
Pierre
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3626
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
Quote
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:
Quote
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
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Erf je comprend mieux...
Je préfère éviter de modifier ma Arduino, je suppose que je n'ai pas d'autre choix que de mettre une pile alors?

Sinon je ne peux pas directement agir sur tx et rx? (j'ai du mal à comprendre l’intérêt de cette librairie en faite)
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1990
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
la lib newsoftserial le fait http://arduiniana.org/libraries/newsoftserial/
Quote
Thanks to Garret Mace, who contributed the delay tables for 20MHz processors and claims that he can send and receive at 115K baud.  Cool!
Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3626
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Quote
(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?
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Pour du 115200 bauds il faut utiliser le port série hardware.
Le maximum de quasiment toute les librairie de software serial c'est 57K :
http://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 1
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey bonsoir!

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?
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Au pire modifier la lib d'adafruit pour utiliser le port série hardware c'est pas compliqué smiley-wink

Tu vires la déclaration de l'objet SoftwareSerial, tu fait un gros ctrl+F / remplacer et tu colles des Serial à la place partout.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 1
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ! smiley
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ! smiley
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 ?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 40
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour!

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

Si j'ai bien compris, ca risque d'être complique de rester en 115200... le truc c'est que comme Stein, j'aimerais éviter d'ajouter une pile de backup et le passage en 9600 est apparemment impossible sans cette pile.
Si je dois me resigner à en utiliser une, combien de temps je peux tenir avec une pile de ce type: http://www.adafruit.com/products/380
Si ca se compte en année, dans ce cas ok, mais si il faut la changer tous les mois...

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?
Logged

Offline Offline
Faraday Member
**
Karma: 34
Posts: 5183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour!

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
Logged

Pages: [1] 2   Go Up
Jump to: