Talaan ng mga Nilalaman:

Interface Arduino Mega Sa Module ng GPS (Neo-6M): 8 Mga Hakbang
Interface Arduino Mega Sa Module ng GPS (Neo-6M): 8 Mga Hakbang

Video: Interface Arduino Mega Sa Module ng GPS (Neo-6M): 8 Mga Hakbang

Video: Interface Arduino Mega Sa Module ng GPS (Neo-6M): 8 Mga Hakbang
Video: LDmicro 18: Ublox NEO-6M GPS Alarm Clock (Microcontroller PLC Ladder Programming with LDmicro) 2024, Nobyembre
Anonim
Interface Arduino Mega With GPS Module (Neo-6M)
Interface Arduino Mega With GPS Module (Neo-6M)

Sa proyektong ito, ipinakita ko kung paano i-interface ang isang module ng GPS (Neo-6M) sa Arduino Mega. Ginagamit ang library ng TinyGPS upang ipakita ang data ng Longitude at Latitude at ginagamit ang TinyGPS ++ upang ipakita ang Latitude, Longitude, Altitude, Bilis at bilang ng mga satellite sa serial monitor.

Hakbang 1: Kailangan ng Mga Bahagi

Hardware

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

Software

Arduino IDE

Ang kabuuang halaga ng proyekto ay $ 60

Hakbang 2: Impormasyon Tungkol sa GPS

Ano ang GPS

Ang Global Positioning System (GPS) ay isang satellite-based na nabigasyon system na binubuo ng hindi bababa sa 24 satellite. Gumagana ang GPS sa anumang mga kundisyon ng panahon, kahit saan sa mundo, 24 na oras sa isang araw, na walang mga bayarin sa subscription o pagsingil sa mga pagsingil.

Paano gumagana ang GPS

Ang mga GPS satellite ay bilog ang Earth dalawang beses sa isang araw sa isang tumpak na orbit. Ang bawat satellite ay nagpapadala ng isang natatanging signal at orbital na mga parameter na nagpapahintulot sa mga aparato ng GPS na mag-decode at makalkula ang tumpak na lokasyon ng satellite. Ginagamit ng mga tatanggap ng GPS ang impormasyong ito at trilateration upang makalkula ang eksaktong lokasyon ng isang gumagamit. Mahalaga, sinusukat ng tagatanggap ng GPS ang distansya sa bawat satellite sa dami ng oras na kinakailangan upang makatanggap ng isang nailipat na signal. Sa mga pagsukat sa distansya mula sa ilan pang mga satellite, maaaring matukoy ng tatanggap ang posisyon ng isang gumagamit at ipakita ito.

Upang kalkulahin ang iyong posisyon na 2-D (latitude at longitude) at subaybayan ang paggalaw, ang isang GPS receiver ay dapat na naka-lock sa signal ng hindi bababa sa 3 satellite. Sa pagtingin ng 4 o higit pang mga satellite, matutukoy ng tatanggap ang iyong posisyon na 3-D (latitude, longitude at altitude). Pangkalahatan, susubaybayan ng isang tagatanggap ng GPS ang 8 o higit pang mga satellite, ngunit depende iyon sa oras ng araw at kung nasaan ka sa mundo. Kapag natukoy ang iyong posisyon, maaaring makalkula ng yunit ng GPS ang iba pang impormasyon, tulad ng

  • Bilis
  • Tindig
  • Subaybayan
  • Distansya ng biyahe
  • Distansya sa patutunguhan

Ano ang signal

Naghahatid ang mga GPS satellite ng hindi bababa sa 2 mga signal ng radyo na may mababang lakas. Ang mga signal ay naglalakbay sa pamamagitan ng linya ng paningin, nangangahulugang dumadaan sila sa mga ulap, baso at plastik ngunit hindi dumaan sa karamihan ng mga solidong bagay, tulad ng mga gusali at bundok. Gayunpaman, ang mga modernong tagatanggap ay mas sensitibo at karaniwang maaaring subaybayan ang mga bahay. Naglalaman ang isang senyas ng GPS ng 3 magkakaibang uri ng impormasyon

Pseudorandom na code

Ito ay isang I. D. code na tumutukoy sa aling satellite ang nagpapadala ng impormasyon. Maaari mong makita kung aling mga satellite ka nakakakuha ng mga signal mula sa pahina ng satellite ng iyong aparato.

Data ng Ephemeris

Ang data ng Ephemeris ay kinakailangan upang matukoy ang posisyon ng satellite at nagbibigay ng mahalagang impormasyon tungkol sa kalusugan ng isang satellite, kasalukuyang petsa at oras.

Data ng Almanac

Sinasabi ng data ng Almanac sa tatanggap ng GPS kung saan ang bawat GPS satellite ay dapat na anumang oras sa buong araw at ipinapakita ang impormasyon ng orbital para sa satellite na iyon at bawat iba pang satellite sa system.

Hakbang 3: Neo-6M GPS Module

Ang module ng NEO-6M GPS ay ipinapakita sa figure sa ibaba. Ito ay may isang panlabas na antena at hindi kasama ang mga header pin. Kaya kakailanganin mong maghinang ito.

Pangkalahatang-ideya ng NEO-6M GPS Module

NEO-6M GPS Chip

Ang puso ng module ay isang NEO-6M GPS chip mula sa u-blox. Maaari itong subaybayan hanggang sa 22 mga satellite sa 50 mga channel at makamit ang pinakamataas na antas ng pagiging sensitibo sa industriya ie -161 dB pagsubaybay, habang kumakain lamang ng kasalukuyang 45mA na supply. Ipinagmamalaki din ng u-blox 6 na pagpoposisyon ang isang Time-To-First-Fix (TTFF) na mas mababa sa 1 segundo. Ang isa sa mga pinakamahusay na tampok na ibinibigay ng maliit na tilad ay ang Power Save Mode (PSM). Pinapayagan ang pagbawas sa pagkonsumo ng kuryente ng system sa pamamagitan ng pili na paglipat ng mga bahagi ng tatanggap na ON at OFF. Ganap na binabawasan nito ang pagkonsumo ng kuryente ng module sa 11mA lamang na ginagawang angkop para sa mga application na sensitibo sa kuryente tulad ng GPS wristwatch. Ang kinakailangang mga data pin ng NEO-6M GPS chip ay nasira sa isang 0.1 ″ pitch header. Kasama dito ang mga pin na kinakailangan para sa komunikasyon sa isang microcontroller sa paglipas ng UART.

Tandaan: - Sinusuportahan ng module ang rate ng baud mula sa 4800bps hanggang 230400bps na may default na baud na 9600.

Pag-ayos ng Posisyon ng Tagapahiwatig ng LED

Mayroong isang LED sa NEO-6M GPS Module na nagpapahiwatig ng katayuan ng Pag-ayos ng Posisyon. Makakurap ito sa iba't ibang mga rate depende sa kung anong estado ito

  1. Walang Blinking ==> nangangahulugang Naghahanap ito ng mga satellite
  2. Blink bawat 1s - nangangahulugang ang Position Fix ay matatagpuan

3.3V LDO Regulator

Ang operating boltahe ng NEO-6M chip ay mula 2.7 hanggang 3.6V. Ngunit, ang module ay may MIC5205 ultra-low dropout 3V3 regulator mula sa MICREL. Ang mga pin ng lohika ay 5-volt tolerant din, kaya madali naming maiugnay ito sa isang Arduino o anumang 5V logic microcontroller nang hindi gumagamit ng anumang converter ng antas ng lohika.

Baterya at EEPROM

Ang module ay nilagyan ng isang HK24C32 dalawang wire serial EEPROM. Ito ay ang laki ng 4KB at konektado sa NEO-6M chip sa pamamagitan ng I2C. Naglalaman din ang module ng isang rechargeable button na baterya na kumikilos bilang isang super-capacitor.

Ang isang EEPROM kasama ang baterya ay tumutulong na mapanatili ang bateryang nai-back RAM (BBR). Naglalaman ang BBR ng data ng orasan, pinakabagong data ng posisyon (data ng orbit ng GNSS) at pagsasaayos ng module. Ngunit hindi ito inilaan para sa permanenteng pag-iimbak ng data.

Habang pinapanatili ng baterya ang orasan at huling posisyon, ang oras upang unang ayusin (TTFF) ay makabuluhang binabawasan sa 1s. Pinapayagan nito ang mas mabilis na mga kandado ng posisyon.

Nang walang baterya laging GPS ang cold-start kaya't ang paunang lock ng GPS ay tumatagal ng mas maraming oras. Awtomatikong sisingilin ang baterya kapag inilapat ang kuryente at nagpapanatili ng data hanggang sa dalawang linggo nang walang lakas.

Pinout

Ang GND ay ang Ground Pin at kailangang maiugnay sa GND pin sa Arduino

Ginagamit ang TxD (Transmitter) pin para sa serial na komunikasyon

Ang pin na RxD (Receiver) ay ginagamit para sa serial na komunikasyon

Ang VCC ay nagbibigay ng lakas para sa modyul. Maaari mong direktang ikonekta ito sa 5V pin sa Arduino

Hakbang 4: Arduino Mega

Ang Arduino ay isang open-source electronics platform batay sa madaling gamiting hardware at software. Nabasa ng mga board ng Arduino ang mga input - ilaw sa isang sensor, isang daliri sa isang pindutan, o isang mensahe sa Twitter - at ginawang isang output - pinapagana ang isang motor, binubuksan ang isang LED, naglathala ng isang bagay sa online. Maaari mong sabihin sa iyong board kung ano ang gagawin sa pamamagitan ng pagpapadala ng isang hanay ng mga tagubilin sa microcontroller sa board. Upang magawa mo ito, ginagamit mo ang wika ng programa ng Arduino (batay sa Mga Kable), at ang Arduino Software (IDE), batay sa Pagproseso.

Arduino Mega

Ang Arduino Mega 2560 ay isang board ng Microcontroller batay sa Atmega2560.

  • Mayroong 54 digital I / O pin at 16 analog pin na isinasama sa board na ginagawang natatangi ang aparatong ito at nakikilala mula sa iba. Sa labas ng 54 digital I / O, 15 ang ginagamit para sa PWM (modulate ng pulse width).
  • Ang isang kristal oscillator na 16MHz dalas ay idinagdag sa board.
  • Ang board ay may kasamang USB cable port na ginagamit upang kumonekta at ilipat ang code mula sa computer patungo sa board.
  • Ang DC power jack ay isinama sa board na ginagamit upang i-power ang board.
  • Ang board ay may dalawang voltage regulator ibig sabihin, 5V at 3.3V na nagbibigay ng kakayahang umangkop upang makontrol ang boltahe ayon sa mga kinakailangan.
  • Mayroong isang pindutan ng pag-reset at 4 hardware serial port na tinatawag na USART na gumagawa ng isang maximum na bilis para sa pag-set up ng komunikasyon.
  • Mayroong tatlong mga paraan upang mapalakas ang board. Maaari kang gumamit ng isang USB cable upang mapagana ang board at ilipat ang code sa board o maaari mo itong paandarin gamit ang Vin ng board o sa pamamagitan ng Power jack o batter.

Mga pagtutukoy

Pinout

Paglalarawan ng Pin

  • 5V & 3.3V ==> Ang pin na ito ay ginagamit upang magbigay ng kinokontrol na boltahe ng output sa paligid ng 5V. Ang kinokontrol na supply ng kuryente ay nagpapagana ng taga-kontrol at iba pang mga bahagi sa pisara. Maaari itong makuha mula sa Vin ng board o USB cable o ibang kinokontrol na supply ng boltahe na 5V. Habang ang isa pang regulasyon ng boltahe ay ibinibigay ng 3.3V pin. Ang maximum na lakas na maaari nitong iguhit ay 50mA.
  • GND ==> Mayroong 5 mga ground pin na magagamit sa board na ginagawang kapaki-pakinabang kapag higit sa isang mga ground pin ang kinakailangan para sa proyekto.
  • I-reset ==> Ang pin na ito ay ginagamit upang i-reset ang board. Ang pagtatakda ng pin na ito sa LOW ay i-reset ang board.
  • Vin ==> Ito ang input boltahe na ibinigay sa board na saklaw mula 7V hanggang 20V. Ang boltahe na ibinigay ng power jack ay maaaring ma-access sa pamamagitan ng pin na ito. Gayunpaman, ang boltahe ng output sa pamamagitan ng pin na ito sa board ay awtomatikong maitatakda sa 5V.
  • Serial Communication ==> Ang RXD at TXD ay ang mga serial pin na ginamit upang magpadala at makatanggap ng serial data ibig sabihin Rx ay kumakatawan sa paghahatid ng data habang ginamit ng Tx upang makatanggap ng data. Mayroong apat na mga kumbinasyon ng mga serial pin na ito kung saan ang Serail 0 ay naglalaman ng RX (0) at TX (1), ang Serial 1 ay naglalaman ng TX (18) at RX (19), ang Serial 2 ay naglalaman ng TX (16) at RX (17), at ang Serial 3 ay naglalaman ng TX (14) at RX (15).
  • Mga Panlabas na Pagkagambala ==> Anim na mga pin ang ginagamit para sa paglikha ng mga panlabas na pagkagambala ie makagambala sa 0 (0), makagambala 1 (3), makagambala 2 (21), makagambala 3 (20), makagambala 4 (19), makagambala 5 (18). Ang mga pin na ito ay gumagawa ng mga nakakagambala sa pamamagitan ng isang bilang ng mga paraan hal hal. Pagbibigay ng mababang halaga, pagtaas o pagbagsak gilid o pagbabago ng halaga sa mga nakakagambala na mga pin.
  • LED ==> Ang board na ito ay may built-in na LED na konektado sa digital pin 13. Ang mataas na halaga sa pin na ito ay magpapasara sa LED at MABABANG halaga ay papatayin ito.
  • AREF ==> Ang AREF ay nangangahulugang Analog Reference Voltage na isang boltahe ng sanggunian para sa mga input ng analog.
  • Mga analog na Pins ==> Mayroong 16 na mga analog na pin na isinasama sa board na may label na A0 hanggang A15. Mahalagang tandaan na ang lahat ng mga analog na pin na ito ay maaaring magamit bilang mga digital I / O na pin. Ang bawat analog pin ay may kasamang 10-bit na resolusyon. Ang mga pin na ito ay maaaring masukat mula sa lupa hanggang 5V. Gayunpaman, ang mas mataas na halaga ay maaaring mabago gamit ang pagpapaandar ng AREF at analogReferensi ().
  • I2C ==> Dalawang pin 20 at 21 ang sumusuporta sa komunikasyon sa I2C kung saan ang 20 ay kumakatawan sa SDA (Serial Data Line na pangunahing ginagamit para sa paghawak ng data) at ang 21 ay kumakatawan sa SCL (Serial Clock Line na pangunahing ginagamit para sa pagbibigay ng data ng pagsabay sa pagitan ng mga aparato)
  • SPI Communication ==> Ang SPI ay nangangahulugang Serial Peripheral Interface na ginagamit para sa paghahatid ng data sa pagitan ng controller at iba pang mga sangkap ng peripheral. Apat na mga pin ibig sabihin 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) ay ginagamit para sa komunikasyon ng SPI.

Hakbang 5: Arduino IDE

Narito ipinapalagay ko na na-install mo na ang Arduino IDE.

1. I-download ang kinakailangang library na ibinigay sa ibaba

TinyGPS lib

2. Pagkatapos i-download ito. I-extract ito at ilipat ito sa folder C: / Users / … / Mga Dokumento / Arduino / library na tiyakin na walang (-).

3. Buksan ang Arduino IDE at kopyahin ang code mula sa seksyon ng programa.

4. Pagkatapos piliin ang board para sa na pumunta sa Tools ==> Boards ==> piliin ang board dito ginagamit namin ang Arduino Mega 2560

5. Matapos ang pagpili ng board piliin ang port para sa na pumunta sa Tools ==> Mga Port

6. Matapos piliin ang upload ng board at port click.

7. Kapag na-upload ang code bukas na serial terminal upang makita ang output.

Hakbang 6: Mga Koneksyon

Arduino MEGA ==> NEO-6M GPS

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

Maaari mo ring gamitin ang Serial2 o Serial3 sa halip na Serial1

Inirerekumendang: