Modulo GPS-FLProg.

Blocco utente "Global Positioning System(GPS)" nel programma FLProg.

Nel programma FLProg ho creato un blocco per lavorare con i moduli GPS (testato con il modulo GY-NEO6MV2). Il blocco è sviluppato sulla base della libreria TinyGPSPlus. Una libreria molto compatta e con risparmio di risorse. La classe della libreria TinyGPSPlus - TinyGPSPlus, per prima cosa dobbiamo creare un oggetto per questa classe nel codice del blocco nella sezione "Declare", ad esempio: TinyGPSPlus TinyGPS;
La classe TinyGPSPlus ha otto sotto-oggetti a cui è possibile accedere utilizzando l'oggetto TinyGPS: TinyGPS.name subobject(). I sotto-oggetti e i metodi utilizzati nel codice del blocco:

1) location - attraverso la quale è possibile recuperare il valore di latitudine e longitudine. Sono disponibili i seguenti metodi:

  1. TinyGPS.location.lat() - per la latitudine.
  2. TinyGPS.location.lng() - per la longitudine.
  3. TinyGPS.location.rawLat() - per i punti cardinali N/S.
  4. TinyGPS.location.rawLng() - per i punti cardinali W/E.

2) date - l'ultima data ottenuta utilizzando il GPS, nel formato UTC (meridiano di Greenwich). Sono disponibili i seguenti metodi:

  1. TinyGPS.date.value() - specifica la data completa nel formato YYMMAA.
  2. TinyGPS.date.year() - restituisce l'anno intero, ovvero YYYY.
  3. TinyGPS.date.month() - specifica il mese (da 1 a 12).
  4. TinyGPS.date.day() - specifica il giorno del mese (da 1 a 31).

3) time - l'ora corrente ottenuta dal GPS in formato UTC (meridiano di Greenwich).
Sono disponibili i seguenti metodi:

  1. TinyGPS.time.value() - fornisce il tempo completo nel formato HHMMSSCC, dove CC sta per centesimi di secondo.
  2. TinyGPS.time.hour() - per ora.
  3. TinyGPS.time.mine() - per minuti.
  4. TinyGPS.time.second() - per i secondi.
  5. TinyGPS.time.centisecond() - per centesimi di secondo.

4) speed - la velocità in diverse unità utilizzando i seguenti metodi:

  1. TinyGPS.speed.knots() - in nodi. Il nodo è un'unità corrispondente a un miglio nautico all'ora (ovvero 1.852 km/h, 1.151 mph, 0,514 m/s).
  2. TinyGPS.speed.mph() - in miglia orarie.
  3. TinyGPS.speed.mps() - metri al secondo.
  4. TinyGPS.speed.kmph() - in km orari.

5) course - fornisce la direzione cardinale verso cui si sta dirigendo il dispositivo. Si esprime in gradi tramite i seguenti metodi:

  1. TinyGPS.course.deg() - la direzione in gradi.
  2. TinyGPS.cardinal(TinyGPS.course.deg()) - punti cardinali di direzione.

6) altitude - fornisce l'altitudine in diverse unità, con i seguenti metodi:

  1. TinyGPS.altitude.meters() - in metri.
  2. TinyGPS.altitude.miles() - in miglia.
  3. TinyGPS.altitude.kilometers() - in chilometri.
  4. TinyGPS.altitude.feet() - in piedi.

7) satellites - il numero di satelliti collegati può essere ottenuto utilizzando il seguente metodo:

  1. TinyGPS.satellites.value()
8) hdop - HDOP sta per Horizontal Dilution of Precision (Diluizione Orizzontale di Precisione) ed è correlato alla precisione della posizione. Più basso è il valore, migliore è la precisione. La "diluizione della precisione" è dovuta principalmente alla geometria e alla posizione dei satelliti collegati. Il metodo è:
  1. TinyGPS.hdop.value()
Libreria TinyGPSPlus.

Consideriamo il blocco "Global Positioning System(GPS)".

Impostazione parametri:
SERIAL_GPS - il parametro serve per selezionare la porta di comunicazione con il modulo GPS (Figura 1).

                                                                                                  Figura 1 

Selezionando la porta di comunicazione SoftwareSerial si aprono altri due parametri (Figura 2):

PIN_RX - pin di ricezione dati.
PIN_TX - pin di trasmissione dati.

                                                                                                  Figura 2

Selezionando uno di questi parametri possiamo selezionare il pin di ricezione o trasmissione dei dati. Qui troviamo anche la descrizione del parametro (Figura 3).

                                                                                                  Figura 3 

SPEED - il parametro per selezionare la velocità della porta (Figura 4).

                                                                                                  Figura 4 

Selezionando un parametro dalla cartella "Setting the output" abilitiamo l'output dei dati da utilizzare per il nostro progetto. Dal nome del parametro si capisce che tipo di date fornisce l'output abilitato (Figura 5).

                                                                                                  Figura 5 

HOURS_DATA_STRING - abilitando l'output per ora o data si apre il parametro per selezionare il formato. Selezionando questo parametro possiamo selezionare il formato dell'ora e della data, in cui i valori saranno espressi in byte o stringhe. Il formato stringa è abilitato per impostazione predefinita.

SPEED_ENABLE, ALTITUDE_ENABLE - l'attivazione di questi output apre le opzioni per la selezione delle unità di misura (Figura 6).

                                                                                                  Figura 6 

SPEED_TYPE, ALTITUDE_TYPE - selezionando uno di questi parametri potremmo cambiare l'unità di misura ed i dati forniti o il rispettivo output (Figura 7).

                                                                                                  Figura 7 

Tutti i parametri per abilitare l'output, per impostazione predefinita, sono in modalità disabilitata. Nella modalità predefinita sono impostati anche i parametri relativi alle unità di misura: velocità in chilometri orari (km/h) e altitudine in metri (m).

Il codice del blocco.

Aggiungiamo la libreria "SoftwareSerial.h", viene attivata dalla condizione COND_SSERIAL se questa condizione e soddisfatta (se la porta di comunicazione SoftwareSerial è selezionata dal parametro SERIAL_GPS) (Figura 8).

                                                                                                  Figura 8 

Aggiungiamo la libreria "TinyGPSPlus.h", verrà inserita nel codice senza condizioni (Figura 9).

                                                                                                  Figura 9 

Creiamo l'oggetto per la classe SoftwareSerial e inseriamo il tag del parametro PIN_RX e PIN_TX per i pin di ricezione e trasmissione. Viene abilitato dalla condizione COND_SSERIAL se questa condizione e soddisfatta (se la porta di comunicazione SoftwareSerial è selezionata dal parametro SERIAL_GPS) (Figura 10).

                                                                                                  Figura 10 

Creiamo l'oggetto per la classe TinyGPSPlus, verrà inserita nel codice senza condizioni (Figura 11).

                                                                                                   Figura 11 

Nel codice della sezione "Setup" impostiamo la velocità di trasmissione dei dati e la porta seriale, inserendo i tag dei parametri SERIAL_GPS e SPEED (Figura 12).

                                                                                                  Figura 12 

Nella sezione "Loop" troverai tutte le parti del codice per lavorare con i dati ricevuti dal modulo GPS. Per ogni parte di codice dobbiamo inserire tag di output e di input corrispondenti ai dati in elaborazione (Figura 13).

                                                                                                  Figura 13 

Ogni parte di codice è abilitato dalla condizione corrispondente se tali condizioni sono soddisfatte (se selezionate dalle opzioni appropriate).

L'ultima parte del codice viene utilizzata per comunicare con il modulo GPS. Qui dobbiamo inserire i tag dei parametri SERIAL_GPS. Verrà inserita nel codice senza condizioni (Figura 14).

                                                                                                                                Figura 14 

Tutti questi parti di codice devono essere posizionati all'inizio della sezione "Loop" nella sottosezione "Beginning of the section "Loop"".

La schema di collegamento dei blocchi nella programma FLProg, per testare il blocco "Global Positioning System(GPS)" (Figura 15).

File FLProg.

Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia