Sadržaj:

Sučelje Arduino Mega s GPS modulom (Neo-6M): 8 koraka
Sučelje Arduino Mega s GPS modulom (Neo-6M): 8 koraka

Video: Sučelje Arduino Mega s GPS modulom (Neo-6M): 8 koraka

Video: Sučelje Arduino Mega s GPS modulom (Neo-6M): 8 koraka
Video: GPS Speedometer DIY Using Arduino Pro Mini and NEO M6 GPS #electronic #electricalengineeringstudent 2024, Novembar
Anonim
Sučelje Arduino Mega s GPS modulom (Neo-6M)
Sučelje Arduino Mega s GPS modulom (Neo-6M)

U ovom projektu sam pokazao kako spojiti GPS modul (Neo-6M) s Arduino Mega. TinyGPS biblioteka se koristi za prikaz podataka o geografskoj dužini i širini, a TinyGPS ++ se koristi za prikaz zemljopisne širine, dužine, nadmorske visine, brzine i broja satelita na serijskom monitoru.

Korak 1: Potrebne komponente

Hardver

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

Softver

Arduino IDE

Ukupni troškovi projekta su 60 USD

Korak 2: Informacije o GPS -u

Šta je GPS

Globalni sistem pozicioniranja (GPS) je satelitski navigacioni sistem koji se sastoji od najmanje 24 satelita. GPS radi u svim vremenskim uvjetima, bilo gdje u svijetu, 24 sata dnevno, bez pretplate ili naknade za postavljanje.

Kako GPS funkcionira

GPS sateliti kruže Zemljom dva puta dnevno u preciznoj orbiti. Svaki satelit odašilje jedinstveni signal i orbitalne parametre koji omogućuju GPS uređajima da dekodiraju i izračunaju preciznu lokaciju satelita. GPS prijemnici koriste ove informacije i trilateraciju za izračunavanje tačne lokacije korisnika. U osnovi, GPS prijemnik mjeri udaljenost do svakog satelita prema količini vremena koje je potrebno za prijem primljenog signala. Mjerenjem udaljenosti od još nekoliko satelita, prijemnik može odrediti položaj korisnika i prikazati ga.

Za izračunavanje vašeg 2-D položaja (geografske širine i dužine) i kretanja traga, GPS prijemnik mora biti zaključan na signal najmanje 3 satelita. Sa 4 ili više satelita na vidiku, prijemnik može odrediti vašu 3-D poziciju (geografsku širinu, dužinu i nadmorsku visinu). Općenito, GPS prijemnik će pratiti 8 ili više satelita, ali to ovisi o dobu dana i gdje se nalazite na zemlji. Nakon što je vaš položaj određen, GPS jedinica može izračunati druge podatke, kao što je npr

  • Brzina
  • Ležaj
  • Track
  • Trip dist
  • Udaljenost do odredišta

Šta je signal

GPS sateliti emitiraju najmanje 2 radio signala male snage. Signali putuju linijom vidljivosti, što znači da će prolaziti kroz oblake, staklo i plastiku, ali neće proći kroz većinu čvrstih objekata, poput zgrada i planina. Međutim, moderni prijemnici su osjetljiviji i obično mogu pratiti kuće. GPS signal sadrži 3 različite vrste informacija

Pseudoslučajni kod

To je identifikacijski dokument kôd koji identificira koji satelit prenosi informacije. Na satelitskoj stranici uređaja možete vidjeti sa kojih satelita primate signale.

Podaci o efemeridi

Efemeridi su potrebni za određivanje položaja satelita i daju važne informacije o zdravlju satelita, trenutnom datumu i vremenu.

Podaci almanaha

Podaci almanaha govore GPS prijemniku gdje bi svaki GPS satelit trebao biti u bilo koje doba dana i prikazuju orbitalne informacije za taj satelit i svaki drugi satelit u sistemu.

Korak 3: Neo-6M GPS modul

GPS modul NEO-6M prikazan je na donjoj slici. Dolazi s vanjskom antenom i ne dolazi sa zaglavljima. Zato ćete ga morati lemiti.

Pregled NEO-6M GPS modula

NEO-6M GPS čip

Srce modula je NEO-6M GPS čip iz u-bloxa. Može pratiti do 22 satelita na 50 kanala i postiže najviši nivo osjetljivosti u industriji, tj. -161 dB praćenje, dok troši samo 45mA struju napajanja. Motor za pozicioniranje u-blox 6 također se može pohvaliti Time-to-First-Fix (TTFF) vremenom manjim od 1 sekunde. Jedna od najboljih karakteristika koje čip pruža je Power Save Mode (PSM). Omogućava smanjenje sistemske potrošnje energije selektivnim uključivanjem i isključivanjem dijelova prijemnika. Ovo dramatično smanjuje potrošnju energije modula na samo 11mA što ga čini pogodnim za aplikacije osjetljive na energiju poput GPS ručnog sata. Potrebni pinovi podataka NEO-6M GPS čipa su razbijeni na zaglavlja visine 0,1 ″. Ovo uključuje pinove potrebne za komunikaciju sa mikrokontrolerom preko UART -a.

Napomena:- Modul podržava brzinu prijenosa od 4800bps do 230400bps sa zadanim protokom od 9600.

LED indikator fiksiranja položaja

Na GPS modulu NEO-6M nalazi se LED dioda koja pokazuje status Fix Fix. Treptat će različitim brzinama ovisno o tome u kojem se stanju nalazi

  1. Nema treptanja ==> znači da traži satelite
  2. Treperi svakih 1 s - znači da je pronađena ispravka položaja

3.3V LDO regulator

Radni napon čipa NEO-6M je od 2,7 do 3,6V. No, modul dolazi s MICREL-ovim 3V3 regulatorom ultra niskog ispadanja. Logički pinovi su također tolerantni na 5 volti, tako da ih možemo lako spojiti na Arduino ili bilo koji 5V logički mikrokontroler bez korištenja pretvarača logičkog nivoa.

Baterija i EEPROM

Modul je opremljen dvožilnim serijskim EEPROM -om HK24C32. Veličine je 4KB i povezan je s NEO-6M čipom putem I2C. Modul također sadrži punjivu bateriju s gumbom koja djeluje kao super-kondenzator.

EEPROM zajedno s baterijom pomaže u zadržavanju RAM -a (BBR) koji podržava baterija. BBR sadrži podatke o satu, najnovije podatke o položaju (GNSS orbitni podaci) i konfiguraciju modula. Ali nije namijenjeno trajnoj pohrani podataka.

Kako baterija zadržava sat i posljednji položaj, vrijeme do prvog popravljanja (TTFF) značajno se smanjuje na 1 s. Ovo omogućava mnogo brže zaključavanje položaja.

Bez baterije GPS se uvijek hladno pokreće pa početno zaključavanje GPS-a oduzima više vremena. Baterija se automatski puni pri uključivanju i održava podatke do dvije sedmice bez napajanja.

Pinout

GND je uzemljeni pin i potrebno ga je spojiti na GND pin na Arduinu

TxD (odašiljač) pin se koristi za serijsku komunikaciju

RxD (prijemnik) pin se koristi za serijsku komunikaciju

VCC napaja modul. Možete ga izravno spojiti na 5V pin na Arduinu

Korak 4: Arduino Mega

Arduino je elektronička platforma otvorenog koda zasnovana na hardveru i softveru koji se lako koristi. Arduino ploče mogu čitati ulaze - svjetlo na senzoru, prst na dugmetu ili poruku na Twitteru - i pretvoriti ga u izlaz - aktivirati motor, uključiti LED diodu, objaviti nešto na mreži. Ploči možete reći šta da radi slanjem skupa uputstava mikrokontroleru na ploči. Da biste to učinili, koristite programski jezik Arduino (zasnovan na ožičenju) i Arduino softver (IDE), zasnovan na obradi.

Arduino Mega

Arduino Mega 2560 je ploča za mikrokontroler zasnovana na Atmega2560.

  • Na ploči je ugrađeno 54 digitalna I/O pina i 16 analognih pinova koji ovaj uređaj čine jedinstvenim i izdvajaju se od ostalih. Od 54 digitalna I/O, 15 se koristi za PWM (pulsno -širinska modulacija).
  • Na ploču je dodan kristalni oscilator frekvencije 16MHz.
  • Ploča dolazi s priključkom za USB kabel koji se koristi za povezivanje i prijenos koda s računala na ploču.
  • Utičnica za istosmjerno napajanje povezana je s pločom koja se koristi za napajanje ploče.
  • Ploča dolazi s dva regulatora napona, odnosno 5V i 3.3V, što pruža fleksibilnost za regulaciju napona prema zahtjevima.
  • Postoji gumb za resetiranje i 4 hardverska serijska porta pod nazivom USART koji proizvode maksimalnu brzinu za postavljanje komunikacije.
  • Postoje tri načina za napajanje ploče. Možete koristiti USB kabel za napajanje ploče i prijenos koda na ploču ili ga možete napajati pomoću Vin ploče ili putem priključka za napajanje ili baterije.

Specifikacije

Pinout

Opis pina

  • 5V i 3.3V ==> Ovaj pin se koristi za osiguravanje izlaznog reguliranog napona oko 5V. Ovo regulirano napajanje napaja kontroler i ostale komponente na ploči. Može se nabaviti putem Vin ploče ili USB kabela ili drugog reguliranog 5V napona. Dok je druga regulacija napona osigurana pinom od 3,3 V. Maksimalna snaga koju može izvući je 50mA.
  • GND ==> Na ploči je dostupno 5 uzemljenih igala što ga čini korisnim kada je za projekt potrebno više od jednog uzemljenja.
  • Reset ==> Ovaj pin se koristi za resetovanje ploče. Postavljanje ovog pina na LOW će resetirati ploču.
  • Vin ==> To je ulazni napon napajan na ploči koji se kreće od 7V do 20V. Ovom priključku može se pristupiti naponu koji daje utičnica za napajanje. Međutim, izlazni napon kroz ovaj pin na ploču automatski će se postaviti na 5V.
  • Serijska komunikacija ==> RXD i TXD su serijski pinovi koji se koriste za prijenos i prijem serijskih podataka, tj. Rx predstavlja prijenos podataka, dok se Tx koristi za prijem podataka. Postoje četiri kombinacije ovih serijskih pinova gdje Serail 0 sadrži RX (0) i TX (1), Serijski 1 sadrži TX (18) i RX (19), Serijski 2 sadrži TX (16) i RX (17), i Serija 3 sadrži TX (14) i RX (15).
  • Vanjski prekidi ==> Šest pinova koristi se za stvaranje vanjskih prekida, tj. Prekid 0 (0), prekid 1 (3), prekid 2 (21), prekid 3 (20), prekid 4 (19), prekid 5 (18). Ovi pinovi proizvode prekide na više načina, tj. Osiguravajući NISKU vrijednost, rastuću ili padajuću ivicu ili mijenjajući vrijednost pinovima prekida.
  • LED ==> Ova ploča ima ugrađenu LED diodu povezanu na digitalni pin 13. VISOKA vrijednost na ovom pinu će uključiti LED, a NISKA će je isključiti.
  • AREF ==> AREF označava analogni referentni napon koji je referentni napon za analogne ulaze.
  • Analogni pinovi ==> Na ploči je ugrađeno 16 analognih pinova označenih kao A0 do A15. Važno je napomenuti da se svi ovi analogni pinovi mogu koristiti kao digitalni I/O pinovi. Svaki analogni pin dolazi s 10-bitnom rezolucijom. Ovi pinovi mogu mjeriti od zemlje do 5V. Međutim, gornja vrijednost se može promijeniti pomoću funkcija AREF i analogReference ().
  • I2C ==> Dva pina 20 i 21 podržavaju I2C komunikaciju gdje 20 predstavlja SDA (Serijska linija podataka uglavnom se koristi za čuvanje podataka), a 21 predstavlja SCL (Serijska linija sata uglavnom se koristi za pružanje sinhronizacije podataka između uređaja)
  • SPI komunikacija ==> SPI označava serijsko periferno sučelje koje se koristi za prijenos podataka između kontrolera i drugih perifernih komponenti. Četiri pina, odnosno 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) koriste se za SPI komunikaciju.

Korak 5: Arduino IDE

Ovdje pretpostavljam da ste već instalirali Arduino IDE.

1. Preuzmite potrebnu biblioteku datu u nastavku

TinyGPS lib

2. Nakon preuzimanja. Raspakirajte ga i premjestite u mapu C: / Users \… / Documents / Arduino / libraries, pazite da nema (-).

3. Otvorite Arduino IDE i kopirajte kôd iz odjeljka programa.

4. Zatim odaberite ploču za to idite na Alati ==> Ploče ==> ovdje odaberite ploču koju koristimo Arduino Mega 2560

5. Nakon što odaberete ploču, odaberite port za to idite na Alati ==> Portovi

6. Nakon odabira ploče i porta kliknite upload.

7. Nakon što se kod učita, otvorite serijski terminal da vidite izlaz.

Korak 6: Veze

Arduino MEGA ==> NEO-6M GPS

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

Također možete koristiti Serial2 ili Serial3 umjesto Serial1

Preporučuje se: