• Welcome to LusoRobótica - Robótica em Português.
 

Problema receber dados do GPS MediaTek MT3329 com Arduino Uno

Started by Asilva, 21 de July de 2012, 14:42

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Asilva

Tenho um Arduino Uno e comprei recentemente um "MediaTek MT3329 GPS" e não consigo receber os dados desse modulo GPS.
já tentei utilizar o software que é fornecido onde põem à venda o GPS http://store.diydrones.com/MediaTek_MT3329_GPS_10Hz_Adapter_Basic_p/mt3329-02.htm mas o software está feito para Arduino com mais que uma porta de serie. já tentei integrar a livraria SoftwareSerial iniciando a porta do GPS a 38400 mas não consegui obter resultados positivos.
O que eu realmente pretendia era mudar o firmware de MTK para NMEA http://diydrones.com/forum/topics/mediatek-mt3329-gps-problem talvez alguem possa-me ajudar a fazer isso, pois, todas as livrarias que quero utilizar (por ex: TinyGPS) usam o protocolo NMEA.
como os meus conhecimentos nestas materias são basicos agradecia mesmo a vossa ajuda para resolver este problema.

Asilva

bem, estou cheio de queimar pestanas e nada de progressos.
encontrei umas bibliotecas que me pareceram interessanteshttp://code.google.com/p/ardu-imu/downloads/detail?name=ArduIMU_1.9.zip&can=2&q=, fiz umas pequenas alterações no codigo na esperança de o utilizar#include <SoftwareSerial.h>
#include <FastSerial.h>
#include <AP_GPS_NMEA.h>
#include <stdio.h>
SoftwareSerial ss(3, 4);
FastSerialPort0(Serial);
FastSerialPort1(ss);

AP_GPS_NMEA gps(&ss);
#define T6 1000000
#define T7 10000000

void setup()
{
Serial.begin(115200);
ss.begin(38400);
stderr = stdout;
gps.print_errors = true;

Serial.println("GPS NMEA library test");
gps.init(); // GPS Initialization
delay(1000);
}

void loop()
{
delay(20);
gps.update();
if (gps.new_data){
Serial.print("gps:");
Serial.print(" Lat:");
Serial.print((float)gps.latitude / T7, DEC);
Serial.print(" Lon:");
Serial.print((float)gps.longitude / T7, DEC);
Serial.print(" Alt:");
Serial.print((float)gps.altitude / 100.0, DEC);
Serial.print(" GSP:");
Serial.print(gps.ground_speed / 100.0);
Serial.print(" COG:");
Serial.print(gps.ground_course / 100, DEC);
Serial.print(" SAT:");
Serial.print(gps.num_sats, DEC);
Serial.print(" FIX:");
Serial.print(gps.fix, DEC);
Serial.print(" TIM:");
Serial.print(gps.time, DEC);
Serial.println();
gps.new_data = 0; // We have read the data
}
}
  já tinha feito várias tentativas de codigo sem utilizar a livraria FastSerial  e nada, depois de muitas pestanas queimadas achei que esta livraria faria a diferença mas ao compilar o codigo tenho o erro: "GPS_NMEA_test.pde:-1: error: expected constructor, destructor, or type conversion before '(' token".
Alguma sugestão para este iniciante, ou até mesmo algum comentário que me leve a procurar novos caminhos???..., é que estou mesmo a precisar de obter dados do Gps (com o Arduino uno).
desde já o meu obrigado pela vossa atenção e as minhas desculpas por alguma ignorancia demonstrada.

Asilva

Bem colegas, esteve sempre à minha frente desde o inicio, e, só o meu pouco entender de Ingles e descuido completo para levar tanto tempo.
foi só colocar as seguintes linhas de codigo no ficheiro *****.pde :
#define MTK_SET_BINARY "$PGCMD,16,0,0,0,0,0*6A\r\n"
#define MTK_SET_NMEA "$PGCMD,16,1,1,1,1,1*6B\r\n"
e já rola com as livrarias da TinyGPS.

Simple TinyGPS library v. 12
by Mikal Hart

LAT=41.536998 LON=-8.708500 SAT=9 PREC=109
CHARS=122 SENTENCES=1 CSUM ERR=0
LAT=41.536998 LON=-8.708500 SAT=8 PREC=123
CHARS=409 SENTENCES=2 CSUM ERR=2
LAT=41.536998 LON=-8.708500 SAT=9 PREC=109
CHARS=594 SENTENCES=3 CSUM ERR=2
LAT=41.536998 LON=-8.708500 SAT=9 PREC=109
CHARS=775 SENTENCES=4 CSUM ERR=2

Desculpem-me pelo tempo que vos ocupei, e, espero que esta inf. seja util para alguém.

Sérgio_Sena

Cumprimentos,
Sérgio Sena

Electronic Gear for Musicians

Instagram