Cuprins:

Interfață Arduino Mega cu modul GPS (Neo-6M): 8 pași
Interfață Arduino Mega cu modul GPS (Neo-6M): 8 pași

Video: Interfață Arduino Mega cu modul GPS (Neo-6M): 8 pași

Video: Interfață Arduino Mega cu modul GPS (Neo-6M): 8 pași
Video: LDmicro 11: Serial LCD Temperature Controller (Microcontroller PLC Ladder Programming with LDmicro) 2024, Iunie
Anonim
Interfață Arduino Mega cu modul GPS (Neo-6M)
Interfață Arduino Mega cu modul GPS (Neo-6M)

În acest proiect, am arătat cum să interfațez un modul GPS (Neo-6M) cu Arduino Mega. Biblioteca TinyGPS este utilizată pentru a afișa datele Longitudine și Latitudine, iar TinyGPS ++ este utilizată pentru a afișa Latitudine, Longitudine, Altitudine, Viteză și numărul de sateliți pe monitorul serial.

Pasul 1: Componente necesare

Hardware

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

Software

IDE Arduino

Costul total al proiectului este de 60 USD

Pasul 2: Informații despre GPS

Ce este GPS-ul

Sistemul de poziționare globală (GPS) este un sistem de navigație prin satelit format din cel puțin 24 de sateliți. GPS-ul funcționează în orice condiții meteorologice, oriunde în lume, 24 de ore pe zi, fără taxe de abonament sau taxe de configurare.

Cum funcționează GPS

Sateliții GPS înconjoară Pământul de două ori pe zi pe o orbită precisă. Fiecare satelit transmite un semnal unic și parametri orbitali care permit dispozitivelor GPS să decodeze și să calculeze locația exactă a satelitului. Receptoarele GPS folosesc aceste informații și trilaterare pentru a calcula locația exactă a unui utilizator. În esență, receptorul GPS măsoară distanța până la fiecare satelit în funcție de timpul necesar pentru a primi un semnal transmis. Cu măsurători de distanță de la câțiva sateliți, receptorul poate determina poziția unui utilizator și o poate afișa.

Pentru a vă calcula poziția 2-D (latitudine și longitudine) și mișcarea pistei, un receptor GPS trebuie blocat pe semnalul a cel puțin 3 sateliți. Având în vedere 4 sau mai mulți sateliți, receptorul vă poate determina poziția 3-D (latitudine, longitudine și altitudine). În general, un receptor GPS va urmări 8 sau mai mulți sateliți, dar asta depinde de ora din zi și de locul în care vă aflați pe pământ. Odată ce poziția dvs. a fost stabilită, unitatea GPS poate calcula alte informații, cum ar fi

  • Viteză
  • Ținând
  • Urmări
  • Distanța de călătorie
  • Distanța până la destinație

Ce este semnalul

Sateliții GPS transmit cel puțin 2 semnale radio de mică putere. Semnalele se deplasează pe linia vizuală, ceea ce înseamnă că vor trece prin nori, sticlă și plastic, dar nu vor trece prin majoritatea obiectelor solide, cum ar fi clădirile și munții. Cu toate acestea, receptoarele moderne sunt mai sensibile și de obicei pot urmări prin case. Un semnal GPS conține 3 tipuri diferite de informații

Cod pseudorandom

Este un I. D. cod care identifică ce satelit transmite informații. Puteți vedea din ce sateliți primiți semnale de pe pagina de satelit a dispozitivului.

Date despre efemeride

Datele despre efemeride sunt necesare pentru a determina poziția unui satelit și oferă informații importante despre starea de sănătate a unui satelit, data și ora curente.

Date despre almanah

Datele almanahului indică receptorului GPS unde ar trebui să fie fiecare satelit GPS în orice moment al zilei și arată informațiile orbitale pentru acel satelit și orice alt satelit din sistem.

Pasul 3: Modul GPS Neo-6M

Modulul GPS NEO-6M este prezentat în figura de mai jos. Acesta vine cu o antenă externă și nu vine cu pini de antet. Deci va trebui să-l lipiți.

Prezentare generală a modulului GPS NEO-6M

Cip GPS NEO-6M

Inima modulului este un cip GPS NEO-6M de la u-blox. Poate urmări până la 22 de sateliți pe 50 de canale și atinge cel mai înalt nivel de sensibilitate din industrie, adică urmărirea -161 dB, consumând în același timp doar 45mA curent de alimentare. Motorul de poziționare u-blox 6 are, de asemenea, un Time-To-First-Fix (TTFF) de sub 1 secundă. Una dintre cele mai bune caracteristici oferite de cip este Modul de economisire a energiei (PSM). Permite o reducere a consumului de energie al sistemului prin pornirea și oprirea selectivă a părților receptorului. Acest lucru reduce dramatic consumul de energie al modulului la doar 11mA, făcându-l potrivit pentru aplicații sensibile la energie, cum ar fi ceasul de mână GPS. Pinii de date necesari ai cipului GPS NEO-6M sunt împărțiți la un header de pitch de 0,1 ″. Aceasta include pini necesari pentru comunicarea cu un microcontroler prin UART.

Notă: - Modulul acceptă rata de transmisie de la 4800bps la 230400bps, cu o transmisie implicită de 9600.

Indicator LED poziție fixă

Există un LED pe modulul GPS NEO-6M care indică starea poziției Fix. Va clipi la diferite rate în funcție de starea în care se află

  1. Fără intermitent ==> înseamnă căută sateliți
  2. Clipește la fiecare 1s - înseamnă că se găsește Fixarea poziției

Regulator LDO de 3,3V

Tensiunea de funcționare a cipului NEO-6M este de la 2,7 la 3,6V. Însă modulul vine cu regulator MIC5205 ultra-low dropout 3V3 de la MICREL. Știfturile logice sunt, de asemenea, tolerante la 5 volți, deci îl putem conecta cu ușurință la un Arduino sau la orice microcontroler logic de 5V fără a utiliza niciun convertor de nivel logic.

Baterie și EEPROM

Modulul este echipat cu o EEPROM serial HK24C32 cu două fire. Are o dimensiune de 4KB și este conectat la cipul NEO-6M prin I2C. Modulul conține, de asemenea, o baterie reîncărcabilă cu butoane care acționează ca un super-condensator.

O EEPROM împreună cu bateria ajută la păstrarea memoriei RAM (BBR). BBR conține date de ceas, cele mai recente date de poziție (date de orbită GNSS) și configurația modulului. Dar nu este destinat stocării permanente a datelor.

Deoarece bateria păstrează ceasul și ultima poziție, timpul pentru prima remediere (TTFF) se reduce semnificativ la 1s. Acest lucru permite blocări de poziție mult mai rapide.

Fără baterie, GPS-ul pornește întotdeauna la rece, astfel încât blocarea GPS inițială necesită mai mult timp. Bateria se încarcă automat la alimentarea cu energie și păstrează datele până la două săptămâni fără alimentare.

Pinout

GND este pinul de masă și trebuie conectat la pinul GND de pe Arduino

Pinul TxD (Transmițător) este utilizat pentru comunicarea în serie

Pinul RxD (Receiver) este utilizat pentru comunicarea serială

VCC furnizează energie pentru modul. Îl puteți conecta direct la pinul de 5V de pe Arduino

Pasul 4: Arduino Mega

Arduino este o platformă electronică open-source bazată pe hardware și software ușor de utilizat. Plăcile Arduino sunt capabile să citească intrările - lumină pe un senzor, un deget pe un buton sau un mesaj Twitter - și să-l transforme într-o ieșire - activând un motor, pornind un LED, publicând ceva online. Puteți spune tabloului dvs. ce trebuie să faceți trimițând un set de instrucțiuni microcontrolerului de pe placă. Pentru a face acest lucru, utilizați limbajul de programare Arduino (bazat pe cablare) și software-ul Arduino (IDE), bazat pe procesare.

Arduino Mega

Arduino Mega 2560 este o placă de microcontroler bazată pe Atmega2560.

  • Există 54 de pini I / O digitale și 16 pini analogici încorporați pe placă, care fac acest dispozitiv unic și se deosebesc de alții. Din 54 I / O digitale, 15 sunt utilizați pentru PWM (modularea lățimii impulsurilor).
  • Un oscilator de cristal cu frecvență de 16 MHz este adăugat pe placă.
  • Placa vine cu un port USB prin cablu care este utilizat pentru conectarea și transferul codului de pe computer pe placă.
  • Mufa de curent continuu este cuplată cu placa utilizată pentru alimentarea plăcii.
  • Placa vine cu două regulatoare de tensiune, adică 5V și 3,3V, care oferă flexibilitatea de a regla tensiunea conform cerințelor.
  • Există un buton de resetare și un port serial cu 4 hardware numit USART care produce o viteză maximă pentru configurarea comunicării.
  • Există trei moduri de a alimenta placa. Puteți folosi un cablu USB pentru a alimenta placa și a transfera codul pe placă sau îl puteți alimenta folosind Vinul plăcii sau prin mufa sau bateria de alimentare.

Specificații

Pinout

Descrierea pinului

  • 5V și 3.3V ==> Acest pin este utilizat pentru a furniza tensiune reglată la ieșire în jurul valorii de 5V. Această sursă de alimentare reglementată alimentează controlerul și alte componente de pe placă. Poate fi obținut de la vinul plăcii sau cablului USB sau de la o altă sursă de tensiune reglementată de 5V. În timp ce o altă reglare a tensiunii este asigurată de pinul de 3,3V. Puterea maximă pe care o poate consuma este de 50mA.
  • GND ==> Există 5 pini de împământare disponibili pe placă, ceea ce îl face util atunci când sunt necesari mai mulți pini de împământare pentru proiect.
  • Reset ==> Acest pin este folosit pentru a reseta placa. Setarea acestui pin la LOW va reseta placa.
  • Vin ==> Este tensiunea de intrare furnizată plăcii care variază de la 7V la 20V. Tensiunea furnizată de mufa de alimentare poate fi accesată prin acest pin. Cu toate acestea, tensiunea de ieșire prin acest pin către placă va fi setată automat la 5V.
  • Comunicare în serie ==> RXD și TXD sunt pinii seriali utilizați pentru a transmite și primi date seriale, adică Rx reprezintă transmiterea datelor în timp ce Tx este utilizat pentru a primi date. Există patru combinații ale acestor știfturi seriale în care Serail 0 conține RX (0) și TX (1), seria 1 conține TX (18) și RX (19), seria 2 conține TX (16) și RX (17), iar seria 3 conține TX (14) și RX (15).
  • Întreruperi externe ==> Șase pini sunt utilizați pentru a crea întreruperi externe, adică întrerupere 0 (0), întrerupere 1 (3), întrerupere 2 (21), întrerupere 3 (20), întrerupere 4 (19), întrerupere 5 (18). Acești pini produc întreruperi prin mai multe moduri, adică oferind valoare LOW, margine crescătoare sau descendentă sau schimbând valoarea pinilor de întrerupere.
  • LED ==> Această placă vine cu LED încorporat conectat la pinul digital 13. Valoarea HIGH a acestui pin va aprinde LED-ul, iar valoarea LOW îl va opri.
  • AREF ==> AREF înseamnă Analog Reference Voltage, care este o tensiune de referință pentru intrările analogice.
  • Pinii analogici ==> Există 16 pinuri analogice încorporate pe placa etichetate ca A0 la A15. Este important să rețineți că toți acești pini analogici pot fi folosiți ca pini de I / O digitale. Fiecare pin analogic are o rezoluție de 10 biți. Acești pini pot măsura de la sol la 5V. Cu toate acestea, valoarea superioară poate fi modificată utilizând funcția AREF și analogReference ().
  • I2C ==> Doi pini 20 și 21 acceptă comunicarea I2C în care 20 reprezintă SDA (Linia de date seriale utilizată în principal pentru păstrarea datelor) și 21 reprezintă SCL (Linia de ceas serial utilizată în principal pentru furnizarea sincronizării datelor între dispozitive)
  • Comunicare SPI ==> SPI înseamnă Serial Peripheral Interface, utilizată pentru transmiterea datelor între controler și alte componente periferice. Patru pini, adică 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) sunt utilizați pentru comunicarea SPI.

Pasul 5: Arduino IDE

Aici presupun că ați instalat deja Arduino IDE.

1. Descărcați biblioteca necesară prezentată mai jos

TinyGPS lib

2. După descărcare. Extrageți-l și mutați-l în folderul C: / Users \… / Documents / Arduino / bibliotecile asigurați-vă că nu există (-).

3. Deschideți IDE-ul Arduino și copiați codul din secțiunea programului.

4. Apoi selectați placa pentru care accesați Instrumente ==> Placi ==> selectați placa aici folosim Arduino Mega 2560

5. După ce selectați placa, selectați portul pentru care accesați Instrumente ==> Porturi

6. După ce selectați placa și portul, faceți clic pe Încărcare.

7. Odată încărcat codul, deschideți terminalul serial pentru a vedea ieșirea.

Pasul 6: Conexiuni

Arduino MEGA ==> GPS NEO-6M

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

De asemenea, puteți utiliza Serial2 sau Serial3 în loc de Serial1

Recomandat: