Съдържание:

Интерфейс Arduino Mega с GPS модул (Neo-6M): 8 стъпки
Интерфейс Arduino Mega с GPS модул (Neo-6M): 8 стъпки

Видео: Интерфейс Arduino Mega с GPS модул (Neo-6M): 8 стъпки

Видео: Интерфейс Arduino Mega с GPS модул (Neo-6M): 8 стъпки
Видео: LDmicro 11: Последовательный контроллер температуры с ЖК-дисплеем (лестничное программирование ПЛК микроконтроллера с помощью LDmicro) 2024, Юни
Anonim
Интерфейс Arduino Mega с GPS модул (Neo-6M)
Интерфейс Arduino Mega с GPS модул (Neo-6M)

В този проект аз показах как да се свърже GPS модул (Neo-6M) с Arduino Mega. Библиотеката TinyGPS се използва за показване на данните за дължина и ширина, а TinyGPS ++ се използва за показване на ширина, дължина, надморска височина, скорост и брой сателити на серийния монитор.

Стъпка 1: Необходими компоненти

Хардуер

  • Arduino Mega ==> 30 долара
  • Neo-6M GPS модул ==> $ 30

Софтуер

Arduino IDE

Общата стойност на проекта е 60 долара

Стъпка 2: Информация за GPS

Какво е GPS

Глобалната система за позициониране (GPS) е сателитна навигационна система, съставена от най-малко 24 спътника. GPS работи при всякакви метеорологични условия, навсякъде по света, денонощно, без абонаментни такси или такси за настройка.

Как работи GPS

GPS сателитите обикалят Земята два пъти на ден по точна орбита. Всеки сателит предава уникален сигнал и орбитални параметри, които позволяват на GPS устройствата да декодират и изчислят точното местоположение на спътника. GPS приемниците използват тази информация и трилатерация, за да изчислят точното местоположение на потребителя. По същество GPS приемникът измерва разстоянието до всеки спътник с времето, необходимо за приемане на предаден сигнал. С измервания на разстояние от още няколко спътника, приемникът може да определи позицията на потребителя и да я покаже.

За да се изчисли вашата 2-D позиция (географска ширина и дължина) и движение на следата, GPS приемник трябва да бъде заключен към сигнала на поне 3 спътника. С видими 4 или повече спътника приемникът може да определи вашата 3-D позиция (географска ширина, дължина и надморска височина). Като цяло GPS приемник ще проследява 8 или повече спътника, но това зависи от времето на деня и къде се намирате на земята. След като бъде определена вашата позиция, GPS устройството може да изчисли друга информация, като напр

  • Скорост
  • Лагер
  • Проследяване
  • Trip dist
  • Разстояние до дестинацията

Какво е сигнал

GPS сателитите предават поне 2 радиосигнала с ниска мощност. Сигналите се движат по видимост, което означава, че ще преминават през облаци, стъкло и пластмаса, но няма да преминават през повечето твърди обекти, като сгради и планини. Съвременните приемници обаче са по -чувствителни и обикновено могат да проследяват къщи. GPS сигнал съдържа 3 различни типа информация

Псевдо случаен код

Това е идентификационен номер код, който идентифицира кой сателит предава информация. Можете да видите от кои сателити получавате сигнали на сателитната страница на вашето устройство.

Данни от ефемерида

Данните от ефемерида са необходими за определяне на позицията на сателит и дават важна информация за здравето на сателита, текущата дата и час.

Данни от алманаха

Данните от алманаха казват на GPS приемника къде трябва да бъде всеки GPS сателит по всяко време през деня и показват орбиталната информация за този спътник и всеки друг спътник в системата.

Стъпка 3: Neo-6M GPS модул

GPS модулът NEO-6M е показан на фигурата по-долу. Той се доставя с външна антена и не идва с щифтове за заглавки. Така че ще трябва да го запоите.

Преглед на GPS модула NEO-6M

NEO-6M GPS чип

Сърцето на модула е NEO-6M GPS чип от u-blox. Той може да проследява до 22 спътника по 50 канала и постига най -високото ниво на чувствителност в индустрията, т.е. -161 dB проследяване, като същевременно консумира само 45mA захранващ ток. Позициониращият двигател u-blox 6 също може да се похвали с Time-To-First-Fix (TTFF) от по-малко от 1 секунда. Една от най -добрите характеристики на чипа е Power Save Mode (PSM). Позволява намаляване на системната консумация на енергия чрез избирателно включване и изключване на части на приемника. Това драстично намалява консумацията на енергия на модула само до 11mA, което го прави подходящ за приложения, чувствителни към захранването, като GPS ръчен часовник. Необходимите пинове за данни на NEO-6M GPS чип са разбити на заглавия с височина 0,1 ″. Това включва пинове, необходими за комуникация с микроконтролер през UART.

Забележка:- Модулът поддържа скорост на предаване от 4800bps до 230400bps със скорост по подразбиране от 9600.

LED индикатор за фиксиране на позицията

На GPS модула NEO-6M има светодиод, който показва състоянието на Fix Fix. Ще мига с различни темпове в зависимост от състоянието, в което се намира

  1. No Blinking ==> означава, че търси сателити
  2. Мигайте на всеки 1 секунди - означава, че е намерено Поправяне на позицията

3.3V LDO регулатор

Работното напрежение на чипа NEO-6M е от 2.7 до 3.6V. Но модулът се предлага с регулатор 3V3 с изключително ниско отпадане MIC5205 от MICREL. Логическите щифтове също са толерантни към 5 волта, така че можем лесно да го свържем с Arduino или всеки 5V логически микроконтролер, без да използваме никакъв преобразувател на логическо ниво.

Батерия и EEPROM

Модулът е оборудван с HK24C32 двупроводен сериен EEPROM. Той е с размер 4KB и е свързан към чипа NEO-6M чрез I2C. Модулът съдържа и акумулаторна батерия с бутон, която действа като суперкондензатор.

EEPROM заедно с батерията помага да се запази поддържаната от батерията RAM (BBR). BBR съдържа данни за часовника, най -новите данни за местоположението (данни за орбита на GNSS) и конфигурация на модула. Но това не е предназначено за постоянно съхранение на данни.

Тъй като батерията запазва часовника и последната позиция, времето за първо фиксиране (TTFF) значително намалява до 1 секунди. Това позволява много по -бързо заключване на позицията.

Без батерията GPS винаги стартира студено, така че първоначалното заключване на GPS отнема повече време. Батерията се зарежда автоматично при подаване на захранване и поддържа данни до две седмици без захранване.

Pinout

GND е заземяващ щифт и трябва да бъде свързан с GND щифт на Arduino

TxD (Transmitter) щифт се използва за серийна комуникация

RxD (приемник) щифт се използва за серийна комуникация

VCC захранва модула. Можете директно да го свържете към 5V щифта на Arduino

Стъпка 4: Arduino Mega

Arduino е електронна платформа с отворен код, базирана на лесен за използване хардуер и софтуер. Платките Arduino могат да четат входове - светлина върху сензор, пръст върху бутон или съобщение в Twitter - и да го превърнат в изход - активиране на мотор, включване на светодиод, публикуване на нещо онлайн. Можете да кажете на дъската си какво да прави, като изпратите набор от инструкции към микроконтролера на дъската. За целта използвате езика за програмиране Arduino (базиран на Wiring) и софтуера Arduino (IDE), базиран на Processing.

Arduino Mega

Arduino Mega 2560 е микроконтролерна платка, базирана на Atmega2560.

  • На борда има 54 цифрови входно/изходни пина и 16 аналогови пина, които правят това устройство уникално и се откроява от другите. От 54 цифрови входа/изхода 15 се използват за ШИМ (широтно -импулсна модулация).
  • На дъската е добавен кристален осцилатор с честота 16MHz.
  • Платката се доставя с USB кабелен порт, който се използва за свързване и прехвърляне на код от компютър към платката.
  • Жакът за захранване с постоянен ток е свързан с платката, която се използва за захранване на платката.
  • Платката се предлага с два регулатора на напрежение, т.е. 5V и 3.3V, които осигуряват гъвкавост за регулиране на напрежението според изискванията.
  • Има бутон за нулиране и 4 хардуерен сериен порт, наречен USART, който произвежда максимална скорост за настройка на комуникацията.
  • Има три начина за захранване на дъската. Можете или да използвате USB кабел за захранване на платката и да прехвърлите кода към платката, или можете да я включите с помощта на Vin на платката или чрез Power jack или batter.

Спецификации

Pinout

Описание на щифта

  • 5V & 3.3V ==> Този щифт се използва за осигуряване на изходно регулирано напрежение около 5V. Това регулирано захранване захранва контролера и други компоненти на платката. Може да се получи от Vin на платката или USB кабел или друго регулирано 5V напрежение. Докато друго регулиране на напрежението се осигурява от 3.3V щифт. Максималната мощност, която може да извлече, е 50 mA.
  • GND ==> На борда има 5 заземителни щифта, което го прави полезен, когато за проекта са необходими повече от един заземяващи щифтове.
  • Нулиране ==> Този щифт се използва за нулиране на платката. Задаването на този щифт на LOW ще нулира платката.
  • Vin ==> Това е входното напрежение, подадено към платката, което варира от 7V до 20V. Напрежението, осигурено от гнездото за захранване, може да бъде достъпно през този щифт. Изходното напрежение през този щифт към платката обаче автоматично ще бъде настроено до 5V.
  • Последователна комуникация ==> RXD и TXD са серийните пинове, използвани за предаване и получаване на серийни данни, т.е. Rx представлява предаването на данни, докато Tx се използва за получаване на данни. Използват се четири комбинации от тези серийни щифтове, където Serail 0 съдържа RX (0) и TX (1), Serial 1 съдържа TX (18) и RX (19), Serial 2 съдържа TX (16) и RX (17), и сериал 3 съдържа TX (14) и RX (15).
  • Външни прекъсвания ==> Шест пина се използват за създаване на външни прекъсвания, т.е. прекъсване 0 (0), прекъсване 1 (3), прекъсване 2 (21), прекъсване 3 (20), прекъсване 4 (19), прекъсване 5 (18). Тези щифтове произвеждат прекъсвания по няколко начина, т.е. осигуряване на НИСКА стойност, нарастващ или спадащ ръб или промяна на стойността на прекъсващите щифтове.
  • LED ==> Тази платка се доставя с вграден светодиод, свързан към цифров щифт 13. ВИСОКАТА стойност на този щифт ще включи светодиода и НИСКАТА стойност ще го изключи.
  • AREF ==> AREF означава Аналогово референтно напрежение, което е референтно напрежение за аналогови входове.
  • Аналогови щифтове ==> На платката са включени 16 аналогови пина, обозначени като A0 до A15. Важно е да се отбележи, че всички тези аналогови щифтове могат да се използват като цифрови входно -изходни щифтове. Всеки аналогов щифт идва с 10-битова резолюция. Тези щифтове могат да измерват от земята до 5V. Горната стойност обаче може да бъде променена с помощта на функцията AREF и analogReference ().
  • I2C ==> Два пина 20 и 21 поддържат I2C комуникация, където 20 представлява SDA (Serial Data Line, използвана предимно за съхраняване на данни), а 21 представлява SCL (Serial Clock Line, използвана предимно за осигуряване на синхронизация на данни между устройствата)
  • SPI Communication ==> SPI означава Serial Peripheral Interface, използван за предаване на данни между контролера и други периферни компоненти. Четири пина, т.е. 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) се използват за SPI комуникация.

Стъпка 5: Arduino IDE

Тук предполагам, че вече сте инсталирали Arduino IDE.

1. Изтеглете необходимата библиотека, дадена по -долу

TinyGPS lib

2. След като го изтеглите. Извлечете го и го преместете в папката C: / Users \… / Documents / Arduino / libraries, за да се уверите, че няма (-).

3. Отворете IDE на Arduino и копирайте кода от секцията с програми.

4. След това изберете дъска за това отидете на Инструменти ==> Платки ==> изберете дъска тук използваме Arduino Mega 2560

5. След като изберете борда, изберете порт за това, отидете на Инструменти ==> Портове

6. След като изберете платка и порт, щракнете върху качване.

7. След като кодът бъде качен, отворете серийния терминал, за да видите изхода.

Стъпка 6: Връзки

Arduino MEGA ==> NEO-6M GPS

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

Можете също да използвате Serial2 или Serial3 вместо Serial1

Препоръчано: