INHOUDSOPGAWE:

Interface Arduino Mega Met GPS-module (Neo-6M): 8 stappe
Interface Arduino Mega Met GPS-module (Neo-6M): 8 stappe

Video: Interface Arduino Mega Met GPS-module (Neo-6M): 8 stappe

Video: Interface Arduino Mega Met GPS-module (Neo-6M): 8 stappe
Video: GPS Module Tutorial | GPS NEO 6M/7M/8M | Arduino 2024, November
Anonim
Interface Arduino Mega Met GPS-module (Neo-6M)
Interface Arduino Mega Met GPS-module (Neo-6M)

In hierdie projek het ek getoon hoe u 'n GPS-module (Neo-6M) met Arduino Mega kan koppel. TinyGPS -biblioteek word gebruik om die data van lengtegraad en breedtegraad te vertoon, en TinyGPS ++ word gebruik om breedtegraad, lengte, hoogte, snelheid en aantal satelliete op die seriële monitor te vertoon.

Stap 1: Komponente benodig

Hardeware

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

Sagteware

Arduino IDE

Die totale koste van die projek is $ 60

Stap 2: Inligting oor GPS

Wat is GPS

Die Global Positioning System (GPS) is 'n satellietgebaseerde navigasiestelsel wat uit ten minste 24 satelliete bestaan. GPS werk 24 uur per dag onder alle weersomstandighede, oral in die wêreld, sonder inskrywingsfooie of opstellingskoste.

Hoe GPS werk

GPS -satelliete sirkel twee keer per dag om die aarde in 'n presiese baan. Elke satelliet stuur 'n unieke sein en baanparameters uit waarmee GPS -toestelle die presiese ligging van die satelliet kan dekodeer en bereken. GPS -ontvangers gebruik hierdie inligting en trilaterasie om die presiese ligging van 'n gebruiker te bereken. In wese meet die GPS -ontvanger die afstand na elke satelliet aan die tyd wat dit neem om 'n gestuurde sein te ontvang. Met afstandmetings van nog 'n paar satelliete kan die ontvanger 'n gebruiker se posisie bepaal en dit vertoon.

Om u 2-D-posisie (breedtegraad en lengtegraad) en spoorbeweging te bereken, moet 'n GPS-ontvanger op die sein van ten minste 3 satelliete gesluit word. Met 4 of meer satelliete in sig, kan die ontvanger u 3D-posisie (breedtegraad, lengte en hoogte) bepaal. Oor die algemeen sal 'n GPS -ontvanger 8 of meer satelliete opspoor, maar dit hang af van die tyd van die dag en waar u op die aarde is. Sodra u posisie bepaal is, kan die GPS -eenheid ander inligting bereken, soos

  • Spoed
  • Peiling
  • Snit
  • Reis dist
  • Afstand tot bestemming

Wat is sein

GPS-satelliete stuur ten minste 2 lae-krag radioseine uit. Die seine beweeg volgens siglyn, wat beteken dat dit deur wolke, glas en plastiek gaan, maar nie deur die meeste vaste voorwerpe, soos geboue en berge nie. Moderne ontvangers is egter meer sensitief en kan gewoonlik deur huise spoor. 'N GPS -sein bevat 3 verskillende tipes inligting

Pseudowillekeurige kode

Dit is 'n I. D. kode wat identifiseer watter satelliet inligting oordra. Op die satellietbladsy van u toestel kan u sien van watter satelliete u seine kry.

Ephemeris data

Ephemeris -data is nodig om die posisie van 'n satelliet te bepaal en gee belangrike inligting oor die gesondheid van 'n satelliet, huidige datum en tyd.

Almanak data

Almanak -data vertel die GPS -ontvanger waar elke GPS -satelliet te eniger tyd gedurende die dag moet wees, en toon die baaninligting vir die satelliet en elke ander satelliet in die stelsel.

Stap 3: Neo-6M GPS-module

Die NEO-6M GPS-module word in die onderstaande figuur getoon. Dit het 'n eksterne antenna en geen kopstukke nie. U moet dit dus soldeer.

Oorsig van die NEO-6M GPS-module

NEO-6M GPS-chip

Die hart van die module is 'n NEO-6M GPS-chip van u-blox. Dit kan tot 22 satelliete op 50 kanale opspoor en bereik die hoogste sensitiwiteitsvlak in die bedryf, naamlik -161 dB -dop, terwyl dit slegs 45mA toevoerstroom verbruik. Die u-blox 6-posisioneringsenjin spog ook met 'n Time-To-First-Fix (TTFF) van minder as 1 sekonde. Een van die beste funksies wat die chip bied, is die kragbesparingsmodus (PSM). Dit laat 'n vermindering in die kragverbruik van die stelsel toe deur dele van die ontvanger selektief AAN en UIT te skakel. Dit verminder die kragverbruik van die module dramaties tot slegs 11mA, wat dit geskik maak vir kraggevoelige toepassings soos GPS -polshorlosie. Die nodige datapennetjies van die NEO-6M GPS-chip word uitgebreek na 'n 0,1 ″ toonhoogte-opskrif. Dit bevat penne wat benodig word vir kommunikasie met 'n mikrobeheerder oor UART.

Let wel:- Die module ondersteun baud rate van 4800bps tot 230400bps met 'n standaard baud van 9600.

Posisie Fix LED -aanwyser

Daar is 'n LED op die NEO-6M GPS-module wat die status van Position Fix aandui. Dit sal met verskillende snelhede knip, afhangende van in watter toestand dit is

  1. Geen knipper ==> beteken dat dit op soek is na satelliete
  2. Knip elke 1e - dit beteken dat posisieoplossing gevind word

3.3V LDO -reguleerder

Die werkspanning van die NEO-6M-chip is van 2,7 tot 3,6V. Die module kom egter met die MIC5205 ultra-lae uitval 3V3-reguleerder van MICREL. Die logiese penne is ook verdraagsaam teen 5 volt, sodat ons dit maklik kan koppel aan 'n Arduino of 'n 5V-logika-mikrokontroleerder sonder om 'n logiese vlakomskakelaar te gebruik.

Battery en EEPROM

Die module is toegerus met 'n HK24C32 tweedraads seriële EEPROM. Dit is 4KB groot en is via I2C. gekoppel aan die NEO-6M-chip. Die module bevat ook 'n herlaaibare knoppiebattery wat as 'n superkondensator dien.

'N EEPROM tesame met die battery help om die RAM (BBR) met batterye te behou. Die BBR bevat klokdata, nuutste posisiesdata (GNSS -baandata) en module -opset. Maar dit is nie bedoel vir permanente stoor van data nie.

Aangesien die battery die klok en die laaste posisie behou, verminder die tyd tot die eerste herstel (TTFF) aansienlik tot 1s. Dit laat baie vinniger posisieslotte toe.

Sonder die battery begin die GPS altyd koud, sodat die aanvanklike GPS-slot langer neem. Die battery word outomaties gelaai wanneer krag aangeskakel word en hou data vir tot twee weke sonder krag.

Pinout

GND is die grondpen en moet aan die GND -pen op die Arduino gekoppel word

TxD (sender) -pen word gebruik vir seriële kommunikasie

RxD (ontvanger) pen word gebruik vir seriële kommunikasie

VCC verskaf krag vir die module. U kan dit direk aan die 5V -pen op die Arduino koppel

Stap 4: Arduino Mega

Arduino is 'n open source elektroniese platform wat gebaseer is op hardeware en sagteware wat maklik is om te gebruik. Arduino -borde kan insette lees - lig op 'n sensor, 'n vinger op 'n knoppie of 'n Twitter -boodskap - en dit in 'n uitset verander - 'n motor aktiveer, 'n LED aanskakel, iets aanlyn publiseer. U kan u bord vertel wat u moet doen deur 'n stel instruksies aan die mikrobeheerder op die bord te stuur. Om dit te kan doen, gebruik u die Arduino -programmeertaal (gebaseer op bedrading) en die Arduino -sagteware (IDE), gebaseer op verwerking.

Arduino Mega

Arduino Mega 2560 is 'n mikrokontrollerbord gebaseer op Atmega2560.

  • Daar is 54 digitale I/O -penne en 16 analoog penne op die bord, wat hierdie toestel uniek maak en van ander onderskei. Uit 54 digitale I/O word 15 gebruik vir PWM (polswydte modulasie).
  • 'N Kristal ossillator met 'n frekwensie van 16 MHz word op die bord gevoeg.
  • Die bord het 'n USB -poort wat gebruik word om die kode van 'n rekenaar na 'n bord te koppel en oor te dra.
  • DC -aansluiting word gekoppel aan die bord wat gebruik word om die bord aan te dryf.
  • Die bord het twee spanningsreguleerders, naamlik 5V en 3.3V, wat die buigsaamheid bied om die spanning volgens vereistes te reguleer.
  • Daar is 'n reset -knoppie en 4 hardeware -seriële poort genaamd USART, wat 'n maksimum snelheid vir die opstel van kommunikasie lewer.
  • Daar is drie maniere om die bord aan te dryf. U kan 'n USB -kabel gebruik om die bord aan te dryf en die kode na die bord oor te dra, of u kan dit aanskakel met Vin van die bord of deur 'n kragaansluiting of beslag.

Spesifikasies

Pinout

Speldbeskrywing

  • 5V & 3.3V ==> Hierdie pen word gebruik om die uitset gereguleerde spanning rondom 5V te verskaf. Hierdie gereguleerde kragtoevoer dryf die beheerder en ander komponente op die bord aan. Dit kan verkry word vanaf Vin van die bord of USB -kabel of 'n ander gereguleerde 5V -spanningsbron. Terwyl 'n ander spanningsregeling deur 'n 3.3V -pen voorsien word. Die maksimum krag wat dit kan trek, is 50mA.
  • GND ==> Daar is 5 grondpenne op die bord beskikbaar, wat dit handig maak as meer as een grondpen vir die projek benodig word.
  • Reset ==> Hierdie speld word gebruik om die bord terug te stel. As u hierdie pen op LOW stel, sal die bord teruggestel word.
  • Vin ==> Dit is die ingangsspanning wat aan die bord verskaf word, wat wissel van 7V tot 20V. Die spanning wat deur die kragaansluiting verskaf word, is verkrygbaar via hierdie pen. Die uitgangsspanning deur hierdie pen na die bord word egter outomaties ingestel op 5V.
  • Seriële kommunikasie ==> RXD en TXD is die seriële penne wat gebruik word om seriële data te stuur en te ontvang, dws Rx verteenwoordig die oordrag van data terwyl Tx gebruik word om data te ontvang. Daar is vier kombinasies van hierdie seriële penne wat gebruik word waar Serail 0 RX (0) en TX (1) bevat, Serial 1 bevat TX (18) en RX (19), Serial 2 bevat TX (16) en RX (17), en reeks 3 bevat TX (14) en RX (15).
  • Eksterne onderbrekings ==> Ses penne word gebruik vir die skep van eksterne onderbrekings, d.w.s. onderbreking 0 (0), onderbreking 1 (3), onderbreking 2 (21), onderbreking 3 (20), onderbreking 4 (19), onderbreking 5 (18). Hierdie penne produseer onderbrekings op 'n aantal maniere, dws die verskaffing van 'n LAE waarde, 'n stygende of dalende rand of die verandering van waarde aan die onderbrekingspenne.
  • LED ==> Hierdie bord het 'n ingeboude LED wat gekoppel is aan 'n digitale pen 13. HOOG waarde by hierdie pen sal die LED aanskakel en 'n LAE waarde sal dit afskakel.
  • AREF ==> AREF staan vir Analog Reference Voltage wat 'n verwysingspanning is vir analoog insette.
  • Analoog penne ==> Daar is 16 analoog penne op die bord geïntegreer met die etiket A0 tot A15. Dit is belangrik om daarop te let dat al hierdie analoog penne as digitale I/O -penne gebruik kan word. Elke analoog pen het 'n resolusie van 10 bis. Hierdie penne kan van grond tot 5V meet. Die boonste waarde kan egter verander word met die funksie AREF en analogReference ().
  • I2C ==> Twee penne 20 en 21 ondersteun I2C -kommunikasie waar 20 SDA voorstel (Serial Data Line word hoofsaaklik gebruik vir die bewaring van die data) en 21 verteenwoordig SCL (Serial Clock Line word hoofsaaklik gebruik vir die verskaffing van datasinkronisering tussen die toestelle)
  • SPI Communication ==> SPI staan vir Serial Peripheral Interface wat gebruik word vir die oordrag van data tussen die kontroleerder en ander randapparatuurkomponente. Vier penne, d.w.s. 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) word gebruik vir SPI -kommunikasie.

Stap 5: Arduino IDE

Hier neem ek aan dat u reeds Arduino IDE geïnstalleer het.

1. Laai die vereiste biblioteek hieronder af

TinyGPS lib

2. Nadat u dit afgelaai het. Pak dit uit en skuif dit na die vouer C: / Users / … / Documents / Arduino / biblioteke, maak seker dat daar geen (-) is nie.

3. Maak die Arduino IDE oop en kopieer die kode uit die programafdeling.

4. Kies dan die bord daarvoor, gaan na Tools ==> Boards ==> kies 'n bord hier gebruik ons Arduino Mega 2560

5. Nadat u die bord gekies het, kies die poort daarvoor, na Tools ==> Ports

6. Nadat u die bord en poort gekies het, klik op oplaai.

7. Sodra die kode opgelaai is, maak die seriële terminaal oop om die uitset te sien.

Stap 6: Verbindings

Arduino MEGA ==> NEO-6M GPS

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

U kan ook Serial2 of Serial3 gebruik in plaas van Serial1

Aanbeveel: