Kazalo:

Vmesnik Arduino Mega z modulom GPS (Neo-6M): 8 korakov
Vmesnik Arduino Mega z modulom GPS (Neo-6M): 8 korakov

Video: Vmesnik Arduino Mega z modulom GPS (Neo-6M): 8 korakov

Video: Vmesnik Arduino Mega z modulom GPS (Neo-6M): 8 korakov
Video: GPS-модуль U-blox neo-6m: декодирование Arduino NMEA 2024, Junij
Anonim
Vmesnik Arduino Mega z modulom GPS (Neo-6M)
Vmesnik Arduino Mega z modulom GPS (Neo-6M)

V tem projektu sem pokazal, kako povezati modul GPS (Neo-6M) z Arduino Mega. Knjižnica TinyGPS se uporablja za prikaz podatkov o zemljepisni dolžini in širini, TinyGPS ++ pa za prikaz zemljepisne širine, dolžine, nadmorske višine, hitrosti in števila satelitov na serijskem monitorju.

Korak: Potrebne komponente

Strojna oprema

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

Programska oprema

Arduino IDE

Skupni stroški projekta znašajo 60 USD

2. korak: Informacije o GPS -u

Kaj je GPS

Globalni sistem za določanje položaja (GPS) je satelitski navigacijski sistem, sestavljen iz najmanj 24 satelitov. GPS deluje v vseh vremenskih razmerah, kjer koli na svetu, 24 ur na dan, brez naročnine ali nastavitev.

Kako deluje GPS

Sateliti GPS dvakrat na dan krožijo po Zemlji po natančni orbiti. Vsak satelit oddaja edinstven signal in orbitalne parametre, ki omogočajo napravam GPS, da dekodirajo in izračunajo natančno lokacijo satelita. Sprejemniki GPS uporabljajo te podatke in trilateracijo za izračun natančne lokacije uporabnika. V bistvu sprejemnik GPS meri razdaljo do vsakega satelita glede na čas, ki je potreben za sprejem oddanega signala. Z meritvami razdalje še nekaj satelitov lahko sprejemnik določi uporabnikov položaj in ga prikaže.

Za izračun vašega 2-D položaja (zemljepisne širine in dolžine) in premikanja sledi mora biti sprejemnik GPS pritrjen na signal najmanj 3 satelitov. S pogledom na 4 ali več satelitov lahko sprejemnik določi vaš 3-D položaj (zemljepisno širino, dolžino in nadmorsko višino). Na splošno bo sprejemnik GPS sledil 8 ali več satelitom, vendar je to odvisno od časa dneva in od tega, kje ste na zemlji. Ko je vaš položaj določen, lahko enota GPS izračuna druge podatke, na primer

  • Hitrost
  • Ležaj
  • Sled
  • Trip dist
  • Razdalja do cilja

Kaj je signal

Sateliti GPS oddajajo vsaj 2 radijska signala majhne moči. Signali potujejo po vidnem polju, kar pomeni, da bodo šli skozi oblake, steklo in plastiko, ne bodo pa skozi večino trdnih predmetov, kot so zgradbe in gore. Sodobni sprejemniki pa so bolj občutljivi in običajno sledijo hišam. Signal GPS vsebuje 3 različne vrste informacij

Psevdonaključna koda

Gre za I. D. koda, ki določa, kateri satelit prenaša informacije. Na satelitski strani naprave lahko vidite, s katerih satelitov prejemate signale.

Podatki o efemeridah

Podatki iz efemerida so potrebni za določitev položaja satelita in dajejo pomembne informacije o zdravju satelita, trenutnem datumu in uri.

Podatki almanaha

Podatki almanaha GPS sprejemniku povejo, kje naj bo vsak satelit GPS, kadar koli čez dan, in prikažejo orbitalne podatke za ta satelit in vse druge satelite v sistemu.

3. korak: Neo-6M GPS modul

GPS modul NEO-6M je prikazan na spodnji sliki. Na voljo je z zunanjo anteno in nima zatičev za glavo. Zato ga boste morali spajkati.

Pregled GPS modula NEO-6M

GPS-čip NEO-6M

Srce modula je NEO-6M GPS čip iz u-bloxa. Lahko spremlja do 22 satelitov na 50 kanalih in doseže najvišjo stopnjo občutljivosti v industriji, to je -161 dB sledenje, hkrati pa porabi le 45 mA napajalnega toka. Motor za pozicioniranje u-blox 6 se ponaša tudi s časom do prvega popravka (TTFF), ki je krajši od 1 sekunde. Ena najboljših lastnosti, ki jih ponuja čip, je način varčevanja z energijo (PSM). Omogoča zmanjšanje porabe energije sistema z selektivnim vklopom in izklopom delov sprejemnika. To dramatično zmanjša porabo energije modula na samo 11 mA, zaradi česar je primeren za aplikacije, občutljive na moč, kot je ročna ura GPS. Potrebni podatkovni zatiči NEO-6M GPS čipa so razčlenjeni na glave z nagibom 0,1 ″. To vključuje zatiče, potrebne za komunikacijo z mikrokrmilnikom prek UART.

Opomba:- Modul podpira hitrost prenosa od 4800bps do 230400bps s privzeto hitrostjo 9600.

LED -kazalnik Fix Fix

Na GPS-modulu NEO-6M je LED, ki označuje stanje popravka položaja. Utripal bo z različnimi hitrostmi, odvisno od tega, v kakšnem stanju je

  1. Brez utripanja ==> pomeni, da išče satelite
  2. Utripajte vsakih 1 s - pomeni, da je odpravljen položaj

3.3V LDO regulator

Delovna napetost čipa NEO-6M je od 2,7 do 3,6 V. Modul pa prihaja z regulatorjem 3V3 ultra nizkega izpada MIC5205 podjetja MICREL. Logični zatiči so tudi 5-voltni, zato jih lahko enostavno povežemo z Arduino ali katerim koli 5V logičnim mikrokrmilnikom brez uporabe pretvornika logične ravni.

Baterija in EEPROM

Modul je opremljen z dvožičnim serijskim EEPROM -om HK24C32. Je velik 4 KB in je povezan z čipom NEO-6M prek I2C. Modul vsebuje tudi gumbno baterijo za ponovno polnjenje, ki deluje kot super-kondenzator.

EEPROM skupaj z baterijo pomaga ohraniti RAM (BBR), ki podpira baterijo. BBR vsebuje podatke o uri, najnovejše podatke o položaju (podatki o orbiti GNSS) in konfiguracijo modula. Ni pa namenjeno trajnemu shranjevanju podatkov.

Ker baterija ohranja uro in zadnji položaj, se čas do prve popravke (TTFF) znatno skrajša na 1 s. To omogoča veliko hitrejše zaklepanje položaja.

Brez baterije se GPS vedno hladno zažene, zato začetna ključavnica GPS vzame več časa. Baterija se ob napajanju samodejno napolni in hrani podatke do dva tedna brez napajanja.

Pinout

GND je ozemljitveni pin in ga je treba priključiti na pin GND na Arduinu

TxD (oddajnik) pin se uporablja za serijsko komunikacijo

RxD (sprejemnik) pin se uporablja za serijsko komunikacijo

VCC napaja modul. Lahko ga neposredno priključite na 5V pin na Arduinu

4. korak: Arduino Mega

Arduino je odprtokodna elektronska platforma, ki temelji na enostavni strojni in programski opremi. Arduino plošče lahko preberejo vhode - luč na senzorju, prst na gumbu ali sporočilo v Twitterju - in ga spremenijo v izhod - aktivirajo motor, vklopijo LED, objavijo nekaj na spletu. Plošči lahko poveste, kaj naj stori, tako da mikrokrmilniku na plošči pošljete niz navodil. Če želite to narediti, uporabite programski jezik Arduino (na osnovi ožičenja) in programsko opremo Arduino (IDE), ki temelji na obdelavi.

Arduino Mega

Arduino Mega 2560 je mikrokrmilna plošča, ki temelji na Atmega2560.

  • Na plošči je 54 digitalnih vhodno/izhodnih zatičev in 16 analognih zatičev, zaradi katerih je ta naprava edinstvena in izstopa od drugih. Od 54 digitalnih V/I se 15 uporablja za PWM (pulzno širinsko modulacijo).
  • Na ploščo je dodan kristalni oscilator s frekvenco 16 MHz.
  • Plošča ima vrata USB za kabel, ki se uporablja za povezavo in prenos kode iz računalnika na ploščo.
  • Vtičnica za enosmerni tok je povezana s ploščo, ki se uporablja za napajanje plošče.
  • Plošča ima dva regulatorja napetosti, to je 5V in 3.3V, ki omogočata prilagodljivost napetosti glede na zahteve.
  • Obstaja gumb za ponastavitev in 4 serijska vrata strojne opreme, imenovana USART, ki proizvajajo največjo hitrost za vzpostavitev komunikacije.
  • Obstajajo trije načini za napajanje plošče. Za napajanje plošče in prenos kode na ploščo lahko uporabite kabel USB ali pa jo vklopite z vinom Vin na plošči ali prek priključka za napajanje ali baterije.

Specifikacije

Pinout

Opis pin

  • 5V in 3.3V ==> Ta pin se uporablja za zagotavljanje izhodne regulirane napetosti okoli 5V. Ta regulirani napajalnik napaja krmilnik in druge komponente na plošči. Lahko ga dobite iz Vin plošče ali kabla USB ali drugega reguliranega 5 -voltnega napajalnika. Druga napetostna regulacija pa je zagotovljena z vtičem 3.3V. Največja moč, ki jo lahko črpa, je 50 mA.
  • GND ==> Na plošči je na voljo 5 ozemljitvenih zatičev, zaradi česar je uporabna, kadar je za projekt potrebnih več kot ena ozemljitvena zatiča.
  • Reset ==> Ta pin se uporablja za ponastavitev plošče. Če ta pin nastavite na LOW, bo plošča ponastavljena.
  • Vin ==> To je vhodna napetost, ki se napaja na plošči in se giblje od 7V do 20V. Prek tega zatiča lahko dostopate do napetosti, ki jo zagotavlja vtičnica. Vendar bo izhodna napetost preko tega zatiča na ploščo samodejno nastavljena na 5 V.
  • Serijska komunikacija ==> RXD in TXD sta zaporedna zatiča, ki se uporabljata za prenos in sprejem serijskih podatkov, tj. Rx predstavlja prenos podatkov, medtem ko se Tx uporablja za sprejem podatkov. Uporabljajo se štiri kombinacije teh zaporednih zatičev, kjer Serail 0 vsebuje RX (0) in TX (1), Serija 1 vsebuje TX (18) in RX (19), Serija 2 vsebuje TX (16) in RX (17), Serijski 3 pa vsebuje TX (14) in RX (15).
  • Zunanji prekinitve ==> Šest zatičev se uporablja za ustvarjanje zunanjih prekinitev, to je prekinitev 0 (0), prekinitev 1 (3), prekinitev 2 (21), prekinitev 3 (20), prekinitev 4 (19), prekinitev 5 (18). Ti zatiči povzročajo prekinitve na več načinov, tj. Zagotavljajo NIZKO vrednost, naraščajoč ali padajoč rob ali spreminjajo vrednost prekinitvenim zatičem.
  • LED ==> Ta plošča ima vgrajeno LED, priključeno na digitalni zatič 13. VELIKA vrednost na tem zatiču bo vklopila LED, NISKA pa jo bo izklopila.
  • AREF ==> AREF pomeni analogna referenčna napetost, ki je referenčna napetost za analogne vhode.
  • Analogni zatiči ==> Na plošči je vključenih 16 analognih zatičev, označenih kot A0 do A15. Pomembno je omeniti, da se vsi ti analogni zatiči lahko uporabljajo kot digitalni V/I zatiči. Vsak analogni pin ima 10-bitno ločljivost. Ti zatiči lahko merijo od tal do 5V. Zgornjo vrednost pa lahko spremenite s funkcijo AREF in analogReference ().
  • I2C ==> Dva zatiča 20 in 21 podpirata komunikacijo I2C, kjer 20 predstavlja SDA (zaporedna podatkovna linija, ki se večinoma uporablja za shranjevanje podatkov) in 21 predstavlja SCL (serijska linija ure, ki se večinoma uporablja za zagotavljanje sinhronizacije podatkov med napravami)
  • SPI Communication ==> SPI pomeni serijski periferni vmesnik, ki se uporablja za prenos podatkov med krmilnikom in drugimi zunanjimi komponentami. Za komunikacijo SPI se uporabljajo štirje zatiči, tj. 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS).

5. korak: Arduino IDE

Predvidevam, da ste že namestili Arduino IDE.

1. Prenesite spodaj zahtevano knjižnico

TinyGPS lib

2. Po prenosu. Izvlecite ga in ga premaknite v mapo C: / Users / … / Documents / Arduino / libraries in se prepričajte, da ni (-).

3. Odprite Arduino IDE in kopirajte kodo iz razdelka programa.

4. Nato izberite ploščo, pojdite na Orodja ==> Plošče ==> tukaj izberite ploščo, ki jo uporabljamo Arduino Mega 2560

5. Ko izberete ploščo, izberite vrata za to, pojdite na Orodja ==> Pristanišča

6. Po izbiri plošče in vrat kliknite naloži.

7. Ko je koda naložena, odprite serijski terminal in si oglejte izhod.

6. korak: Povezave

Arduino MEGA ==> NEO-6M GPS

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

Namesto Serial1 lahko uporabite tudi Serial2 ali Serial3

Priporočena: