Incapace vs NEO 6M gps

Ciao a tutti!
Sono nuovo del forum e di Arduino e visto che dannarmi la vita è la mia occupazione preferita ho ben pensato di giocare con un gps, il NEO 6M della ublox (ottimo per cominciare no?!).

Il suddetto GPS mi serve per vedere la velocità reale di un mezzo e fare un confronto con la velocità teorica (misurata sulle ruote con bloccaggio del differenziale) e scoprire così quanto questo mezzo slitta.

Per la velocità teorica del mezzo (quella delle ruote) ho in mente di usare un sensore di campi magnetici e una calamita (un po come si fa per le biciclette) ma per ora il vero problema è far funzionare il modulo gps.

Il codice più di semplice comprensione che ho trovato è stato questo ma non da output di nessun tipo.

#include "TinyGPS.h"
#include "SoftwareSerial.h"

#define HEMISPHERE_PIN 13
#define GPS_RX_PIN 2
#define GPS_TX_PIN 3

TinyGPS gps; // create a TinyGPS object
SoftwareSerial ss(GPS_RX_PIN, GPS_TX_PIN); // create soft serial object

void setup()
{
  Serial.begin(9600); // for debugging
  ss.begin(9600); // Use Soft Serial object to talk to GPS
  pinMode(HEMISPHERE_PIN, OUTPUT);
  digitalWrite(HEMISPHERE_PIN, LOW); // turn off LED to start
}

void loop()
{
  while (ss.available())
  {
    int c = ss.read();
    Serial.write(c); // display NMEA data for debug
    // Send each byte to encode()
    // Check for new position if encode() returns "True"
    if (gps.encode(c))
    {
      long lat, lon;
      unsigned long fix_age;
      gps.get_position(&lat, &lon, &fix_age);
      if (fix_age == TinyGPS::GPS_INVALID_AGE)
        Serial.println("No fix ever detected!");
      else if (fix_age > 2000)
        Serial.println("Data is getting STALE!");
      else
        Serial.println("Latitude and longitude valid!");
      Serial.print("Lat: ");
      Serial.print(lat);
      Serial.print(" Lon: ");
      Serial.println(lon);
      if (lat < 0) // Southern Hemisphere?
        digitalWrite(HEMISPHERE_PIN, HIGH);
      else
        digitalWrite(HEMISPHERE_PIN, LOW);
    }
  }
}

ho un scheda arduino UNO (anche una nano ma è lo stesso no?) e ho collegato il modulo così

vcc - 5v
gnd - gnd
tx - pin digitale 3
rx - pin digitale 2

Ora...ho cercato ovviamente altri sketch e ho anche provato a modificarli ma...niente! Ho anche letto che serve una scheda MEGA ma non ho ben capito...ho trovato guide (che ovviamente non hanno funzionato) in cui si usava una scheda UNO.

Krukko:
Ciao a tutti! Sono nuovo del forum...

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:

Secondo me era meglio iniziare con qualcosa di più semplice, come fanno quasi tutti.

Dico una banalità, giusto per togliere ogni dubbio: il pin rx del modulo gps va nel pin tx di arduino e viceversa. Da come hai scritto sembra tu abbia messo rx con rx e tx con tx. Hai controllato?

Ciao, grazie per aver risposto.
Ho iniziato con un sensore ad ultrasuoni (SR04) e temperatura/umidità (DHT11) e mi sono trovato bene. Ora avevo questa voglia di provare a costruire questo aggeggio per misurare lo slittamento. Comunque (ora vado e mi presento) ho una basilare conoscienza di C++ (scolastica) e questo mi consente di capire i programmi più semplici...non sono in grado di scrivere qualcosa di serio.

doppiozero:
Dico una banalità, giusto per togliere ogni dubbio: il pin rx del modulo gps va nel pin tx di arduino e viceversa. Da come hai scritto sembra tu abbia messo rx con rx e tx con tx. Hai controllato?

Tra le varie cose che ho sbagliato questà la metto al primo posto (si...ho invertito i pin) GRAZIE!

:slight_smile:

FUNZIONA!!!!! Grazie mille doppiozero!!

ottimo :smiley: edita il titolo del post aggiungendo [risolto] allora :wink:

La schelta del Tuo nickname non é una delle piú fortunate.
Ciao Uwe