Мазмұны:

GPS модулі бар Arduino Mega интерфейсі (Neo-6M): 8 қадам
GPS модулі бар Arduino Mega интерфейсі (Neo-6M): 8 қадам

Бейне: GPS модулі бар Arduino Mega интерфейсі (Neo-6M): 8 қадам

Бейне: GPS модулі бар Arduino Mega интерфейсі (Neo-6M): 8 қадам
Бейне: GPS/GLONASS модуль для Arduino/Piranha 2024, Қараша
Anonim
GPS модулі бар Arduino Mega интерфейсі (Neo-6M)
GPS модулі бар Arduino Mega интерфейсі (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 қондырғысы басқа ақпаратты есептей алады, мысалы

  • Жылдамдық
  • Мойынтірек
  • Бақылау
  • Саяхат дистанциясы
  • Баратын жерге дейінгі қашықтық

Сигнал дегеніміз не

GPS спутниктері кем дегенде 2 қуатты радио сигналын жібереді. Сигналдар көру сызығы бойынша өтеді, яғни олар бұлттар, шыны мен пластиктен өтеді, бірақ ғимараттар мен таулар сияқты қатты заттардың көпшілігінен өтпейді. Дегенмен, қазіргі заманғы қабылдағыштар сезімтал және әдетте үйлерді бақылай алады. GPS сигналы 3 түрлі ақпаратты қамтиды

Жалған кездейсоқ код

Бұл ID ақпаратты қай спутник жіберетінін анықтайтын код. Құрылғының спутниктік бетінде сигналдарды қандай спутниктерден алатынын көруге болады.

Эфемерид деректері

Ephemeris деректері спутниктің орнын анықтау үшін қажет және спутниктің денсаулығы, қазіргі күні мен уақыты туралы маңызды ақпарат береді.

Альманах деректері

Альманах деректері GPS қабылдағышына күндізгі уақытта кез келген уақытта GPS спутнигінің қай жерде болуы керектігін айтады және сол спутниктің және жүйенің кез келген басқа спутнигінің орбиталық ақпаратын көрсетеді.

3-қадам: Neo-6M GPS модулі

NEO-6M GPS модулі төмендегі суретте көрсетілген. Ол сыртқы антеннамен бірге келеді және тақырып түйреуіштерімен бірге келмейді. Сондықтан оны дәнекерлеу қажет болады.

NEO-6M GPS модуліне шолу

NEO-6M GPS чипі

Модульдің жүрегі-u-blox компаниясының NEO-6M GPS чипі. Ол 50 каналда 22 спутникті қадағалай алады және саланың ең жоғары сезімталдығына жетеді, яғни -161 дБ қадағалау, тек 45мА жеткізу тогын тұтынады. U-blox 6 позициялау қозғалтқышы сонымен қатар 1 секундқа жетпейтін уақытты түзетуге (TTFF) ие. Чип ұсынатын ең жақсы мүмкіндіктердің бірі - қуатты үнемдеу режимі (PSM). Ол ресивердің бөліктерін іріктеп қосу мен өшіру арқылы жүйенің энергия шығынын азайтуға мүмкіндік береді. Бұл модульдің энергия шығынын 11 мА дейін күрт азайтады, бұл GPS сағаты сияқты қуатқа сезімтал қосымшалар үшін жарамды. NEO-6M GPS чипінің қажетті түйреуіштері 0,1 дюймдік тақырыптарға бөлінген. Бұл UART арқылы микроконтроллермен байланысу үшін қажет түйреуіштерді қамтиды.

Ескертпе:- Модуль 4800bps-тен 230400bps-ке дейінгі беру жылдамдығын қолдайды, әдепкі бойынша 9600.

Жарық диодты индикатордың орналасуын анықтау

NEO-6M GPS модулінде Position Fix күйін көрсететін жарық диоды бар. Ол қандай күйге байланысты әр түрлі жылдамдықпен жыпылықтайды

  1. Жыпылықтау жоқ ==> бұл жер серіктерін іздеуді білдіреді
  2. Әр 1 секунд сайын жыпылықтау - Позицияны түзету табылғанын білдіреді

3.3V LDO реттегіші

NEO-6M чипінің жұмыс кернеуі 2,7-ден 3,6В-қа дейін. Бірақ, модуль MICREL MIC5205 3V3 өте төмен түсу реттегішімен келеді. Логикалық түйреуіштер де 5 вольтқа төзімді, сондықтан біз оны Arduino немесе кез келген 5В логикалық микроконтроллерге логикалық деңгейдің түрлендіргішінсіз оңай қосамыз.

Батарея және EEPROM

Модуль HK24C32 екі сымды EEPROM сериясымен жабдықталған. Оның көлемі 4 КБ және NEO-6M чипіне I2C арқылы қосылған, модульде суперконденсатор ретінде жұмыс істейтін қайта зарядталатын батырмалы батарея бар.

Батареямен бірге EEPROM аккумуляторлық жедел жадты (BBR) сақтауға көмектеседі. BBR сағаттық деректерді, соңғы позиция деректерін (GNSS орбиталық деректер) және модуль конфигурациясын қамтиды. Бірақ бұл деректерді тұрақты сақтауға арналмаған.

Батарея сағатты және соңғы позицияны сақтай отырып, бірінші рет түзету уақыты (TTFF) 1 секундқа дейін айтарлықтай қысқарады. Бұл позицияны тезірек құлыптауға мүмкіндік береді.

Батареясыз GPS әрқашан суық түрде іске қосылады, сондықтан бастапқы GPS құлпы көп уақытты алады. Батарея қуатты қосқанда автоматты түрде зарядталады және екі аптаға дейін қуатсыз қалады.

Қою

GND - бұл жерге тұйықталу және оны Arduino -дағы GND түйреуішіне қосу керек

TxD (таратқыш) түйреуіші сериялық байланыс үшін қолданылады

RxD (Receiver) түйреуіші сериялық байланыс үшін қолданылады

VCC модульге қуат береді. Сіз оны Arduino -дағы 5В істікшеге тікелей қосуға болады

4 -қадам: Arduino Mega

Arduino-бұл ашық аппараттық құралдар мен бағдарламалық жасақтамаға негізделген ашық электронды платформа. Arduino тақталары кірістерді оқи алады - сенсордағы жарық, түймедегі саусақ немесе Twitter хабарламасы - және оны шығысқа айналдырады - қозғалтқышты қосады, жарық диодты қосады, желіде бір нәрсе жариялайды. Сіз тақтаға микроконтроллерге нұсқаулар жиынтығын жіберу арқылы не істеу керектігін айта аласыз. Ол үшін сіз Arduino бағдарламалау тілін (сымға негізделген) және өңдеуге негізделген Arduino бағдарламалық жасақтамасын (IDE) қолданасыз.

Ардуино Мега

Arduino Mega 2560 - бұл Atmega2560 негізіндегі микроконтроллер тақтасы.

  • Тақтада 54 сандық енгізу -шығару түйрегіші және 16 аналогты түйреуіш бар, олар бұл құрылғыны бірегей етеді және басқалардан ерекшелендіреді. 54 цифрлық енгізу -шығарудың 15 -і PWM (импульстік ені модуляциясы) үшін қолданылады.
  • Тақтаға жиілігі 16 МГц кристалды осциллятор қосылады.
  • Тақтада компьютерден тақтаға кодты қосуға және беруге арналған USB кабелі бар.
  • Тұрақты ток қуат ұясы тақтаны қуаттандыру үшін қолданылатын тақтамен қосылады.
  • Тақтада кернеуді реттеуге икемділікті қамтамасыз ететін екі кернеу реттегіші бар - 5В және 3.3В.
  • Қалпына келтіру түймесі және USART деп аталатын 4 аппараттық сериялық порт бар, ол байланыс орнатудың максималды жылдамдығын шығарады.
  • Тақтаны қуаттандырудың үш әдісі бар. Сіз USB кабелін пайдаланып тақтаны қуаттандырып, кодты тақтаға жібере аласыз немесе оны Vin тақтасының көмегімен немесе қуат ұясы немесе қамыр арқылы қосуға болады.

Ерекшеліктер

Қою

PIN сипаттамасы

  • 5V & 3.3V ==> Бұл түйін 5В айналасындағы шығыс реттелетін кернеуді қамтамасыз ету үшін қолданылады. Бұл реттелетін қуат көзі контроллер мен тақтадағы басқа компоненттерді күшейтеді. Оны Вин тақтасынан немесе USB кабелінен немесе басқа реттелетін 5В кернеуден алуға болады. Басқа кернеуді реттеу 3.3В түйреуішпен қамтамасыз етілген. Максималды қуат - 50 мА.
  • GND ==> Бортта 5 жерге арналған түйреуіш бар, бұл жобаға бірнеше жерге түйреуіш қажет болғанда пайдалы.
  • Қалпына келтіру ==> Бұл түйін тақтаны қалпына келтіру үшін қолданылады. Бұл түйреуішті LOW күйіне орнату тақтаны қалпына келтіреді.
  • Vin ==> Бұл тақтаға берілетін кіріс кернеуі 7В -тан 20В -қа дейін. Қуат ұясы беретін кернеуге осы түйреуіш арқылы қол жеткізуге болады. Дегенмен, осы түйреуіш арқылы тақтаға шығатын кернеу автоматты түрде 5В дейін орнатылады.
  • Сериялық байланыс ==> RXD және TXD - бұл сериялық деректерді жіберуге және қабылдауға арналған сериялық түйреуіштер, яғни Rx - деректерді қабылдау үшін қолданылатын Tx, ал деректерді беруді білдіреді. Бұл сериялық түйреуіштердің төрт комбинациясы бар, онда Serail 0 құрамында RX (0) және TX (1), 1 сериясында TX (18) және RX (19), 2 сериясында TX (16) және RX (17) бар, және 3 -серияда TX (14) және RX (15) бар.
  • Сыртқы үзілістер ==> Алты түйреуіш сыртқы үзіліс жасау үшін қолданылады, яғни 0 (0), 1 (3), 2 (21), 3 (20), 4 (19), 5 (18) үзу. Бұл түйреуіштер бірнеше жолмен үзіліс жасайды, яғни LOW мәнін қамтамасыз ету, көтерілу немесе құлау жиегі немесе үзу түйреуіштерінің мәнін өзгерту.
  • Жарықдиодты ==> Бұл тақта сандық істікшеге жалғанған кіріктірілген жарықдиодты 13-ке қосылады. Бұл түйреуіште жоғары мән жарық диодты қосады, ал LOW мәні оны өшіреді.
  • AREF ==> AREF аналогтық кірістерге арналған сілтеме кернеуі болып табылатын аналогтық сілтеме кернеуін білдіреді.
  • Аналогты түйреуіштер ==> А0 - А15 деп белгіленген тақтада 16 аналогты түйреуіш бар. Бұл аналогтық түйреуіштердің барлығын цифрлық енгізу -шығару түйреуіштері ретінде қолдануға болатынын ескеру маңызды. Әр аналогтық түйреуіш 10-биттік ажыратымдылықпен келеді. Бұл түйреуіштер жерден 5В дейін өлшей алады. Дегенмен, жоғарғы мәнді AREF және analogReference () функциясы арқылы өзгертуге болады.
  • I2C ==> Екі түйреуіш 20 және 21 I2C байланысын қолдайды, онда 20 SDA (сериялық деректер желісі, негізінен деректерді ұстау үшін қолданылады) және 21 SCL (сериялық сағат желісі негізінен құрылғылар арасында деректерді синхрондауды қамтамасыз ету үшін қолданылады) білдіреді.
  • SPI байланысы ==> SPI контроллер мен басқа перифериялық қондырғылардың компоненттері арасында деректерді беру үшін қолданылатын сериялық перифериялық интерфейсті білдіреді. SPI байланысы үшін төрт түйреуіш, яғни 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) қолданылады.

5 -қадам: Arduino IDE

Менің ойымша, сіз Arduino IDE орнатқансыз.

1. Төменде берілген қажетті кітапхананы жүктеңіз

TinyGPS lib

2. Оны жүктегеннен кейін. Оны шығарып алып, C: / Users \… / Documents / Arduino / library қалтасына жылжытыңыз (-) жоқ екеніне көз жеткізіңіз.

3. Arduino IDE ашыңыз және кодты бағдарлама бөлімінен көшіріңіз.

4. Содан кейін тақтаны таңдаңыз Құралдар ==> Тақталар ==> мұнда тақтаны таңдаңыз, біз мұнда Arduino Mega 2560 қолданамыз.

5. Тақтаны таңдағаннан кейін портты таңдаңыз, онда Құралдар ==> Порттар тармағына өтіңіз

6. Тақта мен портты таңдағаннан кейін жүктеуді нұқыңыз.

7. Код жүктелгеннен кейін шығуды көру үшін сериялық терминалды ашыңыз.

6 -қадам: Қосылымдар

Arduino MEGA ==> NEO-6M GPS

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

Serial1 орнына Serial2 немесе Serial3 қолдануға болады

Ұсынылған: