Мазмуну:

Interface Arduino Mega with GPS Module (Neo-6M): 8 кадам
Interface Arduino Mega with GPS Module (Neo-6M): 8 кадам

Video: Interface Arduino Mega with GPS Module (Neo-6M): 8 кадам

Video: Interface Arduino Mega with GPS Module (Neo-6M): 8 кадам
Video: LDmicro 14: ЖК-дисплей I2C и часы реального времени DS3231 (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, Июнь
Anonim
Interface Arduino Mega with GPS Module (Neo-6M)
Interface Arduino Mega with GPS Module (Neo-6M)

Бул долбоордо мен GPS модулун (Neo-6M) Arduino Mega менен кантип интерфейс кылууну көрсөттүм. TinyGPS китепканасы Longitude жана Latitude маалыматтарын көрсөтүү үчүн колдонулат жана TinyGPS ++ сериялык монитордо Latitude, Longitude, Altitude, Speed жана спутниктердин санын көрсөтүү үчүн колдонулат.

1 -кадам: Компоненттер керек

Аппараттык

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

Программалык камсыздоо

Arduino IDE

Долбоордун жалпы баасы 60 доллар

2 -кадам: GPS жөнүндө маалымат

GPS деген эмне

Global Positioning System (GPS)-бул кеминде 24 спутниктен турган спутникке негизделген навигациялык система. GPS аба ырайынын каалаган шартында, дүйнөнүн каалаган жеринде, 24 саат бою, эч кандай жазылуу акысы же орнотуу акысы жок иштейт.

GPS кантип иштейт

GPS спутниктери так орбитада Жерди күнүнө эки жолу айланышат. Ар бир спутник уникалдуу сигналды жана орбиталык параметрлерди берет, бул GPS түзмөктөрүнө спутниктин так жайгашкан жерин чечүүгө жана эсептөөгө мүмкүндүк берет. GPS кабылдагычтар бул маалыматты жана трилатерацияны колдонуучунун так жайгашкан жерин эсептөө үчүн колдонушат. Негизи, GPS кабыл алгыч ар бир спутникке чейинки аралыкты сигналды кабыл алууга кеткен убакытка жараша өлчөйт. Дагы бир нече спутниктен аралыкты өлчөө менен, алуучу колдонуучунун абалын аныктап, аны көрсөтө алат.

Сиздин 2-D позицияңызды (кеңдик жана узундук) жана тректи эсептөө үчүн, GPS кабыл алгыч кеминде 3 спутниктин сигналына кулпуланышы керек. 4 же андан көп спутниктер каралып жатканда, ресивер сиздин 3-D позицияңызды (кеңдик, узундук жана бийиктик) аныктай алат. Жалпысынан алганда, GPS кабылдагычы 8 же андан көп спутниктерди көзөмөлдөйт, бирок бул күндүн убактысына жана жер жүзүндө жүргөн жериңизге жараша болот. Сиздин позицияңыз аныкталгандан кийин, GPS бирдиги башка маалыматты эсептей алат, мисалы

  • Ылдамдык
  • Bearing
  • Track
  • Trip dist
  • Көздөгөнгө чейинки аралык

Сигнал деген эмне

GPS спутниктери кеминде 2 аз кубаттуу радио сигналын өткөрүшөт. Сигналдар көздүн карегиндей өтүшөт, башкача айтканда, алар булуттар, айнек жана пластмассадан өтүшөт, бирок имараттар жана тоолор сыяктуу катуу нерселердин арасынан өтө алышпайт. Бирок, заманбап ресиверлер көбүрөөк сезимтал жана адатта үйлөрдү аралай алышат. GPS сигналы 3 түрдүү маалыматты камтыйт

Жасалма код

Бул ID. кайсы спутник маалыматты өткөрүп жатканын аныктоочу код. Сиз кайсы спутниктерден сигналдарды алып жатканыңызды түзмөгүңүздүн спутник баракчасынан көрө аласыз.

Ephemeris маалыматтары

Ephemeris маалыматтары спутниктин ордун аныктоо үчүн керек жана спутниктин ден соолугу, учурдагы датасы жана убактысы жөнүндө маанилүү маалыматтарды берет.

Альманах маалыматы

Альманах маалыматы GPS алуучуга ар бир GPS спутниги күнү бою каалаган убакта болушу керектигин айтат жана ошол спутниктин жана системанын башка спутниктеринин орбиталык маалыматын көрсөтөт.

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

NEO-6M GPS модулу төмөнкү сүрөттө көрсөтүлгөн. Бул тышкы антенна менен келет жана баш казыктары менен келбейт. Андыктан аны ширетүү керек болот.

NEO-6M GPS модулуна сереп

NEO-6M GPS чипи

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

Эскертүү:- Модуль 4800bpsтан 230400bpsке чейинки ылдамдыкты колдойт, демейки 9600.

Position Fix LED көрсөткүчү

NEO-6M GPS модулунда Position Fix абалын көрсөтүүчү LED бар. Ал кандай абалда экендигине жараша ар кандай ылдамдыкта өчөт

  1. Жалт -жулт этпөө ==> спутниктерди издөө дегенди билдирет
  2. Ар бир 1 секундда көз ирмеңиз - Position Fix табылганын билдирет

3.3V LDO жөнгө салуучу

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

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

Модул HK24C32 эки зымдуу EEPROM менен жабдылган. Бул 4KB өлчөмүндө жана I2C аркылуу NEO-6M чипине туташкан. Ошондой эле модулда супер-конденсатордун ролун аткаруучу заряддалуучу баскыч батареясы бар.

Батарея менен бирге EEPROM батарейканы колдогон RAM (BBR) сактоого жардам берет. BBR сааттын маалыматын, акыркы позициянын маалыматын (GNSS орбитасынын маалыматы) жана модулдун конфигурациясын камтыйт. Бирок бул маалыматты туруктуу сактоо үчүн арналган эмес.

Батарея саатты жана акыркы абалын сактап калгандыктан, биринчи оңдоо убактысы (TTFF) 1с чейин кыскарат. Бул позицияны кыйла тез кулпулоого мүмкүндүк берет.

Батарейкасы жок GPS дайыма муздак башталышта, ошондуктан баштапкы GPS кулпусу көбүрөөк убакытты талап кылат. Батарея кубат колдонулганда автоматтык түрдө заряддалат жана маалыматты эки жумага чейин кубатсыз сактайт.

Кадап чыгып

GND - бул Жердин пини жана аны Arduinoдогу GND пинге туташтыруу керек

TxD (Transmitter) пини сериялык байланыш үчүн колдонулат

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

VCC модулга кубат берет. Сиз аны Arduinoдогу 5V пинге түз туташтыра аласыз

4 -кадам: Arduino Mega

Arduino-ачык булак электроника платформасы, колдонууга оңой аппараттык жана программалык камсыздоого негизделген. Arduino такталары кирүүлөрдү окуй алат - сенсордогу жарык, баскычтын манжасы же Twitter билдирүүсү - жана аны чыгууга айландыруу - моторду иштетүү, LEDди күйгүзүү, интернетте бир нерсе жарыялоо. Тактадагы микроконтроллерге көрсөтмөлөрдүн топтомун жөнөтүү менен тактаңызга эмне кылуу керек экенин айта аласыз. Бул үчүн сиз Arduino программалоо тилин (зымга негизделген) жана кайра иштетүүгө негизделген Arduino программасын (IDE) колдоносуз.

Arduino Mega

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

  • Тактага 54 санариптик I/O казыктары жана 16 аналогдук казыктар киргизилген, бул түзүлүш уникалдуу жана башкалардан айырмаланат. 54 санариптик I/O ичинен 15, PWM (импульстун туурасы модуляциясы) үчүн колдонулат.
  • Тактага 16 МГц жыштыктагы кристалл осциллятору кошулган.
  • Такта компьютерден тактага туташуу жана кодду өткөрүп берүү үчүн колдонулган USB кабель порту менен келет.
  • DC электр уячасы тактага кубат берүү үчүн колдонулган такта менен коштолот.
  • Такта эки чыңалуу жөнгө салуучу менен келет, башкача айтканда 5V жана 3.3V, бул чыңалууну талаптарга ылайык жөнгө салуу ийкемдүүлүгүн камсыздайт.
  • Кайра коюу баскычы жана байланышты орнотуу үчүн максималдуу ылдамдыкты чыгаруучу USART деп аталган 4 аппараттык сериялык порт бар.
  • Тактага кубат берүүнүн үч жолу бар. Тактага USB кодун колдонуп, кодду тактага өткөрүп берсеңиз болот, же Винди тактанын жардамы менен же Power jack же batter аркылуу иштете аласыз.

Мүнөздөмөлөр

Кадап чыгып

Pin Description

  • 5V & 3.3V ==> Бул пин 5V тегерегиндеги жөнгө салынуучу чыңалууну камсыз кылуу үчүн колдонулат. Бул жөнгө салынуучу энергия булагы контроллерди жана борттогу башка компоненттерди иштетет. Аны тактанын же USB кабелинин же башка жөнгө салынуучу 5В чыңалуусунан Винден алууга болот. Башка чыңалуу жөнгө салуу 3.3V пин менен камсыздалган. Ал тарта турган максималдуу күч 50 мА.
  • GND ==> Долбоордо бирден ашык жерге төөнөгүчтөр керек болгондо пайдалуу болгон 5 такта бар.
  • Баштапкы абалга келтирүү ==> Бул пин тактага баштапкы абалга келтирүү үчүн колдонулат. Бул пинди LOW деп койсоңуз, тактаны баштапкы абалга келтиресиз.
  • Vin ==> Бул 7Vдан 20Vга чейинки диапазонго берилген кирүү чыңалуусу. Электр уячасы тарабынан берилген чыңалууга бул пин аркылуу кирүүгө болот. Бирок, бул пин аркылуу тактага чыгуу чыңалуусу автоматтык түрдө 5Вга чейин орнотулат.
  • Сериялык байланыш ==> RXD жана TXD - бул сериялык маалыматтарды берүү жана алуу үчүн колдонулган сериялык казыктар, башкача айтканда Rx берилиштерди берүү үчүн колдонулат, ал эми Tx маалымат алуу үчүн колдонулат. Бул сериялык казыктардын төрт комбинациясы колдонулат, анда Serail 0де RX (0) жана TX (1), 1 -серияда TX (18) жана RX (19), 2 -серияда TX (16) жана RX (17) камтылган, жана Serial 3 TX (14) жана RX (15) камтыйт.
  • Тышкы үзгүлтүктөр ==> Алты казык тышкы үзгүлтүктөрдү түзүү үчүн колдонулат, башкача айтканда 0 (0), 1 (3), 2 (21), 3 (20), 4 (19), 5 (18) үзгүлтүккө учуратуу. Бул казыктар бир нече жолдор менен үзгүлтүктөрдү жаратат, башкача айтканда, LOW маанини берүү, көтөрүлүү же түшүп кетүү же үзүлүү казыктарына маанини өзгөртүү.
  • LED ==> Бул такта санарип пинге 13 туташтырылган LED менен коштолот. Бул пиндин жогору мааниси LEDди күйгүзөт жана LOW мааниси аны өчүрөт.
  • AREF ==> AREF аналогдук кирүү үчүн шилтеме чыңалуусу болуп саналат.
  • Аналогдук казыктар ==> А0дон А15ка чейин белгиленген тактада 16 аналогдук пин бар. Бул бардык аналогдук казыктарды санариптик I/O казыктары катары колдонууга болорун белгилей кетүү маанилүү. Ар бир аналогдук пин 10 биттик чечим менен келет. Бул казыктар жерден 5В чейин өлчөй алышат. Бирок, жогорку маани AREF жана analogReference () функциясын колдонуу менен өзгөртүлүшү мүмкүн.
  • I2C ==> Эки казык 20 жана 21 I2C байланышын колдойт, мында 20 SDA (Serial Data Line негизинен маалыматтарды кармоо үчүн колдонулат) жана 21 SCL (Serial Clock Line негизинен түзмөктөр арасында маалыматтарды синхрондоштуруу үчүн колдонулат)
  • SPI Байланыш ==> SPI сериялык перифериялык интерфейсти билдирет, контроллер менен башка перифериялык компоненттердин ортосунда маалыматтарды берүү үчүн колдонулат. Төрт казык башкача айтканда 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) SPI байланыш үчүн колдонулат.

5 -кадам: Arduino IDE

Бул жерде сиз буга чейин Arduino IDE орноткон деп ойлойм.

1. Төмөндө керектүү китепкананы жүктөп алыңыз

TinyGPS lib

2. Аны жүктөп алгандан кийин. Аны чыгарып C: / Users \… / Documents / Arduino / китепканалары папкасына жылдырыңыз (-) жок экенин текшериңиз.

3. Arduino IDE ачыңыз жана кодду программа бөлүмүнөн көчүрүңүз.

4. Андан кийин тактаны тандаңыз Tools ==> Тактайлар ==> бул жерден биз Arduino Mega 2560 колдонуп жатабыз.

5. Такта тандоодо портту тандап алгандан кийин Tools ==> Ports өтүңүз

6. Такта жана портту тандагандан кийин, жүктөөнү чыкылдатыңыз.

7. Код жүктөлгөндөн кийин, сериялык терминалды ачып, жыйынтыгын көрүңүз.

6 -кадам: Байланыштар

Arduino MEGA ==> NEO-6M GPS

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

Сиз ошондой эле Serial1дин ордуна Serial2 же Serial3 колдоно аласыз

Сунушталууда: