Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Cara Menghubungkan Arduino Mega dengan Modul GPS NEO-6M

Komponen dan persediaan

Arduino Mega 2560
× 1
modul GPS NEO-6M u-blox
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Apa yang saya temukan adalah tidak ada tutorial untuk antarmuka Arduino Mega dengan modul GPS NEO-6M jadi saya memutuskan untuk membuatnya. Harap Anda menyukainya!

Komponen yang Dibutuhkan

Perangkat Keras

  • Arduino Mega ==> $30
  • Modul GPS Neo-6M ==> $30

Perangkat Lunak

  • IDE Arduino

Total biaya proyek adalah $60.

Informasi Tentang GPS

Apa itu GPS?

Global Positioning System (GPS) adalah sistem navigasi berbasis satelit yang terdiri dari setidaknya 24 satelit. GPS berfungsi dalam kondisi cuaca apa pun, di mana pun di dunia, 24 jam sehari, tanpa biaya berlangganan atau biaya penyiapan.

Cara kerja GPS

Satelit GPS mengelilingi Bumi dua kali sehari dalam orbit yang tepat. Setiap satelit mentransmisikan sinyal unik dan parameter orbital yang memungkinkan perangkat GPS untuk memecahkan kode dan menghitung lokasi satelit yang tepat. Penerima GPS menggunakan informasi dan trilaterasi ini untuk menghitung lokasi pasti pengguna. Pada dasarnya, penerima GPS mengukur jarak ke setiap satelit dengan jumlah waktu yang diperlukan untuk menerima sinyal yang ditransmisikan. Dengan pengukuran jarak dari beberapa satelit lagi, penerima dapat menentukan posisi pengguna dan menampilkannya.

Untuk menghitung posisi 2-D Anda (lintang dan bujur) dan melacak pergerakan, penerima GPS harus dikunci pada sinyal minimal 3 satelit. Dengan 4 satelit atau lebih, penerima dapat menentukan posisi 3-D Anda (lintang, bujur, dan ketinggian). Umumnya, penerima GPS akan melacak 8 satelit atau lebih, tetapi itu tergantung pada waktu dan lokasi Anda di bumi. Setelah posisi Anda ditentukan, unit GPS dapat menghitung informasi lain, seperti

  • Kecepatan
  • Bantalan
  • Lacak
  • Jalur perjalanan
  • Jarak ke tujuan

Apa itu sinyal

Satelit GPS mengirimkan setidaknya 2 sinyal radio berdaya rendah. Sinyal perjalanan dengan garis pandang, yang berarti mereka akan melewati awan, kaca dan plastik tetapi tidak akan melewati sebagian besar benda padat, seperti bangunan dan gunung. Namun, receiver modern lebih sensitif dan biasanya dapat melacak melalui rumah. Sinyal GPS berisi 3 jenis informasi yang berbeda

  • Kode pseudorandom

Ini adalah I.D. kode yang mengidentifikasi satelit mana yang mengirimkan informasi. Anda dapat melihat dari satelit mana Anda mendapatkan sinyal di halaman satelit perangkat Anda.

  • Data ephemeris

Data ephemeris diperlukan untuk menentukan posisi satelit dan memberikan informasi penting tentang kesehatan satelit, tanggal dan waktu saat ini.

  • Data almanak

Data almanak memberi tahu penerima GPS di mana setiap satelit GPS harus berada kapan saja sepanjang hari dan menunjukkan informasi orbit untuk satelit itu dan setiap satelit lain dalam sistem.

Modul GPS Neo-6M

Modul GPS NEO-6M ditunjukkan pada gambar di bawah ini. Muncul dengan antena eksternal dan tidak dilengkapi dengan pin header. Jadi, Anda perlu menyoldernya.

Ikhtisar Modul GPS NEO-6M

  • Chip GPS NEO-6M

Inti dari modul ini adalah chip GPS NEO-6M dari u-blox. Ini dapat melacak hingga 22 satelit di 50 saluran dan mencapai tingkat sensitivitas tertinggi di industri yaitu pelacakan -161 dB, sementara hanya menggunakan arus suplai 45mA. Mesin pemosisian u-blox 6 juga menawarkan Time-To-First-Fix (TTFF) di bawah 1 detik. Salah satu fitur terbaik yang disediakan chip ini adalah Power Save Mode (PSM). Hal ini memungkinkan pengurangan konsumsi daya sistem dengan secara selektif mengalihkan bagian penerima ON dan OFF. Ini secara dramatis mengurangi konsumsi daya modul menjadi hanya 11mA sehingga cocok untuk aplikasi sensitif daya seperti jam tangan GPS. Pin data yang diperlukan dari chip GPS NEO-6M dipecah menjadi "header pitch 0,1″. Ini termasuk pin yang diperlukan untuk komunikasi dengan mikrokontroler melalui UART.

Catatan :- Modul ini mendukung baud rate dari 4800bps hingga 230400bps dengan baud default 9600.

Indikator LED Perbaiki Posisi

Terdapat LED pada NEO-6M GPS Module yang menunjukkan status Position Fix. Ini akan berkedip pada berbagai tingkat tergantung pada keadaannya

  • Tidak Berkedip ==> artinya sedang mencari satelit
  • Berkedip setiap 1 detik – berarti Perbaiki Posisi ditemukan
  • Regulator LDO 3.3V

Tegangan operasi chip NEO-6M adalah dari 2,7 hingga 3,6V. Tapi, modul ini dilengkapi dengan regulator 3V3 dropout ultra-low MIC5205 dari MICREL. Pin logika juga toleran 5 volt, sehingga kita dapat dengan mudah menghubungkannya ke Arduino atau mikrokontroler logika 5V tanpa menggunakan konverter level logika.

Baterai &EEPROM

Modul ini dilengkapi dengan EEPROM serial dua kabel HK24C32. Ini berukuran 4KB dan terhubung ke chip NEO-6M melalui I2C. Modul ini juga berisi baterai tombol yang dapat diisi ulang yang bertindak sebagai kapasitor super.

EEPROM bersama dengan baterai membantu mempertahankan RAM yang didukung baterai (BBR). BBR berisi data jam, data posisi terbaru (GNSS atau data bit) dan konfigurasi modul. Tapi itu tidak dimaksudkan untuk penyimpanan data permanen.

Karena baterai mempertahankan jam dan posisi terakhir, waktu untuk perbaikan pertama (TTFF) berkurang secara signifikan menjadi 1 detik. Ini memungkinkan penguncian posisi yang jauh lebih cepat.

Tanpa baterai, GPS selalu start dingin sehingga penguncian GPS awal membutuhkan lebih banyak waktu. Baterai terisi secara otomatis saat daya diterapkan dan menyimpan data hingga dua minggu tanpa daya.

Pinout

  • GND adalah Pin Ground dan perlu dihubungkan ke pin GND di Arduino.
  • Pin TxD (Transmitter) digunakan untuk komunikasi serial.
  • Pin RxD (Penerima) digunakan untuk komunikasi serial.
  • VCC memasok daya untuk modul. Anda dapat langsung menghubungkannya ke pin 5V di Arduino.

Arduino Mega

Arduino adalah platform elektronik open-source berdasarkan perangkat keras dan perangkat lunak yang mudah digunakan. Papan Arduino dapat membaca input - menyalakan sensor, jari pada tombol, atau pesan Twitter - dan mengubahnya menjadi output - mengaktifkan motor, menyalakan LED, menerbitkan sesuatu secara online. Anda dapat memberi tahu papan Anda apa yang harus dilakukan dengan mengirimkan satu set instruksi ke mikrokontroler di papan tulis. Untuk melakukannya, Anda menggunakan bahasa pemrograman Arduino (berdasarkan Pengkabelan), dan Perangkat Lunak Arduino (IDE), berdasarkan Pemrosesan.

Arduino Mega 2560 adalah papan Mikrokontroler berbasis Atmega2560.

  • Ada 54 pin I/O digital dan 16 pin analog yang tergabung di papan yang membuat perangkat ini unik dan menonjol dari yang lain. Dari 54 I/O digital, 15 digunakan untuk PWM (modulasi lebar pulsa).
  • Osilator kristal dengan frekuensi 16MHz.
  • Papan dilengkapi dengan port kabel USB yang digunakan untuk menghubungkan dan mentransfer kode dari komputer ke papan.
  • Soket daya DC dipasangkan dengan papan yang digunakan untuk memberi daya pada papan.
  • Papan dilengkapi dengan dua pengatur tegangan yaitu 5V dan 3.3V yang memberikan fleksibilitas untuk mengatur tegangan sesuai kebutuhan.
  • Ada tombol reset dan 4 port serial perangkat keras yang disebut USART yang menghasilkan kecepatan maksimum untuk mengatur komunikasi.
  • Ada tiga cara untuk memberi daya pada papan. Anda dapat menggunakan kabel USB untuk memberi daya pada papan dan mentransfer kode ke papan atau Anda dapat menyalakannya menggunakan Vin papan atau melalui colokan listrik atau adonan.

Spesifikasi

Pinout

Deskripsi Pin

  • 5V &3.3V ==>Pin ini digunakan untuk memberikan tegangan keluaran yang diatur sekitar 5V. Catu daya yang diatur ini memberi daya pada pengontrol dan komponen lain di papan. Itu dapat diperoleh dari Vin papan atau kabel USB atau suplai tegangan 5V lain yang diatur. Sedangkan pengaturan tegangan lainnya disediakan oleh pin 3.3V. Daya maksimum yang dapat ditarik adalah 50mA.
  • GND ==>Ada 5 pin ground yang tersedia di papan yang membuatnya berguna ketika lebih dari satu pin ground diperlukan untuk proyek tersebut.
  • Setel ulang ==> Pin ini digunakan untuk mereset board. Menyetel pin ini ke LOW akan mereset board.
  • Vin ==> Ini adalah tegangan input yang dipasok ke papan yang berkisar dari 7V hingga 20V. Tegangan yang diberikan oleh colokan listrik dapat diakses melalui pin ini. Namun, tegangan keluaran melalui pin ini ke papan akan diatur secara otomatis hingga 5V.
  • Komunikasi Serial ==> RXD dan TXD adalah pin serial yang digunakan untuk mengirim dan menerima data serial yaitu Rx mewakili transmisi data sedangkan Tx digunakan untuk menerima data. Ada empat kombinasi pin serial yang digunakan dimana Serail 0 berisi RX(0) dan TX(1), Serial 1 berisi TX(18) dan RX(19), Serial 2 berisi TX(16) dan RX(17), dan Serial 3 berisi TX(14) dan RX(15).
  • Interupsi Eksternal ==> Enam pin digunakan untuk membuat interupsi eksternal yaitu interupsi 0(0), interupsi 1(3), interupsi 2(21), interupsi 3(20), interupsi 4(19), interupsi 5(18). Pin ini menghasilkan interupsi dengan beberapa cara yaitu memberikan nilai LOW, naik atau turun tepi atau mengubah nilai ke pin interupsi.
  • LED ==> Board ini dilengkapi dengan LED built-in yang terhubung ke pin digital 13. Nilai HIGH pada pin ini akan menyalakan LED dan nilai LOW akan mematikannya.
  • AREF ==> AREF adalah singkatan dari Analog Reference Voltage yang merupakan tegangan referensi untuk input analog.
  • Pin Analog ==> Ada 16 pin analog yang tergabung pada papan berlabel A0 hingga A15. Penting untuk dicatat bahwa semua pin analog ini dapat digunakan sebagai pin I/O digital. Setiap pin analog hadir dengan resolusi 10-bit. Pin ini dapat mengukur dari ground hingga 5V. Namun, nilai atas dapat diubah menggunakan fungsi AREF dan analogReference().
  • I2C ==>Dua pin 20 dan 21 mendukung komunikasi I2C di mana 20 mewakili SDA (Serial Data Line terutama digunakan untuk menyimpan data) dan 21 mewakili SCL (Serial Clock Line terutama digunakan untuk menyediakan sinkronisasi data antar perangkat)
  • Komunikasi SPI ==> SPI adalah singkatan dari Serial Peripheral Interface yang digunakan untuk transmisi data antara pengontrol dan komponen periferal lainnya. Empat pin yaitu 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) digunakan untuk komunikasi SPI.

Arduino IDE

Di sini saya berasumsi Anda sudah menginstal Arduino IDE.

1. Unduh perpustakaan yang diperlukan yang diberikan di bawah ini

Lib TinyGPS

2. Setelah mengunduhnya. Ekstrak dan pindahkan ke folder C:\Users\...\Documents\Arduino\libraries pastikan tidak ada (-).

3. Buka Arduino IDE dan salin kode dari bagian program.

4. Kemudian pilih board untuk itu masuk ke Tools ==> Boards ==> pilih board disini kita menggunakan Arduino Mega 2560.

5. Setelah memilih board pilih port untuk itu pergi ke Tools ==> Ports.

6. Setelah memilih board dan port klik upload.

Koneksi

Arduino MEGA ==> NEO-6M GPS

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

Anda juga dapat menggunakan Serial2 atau Serial3 sebagai ganti Serial1

Pin Serial2

  • Tx2 (16) ==> Rx
  • Rx2 (17) ==> Tx

Pin Serial3

  • Tx3 (14) ==> Rx
  • Rx3 (15) ==> Tx

Hasil

Kode

  • Arduinomega_GPS
Arduinomega_GPSArduino
//Hubungkan dengan pin 18 dan 19#include //long lat,lon; // buat variabel untuk lintang dan bujur objectfloat lat,lon;TinyGPS gps; // buat pengaturan objek gps (){Serial.begin(57600); // sambungkan serialSerial.println("Sinyal GPS yang Diterima:");Serial1.begin(9600); // sambungkan sensor gps} void loop(){ while(Serial1.available()){ // periksa data gps if(gps.encode(Serial1.read()))// encode data gps { gps.f_get_position(&lat ,&lon); // dapatkan lintang dan bujur Serial.print("Posisi:"); //Latitude Serial.print("Lintang:"); Serial.print(lat,6); Serial.print(","); //Bujur Serial.print("Bujur:"); Serial.println(lon,6); } }} /*//Hubungkan dengan pin 16 dan 17#include //long lat,lon; // buat variabel untuk lintang dan bujur objectfloat lat,lon;TinyGPS gps; // buat pengaturan objek gps (){Serial.begin(57600); // sambungkan serialSerial.println("Sinyal GPS Diterima:");Serial2.begin(9600); // sambungkan sensor gps} void loop(){ while(Serial2.available()){ // periksa data gps if(gps.encode(Serial2.read()))// encode data gps { gps.f_get_position(&lat ,&lon); // dapatkan lintang dan bujur Serial.print("Posisi:"); //Latitude Serial.print("Lintang:"); Serial.print(lat,6); Serial.print(","); //Bujur Serial.print("Bujur:"); Serial.println(lon,6); } }}*//*//Hubungkan dengan pin 14 dan 15#include //long lat,lon; // buat variabel untuk lintang dan bujur objectfloat lat,lon;TinyGPS gps; // buat pengaturan objek gps (){Serial.begin(57600); // sambungkan serialSerial.println("Sinyal GPS Diterima:");Serial3.begin(9600); // sambungkan sensor gps} void loop(){ while(Serial3.available()){ // periksa data gps if(gps.encode(Serial3.read()))// encode data gps { gps.f_get_position(&lat ,&lon); // dapatkan lintang dan bujur Serial.print("Posisi:"); //Latitude Serial.print("Lintang:"); Serial.print(lat,6); Serial.print(","); //Bujur Serial.print("Bujur:"); Serial.println(lon,6); } }}*/

Skema


Proses manufaktur

  1. Mengambil Tetesan Air Dengan Arduino
  2. Bermain Dengan Tampilan Berikutnya
  3. u-blox LEA-6H 02 Modul GPS dengan Arduino dan Python
  4. Cara membaca suhu dan kelembaban di Blynk dengan DHT11
  5. Cara membuat musik dengan Arduino
  6. Cara Menggunakan NMEA-0183 dengan Arduino
  7. Tampilan Lokasi GPS Dengan Pelindung Layar GPS Dan TFT
  8. Cara Menggunakan Modbus dengan Arduino
  9. Log Informasi GPS ke Kartu MicorSD dengan Visuino
  10. Arduino + Modul GPS - Pemberitahu Tujuan