Cara Menggunakan GPS NEO-6M
Educational Finished 0 updates

Cara Menggunakan GPS NEO-6M

Link copied
nhinovasi nhinovasi Project owner
160 Views Comments 0

Quick build reference

The useful details collected from this project without turning every update into a formal report.

What this project makes

Perkongsian cara menggunakan GPS NEO-6M.

Overview

Pengenalan

Dalam perkongsian kali ini, saya akan kongsikan cara menggunakan GPS NEO-6M, iaitu salah satu modul GPS yang popular digunakan dalam projek elektronik dan mikropengawal seperti Arduino dan ESP32.

Modul ini membolehkan kita mendapatkan maklumat lokasi seperti latitude, longitude, altitude, masa, dan juga bilangan satelit yang berjaya dikesan.

NEO-6M berkomunikasi dengan mikropengawal menggunakan komunikasi UART, dan data GPS biasanya dihantar dalam format NMEA 0183 (National Marine Electronics Association).

Dalam perkongsian ini, saya pecahkan kepada beberapa bahagian:

  1. Mendapatkan data daripada GPS NEO-6M menggunakan aplikasi u-blox “u-center 2”.
  2. Memprogram menggunakan Arduino Pro Micro
  3. Memahami format NMEA

Sebelum kita mulakan, sekiranya terdapat sebarang kesalahan atau ketidaktepatan dalam maklumat yang saya kongsikan, sila komen di ruangan komen di bawah.

Mendapatkan data daripada GPS NEO-6M menggunakan aplikasi u-blox “u-center 2”

Komponen yang diperlukan adalah:

  1. GPS NEO-6M + GPS Antena
  2. FTDI USB to UART
  3. Kabel Jumper

Langkah 1: Gambar rajah di bawah menunjukkan sambungan modul GPS NEO-6M kepada FTDI USB-to-UART untuk membolehkan komunikasi antara modul GPS dan aplikasi “u-center 2”.

Sambungan NEO-6M dengan FTDI USB to UART

Langkah 2: Download dan Install aplikasi “u-center 2” dari laman web rasmi u-blox: u-center 2

Paparan utama aplikasi u-center 2

Langkah 3: Sambungkan kabel USB dari FTDI kepada komputer, kemudian pada aplikasi u-center 2 ikut langkah-langkah berikut:

  1. Cari Data Source dan tekan ikon tambah “+” (add data source)
  2. Masukkan COM port
  3. Masukkan kelajuan boud rate atau kita boleh mengunakan “Enable autobauding”
  4. Tekan “Add Device”
Paparan Add Data Source

NOTA: Modul GPS NEO-6M menggunakan baud rate 9600 bps, seperti yang ditunjukkan dalam jadual di bawah:

Jadual baud rate yang digunakan oleh GPS NEO-6M

NEO-6 u-blox 6 GPS Modules Data Sheet 

Selepas langkah 3, kita boleh baca data GPS menggunakan beberapa paparan yang disediakan, seperti Console, Satellite Position View, Map View dan lain-lain.

Paparan utama aplikasi u-center 2 bersama data GPS NEO-6M

Memprogram menggunakan Arduino Pro Micro

Komponen yang diperlukan adalah:

  1. GPS NEO-6M + GPS Antena
  2. Arduino Pro Micro
  3. Kabel Jumper

Langkah 1: Gambar rajah di bawah menunjukkan sambungan modul GPS NEO-6M ke Arduino Pro Micro untuk membolehkan komunikasi antara modul GPS dan mikropengawal.

Sambungan NEO-6M dengan Arduino Pro Micro

NOTA: Not all pins on the Leonardo and Micro boards support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). Arduino SoftwareSerial Library

Tidak semua pin pada Arduino Pro Micro boleh digunakan interrupt perubahan (change interrupt). Oleh itu, hanya pin berikut yang boleh digunakan sebagai RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), dan 16 (MOSI).

Jika korang pakai board Arduino yang berbeza boleh rujuk di laman web rasmi Arduino mengenai “softwareSerial.h”: Arduino SoftwareSerial Library

Langkah 2: Download dan install Arduino IDE dari laman web rasmi Arduino, setelah itu download library “TinyGPS by Mikal Hart” di Library Manager.

TinyGPS by Mikal Hart

Langkah 3: Copy contoh kod di bawah dan paste ke dalam projek Arduino IDE.

Rujuk fail: gnssRaw.ino

Langkah 4: Run code.

Di bawah ialah contoh data yang dipaparkan pada Console. Namun, data ini masih belum mempunyai maklumat longitude (lon) dan latitude (lat) kerana modul GPS masih belum mendapatkan GPS fix.

NOTA: GPS fix ialah keadaan apabila modul GPS berjaya mendapatkan maklumat yang mencukupi daripada satelit untuk menentukan kedudukan atau lokasi.

Gambar di bawah menunjukkan contoh keadaan apabila modul GPS telah berjaya mendapatkan GPS fix. Ketika ini, LED pada modul akan berkelip.

LED barkelip pada modul GPS NEO-6M
Contoh data yang diterima selepas modul GPS berjaya mendapatkan GPS fix

Untuk mendapatkan GPS fix, ia mungkin mengambil masa beberapa minit bergantung kepada lokasi dan keadaan persekitaran.

Jika korang berada di dalam rumah, saya sarankan menggunakan antena dengan kabel yang lebih panjang supaya antena boleh diletakkan di luar rumah dan mempunyai pandangan yang lebih terbuka ke langit.

Di bawah ialah contoh antena yang saya gunakan apabila berada di rumah.

Seterusnya, kita akan mula menggunakan library “TinyGPS by Mikal Hart” untuk encode data NMEA yang kita terima dan mendapatkan maklumat seperti latitude, longitude, masa dan lain-lain.

Langkah 5: Copy contoh kod di bawah dan paste ke dalam projek Arduino IDE.

Rujuk fail: gnssEncode.ino

Kod di atas adalah berdasarkan contoh kod daripada library “TinyGPS by Mikal Hart” yang saya jadikan sebagai rujukan.

Langkah 4: Run code.

Di bawah ialah contoh data GPS yang telah encode daripada format NMEA menggunakan library TinyGPS.

encode data

Memahami format NMEA

NMEA 0183 ialah interface standard yang digunakan secara meluas di seluruh dunia.

Standard ini menyokong penghantaran data secara bersiri satu hala (one-way serial data transmission) daripada satu talker kepada satu atau lebih listeners.

Data ini dihantar dalam bentuk ASCII yang boleh dicetak (printable ASCII) dan boleh mengandungi maklumat seperti masa, kedudukan, kelajuan, kedalaman air dan lain-lain.

NMEA 0183 Interface Standard ialah dokumen yang dilindungi hak cipta dan hanya boleh diperoleh daripada NMEA. Dokumen atau salinan yang ditawarkan di laman Internet lain mungkin tidak mendapat kebenaran daripada NMEA dan penggunaannya boleh menyebabkan pelanggaran hak cipta.

Untuk mendapatkan dokumen NMEA 0183 Interface Standard, dokumen tersebut perlu dibeli melalui laman web rasmi NMEA: NMEA 0183 Interface Standard

Namun, untuk perkongsian kali ini, saya akan menggunakan dokumen NMEA Reference Manual yang diperoleh daripada laman web SparkFun Electronics sebagai rujukan: SparkFun - NMEA Reference Manual

NMEA 0183 menggunakan format CSV (Comma Separated Values) yang mana setiap data akan dipecahkan menggunakan koma. Di bawah adalah contoh GNSS sentence:

Seperti yang ditunjukkan dalam gambar di atas, saya akan menerangkan hanya dua jenis sentence, iaitu:

  1. $GPGLL - Geographic Position - Latitude/Longitude
  2. $GPGSV - GNSS Satellites in View

$GPGLL - Geographic Position - Latitude/Longitude

Dalam sentence ini, kita boleh mendapatkan maklumat latitud, longitud dan masa UTC, seperti yang ditunjukkan dalam jadual di bawah.

 

Maksud bagi setiap data dalam jadual ini adalah berdasarkan rujukan daripada SparkFun.

$GPGSV - GNSS Satellites in View

Dalam sentence ini, ia mengandungi maklumat mengenai satelit GNSS yang berada dalam lingkungan pandangan (in view) modul GPS, termasuk bilangan satelit dan maklumat berkaitan kekuatan serta kedudukan satelit.

 

Maksud bagi setiap data dalam jadual ini adalah berdasarkan rujukan daripada SparkFun.

Di bawah ialah link video contoh projek saya yang menggunakan

Part 5: GPS NEO-6M | Tactical Watch Project

Rujukkan:

Arduino – SoftwareSerial Library
https://docs.arduino.cc/learn/built-in-libraries/software-serial/

NMEA – NMEA 0183 Interface Standard
https://www.nmea.org/nmea-0183.html

SparkFun Electronics – NMEA Reference Manual, Revision 2.1
https://cdn.sparkfun.com/assets/a/3/2/f/a/NMEA_Reference_Manual-Rev2.1-Dec07.pdf

Materials & components list

2 items

Materials and components listed by the project owner.

Material / component Brand / model Purpose Quantity
Arduino Pro Micro Cytron mikropengawal 1
Ublox NEO6MV2 Cytron Untuk mendapatkan data GPS 1

Project files

CAD files, drawings, code and other assets shared by the project owner.

2 files
Code / firmware

gnssEncode.ino

1.6 KB
Code / firmware

gnssRaw.ino

556.0 B

Project updates

0 updates
No updates yet.

The project owner has not shared any progress yet.

Use this space for general discussion about the whole project. To discuss a specific update, use the comments on that update.

Project discussion

Founding desktop 3D printer partner: Creality
Scroll to Top