Innholdsfortegnelse:

Grensesnitt Arduino Mega Med GPS-modul (Neo-6M): 8 trinn
Grensesnitt Arduino Mega Med GPS-modul (Neo-6M): 8 trinn

Video: Grensesnitt Arduino Mega Med GPS-modul (Neo-6M): 8 trinn

Video: Grensesnitt Arduino Mega Med GPS-modul (Neo-6M): 8 trinn
Video: LDmicro 11: Последовательный контроллер температуры с ЖК-дисплеем (лестничное программирование ПЛК микроконтроллера с помощью LDmicro) 2024, November
Anonim
Grensesnitt Arduino Mega Med GPS-modul (Neo-6M)
Grensesnitt Arduino Mega Med GPS-modul (Neo-6M)

I dette prosjektet har jeg vist hvordan du kobler en GPS-modul (Neo-6M) til Arduino Mega. TinyGPS -biblioteket brukes til å vise dataene for lengdegrad og breddegrad, og TinyGPS ++ brukes til å vise breddegrad, lengdegrad, høyde, hastighet og antall satellitter på den serielle skjermen.

Trinn 1: Komponenter som trengs

Maskinvare

  • Arduino Mega ==> $ 30
  • Neo-6M GPS-modul ==> $ 30

Programvare

Arduino IDE

Den totale kostnaden for prosjektet er $ 60

Trinn 2: Informasjon om GPS

Hva er GPS

Global Positioning System (GPS) er et satellittbasert navigasjonssystem som består av minst 24 satellitter. GPS fungerer under alle værforhold, hvor som helst i verden, 24 timer i døgnet, uten abonnementsavgifter eller oppsettskostnader.

Hvordan GPS fungerer

GPS -satellitter sirkler jorden to ganger om dagen i en presis bane. Hver satellitt sender et unikt signal og orbitale parametere som lar GPS -enheter dekode og beregne den nøyaktige plasseringen av satellitten. GPS -mottakere bruker denne informasjonen og trilaterasjonen til å beregne en brukers nøyaktige plassering. I hovedsak måler GPS -mottakeren avstanden til hver satellitt med tiden det tar å motta et overført signal. Med avstandsmålinger fra noen flere satellitter kan mottakeren bestemme brukerens posisjon og vise den.

For å beregne din 2-D-posisjon (breddegrad og lengdegrad) og spore bevegelse, må en GPS-mottaker være låst på signalet fra minst 3 satellitter. Med 4 eller flere satellitter i sikte, kan mottakeren bestemme din 3D-posisjon (breddegrad, lengdegrad og høyde). Vanligvis vil en GPS -mottaker spore 8 eller flere satellitter, men det avhenger av tidspunktet på dagen og hvor du er på jorden. Når posisjonen din er bestemt, kan GPS -enheten beregne annen informasjon, for eksempel

  • Hastighet
  • Peiling
  • Spor
  • Tur dist
  • Avstand til destinasjon

Hva er signal

GPS-satellitter sender minst 2 laveffektradiosignaler. Signalene beveger seg etter siktlinjen, noe som betyr at de vil passere gjennom skyer, glass og plast, men vil ikke gå gjennom de fleste faste gjenstander, for eksempel bygninger og fjell. Moderne mottakere er imidlertid mer følsomme og kan vanligvis spore gjennom hus. Et GPS -signal inneholder 3 forskjellige typer informasjon

Pseudoslettkode

Det er en I. D. kode som identifiserer hvilken satellitt som sender informasjon. Du kan se hvilke satellitter du får signaler fra på enhetens satellittside.

Ephemeris data

Ephemeris -data er nødvendig for å bestemme satellittens posisjon og gir viktig informasjon om helsen til en satellitt, gjeldende dato og klokkeslett.

Almanakkdata

Almanakkdata forteller GPS -mottakeren hvor hver GPS -satellitt skal være når som helst i løpet av dagen og viser banelinformasjonen for den satellitten og alle andre satellitter i systemet.

Trinn 3: Neo-6M GPS-modul

NEO-6M GPS-modulen er vist i figuren nedenfor. Den kommer med en ekstern antenne og kommer ikke med toppnål. Så du må lodde den.

Oversikt over NEO-6M GPS-modul

NEO-6M GPS-brikke

Hjertet i modulen er en NEO-6M GPS-brikke fra u-blox. Den kan spore opptil 22 satellitter på 50 kanaler og oppnår bransjens høyeste følsomhetsnivå, dvs. -161 dB sporing, samtidig som den bruker bare 45 mA strøm. U-blox 6-posisjoneringsmotoren har også en Time-To-First-Fix (TTFF) på under 1 sekund. En av de beste funksjonene brikken gir, er Power Save Mode (PSM). Det tillater en reduksjon i systemets strømforbruk ved å selektivt slå deler av mottakeren PÅ og AV. Dette reduserer strømforbruket til modulen dramatisk til bare 11mA, noe som gjør den egnet for strømfølsomme applikasjoner som GPS -armbåndsur. De nødvendige datapinnene på NEO-6M GPS-brikken brytes ut til en 0,1 ″ tonehøyde. Dette inkluderer pins som kreves for kommunikasjon med en mikrokontroller via UART.

Merk:- Modulen støtter baud rate fra 4800bps til 230400bps med standard baud på 9600.

Position Fix LED -indikator

Det er en LED på NEO-6M GPS-modulen som indikerer statusen til Position Fix. Den blinker med forskjellige hastigheter, avhengig av hvilken tilstand den er i

  1. Ingen blinking ==> betyr at den søker etter satellitter
  2. Blink hver 1s - betyr at Position Fix er funnet

3.3V LDO -regulator

Driftsspenningen til NEO-6M-brikken er fra 2,7 til 3,6V. Men modulen kommer med MIC5205 ultra-low dropout 3V3 regulator fra MICREL. Logikkpinnene er også 5 volt tolerante, så vi kan enkelt koble den til en Arduino eller hvilken som helst 5V logisk mikrokontroller uten å bruke noen logisk nivåomformer.

Batteri og EEPROM

Modulen er utstyrt med en HK24C32 to -leders seriell EEPROM. Den er 4KB i størrelse og koblet til NEO-6M-brikken via I2C. Modulen inneholder også et oppladbart knappebatteri som fungerer som en superkondensator.

En EEPROM sammen med batteri hjelper til med å beholde batteribacked RAM (BBR). BBR inneholder klokkedata, siste posisjonsdata (GNSS bane data) og modulkonfigurasjon. Men det er ikke ment for permanent datalagring.

Siden batteriet beholder klokken og siste posisjon, reduseres tiden til første reparasjon (TTFF) betydelig til 1 sekunder. Dette gir mye raskere posisjonslåser.

Uten batteri starter GPS-en alltid kaldstart, så den første GPS-låsen tar mer tid. Batteriet lades automatisk når strøm er på, og beholder data i opptil to uker uten strøm.

Pinout

GND er Ground Pin og må kobles til GND pin på Arduino

TxD (sender) pin brukes til seriell kommunikasjon

RxD (mottaker) pin brukes til seriell kommunikasjon

VCC leverer strøm til modulen. Du kan koble den direkte til 5V -pinnen på Arduino

Trinn 4: Arduino Mega

Arduino er en elektronisk plattform med åpen kildekode basert på brukervennlig maskinvare og programvare. Arduino -kort kan lese innganger - lys på en sensor, en finger på en knapp eller en Twitter -melding - og gjøre den til en utgang - aktivere en motor, slå på en LED, publisere noe på nettet. Du kan fortelle styret ditt hva du skal gjøre ved å sende et sett med instruksjoner til mikrokontrolleren på kortet. For å gjøre det bruker du programmeringsspråket Arduino (basert på ledninger) og Arduino -programvaren (IDE), basert på prosessering.

Arduino Mega

Arduino Mega 2560 er et mikrokontrollerkort basert på Atmega2560.

  • Det er 54 digitale I/O -pinner og 16 analoge pinner på kortet som gjør denne enheten unik og skiller seg ut fra andre. Av 54 digitale I/O brukes 15 til PWM (pulsbreddemodulering).
  • En krystalloscillator med 16 MHz frekvens er lagt til på brettet.
  • Brettet leveres med USB -kabelport som brukes til å koble til og overføre kode fra datamaskin til bord.
  • DC -kontakt er koblet til kortet som brukes til å drive kortet.
  • Brettet leveres med to spenningsregulatorer, dvs. 5V og 3.3V, som gir fleksibilitet til å regulere spenningen i henhold til kravene.
  • Det er en tilbakestillingsknapp og 4 maskinvare seriell port kalt USART som produserer en maksimal hastighet for å konfigurere kommunikasjon.
  • Det er tre måter å drive styret på. Du kan enten bruke en USB -kabel til å drive kortet og overføre koden til kortet, eller du kan slå den på ved hjelp av Vin of the board eller gjennom strømkontakt eller batter.

Spesifikasjoner

Pinout

Pin Beskrivelse

  • 5V & 3.3V ==> Denne pinnen brukes til å gi utgangsregulert spenning rundt 5V. Denne regulerte strømforsyningen driver kontrolleren og andre komponenter på kortet. Det kan fås fra Vin på kortet eller USB -kabelen eller en annen regulert 5V spenningsforsyning. Mens en annen spenningsregulering er gitt av 3.3V pin. Maksimal effekt den kan trekke er 50mA.
  • GND ==> Det er 5 bakkepinner tilgjengelig på brettet, noe som gjør det nyttig når det kreves mer enn en jordpinne for prosjektet.
  • Reset ==> Denne pinnen brukes til å tilbakestille brettet. Hvis du setter denne pinnen til LOW, vil kortet nullstilles.
  • Vin ==> Det er inngangsspenningen som leveres til kortet som varierer fra 7V til 20V. Spenningen fra strømkontakten kan nås via denne pinnen. Utgangsspenningen gjennom denne pinnen til kortet vil imidlertid automatisk bli satt til 5V.
  • Seriell kommunikasjon ==> RXD og TXD er de serielle pinnene som brukes til å overføre og motta serielle data, dvs. Rx representerer overføring av data mens Tx brukes til å motta data. Det er fire kombinasjoner av disse serielle pinnene som brukes der Serail 0 inneholder RX (0) og TX (1), Serial 1 inneholder TX (18) og RX (19), Serial 2 inneholder TX (16) og RX (17), og serie 3 inneholder TX (14) og RX (15).
  • Eksterne avbrudd ==> Seks pinner brukes til å lage eksterne avbrudd, dvs. avbrudd 0 (0), avbrudd 1 (3), avbryt 2 (21), avbryt 3 (20), avbryt 4 (19), avbryt 5 (18). Disse pinnene produserer avbrudd på en rekke måter, dvs. å gi LAV verdi, stigende eller fallende kant eller endring av verdi til avbryterpinnene.
  • LED ==> Dette kortet leveres med innebygd LED koblet til digital pin 13. HØY verdi på denne pin vil slå på LED og LOW verdi vil slå den av.
  • AREF ==> AREF står for Analog Reference Voltage som er en referansespenning for analoge innganger.
  • Analoge pinner ==> Det er 16 analoge pinner på kortet som er merket som A0 til A15. Det er viktig å merke seg at alle disse analoge pinnene kan brukes som digitale I/O -pinner. Hver analog pin har 10-biters oppløsning. Disse pinnene kan måle fra bakken til 5V. Den øvre verdien kan imidlertid endres med funksjonen AREF og analogReference ().
  • I2C ==> To pinner 20 og 21 støtter I2C -kommunikasjon der 20 representerer SDA (seriell datalinje hovedsakelig brukt til å lagre dataene) og 21 representerer SCL (seriell klokke linje hovedsakelig brukt for å levere datasynkronisering mellom enhetene)
  • SPI Communication ==> SPI står for Serial Peripheral Interface som brukes for overføring av data mellom kontrolleren og andre eksterne enheter. Fire pinner, dvs. 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) brukes til SPI -kommunikasjon.

Trinn 5: Arduino IDE

Her antar jeg at du allerede har installert Arduino IDE.

1. Last ned det nødvendige biblioteket nedenfor

TinyGPS lib

2. Etter nedlasting. Pakk den ut og flytt den til mappe C: / Users / … / Documents / Arduino / biblioteker sørg for at det ikke er (-).

3. Åpne Arduino IDE og kopier koden fra programdelen.

4. Velg deretter brett for det, gå til Verktøy ==> Tavler ==> velg brett her bruker vi Arduino Mega 2560

5. Etter å ha valgt brett, velg port for det, gå til Verktøy ==> Porter

6. Etter å ha valgt tavle og port klikker du på Last opp.

7. Når koden er lastet opp, åpner du den serielle terminalen for å se utgangen.

Trinn 6: Tilkoblinger

Arduino MEGA ==> NEO-6M GPS

  • 3.3V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx (19) ==> Tx

Du kan også bruke Serial2 eller Serial3 i stedet for Serial1

Anbefalt: