Indholdsfortegnelse:

Interface Arduino Mega Med GPS-modul (Neo-6M): 8 trin
Interface Arduino Mega Med GPS-modul (Neo-6M): 8 trin

Video: Interface Arduino Mega Med GPS-modul (Neo-6M): 8 trin

Video: Interface Arduino Mega Med GPS-modul (Neo-6M): 8 trin
Video: M8N GPS Module with Compass Powered by Ublox 2024, November
Anonim
Interface Arduino Mega Med GPS-modul (Neo-6M)
Interface Arduino Mega Med GPS-modul (Neo-6M)

I dette projekt har jeg vist, hvordan man kobler et GPS-modul (Neo-6M) til Arduino Mega. TinyGPS -bibliotek bruges til at vise data for længdegrad og breddegrad, og TinyGPS ++ bruges til at vise breddegrad, længdegrad, højde, hastighed og antal satellitter på den serielle skærm.

Trin 1: Nødvendige komponenter

Hardware

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

Software

Arduino IDE

De samlede omkostninger ved projektet er $ 60

Trin 2: Information om GPS

Hvad er GPS

Global Positioning System (GPS) er et satellitbaseret navigationssystem, der består af mindst 24 satellitter. GPS fungerer under alle vejrforhold, hvor som helst i verden, 24 timer i døgnet, uden abonnementsgebyrer eller opsætningsgebyrer.

Sådan fungerer GPS

GPS -satellitter cirkler jorden to gange om dagen i en præcis bane. Hver satellit sender et unikt signal og orbitale parametre, der gør det muligt for GPS -enheder at afkode og beregne satellitens præcise placering. GPS -modtagere bruger disse oplysninger og trilateration til at beregne en brugers nøjagtige placering. Grundlæggende måler GPS -modtageren afstanden til hver satellit med den tid, det tager at modtage et transmitteret signal. Med afstandsmålinger fra et par flere satellitter kan modtageren bestemme en brugers position og vise den.

For at beregne din 2-D-position (breddegrad og længdegrad) og sporbevægelse skal en GPS-modtager være låst til signalet fra mindst 3 satellitter. Med 4 eller flere satellitter i udsigt kan modtageren bestemme din 3D-position (breddegrad, længdegrad og højde). Generelt vil en GPS -modtager spore 8 eller flere satellitter, men det afhænger af tidspunktet på dagen og hvor du er på jorden. Når din position er blevet bestemt, kan GPS -enheden beregne andre oplysninger, f.eks

  • Hastighed
  • Leje
  • Spore
  • Trip dist
  • Afstand til destination

Hvad er signal

GPS-satellitter sender mindst 2 laveffektradiosignaler. Signalerne bevæger sig efter sigtelinjen, hvilket betyder, at de vil passere gennem skyer, glas og plast, men vil ikke gå gennem de fleste faste genstande, såsom bygninger og bjerge. Moderne modtagere er imidlertid mere følsomme og kan normalt spore gennem huse. Et GPS -signal indeholder 3 forskellige typer information

Pseudos tilfældig kode

Det er en I. D. kode, der identificerer, hvilken satellit der sender information. Du kan se, hvilke satellitter du får signaler fra, på din enheds satellitside.

Ephemeris data

Ephemeris -data er nødvendige for at bestemme en satellits position og giver vigtige oplysninger om en satellits helbred, aktuelle dato og klokkeslæt.

Almanak data

Almanakdata fortæller GPS -modtageren, hvor hver GPS -satellit skal være når som helst i løbet af dagen og viser orbitale oplysninger for den satellit og hver anden satellit i systemet.

Trin 3: Neo-6M GPS-modul

NEO-6M GPS-modulet er vist i nedenstående figur. Den leveres med en ekstern antenne og leveres ikke med headerstifter. Så du skal lodde det.

Oversigt over NEO-6M GPS-modul

NEO-6M GPS-chip

Hjertet i modulet er en NEO-6M GPS-chip fra u-blox. Den kan spore op til 22 satellitter på 50 kanaler og opnår branchens højeste følsomhedsniveau, dvs. -161 dB tracking, mens den kun bruger 45 mA forsyningsstrøm. U-blox 6-positioneringsmotoren kan også prale af en Time-To-First-Fix (TTFF) på under 1 sekund. En af de bedste funktioner, chippen giver, er Power Save Mode (PSM). Det muliggør en reduktion i systemets strømforbrug ved selektivt at tænde og slukke dele af modtageren. Dette reducerer modulets strømforbrug dramatisk til kun 11mA, hvilket gør det velegnet til strømfølsomme applikationer som GPS -armbåndsur. De nødvendige datastifter af NEO-6M GPS-chip er brudt ud til en 0,1 ″ pitchhoveder. Dette inkluderer pins, der kræves til kommunikation med en mikrokontroller via UART.

Bemærk:- Modulet understøtter baudhastighed fra 4800bps til 230400bps med standard baud på 9600.

Position Fix LED -indikator

Der er en LED på NEO-6M GPS-modulet, der angiver status for Position Fix. Det blinker med forskellige hastigheder afhængigt af hvilken tilstand det er i

  1. Intet blinkende ==> betyder, at det søger efter satellitter
  2. Blink hver 1s - betyder, at Position Fix er fundet

3.3V LDO -regulator

Driftsspændingen for NEO-6M-chippen er fra 2,7 til 3,6V. Men modulet leveres med MIC5205 ultra-low dropout 3V3 regulator fra MICREL. Logikstifterne er også 5-volt-tolerante, så vi kan nemt tilslutte det til en Arduino eller en hvilken som helst 5V logisk mikrokontroller uden at bruge nogen logisk niveauomformer.

Batteri & EEPROM

Modulet er udstyret med en HK24C32 to -tråds seriel EEPROM. Det er 4KB i størrelse og forbundet til NEO-6M-chippen via I2C. Modulet indeholder også et genopladeligt knapbatteri, der fungerer som en super-kondensator.

En EEPROM sammen med batteri hjælper med at bevare den batteri -understøttede RAM (BBR). BBR indeholder urdata, seneste positionsdata (GNSS -bane -data) og modulkonfiguration. Men det er ikke beregnet til permanent datalagring.

Da batteriet bevarer uret og sidste position, reduceres tiden til første fix (TTFF) betydeligt til 1s. Dette tillader meget hurtigere positionslåse.

Uden batteriet koldstartes GPS'en altid, så den første GPS-lås tager mere tid. Batteriet oplades automatisk, når der tilføres strøm, og opbevarer data i op til to uger uden strøm.

Pinout

GND er Ground Pin og skal tilsluttes GND pin på Arduino

TxD (sender) pin bruges til seriel kommunikation

RxD (modtager) pin bruges til seriel kommunikation

VCC leverer strøm til modulet. Du kan tilslutte den direkte til 5V -stiften på Arduino

Trin 4: Arduino Mega

Arduino er en open-source elektronikplatform baseret på brugervenlig hardware og software. Arduino -tavler kan læse input - lys på en sensor, en finger på en knap eller en Twitter -besked - og omdanne den til en output - aktivere en motor, tænde en LED, publicere noget online. Du kan fortælle dit board, hvad de skal gøre ved at sende et sæt instruktioner til mikrokontrolleren på kortet. For at gøre dette bruger du programmeringssproget Arduino (baseret på ledninger) og Arduino -softwaren (IDE), der er baseret på behandling.

Arduino Mega

Arduino Mega 2560 er et Microcontroller -kort baseret på Atmega2560.

  • Der er 54 digitale I/O -ben og 16 analoge stifter på kortet, der gør denne enhed unik og skiller sig ud fra andre. Ud af 54 digitale I/O bruges 15 til PWM (pulsbreddemodulation).
  • En krystaloscillator med 16 MHz frekvens tilføjes på tavlen.
  • Kortet leveres med USB -kabelport, der bruges til at tilslutte og overføre kode fra computeren til kortet.
  • DC -stik er forbundet med det kort, der bruges til at drive kortet.
  • Brættet leveres med to spændingsregulatorer, dvs. 5V og 3.3V, som giver fleksibiliteten til at regulere spændingen i henhold til kravene.
  • Der er en nulstillingsknap og 4 hardware seriel port kaldet USART, der producerer en maksimal hastighed til opsætning af kommunikation.
  • Der er tre måder at drive tavlen på. Du kan enten bruge et USB -kabel til at drive kortet og overføre kode til kortet, eller du kan tænde det ved hjælp af Vin på kortet eller via strømstik eller batter.

specifikationer

Pinout

Pin Beskrivelse

  • 5V & 3.3V ==> Denne pin bruges til at levere output reguleret spænding omkring 5V. Denne regulerede strømforsyning driver controlleren og andre komponenter på kortet op. Det kan fås fra Vin på kortet eller USB -kablet eller en anden reguleret 5V spændingsforsyning. Mens en anden spændingsregulering leveres af 3,3V pin. Den maksimale effekt, den kan trække, er 50mA.
  • GND ==> Der er 5 jordstift til rådighed på brættet, hvilket gør det nyttigt, når der kræves mere end en jordstift til projektet.
  • Reset ==> Denne pin bruges til at nulstille kortet. Indstilling af denne pin til LOW vil nulstille kortet.
  • Vin ==> Det er indgangsspændingen, der leveres til kortet, som spænder fra 7V til 20V. Spændingen fra strømstikket kan tilgås via denne pin. Udgangsspændingen gennem denne pin til kortet indstilles dog automatisk til 5V.
  • Seriel kommunikation ==> RXD og TXD er de serielle ben, der bruges til at transmittere og modtage serielle data, dvs. Rx repræsenterer transmission af data, mens Tx bruges til at modtage data. Der er fire kombinationer af disse serielle ben bruges, hvor Serail 0 indeholder RX (0) og TX (1), Serial 1 indeholder TX (18) og RX (19), Serial 2 indeholder TX (16) og RX (17), og Serial 3 indeholder TX (14) og RX (15).
  • Eksterne afbrydelser ==> Seks ben bruges til at oprette eksterne afbrydelser, dvs. afbrydelse 0 (0), afbrydelse 1 (3), afbrydelse 2 (21), afbrydelse 3 (20), afbrydelse 4 (19), afbrydelse 5 (18). Disse stifter producerer afbrydelser på en række måder, dvs. at tilvejebringe LAV værdi, stigende eller faldende kant eller ændre værdi til afbrydelsesstifterne.
  • LED ==> Dette kort leveres med indbygget LED tilsluttet digital pin 13. HØJ værdi ved denne pin vil tænde LED'en og LOW værdi vil slukke den.
  • AREF ==> AREF står for Analog Reference Voltage, som er en referencespænding for analoge indgange.
  • Analoge stifter ==> Der er 16 analoge ben på kortet, der er mærket som A0 til A15. Det er vigtigt at bemærke, at alle disse analoge ben kan bruges som digitale I/O -ben. Hver analog pin leveres med 10-bit opløsning. Disse ben kan måle fra jorden til 5V. Den øvre værdi kan dog ændres ved hjælp af funktionen AREF og analogReference ().
  • I2C ==> To ben 20 og 21 understøtter I2C -kommunikation, hvor 20 repræsenterer SDA (seriel datalinje, der hovedsageligt bruges til lagring af dataene) og 21 repræsenterer SCL (seriel urlinje, der hovedsageligt bruges til at levere datasynkronisering mellem enhederne)
  • SPI Communication ==> SPI står for Serial Peripheral Interface, der bruges til overførsel af data mellem controlleren og andre eksterne enheder. Fire ben, dvs. 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) bruges til SPI -kommunikation.

Trin 5: Arduino IDE

Her går jeg ud fra, at du allerede har installeret Arduino IDE.

1. Download det påkrævede bibliotek nedenfor

TinyGPS lib

2. Efter download. Udpak den, og flyt den til mappe C: / Users / … / Documents / Arduino / libraries sørg for, at der ikke er (-).

3. Åbn Arduino IDE og kopier koden fra programsektionen.

4. Vælg derefter tavle til det, gå til Værktøjer ==> Tavler ==> vælg tavle her bruger vi Arduino Mega 2560

5. Efter valg af tavle skal du vælge port til det, gå til Værktøjer ==> Porte

6. Efter valg af tavle og port klik på upload.

7. Når koden er uploadet, åbnes den serielle terminal for at se output.

Trin 6: Forbindelser

Arduino MEGA ==> NEO-6M GPS

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

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

Anbefalede: