Sommario:
- Passaggio 1: componenti necessari
- Passaggio 2: informazioni sul GPS
- Passaggio 3: modulo GPS Neo-6M
- Passaggio 4: Arduino Mega
- Passaggio 5: Arduino IDE
- Passaggio 6: connessioni
Video: Interfaccia Arduino Mega con modulo GPS (Neo-6M): 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
In questo progetto ho mostrato come interfacciare un modulo GPS (Neo-6M) con Arduino Mega. La libreria TinyGPS viene utilizzata per visualizzare i dati di Longitudine e Latitudine e TinyGPS++ viene utilizzata per visualizzare Latitudine, Longitudine, Altitudine, Velocità e numero di satelliti sul monitor seriale.
Passaggio 1: componenti necessari
Hardware
- Arduino Mega ==> $ 30
- Modulo GPS Neo-6M ==> $ 30
Software
Arduino IDE
Il costo totale del progetto è di $ 60
Passaggio 2: informazioni sul GPS
Cos'è il GPS?
Il Global Positioning System (GPS) è un sistema di navigazione satellitare composto da almeno 24 satelliti. Il GPS funziona in qualsiasi condizione atmosferica, in qualsiasi parte del mondo, 24 ore al giorno, senza costi di abbonamento o costi di installazione.
Come funziona il GPS
I satelliti GPS girano intorno alla Terra due volte al giorno in un'orbita precisa. Ogni satellite trasmette un segnale unico e parametri orbitali che consentono ai dispositivi GPS di decodificare e calcolare la posizione precisa del satellite. I ricevitori GPS utilizzano queste informazioni e la trilaterazione per calcolare la posizione esatta di un utente. In sostanza, il ricevitore GPS misura la distanza da ciascun satellite in base al tempo necessario per ricevere un segnale trasmesso. Con le misurazioni della distanza da alcuni satelliti in più, il ricevitore può determinare la posizione di un utente e visualizzarla.
Per calcolare la tua posizione 2D (latitudine e longitudine) e tracciare il movimento, un ricevitore GPS deve essere agganciato al segnale di almeno 3 satelliti. Con 4 o più satelliti in vista, il ricevitore può determinare la tua posizione 3D (latitudine, longitudine e altitudine). Generalmente, un ricevitore GPS traccia 8 o più satelliti, ma ciò dipende dall'ora del giorno e da dove ti trovi sulla terra. Una volta che la tua posizione è stata determinata, l'unità GPS può calcolare altre informazioni, come ad esempio
- Velocità
- Cuscinetto
- Traccia
- Distanza di viaggio
- Distanza dalla destinazione
Cos'è il segnale?
I satelliti GPS trasmettono almeno 2 segnali radio a bassa potenza. I segnali viaggiano per linea di vista, il che significa che attraverseranno nuvole, vetro e plastica ma non attraverseranno la maggior parte degli oggetti solidi, come edifici e montagne. Tuttavia, i ricevitori moderni sono più sensibili e di solito possono tracciare attraverso le case. Un segnale GPS contiene 3 diversi tipi di informazioni
Codice pseudocasuale
È un documento d'identità codice che identifica quale satellite sta trasmettendo informazioni. Puoi vedere da quali satelliti ricevi i segnali sulla pagina dei satelliti del tuo dispositivo.
Dati effemeridi
I dati sulle effemeridi sono necessari per determinare la posizione di un satellite e forniscono informazioni importanti sullo stato di salute di un satellite, data e ora correnti.
Dati dell'almanacco
I dati dell'almanacco indicano al ricevitore GPS dove dovrebbe essere ogni satellite GPS in qualsiasi momento durante il giorno e mostrano le informazioni orbitali per quel satellite e per ogni altro satellite nel sistema.
Passaggio 3: modulo GPS Neo-6M
Il modulo GPS NEO-6M è mostrato nella figura seguente. Viene fornito con un'antenna esterna e non viene fornito con pin di intestazione. Quindi dovrai saldarlo.
Panoramica del modulo GPS NEO-6M
Chip GPS NEO-6M
Il cuore del modulo è un chip GPS NEO-6M di u-blox. Può tracciare fino a 22 satelliti su 50 canali e raggiunge il più alto livello di sensibilità del settore, ovvero un tracciamento di -161 dB, consumando solo 45 mA di corrente di alimentazione. Il motore di posizionamento u-blox 6 vanta anche un Time-To-First-Fix (TTFF) inferiore a 1 secondo. Una delle migliori caratteristiche fornite dal chip è la modalità di risparmio energetico (PSM). Consente una riduzione del consumo energetico del sistema accendendo e spegnendo selettivamente parti del ricevitore. Ciò riduce drasticamente il consumo energetico del modulo a soli 11 mA rendendolo adatto per applicazioni sensibili all'alimentazione come l'orologio da polso GPS. I pin di dati necessari del chip GPS NEO-6M sono suddivisi in intestazioni di passo da 0,1 . Ciò include i pin necessari per la comunicazione con un microcontrollore su UART.
Nota: il modulo supporta baud rate da 4800 bps a 230400 bps con baud predefinito di 9600.
Indicatore LED di posizione fissa
C'è un LED sul modulo GPS NEO-6M che indica lo stato di Position Fix. Lampeggerà a varie velocità a seconda dello stato in cui si trova
- Nessun lampeggio ==> significa che sta cercando i satelliti
- Lampeggia ogni 1s – significa che la correzione della posizione è stata trovata
Regolatore LDO da 3,3 V
La tensione operativa del chip NEO-6M va da 2,7 a 3,6 V. Tuttavia, il modulo viene fornito con il regolatore 3V3 a caduta ultra bassa MIC5205 di MICREL. I pin logici sono anche tolleranti a 5 volt, quindi possiamo collegarlo facilmente a un Arduino o a qualsiasi microcontrollore logico a 5 V senza utilizzare alcun convertitore di livello logico.
Batteria e EEPROM
Il modulo è dotato di una EEPROM seriale a due fili HK24C32. Ha una dimensione di 4 KB ed è collegato al chip NEO-6M tramite I2C. Il modulo contiene anche una batteria a bottone ricaricabile che funge da supercondensatore.
Una EEPROM insieme alla batteria aiuta a mantenere la RAM con batteria tampone (BBR). Il BBR contiene i dati dell'orologio, i dati di posizione più recenti (dati orbitali GNSS) e la configurazione del modulo. Ma non è pensato per l'archiviazione permanente dei dati.
Poiché la batteria mantiene l'orologio e l'ultima posizione, il tempo di prima correzione (TTFF) si riduce significativamente a 1 secondo. Ciò consente blocchi di posizione molto più rapidi.
Senza la batteria il GPS si avvia sempre a freddo, quindi il blocco GPS iniziale richiede più tempo. La batteria si carica automaticamente quando viene applicata l'alimentazione e conserva i dati fino a due settimane senza alimentazione.
pinout
GND è il pin di terra e deve essere collegato al pin GND di Arduino
Il pin TxD (trasmettitore) viene utilizzato per la comunicazione seriale
Il pin RxD (ricevitore) viene utilizzato per la comunicazione seriale
VCC fornisce alimentazione al modulo. Puoi collegarlo direttamente al pin 5V su Arduino
Passaggio 4: Arduino Mega
Arduino è una piattaforma elettronica open source basata su hardware e software di facile utilizzo. Le schede Arduino sono in grado di leggere input - luce su un sensore, un dito su un pulsante o un messaggio Twitter - e trasformarlo in un output - attivando un motore, accendendo un LED, pubblicando qualcosa online. Puoi dire alla tua scheda cosa fare inviando una serie di istruzioni al microcontrollore sulla scheda. Per farlo si utilizza il linguaggio di programmazione Arduino (basato su Wiring) e il Software Arduino (IDE), basato su Processing.
Arduino Mega
Arduino Mega 2560 è una scheda microcontrollore basata su Atmega2560.
- Ci sono 54 pin I/O digitali e 16 pin analogici incorporati sulla scheda che rendono questo dispositivo unico e si distingue dagli altri. Su 54 I/O digitali, 15 sono utilizzati per PWM (modulazione di larghezza di impulso).
- Sulla scheda viene aggiunto un oscillatore a cristallo di frequenza 16MHz.
- La scheda viene fornita con una porta per cavo USB che viene utilizzata per collegare e trasferire il codice dal computer alla scheda.
- Il jack di alimentazione CC è accoppiato con la scheda utilizzata per alimentare la scheda.
- La scheda viene fornita con due regolatori di tensione, ad esempio 5 V e 3,3 V che offrono la flessibilità di regolare la tensione secondo i requisiti.
- C'è un pulsante di reset e 4 porte seriali hardware chiamate USART che producono una velocità massima per l'impostazione della comunicazione.
- Ci sono tre modi per alimentare la scheda. Puoi utilizzare un cavo USB per alimentare la scheda e trasferire il codice alla scheda oppure puoi accenderla utilizzando Vin della scheda o tramite jack di alimentazione o pastella.
Specifiche
pinout
Pin Descrizione
- 5V e 3,3V ==>Questo pin viene utilizzato per fornire una tensione regolata in uscita intorno a 5V. Questo alimentatore regolato alimenta il controller e altri componenti sulla scheda. Può essere ottenuto da Vin della scheda o cavo USB o un altro alimentatore di tensione 5V regolato. Mentre un'altra regolazione della tensione è fornita dal pin 3.3V. La potenza massima che può assorbire è 50mA.
- GND ==>Ci sono 5 pin di terra disponibili sulla scheda, il che lo rende utile quando sono necessari più pin di terra per il progetto.
- Reset ==> Questo pin viene utilizzato per ripristinare la scheda. L'impostazione di questo pin su LOW ripristinerà la scheda.
- Vin ==> E' la tensione di ingresso fornita alla scheda che va da 7V a 20V. Tramite questo pin è possibile accedere alla tensione fornita dal jack di alimentazione. Tuttavia, la tensione di uscita attraverso questo pin alla scheda verrà automaticamente impostata su 5V.
- Comunicazione seriale ==> RXD e TXD sono i pin seriali utilizzati per trasmettere e ricevere dati seriali, ovvero Rx rappresenta la trasmissione di dati mentre Tx è utilizzato per ricevere dati. Esistono quattro combinazioni di questi pin seriali dove Serail 0 contiene RX (0) e TX (1), Serial 1 contiene TX (18) e RX (19), Serial 2 contiene TX (16) e RX (17), e Serial 3 contiene TX(14) e RX(15).
- Interrupt esterni ==> Sei pin vengono utilizzati per creare interrupt esterni, ovvero interruzione 0 (0), interruzione 1 (3), interruzione 2 (21), interruzione 3 (20), interruzione 4 (19), interruzione 5 (18). Questi pin producono interruzioni in diversi modi, ad esempio fornendo un valore BASSO, fronte di salita o discesa o modifica del valore ai pin di interruzione.
- LED ==> Questa scheda è dotata di LED integrato collegato al pin digitale 13. Il valore HIGH su questo pin accenderà il LED e il valore LOW lo spegnerà.
- AREF ==> AREF sta per Analog Reference Voltage che è una tensione di riferimento per gli ingressi analogici.
- Pin analogici ==> Ci sono 16 pin analogici incorporati sulla scheda etichettati da A0 a A15. È importante notare che tutti questi pin analogici possono essere utilizzati come pin I/O digitali. Ogni pin analogico ha una risoluzione a 10 bit. Questi pin possono misurare da terra a 5V. Tuttavia, il valore superiore può essere modificato utilizzando AREF e la funzione analogReference().
- I2C ==>Due pin 20 e 21 supportano la comunicazione I2C dove 20 rappresenta SDA (Serial Data Line utilizzata principalmente per contenere i dati) e 21 rappresenta SCL (Serial Clock Line utilizzata principalmente per fornire la sincronizzazione dei dati tra i dispositivi)
- SPI Communication ==> SPI sta per Serial Peripheral Interface utilizzata per la trasmissione di dati tra il controller e altri componenti periferici. Per la comunicazione SPI vengono utilizzati quattro pin, ad esempio 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS).
Passaggio 5: Arduino IDE
Qui presumo che tu abbia già installato Arduino IDE.
1. Scarica la libreria richiesta indicata di seguito
TinyGPS lib
2. Dopo averlo scaricato. Estrailo e spostalo nella cartella C:\Users\…\Documents\Arduino\libraries assicurati che non ci sia (-).
3. Apri l'IDE Arduino e copia il codice dalla sezione del programma.
4. Quindi seleziona la scheda per quella vai su Strumenti ==> Schede ==> seleziona la scheda qui stiamo usando Arduino Mega 2560
5. Dopo aver selezionato la scheda, seleziona la porta per quella vai su Strumenti ==> Porte
6. Dopo aver selezionato la scheda e la porta, fai clic su Carica.
7. Una volta caricato il codice, aprire il terminale seriale per vedere l'output.
Passaggio 6: connessioni
Arduino MEGA ==> NEO-6M GPS
- 3.3V ==> VCC
- GND ==> GND
- Tx1 (18) ==> Rx
- Rx (19) ==> Tx
Puoi anche usare Serial2 o Serial3 invece di Serial1
Consigliato:
Orologio GPS Arduino con ora locale utilizzando il modulo NEO-6M: 9 passaggi
Orologio GPS Arduino con ora locale utilizzando il modulo NEO-6M: in questo tutorial impareremo come ottenere l'ora corrente dai satelliti utilizzando arduino.Guarda il video
Iniziare con l'interfaccia del sensore I2C?? - Interfaccia il tuo MMA8451 utilizzando ESP32: 8 passaggi
Iniziare con l'interfaccia del sensore I2C?? - Interfaccia il tuo MMA8451 utilizzando ESP32: in questo tutorial imparerai tutto su come avviare, connettere e far funzionare il dispositivo I2C (accelerometro) con il controller (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Come interfacciare il modulo GPS (NEO-6m) con Arduino: 7 passaggi (con immagini)
Come interfacciare un modulo GPS (NEO-6m) con Arduino: In questo progetto, ho mostrato come interfacciare un modulo GPS con Arduino UNO. I dati di longitudine e latitudine vengono visualizzati sul display LCD e la posizione può essere visualizzata sull'app. Elenco del materiale Arduino Uno ==> $8 Modulo GPS Ublox NEO-6m ==> $ 15 16 volte
ESP32 con E32-433T Modulo LoRa Tutorial - Interfaccia Arduino LoRa: 8 passaggi
ESP32 con E32-433T Modulo LoRa Tutorial | Interfaccia Arduino LoRa: Ehi, come va, ragazzi! Akarsh qui da CETech. Questo mio progetto sta interfacciando il modulo E32 LoRa di eByte che è un modulo ricetrasmettitore da 1 watt ad alta potenza con un ESP32 che utilizza Arduino IDE. Abbiamo capito il funzionamento dell'E32 nel nostro ultimo tutorial
Il modulo dell'interfaccia utente LCD: 15 passaggi
Il modulo LCD UI: Il modulo LCD UI è un LCD retroilluminato 8x2 con un mini-joystick, un "grande pulsante rosso" extra e un LED bicolore per un feedback aggiuntivo. È un modo semplice per aggiungere interattività al tuo progetto. L'LCD è compatibile con HD44780 e cablato per un'interfaccia a 4 bit