Go Down

Topic: Identification et contrôle module gps (Read 4500 times) previous topic - next topic

alfredcore

Bonjour à tous, je me permets de crée un nouveau topic pour poser quelque question sur mon module GPS

Donc voilà en résumer j'ai récupère un module GPS d'un ancien TomTom sur pda et j'aimerai l'utiliser avec mon arduino mais je ne sais pas si il est compatible



Apprêt avoir démonté mon module j'ai pu identifier la puce sirf gp2a lp-7450






Je me suis balade sur le net mais je n'ai rien trouvé j'ai aussi essayé plusieurs code mais sans succès impossible d'avoir une seul donnée de mon module en plus je ne suis pas certain des pins utiliser j'ai juste pu repère le +et - par leur couleur dans l'ancien câble

J'aimerai utiliser ce module pour enregistrer une " position clef " qui activera un code dans le programme à chaque fois que je m'y rendrai


Malheureusement j'ai des connaissances limitée j'apprends seulement à me servir de l'arduino


Pouvez-vous m'aider  ou m'informer ? :)

john_lenfr

Le datasheet donne quelques infos (cablage, protocole,...), mais en 2 pages c'est vrai que c'est un peu "light":
http://www.datasheetarchive.com/dl/Datasheet-09/DSA00147772.pdf

A mon avis une bibliothèque classique du type TinyGPS++ doit fonctionner si il y a les bons branchements

;)

Artouste


Bonjour à tous, je me permets de crée un nouveau topic pour poser quelque question sur mon module GPS

Donc voilà en résumer j'ai récupère un module GPS d'un ancien TomTom sur pda et j'aimerai l'utiliser avec mon arduino mais je ne sais pas si il est compatible

...
Pouvez-vous m'aider  ou m'informer ? :)


Bonjour
C'est probablement une simple entrée sortie TTL , mais attention à :
l'alimentation du module qui est peut etre en 3.3V
aux taud de bauds du TTL
ça vient de quel tomtom ? reference

alfredcore

Merci de vos réponse j'ai déjà pu faire quelque recherche et test en plus,  j'ai déjà trouvé d'es info c'est déjà sa :) mais aucun test ne me donner des résultats

J'ai essayé ce code  que j'ai trouvé grâce à la lib TinyGPS++ mais rien : s

Code: [Select]
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
/*
   This sample sketch demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).
*/
static const int RXPin = 2, TXPin = 3;
static const uint32_t GPSBaud = 4800;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

void setup()
{
  Serial.begin(115200);
  ss.begin(GPSBaud);

  Serial.println(F("DeviceExample.ino"));
  Serial.println(F("A simple demonstration of TinyGPS++ with an attached GPS module"));
  Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
  Serial.println(F("by Mikal Hart"));
  Serial.println();
}

void loop()
{
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0)
    if (gps.encode(ss.read()))
      displayInfo();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    Serial.println(F("No GPS detected: check wiring."));
    while(true);
  }
}

void displayInfo()
{
  Serial.print(F("Location: "));
  if (gps.location.isValid())
  {
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 6);
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F("  Date/Time: "));
  if (gps.date.isValid())
  {
    Serial.print(gps.date.month());
    Serial.print(F("/"));
    Serial.print(gps.date.day());
    Serial.print(F("/"));
    Serial.print(gps.date.year());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.print(F(" "));
  if (gps.time.isValid())
  {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(F(":"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(F(":"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(F("."));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.print(gps.time.centisecond());
  }
  else
  {
    Serial.print(F("INVALID"));
  }

  Serial.println();
}



Et j'ai trouvé d'où j'ai trouvé ce module et quelque info supplémentaire



Quote
Wired GPS Specifications
Based on SiRFStarII Architecture
Acquisition Time: Cold/Warm/Hot Start: 45/38/8 sec typical TTFF
Reacquisition Time: 0.1 seconds
Support Standard NMEA-0183 v2.0 and SiRF Binary protocol
Support Accurate 1PPS Output Signal Aligned with GPS Timing
Trickle Power Enabled for Power Saving
Superior Sensitivity for Urban Canyon and Foliage Environment
Magnet base for mounting on the car
Operating temperature: -40 ºC to +85 ºC
Power: 5.0 +-5%V DC input internal rechargeable 3V lithium battery
External Power: Universal connector for Pocket PCs
SiRF Binary plus proprietary messages NMEA-0183 v2.0 GGA, GSA, GSV, RMC, VTG, GLL
Baud Rate: 4,800 to 38,400 bps


Par contre pour le taux de bauds du TTL j'ai trouvé quelque info mais aucune idée de ce que je dois utiliser


Artouste

#4
Jun 08, 2014, 11:32 am Last Edit: Jun 08, 2014, 11:42 am by Artouste Reason: 1

Merci de vos réponse j'ai déjà pu faire quelque recherche et test en plus,  j'ai déjà trouvé d'es info c'est déjà sa :) mais aucun test ne me donner des résultats

J'ai essayé ce code  que j'ai trouvé grâce à la lib TinyGPS++ mais rien : s


Par contre pour le taux de bauds du TTL j'ai trouvé quelque info mais aucune idée de ce que je dois utiliser



avant d'utiliser tinygps, il faut déjà voir ce qui sort du module
il y avait quoi comme connecteur sur ce module , ça se connectait comment au PDA ?
les 4 "fils" que l'ont voit partait vers ce connecteur ?
c'est quoi le marquage du composant (fleche jaune) ,

alfredcore

#5
Jun 08, 2014, 11:37 am Last Edit: Jun 08, 2014, 12:02 pm by alfredcore Reason: 1
Sa se connectai via un câble rj11 sur la base de soutien du pad et la base se connectai au pad via le port normal





et oui il n'y avai que 4 fil

edit : ha je n'avai pas vu ton "edit" alor le marquage c'est

le logo ST z430
st232B
mrc


Artouste


edit : ha je n'avai pas vu ton "edit" alor le marquage c'est

le logo ST z430
st232B
mrc


Alors stop tes essais en direct  avec l'arduino pour l'instant  :smiley-mr-green:
ta sortie est une sortie RS232 pas TTL
il y a des solutions , je regarde plus tard


Artouste

#7
Jun 08, 2014, 12:29 pm Last Edit: Jun 08, 2014, 12:50 pm by Artouste Reason: 1
complement
test la continuite de tes fils orange et marron vers le ST232B et repere sur quel pin du ST232B cela " atterri"

A l'oeil je vois ça , ce qui correspondrait bien au DS du ST232B  8)

alfredcore


Artouste




he oui tu as raison :)

alors tu soude "proprement" 2 fils comme representé là en bleu ciel
il y a meme de la pseudo pastille de prevue  :smiley-mr-green:

alfredcore

j'ai eu un petit peut de mal je n'ai plus souder depuis un moment mais c'est fait :)

Artouste


j'ai eu un petit peut de mal je n'ai plus souder depuis un moment mais c'est fait :)

alors pour l'instant ne te preoccupe que du fil connecté sur le pin 11 du ST232B

fais un simple test avec ce bout de code

en connectant le fil "11" du ST232B (1ere fleche bleu ciel en bas à gauche sur la photo)  sur le pin 3 de l'arduino

(sans oublier evidemment la liaison commune GND )
tu ouvre le serial monitor de l'IDE standard en 115200
et si tu vois que ça "cause dans le poste"  8)  avec des "$G.." tu aura bien avançé  8)
si tu vois apparaitre "des trucs" sans "$G" essaye avec un changement de taux de baud

Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial BTSerial(2, 3); // RX | TX
// RX arduino <--- TX cible
// TX arduino ---> RX cible

void setup()
{
  Serial.begin(115200); // vitesse serial monitor
 
  BTSerial.begin(9600);  // vitesse software serial GPS essaye avec 4800,9600,19200,38400,57600,115200
}

void loop()
{

  // Keep reading from cible and send to Arduino Serial Monitor
  if (BTSerial.available())
    Serial.write(BTSerial.read());

  // Keep reading from Arduino Serial Monitor and send to cible
  if (Serial.available())
    BTSerial.write(Serial.read());
}

john_lenfr


alors pour l'instant ne te preoccupe que du fil connecté sur le pin 11 du ST232B


Du coup tu essaies de lui faire récupérer une trame NMEA?

Artouste



alors pour l'instant ne te preoccupe que du fil connecté sur le pin 11 du ST232B


Du coup tu essaies de lui faire récupérer une trame NMEA?

J'assaie simplement de voir déjà si ill y a de l'activité TTL en sortie de GPS
apres si on reconnait de la sentence NMEA ($G) c'est quasi tout bon
mais si le module est programmé pour cracher de la "SIRF" ça va déjà etre moins simple  :smiley-mr-green:
a suivre pour moi , fin de journée, je  --->[]

alfredcore

Donc j'ai fait le test que tu m'a conseillé et il ne m'affiche rien sur le moniteur série  par contre j'utilise un arduino micro une différence ?

Go Up