Innehållsförteckning:

Gränssnitt Arduino Mega med GPS-modul (Neo-6M): 8 steg
Gränssnitt Arduino Mega med GPS-modul (Neo-6M): 8 steg

Video: Gränssnitt Arduino Mega med GPS-modul (Neo-6M): 8 steg

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

I detta projekt har jag visat hur man kopplar en GPS-modul (Neo-6M) till Arduino Mega. TinyGPS -biblioteket används för att visa data för longitud och latitud och TinyGPS ++ används för att visa latitud, longitud, höjd, hastighet och antal satelliter på seriemonitorn.

Steg 1: Komponenter som behövs

Hårdvara

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

programvara

Arduino IDE

Den totala kostnaden för projektet är $ 60

Steg 2: Information om GPS

Vad är GPS

Global Positioning System (GPS) är ett satellitbaserat navigationssystem som består av minst 24 satelliter. GPS fungerar i alla väderförhållanden, var som helst i världen, 24 timmar om dygnet, utan abonnemangsavgifter eller installationsavgifter.

Hur GPS fungerar

GPS -satelliter cirkulerar jorden två gånger om dagen i en exakt bana. Varje satellit sänder en unik signal och orbitalparametrar som gör att GPS -enheter kan avkoda och beräkna satellitens exakta plats. GPS -mottagare använder denna information och trilateration för att beräkna en användares exakta plats. I huvudsak mäter GPS -mottagaren avståndet till varje satellit med den tid det tar att ta emot en överförd signal. Med avståndsmätningar från några fler satelliter kan mottagaren bestämma en användares position och visa den.

För att beräkna din 2-D-position (latitud och longitud) och spårrörelse måste en GPS-mottagare vara låst på signalen från minst 3 satelliter. Med fyra eller fler satelliter i sikte kan mottagaren bestämma din 3D-position (latitud, longitud och höjd). I allmänhet kommer en GPS -mottagare att spåra 8 eller fler satelliter, men det beror på tiden på dagen och var du befinner dig på jorden. När din position har fastställts kan GPS -enheten beräkna annan information, t.ex.

  • Fart
  • Lager
  • Spår
  • Resa dist
  • Avstånd till destination

Vad är signal

GPS-satelliter sänder minst 2 lågeffektradiosignaler. Signalerna rör sig genom siktlinjen, vilket innebär att de kommer att passera genom moln, glas och plast men kommer inte att gå igenom de flesta fasta föremål, såsom byggnader och berg. Moderna mottagare är dock mer känsliga och kan vanligtvis spåra genom hus. En GPS -signal innehåller tre olika typer av information

Pseudoslumpkod

Det är en I. D. kod som identifierar vilken satellit som överför information. Du kan se vilka satelliter du får signaler från på din enhets satellitsida.

Ephemeris -data

Ephemeris -data behövs för att bestämma en satellits position och ger viktig information om en satellits hälsa, aktuellt datum och tid.

Almanackdata

Almanakdata berättar för GPS -mottagaren var varje GPS -satellit ska vara när som helst under dagen och visar orbitalinformationen för den satelliten och alla andra satelliter i systemet.

Steg 3: Neo-6M GPS-modul

NEO-6M GPS-modulen visas i figuren nedan. Den levereras med en extern antenn och kommer inte med rubrikstift. Så du måste lödda den.

Översikt över NEO-6M GPS-modul

NEO-6M GPS-chip

Hjärtat i modulen är ett NEO-6M GPS-chip från u-blox. Den kan spåra upp till 22 satelliter på 50 kanaler och uppnår branschens högsta känslighetsnivå, dvs. -161 dB spårning, samtidigt som den förbrukar endast 45mA ström. U-blox 6-positioneringsmotorn har också en Time-To-First-Fix (TTFF) på under 1 sekund. En av de bästa funktionerna som chipet ger är Power Save Mode (PSM). Det möjliggör en minskning av systemets strömförbrukning genom att selektivt slå på och stänga av mottagarens delar. Detta minskar kraftigt förbrukningen av modulen till bara 11mA vilket gör den lämplig för strömkänsliga applikationer som GPS -armbandsur. De nödvändiga datapinnarna på NEO-6M GPS-chip bryts ut till en 0,1 ″ tonhöjd. Detta inkluderar stift som krävs för kommunikation med en mikrokontroller via UART.

Obs:- Modulen stöder baudhastighet från 4800bps till 230400bps med standard baud på 9600.

Position Fix LED -indikator

Det finns en lysdiod på NEO-6M GPS-modulen som indikerar statusen för Position Fix. Det kommer att blinka i olika hastigheter beroende på i vilket tillstånd det är

  1. No Blinking ==> betyder att den söker efter satelliter
  2. Blinka var 1: e - betyder att Position Fix har hittats

3.3V LDO -regulator

Driftspänningen för NEO-6M-chipet är från 2,7 till 3,6V. Men modulen levereras med MIC5205 ultra-low dropout 3V3 regulator från MICREL. Logikstiften är också 5-volts toleranta, så vi kan enkelt ansluta den till en Arduino eller vilken 5V logisk mikrokontroller som helst utan att använda någon logisk nivåomvandlare.

Batteri & EEPROM

Modulen är utrustad med en seriell EEPROM med två trådar HK24C32. Den är 4KB i storlek och ansluten till NEO-6M-chipet via I2C. Modulen innehåller också ett uppladdningsbart knappbatteri som fungerar som en superkondensator.

En EEPROM tillsammans med batteriet hjälper till att behålla det batteri -stödda RAM -minnet (BBR). BBR innehåller klockdata, senaste positionsdata (GNSS -omloppsdata) och modulkonfiguration. Men det är inte avsett för permanent datalagring.

Eftersom batteriet behåller klockan och sista positionen, reduceras tiden till första fix (TTFF) betydligt till 1 sekunder. Detta möjliggör mycket snabbare positionslås.

Utan batteriet kallstartar alltid GPS så det första GPS-låset tar mer tid. Batteriet laddas automatiskt vid strömförsörjning och behåller data i upp till två veckor utan ström.

Pinout

GND är Ground Pin och måste anslutas till GND pin på Arduino

TxD -stift (sändare) används för seriell kommunikation

RxD -stift (mottagare) används för seriell kommunikation

VCC levererar ström till modulen. Du kan ansluta den direkt till 5V -stiftet på Arduino

Steg 4: Arduino Mega

Arduino är en elektronisk plattform med öppen källkod baserad på lättanvänd maskinvara och programvara. Arduino -kort kan läsa ingångar - ljus på en sensor, ett finger på en knapp eller ett Twitter -meddelande - och göra det till en utgång - aktivera en motor, slå på en LED, publicera något online. Du kan berätta för ditt kort vad du ska göra genom att skicka en uppsättning instruktioner till mikrokontrollern på kortet. För att göra det använder du programmeringsspråket Arduino (baserat på ledningar) och Arduino -programvaran (IDE), baserat på bearbetning.

Arduino Mega

Arduino Mega 2560 är ett Microcontroller -kort baserat på Atmega2560.

  • Det finns 54 digitala I/O -stift och 16 analoga stift på kortet som gör denna enhet unik och sticker ut från andra. Av 54 digitala I/O används 15 för PWM (pulsbreddsmodulering).
  • En kristalloscillator med 16 MHz frekvens läggs till på kortet.
  • Kortet levereras med USB -kabelport som används för att ansluta och överföra kod från datorn till kortet.
  • DC -uttaget är kopplat till kortet som används för att driva kortet.
  • Kortet levereras med två spänningsregulatorer, dvs 5V och 3.3V, vilket ger flexibilitet att reglera spänningen enligt kraven.
  • Det finns en återställningsknapp och 4 seriell port för hårdvara som heter USART som ger en maximal hastighet för att konfigurera kommunikation.
  • Det finns tre sätt att driva styrelsen. Du kan antingen använda en USB -kabel för att driva kortet och överföra koden till kortet eller så kan du slå på den med Vin på kortet eller genom strömuttag eller batter.

Specifikationer

Pinout

Pin Beskrivning

  • 5V & 3.3V ==> Denna stift används för att tillhandahålla utgående reglerad spänning runt 5V. Denna reglerade strömförsörjning driver upp regulatorn och andra komponenter på kortet. Det kan erhållas från Vin på kortet eller USB -kabeln eller annan reglerad 5V spänningsmatning. Medan en annan spänningsreglering tillhandahålls med 3,3V stift. Maximal effekt den kan dra är 50mA.
  • GND ==> Det finns 5 markstift på kortet som gör det användbart när mer än en markstift behövs för projektet.
  • Återställ ==> Denna pin används för att återställa kortet. Om du sätter denna pin på LOW återställs kortet.
  • Vin ==> Det är ingångsspänningen som levereras till kortet som sträcker sig från 7V till 20V. Spänningen från strömuttaget kan nås via denna pin. Emellertid kommer utspänningen via denna stift till kortet att automatiskt ställas in till 5V.
  • Seriell kommunikation ==> RXD och TXD är de seriella stiften som används för att överföra och ta emot seriell data, dvs Rx representerar överföring av data medan Tx används för att ta emot data. Det finns fyra kombinationer av dessa seriella stift som används där Serail 0 innehåller RX (0) och TX (1), Serial 1 innehåller TX (18) och RX (19), Serial 2 innehåller TX (16) och RX (17), och serie 3 innehåller TX (14) och RX (15).
  • Externa avbrott ==> Sex stift används för att skapa externa avbrott, dvs avbrott 0 (0), avbrott 1 (3), avbrott 2 (21), avbrott 3 (20), avbrott 4 (19), avbrott 5 (18). Dessa stift producerar avbrott på ett antal sätt, dvs att ge LÅGT värde, stigande eller fallande kant eller ändra värde till avbrottstapparna.
  • LED ==> Detta kort levereras med inbyggd LED ansluten till digital stift 13. HÖGT värde vid denna stift tänder lysdioden och LÅGT värde stänger av den.
  • AREF ==> AREF står för Analog Reference Voltage som är en referensspänning för analoga ingångar.
  • Analoga stift ==> Det finns 16 analoga stift på kortet som är märkta som A0 till A15. Det är viktigt att notera att alla dessa analoga stift kan användas som digitala I/O -stift. Varje analog pin levereras med 10-bitars upplösning. Dessa stift kan mäta från mark till 5V. Det övre värdet kan dock ändras med funktionen AREF och analogReference ().
  • I2C ==> Två stift 20 och 21 stöder I2C -kommunikation där 20 representerar SDA (Serial Data Line används huvudsakligen för att lagra data) och 21 representerar SCL (Serial Clock Line används huvudsakligen för att tillhandahålla datasynkronisering mellan enheterna)
  • SPI Communication ==> SPI står för Serial Peripheral Interface som används för överföring av data mellan styrenheten och andra kringutrustningskomponenter. Fyra stift, dvs 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) används för SPI -kommunikation.

Steg 5: Arduino IDE

Här antar jag att du redan har installerat Arduino IDE.

1. Ladda ner det bibliotek som krävs nedan

TinyGPS lib

2. Efter nedladdning. Extrahera den och flytta den till mapp C: / Users / … / Documents / Arduino / bibliotek se till att det inte finns något (-).

3. Öppna Arduino IDE och kopiera koden från programavsnittet.

4. Välj sedan tavla för det gå till Verktyg ==> Brädor ==> välj tavla här använder vi Arduino Mega 2560

5. Efter att ha valt kortet väljer du port för det, gå till Verktyg ==> Portar

6. Efter att ha valt styrelse och port klickar du på ladda upp.

7. När koden har laddats upp öppnar du seriell terminal för att se utdata.

Steg 6: Anslutningar

Arduino MEGA ==> NEO-6M GPS

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

Du kan också använda Serial2 eller Serial3 istället för Serial1

Rekommenderad: