Სარჩევი:

ინტერფეისი Arduino Mega GPS მოდულით (Neo-6M): 8 ნაბიჯი
ინტერფეისი Arduino Mega GPS მოდულით (Neo-6M): 8 ნაბიჯი

ვიდეო: ინტერფეისი Arduino Mega GPS მოდულით (Neo-6M): 8 ნაბიჯი

ვიდეო: ინტერფეისი Arduino Mega GPS მოდულით (Neo-6M): 8 ნაბიჯი
ვიდეო: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, ივნისი
Anonim
ინტერფეისი Arduino Mega GPS მოდულით (Neo-6M)
ინტერფეისი Arduino Mega GPS მოდულით (Neo-6M)

ამ პროექტში მე ვაჩვენე როგორ გავაერთიანო GPS მოდული (Neo-6M) არდუინო მეგასთან. TinyGPS ბიბლიოთეკა გამოიყენება გრძედის და გრძედის მონაცემების საჩვენებლად და TinyGPS ++ გამოიყენება სერიის მონიტორზე გრძედის, გრძედის, სიმაღლის, სიჩქარის და თანამგზავრების რაოდენობის საჩვენებლად.

ნაბიჯი 1: საჭირო კომპონენტები

ტექნიკა

  • არდუინო მეგა ==> 30 დოლარი
  • Neo-6M GPS მოდული ==> 30 $

პროგრამული უზრუნველყოფა

Arduino IDE

პროექტის მთლიანი ღირებულება 60 დოლარია

ნაბიჯი 2: ინფორმაცია GPS– ის შესახებ

რა არის GPS

გლობალური პოზიციონირების სისტემა (GPS) არის სატელიტზე დაფუძნებული სანავიგაციო სისტემა, რომელიც შედგება სულ მცირე 24 თანამგზავრისგან. GPS მუშაობს ნებისმიერ ამინდის პირობებში, მსოფლიოს ნებისმიერ წერტილში, 24 საათის განმავლობაში, ყოველგვარი სააბონენტო გადასახადის ან კონფიგურაციის საფასურის გარეშე.

როგორ მუშაობს GPS

GPS თანამგზავრები დედამიწაზე ორჯერ ბრუნავს ზუსტ ორბიტაზე. თითოეული თანამგზავრი გადასცემს უნიკალურ სიგნალს და ორბიტალურ პარამეტრებს, რაც GPS მოწყობილობებს საშუალებას აძლევს გაშიფრონ და გამოთვალონ თანამგზავრის ზუსტი მდებარეობა. GPS მიმღებები იყენებენ ამ ინფორმაციას და ტრილაციას მომხმარებლის ზუსტი ადგილმდებარეობის გამოსათვლელად. არსებითად, GPS მიმღები ზომავს მანძილს თითოეულ თანამგზავრთან იმ დროით, რაც მას სჭირდება გადაცემული სიგნალის მისაღებად. მანძილის გაზომვით კიდევ რამდენიმე თანამგზავრიდან, მიმღებს შეუძლია განსაზღვროს მომხმარებლის პოზიცია და აჩვენოს იგი.

თქვენი 2-D პოზიციის გამოსათვლელად (გრძედი და გრძედი) და მოძრაობის თვალყურის დევნება, GPS მიმღები უნდა იყოს ჩაკეტილი მინიმუმ 3 თანამგზავრის სიგნალზე. 4 ან მეტი თანამგზავრის ხედვით, მიმღებს შეუძლია განსაზღვროს თქვენი 3-D პოზიცია (გრძედი, გრძედი და სიმაღლე). საერთოდ, GPS მიმღები თვალყურს ადევნებს 8 ან მეტ თანამგზავრს, მაგრამ ეს დამოკიდებულია დღის დროზე და სად ხართ დედამიწაზე. თქვენი პოზიციის დადგენის შემდეგ, GPS ერთეულს შეუძლია გამოთვალოს სხვა ინფორმაცია, როგორიცაა

  • სიჩქარე
  • ტარების
  • ტრეკი
  • მოგზაურობა დისტანციურად
  • მანძილი დანიშნულების ადგილამდე

რა არის სიგნალი

GPS თანამგზავრები გადასცემენ მინიმუმ 2 დაბალი სიმძლავრის რადიო სიგნალს. სიგნალები გადაადგილდება მხედველობის ხაზით, რაც ნიშნავს რომ ისინი გაივლიან ღრუბლებს, მინას და პლასტმასს, მაგრამ არ გაივლიან მყარ საგნებს, როგორიცაა შენობები და მთები. თუმცა, თანამედროვე მიმღებები უფრო მგრძნობიარეა და ჩვეულებრივ შეუძლიათ თვალყური ადევნონ სახლებს. GPS სიგნალი შეიცავს 3 სხვადასხვა სახის ინფორმაციას

ფსევდო შემთხვევითი კოდი

ეს არის I. D. კოდი, რომელიც განსაზღვრავს რომელი თანამგზავრი გადასცემს ინფორმაციას. თქვენ შეგიძლიათ ნახოთ რომელი თანამგზავრებისგან იღებთ სიგნალებს თქვენი მოწყობილობის სატელიტურ გვერდზე.

ეფემერული მონაცემები

ეფემერის მონაცემები საჭიროა თანამგზავრის პოზიციის დასადგენად და იძლევა მნიშვნელოვან ინფორმაციას თანამგზავრის ჯანმრთელობის შესახებ, მიმდინარე თარიღისა და დროის შესახებ.

ალმანახის მონაცემები

ალმანახის მონაცემები ეუბნება GPS მიმღებს, თუ სად უნდა იყოს თითოეული GPS თანამგზავრი დღის ნებისმიერ დროს და აჩვენებს ორბიტალურ ინფორმაციას ამ თანამგზავრისა და სისტემის ყველა სხვა თანამგზავრის შესახებ.

ნაბიჯი 3: Neo-6M GPS მოდული

NEO-6M GPS მოდული ნაჩვენებია ქვემოთ მოცემულ ფიგურაში. მას გააჩნია გარე ანტენა და არ მოყვება სათაურის ქინძისთავები. ასე რომ თქვენ დაგჭირდებათ მისი შედუღება.

NEO-6M GPS მოდულის მიმოხილვა

NEO-6M GPS ჩიპი

მოდულის გული არის NEO-6M GPS ჩიპი u-blox– დან. მას შეუძლია თვალყური ადევნოს 22 -მდე თანამგზავრს 50 არხზე და მიაღწევს ინდუსტრიის მგრძნობელობის უმაღლეს დონეს, ანუ -161 დბ თვალთვალისას, ხოლო მოიხმარს მხოლოდ 45 mA დენის დენს. U-blox 6 პოზიციონირების ძრავა ასევე გამოირჩევა Time-To-First-Fix (TTFF) 1 წამის განმავლობაში. ჩიპის ერთ -ერთი საუკეთესო მახასიათებელია ენერგიის დაზოგვის რეჟიმი (PSM). ეს იძლევა სისტემის ენერგიის მოხმარების შემცირების საშუალებას მიმღების ნაწილების შერჩევით ჩართვასა და გამორთვაზე. ეს მკვეთრად ამცირებს მოდულის ენერგიის მოხმარებას მხოლოდ 11 mA– მდე, რაც მას შესაფერისია ენერგიისადმი მგრძნობიარე პროგრამებისთვის, როგორიცაა GPS მაჯის საათი. NEO-6M GPS ჩიპის საჭირო მონაცემთა ქინძისთავები გატეხილია 0.1 ″ მოედანზე სათაურებში. ეს მოიცავს ქინძისთავებს, რომლებიც საჭიროა UART– ით მიკროკონტროლერთან კომუნიკაციისთვის.

შენიშვნა:- მოდული მხარს უჭერს baud სიჩქარეს 4800bps– დან 230400bps– მდე ნაგულისხმევი baud 9600 – ით.

პოზიციის დაფიქსირება LED ინდიკატორი

NEO-6M GPS მოდულზე არის LED, რომელიც მიუთითებს პოზიციის დაფიქსირების სტატუსზე. ის სხვადასხვა სიჩქარით აციმციმდება იმისდა მიხედვით, თუ რა მდგომარეობაშია იგი

  1. მოციმციმე ==> ნიშნავს, რომ ის ეძებს თანამგზავრებს
  2. დახუჭე ყოველ 1 წამში - ნიშნავს, რომ პოზიციის დაფიქსირება მოიძებნა

3.3V LDO მარეგულირებელი

NEO-6M ჩიპის საოპერაციო ძაბვა არის 2.7-დან 3.6 ვ-მდე. მაგრამ, მოდულს მოყვება MICREL– დან MIC5205 ულტრა დაბალი მიტოვების 3V3 მარეგულირებელი. ლოგიკური ქინძისთავები ასევე 5 ვოლტის ტოლერანტულია, ასე რომ ჩვენ შეგვიძლია მარტივად დავუკავშიროთ იგი Arduino- ს ან ნებისმიერ 5V ლოგიკურ მიკროკონტროლერს ლოგიკური დონის გადამყვანის გამოყენების გარეშე.

ბატარეა და EEPROM

მოდული აღჭურვილია HK24C32 ორი მავთულის სერიული EEPROM- ით. ის 4KB ზომისაა და უკავშირდება NEO-6M ჩიპს I2C- ის საშუალებით. მოდული ასევე შეიცავს მრავალჯერადი დატენვის ღილაკს, რომელიც მოქმედებს როგორც სუპერ კონდენსატორი.

EEPROM ბატარეასთან ერთად დაგეხმარებათ შეინარჩუნოთ ბატარეის მხარდაჭერილი RAM (BBR). BBR შეიცავს საათის მონაცემებს, უახლესი პოზიციის მონაცემებს (GNSS ორბიტის მონაცემები) და მოდულის კონფიგურაციას. მაგრამ ეს არ არის განკუთვნილი მონაცემთა მუდმივი შესანახად.

როგორც კი ბატარეა ინარჩუნებს საათს და ბოლო პოზიციას, პირველი დაფიქსირების დრო (TTFF) მნიშვნელოვნად მცირდება 1 წამამდე. ეს საშუალებას იძლევა უფრო სწრაფად დაიკეტოს პოზიცია.

ბატარეის გარეშე GPS ყოველთვის ცივად იწყებს, ამიტომ პირველადი GPS ჩაკეტვას მეტი დრო სჭირდება. ბატარეა ავტომატურად იტენება ენერგიის გამოყენებისას და ინახავს მონაცემებს ენერგიის გარეშე ორ კვირამდე.

პინოუტი

GND არის Ground Pin და უნდა იყოს დაკავშირებული GND პინთან Arduino– ზე

TxD (გადამცემი) პინი გამოიყენება სერიული კომუნიკაციისთვის

RxD (მიმღები) პინი გამოიყენება სერიული კომუნიკაციისთვის

VCC ამარაგებს ენერგიას მოდულისთვის. შეგიძლიათ პირდაპირ დაუკავშიროთ Arduino– ს 5V პინს

ნაბიჯი 4: არდუინო მეგა

Arduino არის ღია კოდის ელექტრონიკის პლატფორმა, რომელიც დაფუძნებულია ადვილად გამოსაყენებელ აპარატურასა და პროგრამულ უზრუნველყოფაზე. არდუინოს დაფებს შეუძლიათ წაიკითხონ შეყვანა - სინათლე სენსორზე, თითი ღილაკზე, ან Twitter შეტყობინება - და გადააქციონ გამომავალში - გაააქტიურონ ძრავა, ჩართონ LED, გამოაქვეყნონ რაღაც ინტერნეტში. თქვენ შეგიძლიათ უთხრათ თქვენს დაფას, თუ რა უნდა გააკეთოს, დაფაზე არსებული მიკროკონტროლერისთვის მითითებების გაგზავნით. ამისათვის თქვენ იყენებთ Arduino პროგრამირების ენას (გაყვანილობის საფუძველზე) და Arduino პროგრამულ უზრუნველყოფას (IDE), დამუშავების საფუძველზე.

არდუინო მეგა

Arduino Mega 2560 არის მიკროკონტროლის დაფა, რომელიც დაფუძნებულია Atmega2560– ზე.

  • არსებობს 54 ციფრული I/O ქინძისთავები და 16 ანალოგური ქინძისთავები დაფაზე, რომლებიც ამ მოწყობილობას განასხვავებს და გამოირჩევა სხვებისგან. 54 ციფრული I/O– დან 15 გამოიყენება PWM– სთვის (პულსის სიგანის მოდულაცია).
  • დაფაზე დამატებულია 16 მჰც სიხშირის კრისტალური ოსცილატორი.
  • დაფას გააჩნია USB კაბელის პორტი, რომელიც გამოიყენება კომპიუტერის დაფაზე კოდის დასაკავშირებლად და გადასატანად.
  • DC დენის ბუდე დაწყვილებულია დაფასთან, რომელიც გამოიყენება დაფის დასატენად.
  • დაფას გააჩნია ძაბვის ორი რეგულატორი ანუ 5V და 3.3V რაც უზრუნველყოფს მოქნილობას ძაბვის რეგულირებისათვის მოთხოვნის შესაბამისად.
  • არის გადატვირთვის ღილაკი და 4 ტექნიკური სერიული პორტი სახელწოდებით USART, რომელიც აწარმოებს მაქსიმალურ სიჩქარეს კომუნიკაციის დასაყენებლად.
  • დაფის გაძლიერების სამი გზა არსებობს. თქვენ შეგიძლიათ გამოიყენოთ USB კაბელი დაფის გასააქტიურებლად და კოდის გადასატანად დაფაზე, ან შეგიძლიათ მისი ჩართვა დაფის Vin– ის გამოყენებით, ან Power jack ან ბატარეის საშუალებით.

სპეციფიკაციები

პინოუტი

პინის აღწერა

  • 5V & 3.3V ==> ეს პინი გამოიყენება 5V- ის გარშემო გამომავალი რეგულირებული ძაბვის უზრუნველსაყოფად. ეს დარეგულირებული კვების ბლოკი აძლიერებს კონტროლერს და ბორტზე არსებულ სხვა კომპონენტებს. მისი მიღება შესაძლებელია დაფის Vin- დან ან USB კაბელიდან ან სხვა 5V ძაბვის რეგულირებადი წყაროდან. ძაბვის კიდევ ერთი რეგულირება უზრუნველყოფილია 3.3V პინით. მაქსიმალური სიმძლავრე, რომლის ამოღებაც შეუძლია არის 50mA.
  • GND ==> დაფაზე არის 5 გრუნტის ქინძისთავი, რაც გამოსადეგია მაშინ, როდესაც პროექტისათვის საჭიროა ერთზე მეტი გრუნტის ქინძისთავი.
  • გადატვირთვა ==> ეს პინი გამოიყენება დაფის გადატვირთვისთვის. ამ PIN- ის 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 მნიშვნელობას, იზრდება ან იკლებს ზღვარზე ან ცვლის მნიშვნელობას შეწყვეტის ქინძისთავებში.
  • LED ==> ამ დაფას გააჩნია ჩაშენებული LED, რომელიც დაკავშირებულია ციფრულ პინთან 13. ამ პინზე მაღალი მნიშვნელობა ჩართავს LED- ს და LOW მნიშვნელობას გამორთავს.
  • AREF ==> AREF ნიშნავს ანალოგური საცნობარო ძაბვას, რაც არის საცნობარო ძაბვა ანალოგური შეყვანისთვის.
  • ანალოგური ქინძისთავები ==> არსებობს 16 ანალოგური ქინძისთავები დაფაზე დაფარული A0- დან A15- მდე. მნიშვნელოვანია აღინიშნოს, რომ ყველა ეს ანალოგური ქინძისთავი შეიძლება გამოყენებულ იქნას როგორც ციფრული I/O ქინძისთავები. თითოეულ ანალოგურ პინს გააჩნია 10 ბიტიანი გარჩევადობა. ამ ქინძისთავებს შეუძლიათ გაზომონ მიწიდან 5 ვ -მდე. თუმცა, ზედა მნიშვნელობა შეიძლება შეიცვალოს AREF და analogReference () ფუნქციის გამოყენებით.
  • I2C ==> ორი ქინძი 20 და 21 მხარს უჭერს I2C კომუნიკაციას, სადაც 20 წარმოადგენს SDA (სერიული მონაცემთა ხაზი ძირითადად გამოიყენება მონაცემთა შესანახად) და 21 წარმოადგენს SCL (სერიული საათის ხაზი ძირითადად გამოიყენება მოწყობილობებს შორის მონაცემთა სინქრონიზაციის უზრუნველსაყოფად)
  • SPI Communication ==> 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 ==> პორტები

6 დაფისა და პორტის არჩევის შემდეგ დააჭირეთ ატვირთვას.

7. მას შემდეგ, რაც კოდი აიტვირთება, გახსენით სერიული ტერმინალი, რომ ნახოთ გამომავალი.

ნაბიჯი 6: კავშირები

Arduino MEGA ==> NEO-6M GPS

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

თქვენ ასევე შეგიძლიათ გამოიყენოთ Serial2 ან Serial3 ნაცვლად Serial1

გირჩევთ: