Turinys:

„Arduino Mega“sąsaja su GPS moduliu („Neo-6M“): 8 žingsniai
„Arduino Mega“sąsaja su GPS moduliu („Neo-6M“): 8 žingsniai

Video: „Arduino Mega“sąsaja su GPS moduliu („Neo-6M“): 8 žingsniai

Video: „Arduino Mega“sąsaja su GPS moduliu („Neo-6M“): 8 žingsniai
Video: LDmicro 14: ЖК-дисплей I2C и часы реального времени DS3231 (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Lapkritis
Anonim
„Arduino Mega“sąsaja su GPS moduliu („Neo-6M“)
„Arduino Mega“sąsaja su GPS moduliu („Neo-6M“)

Šiame projekte aš parodžiau, kaip sujungti GPS modulį („Neo-6M“) su „Arduino Mega“. „TinyGPS“biblioteka naudojama ilgumos ir platumos duomenims rodyti, o „TinyGPS ++“- rodyti platumos, ilgumos, aukščio, greičio ir palydovų skaičių nuosekliajame monitoriuje.

1 žingsnis: reikalingi komponentai

Techninė įranga

  • „Arduino Mega“==> 30 USD
  • „Neo-6M“GPS modulis ==> 30 USD

Programinė įranga

„Arduino IDE“

Bendra projekto kaina yra 60 USD

2 veiksmas: informacija apie GPS

Kas yra GPS

Pasaulinė padėties nustatymo sistema (GPS) yra palydovinė navigacinė sistema, kurią sudaro mažiausiai 24 palydovai. GPS veikia bet kokiomis oro sąlygomis, bet kurioje pasaulio vietoje, 24 valandas per parą, be abonentinių ar sąrankos mokesčių.

Kaip veikia GPS

GPS palydovai aplink Žemę skrieja du kartus per dieną tikslia orbita. Kiekvienas palydovas perduoda unikalų signalą ir orbitos parametrus, kurie leidžia GPS įrenginiams iššifruoti ir apskaičiuoti tikslią palydovo vietą. GPS imtuvai naudoja šią informaciją ir trilateraciją, kad apskaičiuotų tikslią vartotojo vietą. Iš esmės GPS imtuvas matuoja atstumą iki kiekvieno palydovo pagal laiką, per kurį reikia priimti perduotą signalą. Matuojant atstumą iš dar kelių palydovų, imtuvas gali nustatyti vartotojo padėtį ir ją parodyti.

Norėdami apskaičiuoti savo 2-D padėtį (platumą ir ilgumą) ir sekti judėjimą, GPS imtuvas turi būti užrakintas bent 3 palydovų signalu. Matydamas 4 ar daugiau palydovų, imtuvas gali nustatyti jūsų 3D padėtį (platumą, ilgumą ir aukštį). Paprastai GPS imtuvas stebės 8 ar daugiau palydovų, tačiau tai priklauso nuo paros laiko ir vietos, kurioje esate. Nustačius jūsų padėtį, GPS įrenginys gali apskaičiuoti kitą informaciją, pvz

  • Greitis
  • Guolis
  • Takelis
  • Kelionės dist
  • Atstumas iki paskirties vietos

Kas yra signalas

GPS palydovai perduoda mažiausiai 2 mažos galios radijo signalus. Signalai keliauja regėjimo linija, tai reiškia, kad jie praeis pro debesis, stiklą ir plastiką, bet nepraeis per daugumą kietų objektų, tokių kaip pastatai ir kalnai. Tačiau šiuolaikiniai imtuvai yra jautresni ir paprastai gali sekti namus. GPS signalas turi 3 skirtingų tipų informaciją

Pseudo atsitiktinis kodas

Tai yra I. D. kodą, kuris nustato, kuris palydovas perduoda informaciją. Įrenginio palydovo puslapyje galite pamatyti, iš kokių palydovų gaunate signalus.

Efemeros duomenys

Efeimerio duomenys reikalingi palydovo padėčiai nustatyti ir suteikia svarbios informacijos apie palydovo būklę, dabartinę datą ir laiką.

Almanacho duomenys

Almanacho duomenys nurodo GPS imtuvui, kur kiekvienas GPS palydovas turėtų būti bet kuriuo paros metu, ir rodo to palydovo ir kiekvieno kito sistemos palydovo orbitinę informaciją.

3 žingsnis: „Neo-6M“GPS modulis

Žemiau esančiame paveikslėlyje parodytas NEO-6M GPS modulis. Jis tiekiamas su išorine antena ir nėra antgalių kaiščių. Taigi jums reikės jį lituoti.

Neo-6M GPS modulio apžvalga

NEO-6M GPS lustas

Modulio širdis yra „NE-6M“GPS mikroschema iš „u-blox“. Jis gali stebėti iki 22 palydovų 50 kanalų ir pasiekti aukščiausią pramonės jautrumo lygį, ty -161 dB sekimą, o sunaudoja tik 45 mA maitinimo srovę. „U-blox 6“padėties nustatymo variklis taip pat gali pasigirti trumpesniu nei 1 sekundės laiko nustatymo (TTFF) laiku. Viena geriausių mikroschemos savybių yra energijos taupymo režimas (PSM). Tai leidžia sumažinti sistemos energijos suvartojimą pasirinktinai įjungiant ir išjungiant imtuvo dalis. Tai žymiai sumažina modulio energijos suvartojimą iki 11 mA, todėl jis tinkamas naudoti energijai jautrioms programoms, tokioms kaip GPS rankinis laikrodis. Būtini NEO-6M GPS lusto duomenų kaiščiai yra suskirstyti į 0,1 colio žingsnio antraštes. Tai apima kaiščius, reikalingus ryšiui su mikrovaldikliu per UART.

Pastaba:- Modulis palaiko duomenų perdavimo spartą nuo 4800bps iki 230400bps su numatytuoju 9600 bodu.

Pozicijos fiksavimo LED indikatorius

Neo-6M GPS modulyje yra šviesos diodas, rodantis padėties taisymo būseną. Jis mirksės įvairiais tempais, priklausomai nuo to, kokioje būsenoje jis yra

  1. Nemirksi ==> reiškia, kad ji ieško palydovų
  2. Mirksi kas 1 sekundė - reiškia, kad padėties nustatymas rastas

3.3V LDO reguliatorius

NEO-6M lusto darbinė įtampa yra nuo 2,7 iki 3,6 V. Tačiau modulyje yra MICREL itin žemo iškritimo 3V3 reguliatorius MIC5205. Loginiai kaiščiai taip pat yra atsparūs 5 voltų, todėl mes galime lengvai prijungti jį prie „Arduino“ar bet kurio 5 V loginio mikrovaldiklio, nenaudodami jokio loginio lygio keitiklio.

Baterija ir EEPROM

Modulis turi HK24C32 dviejų laidų nuoseklųjį EEPROM. Jis yra 4KB dydžio ir prijungtas prie NEO-6M lusto per I2C. Modulyje taip pat yra įkraunama mygtuko baterija, kuri veikia kaip superkondensatorius.

EEPROM kartu su akumuliatoriumi padeda išlaikyti su baterija paremtą RAM (BBR). BBR yra laikrodžio duomenys, naujausios padėties duomenys (GNSS orbitos duomenys) ir modulio konfigūracija. Tačiau jis nėra skirtas nuolatiniam duomenų saugojimui.

Kadangi baterija išlaiko laikrodį ir paskutinę padėtį, laikas iki pirmojo taisymo (TTFF) žymiai sutrumpėja iki 1 s. Tai leidžia daug greičiau užrakinti padėtį.

Be akumuliatoriaus GPS visada įjungiamas šaltai, todėl pradinis GPS užraktas užima daugiau laiko. Įjungus maitinimą, akumuliatorius automatiškai įkraunamas ir be maitinimo saugo duomenis iki dviejų savaičių.

Pinout

GND yra įžeminimo kaištis ir turi būti prijungtas prie „Arduino“GND kaiščio

TxD (siųstuvo) kaištis naudojamas nuosekliam ryšiui

RxD (imtuvo) kaištis naudojamas nuosekliam ryšiui

VCC maitina modulį. Galite tiesiogiai prijungti jį prie „Arduino“5V kaiščio

4 žingsnis: „Arduino Mega“

„Arduino“yra atviro kodo elektronikos platforma, pagrįsta lengvai naudojama aparatine ir programine įranga. „Arduino“plokštės gali skaityti įvestis - šviesą ant jutiklio, pirštą ant mygtuko ar „Twitter“pranešimą - ir paversti ją išvestimi - suaktyvinti variklį, įjungti šviesos diodą, ką nors paskelbti internete. Galite pasakyti savo valdybai, ką daryti, išsiųsdami instrukcijų rinkinį į plokštėje esantį mikrovaldiklį. Norėdami tai padaryti, naudokite „Arduino“programavimo kalbą (pagrįstą laidų jungtimi) ir „Arduino“programinę įrangą (IDE), pagrįstą apdorojimu.

Arduino Mega

„Arduino Mega 2560“yra mikrovaldiklio plokštė, pagrįsta „Atmega2560“.

  • Plokštėje yra 54 skaitmeniniai įvesties/išvesties kaiščiai ir 16 analoginių kaiščių, dėl kurių šis įrenginys yra unikalus ir išsiskiria iš kitų. Iš 54 skaitmeninių įvesties/išvesties jungčių 15 yra naudojamos PWM (impulsų pločio moduliacijai).
  • Prie plokštės pridedamas 16MHz dažnio kristalų osciliatorius.
  • Plokštėje yra USB kabelio prievadas, naudojamas prisijungti ir perkelti kodą iš kompiuterio į plokštę.
  • Nuolatinės srovės maitinimo lizdas yra prijungtas prie plokštės, kuri naudojama maitinti plokštę.
  • Plokštėje yra du įtampos reguliatoriai, ty 5V ir 3.3V, kurie suteikia lankstumo reguliuoti įtampą pagal reikalavimus.
  • Yra atstatymo mygtukas ir 4 aparatinės įrangos nuoseklusis prievadas, vadinamas USART, kuris sukuria maksimalų ryšio nustatymo greitį.
  • Yra trys lentos maitinimo būdai. Galite naudoti USB kabelį, kad įjungtumėte plokštę ir perkeltumėte kodą į plokštę, arba galite įjungti ją naudodami plokštės „Vin“arba per maitinimo lizdą arba tešlą.

Specifikacijos

Pinout

Smeigtuko aprašymas

  • 5V & 3.3V ==> Šis kaištis naudojamas tiekti reguliuojamą maždaug 5 V įtampą. Šis reguliuojamas maitinimo šaltinis įjungia valdiklį ir kitus plokštės komponentus. Jį galima gauti iš plokštės „Vin“arba USB kabelio arba kito reguliuojamo 5 V įtampos šaltinio. Kitą įtampos reguliavimą užtikrina 3,3 V kaištis. Maksimali galia, kurią jis gali ištraukti, yra 50 mA.
  • GND ==> Lentoje yra 5 įžeminimo kaiščiai, todėl tai naudinga, kai projektui reikia daugiau nei vieno įžeminimo kaiščio.
  • Atstatyti ==> Šis kaištis naudojamas iš naujo nustatyti plokštę. Nustačius šį kaištį į LOW, lenta bus atstatyta.
  • Vin ==> Tai įvesties įtampa, tiekiama į plokštę, kuri svyruoja nuo 7V iki 20V. Į maitinimo lizdo tiekiamą įtampą galima patekti per šį kaištį. Tačiau išėjimo įtampa per šį kaištį į plokštę bus automatiškai nustatyta iki 5 V.
  • Serijinis ryšys ==> RXD ir TXD yra nuoseklūs kaiščiai, naudojami serijiniams duomenims perduoti ir priimti, ty Rx reiškia duomenų perdavimą, o Tx - duomenims priimti. Yra keturi šių serijinių kaiščių deriniai, kai „Serail 0“yra RX (0) ir TX (1), 1 serijoje yra TX (18) ir RX (19), 2 serijoje yra TX (16) ir RX (17), ir 3 serijoje yra TX (14) ir RX (15).
  • Išoriniai pertraukimai ==> Šeši kaiščiai naudojami išoriniams pertraukimams kurti, ty pertraukimas 0 (0), pertraukimas 1 (3), pertraukimas 2 (21), pertraukimas 3 (20), pertraukimas 4 (19), pertraukimas 5 (18). Šie kaiščiai pertraukia įvairiais būdais, ty suteikia žemą vertę, kylantį ar krintantį kraštą arba keičiant pertraukimo kaiščių vertę.
  • Šviesos diodas ==> Šioje plokštėje yra įmontuotas šviesos diodas, prijungtas prie skaitmeninio kaiščio 13. AUKŠTA šio kaiščio reikšmė įjungs šviesos diodą, o LOW reikšmė jį išjungs.
  • AREF ==> AREF reiškia analoginę etaloninę įtampą, kuri yra atskaitos įtampa analoginiams įėjimams.
  • Analoginiai kaiščiai ==> Lentoje yra 16 analoginių kaiščių, pažymėtų nuo A0 iki A15. Svarbu pažymėti, kad visi šie analoginiai kaiščiai gali būti naudojami kaip skaitmeniniai įvesties/išvesties kaiščiai. Kiekvienas analoginis kaištis turi 10 bitų skiriamąją gebą. Šie kaiščiai gali matuoti nuo žemės iki 5 V. Tačiau viršutinę vertę galima pakeisti naudojant AREF ir analogReference () funkciją.
  • I2C ==> Du kaiščiai 20 ir 21 palaiko I2C ryšį, kur 20 reiškia SDA (serijinė duomenų linija, daugiausia naudojama duomenims laikyti), o 21 - SCL (serijinio laikrodžio linija, daugiausia naudojama duomenų sinchronizavimui tarp įrenginių)
  • SPI komunikacija ==> SPI reiškia serijinę periferinę sąsają, naudojamą duomenims perduoti tarp valdiklio ir kitų išorinių įrenginių komponentų. SPI ryšiui naudojami keturi kaiščiai, ty 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS).

5 žingsnis: „Arduino IDE“

Čia darau prielaidą, kad jau įdiegėte „Arduino IDE“.

1. Atsisiųskite žemiau pateiktą reikalingą biblioteką

„TinyGPS“lib

2. Atsisiuntę. Ištraukite jį ir perkelkite į aplanką C: / Users \… / Documents / Arduino / bibliotekos įsitikinkite, kad nėra (-).

3. Atidarykite „Arduino IDE“ir nukopijuokite kodą iš programos skyriaus.

4. Tada pasirinkite tą lentą, eikite į Įrankiai ==> Lentos ==> čia pasirinkite lentą, kurioje naudojame „Arduino Mega 2560“

5. Pasirinkę plokštę, pasirinkite prievadą, einantį į Tools ==> Ports

6. Pasirinkę lentą ir prievadą spustelėkite įkelti.

7. Kai kodas įkeliamas, atidarykite serijinį terminalą, kad pamatytumėte išvestį.

6 žingsnis: jungtys

Arduino MEGA ==> NEO-6M GPS

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

Vietoj Serial1 taip pat galite naudoti Serial2 arba Serial3

Rekomenduojamas: