Spisu treści:

Interfejs Arduino Mega z modułem GPS (Neo-6M): 8 kroków
Interfejs Arduino Mega z modułem GPS (Neo-6M): 8 kroków

Wideo: Interfejs Arduino Mega z modułem GPS (Neo-6M): 8 kroków

Wideo: Interfejs Arduino Mega z modułem GPS (Neo-6M): 8 kroków
Wideo: GPS Module Tutorial | GPS NEO 6M/7M/8M | Arduino 2024, Listopad
Anonim
Interfejs Arduino Mega z modułem GPS (Neo-6M)
Interfejs Arduino Mega z modułem GPS (Neo-6M)

W tym projekcie pokazałem jak połączyć moduł GPS (Neo-6M) z Arduino Mega. Biblioteka TinyGPS służy do wyświetlania danych długości i szerokości geograficznej, a TinyGPS++ służy do wyświetlania szerokości, długości, wysokości, prędkości i liczby satelitów na monitorze szeregowym.

Krok 1: Potrzebne komponenty

Sprzęt komputerowy

  • Arduino Mega ==> 30 USD
  • Moduł GPS Neo-6M ==> 30 usd

Oprogramowanie

IDE Arduino

Całkowity koszt projektu to 60$

Krok 2: Informacje o GPS

Co to jest GPS

Global Positioning System (GPS) to satelitarny system nawigacyjny składający się z co najmniej 24 satelitów. GPS działa w każdych warunkach pogodowych, w dowolnym miejscu na świecie, 24 godziny na dobę, bez opłat abonamentowych i konfiguracyjnych.

Jak działa GPS

Satelity GPS okrążają Ziemię dwa razy dziennie po precyzyjnej orbicie. Każdy satelita przesyła unikalny sygnał i parametry orbitalne, które umożliwiają urządzeniom GPS dekodowanie i obliczanie dokładnej lokalizacji satelity. Odbiorniki GPS wykorzystują te informacje i trilaterację do obliczenia dokładnej lokalizacji użytkownika. Zasadniczo odbiornik GPS mierzy odległość do każdego satelity przez czas potrzebny na odebranie nadawanego sygnału. Dzięki pomiarom odległości z kilku dodatkowych satelitów odbiornik może określić pozycję użytkownika i wyświetlić ją.

Aby obliczyć pozycję 2D (szerokość i długość geograficzną) oraz śledzić ruch, odbiornik GPS musi być nastawiony na sygnał z co najmniej 3 satelitów. Mając na widoku 4 lub więcej satelitów, odbiornik może określić Twoją pozycję w 3D (szerokość, długość i wysokość). Ogólnie rzecz biorąc, odbiornik GPS śledzi 8 lub więcej satelitów, ale zależy to od pory dnia i miejsca na ziemi. Po ustaleniu pozycji urządzenie GPS może obliczyć inne informacje, takie jak

  • Prędkość
  • Łożysko
  • Ścieżka
  • Odległość podróży
  • Odległość do celu

Co to jest sygnał?

Satelity GPS transmitują co najmniej 2 sygnały radiowe o małej mocy. Sygnały przemieszczają się w linii wzroku, co oznacza, że przechodzą przez chmury, szkło i plastik, ale nie przechodzą przez większość stałych obiektów, takich jak budynki i góry. Jednak nowoczesne odbiorniki są bardziej czułe i zwykle mogą śledzić domy. Sygnał GPS zawiera 3 różne rodzaje informacji

Kod pseudolosowy

To jest dowód tożsamości kod, który identyfikuje, który satelita przesyła informacje. Na stronie satelitów urządzenia możesz sprawdzić, z których satelitów odbierasz sygnały.

Dane efemerydalne

Dane efemerydalne są potrzebne do określenia pozycji satelity i dostarczają ważnych informacji o stanie satelity, aktualnej dacie i godzinie.

Dane almanachu

Dane almanachu informują odbiornik GPS, gdzie powinien znajdować się każdy satelita GPS o dowolnej porze dnia i pokazują informacje o orbicie dla tego satelity i każdego innego satelity w systemie.

Krok 3: Moduł GPS Neo-6M

Moduł GPS NEO-6M pokazano na poniższym rysunku. Jest dostarczany z anteną zewnętrzną i nie jest dostarczany z pinami nagłówka. Więc będziesz musiał to przylutować.

Przegląd modułu GPS NEO-6M

Układ GPS NEO-6M

Sercem modułu jest układ GPS NEO-6M firmy u-blox. Może śledzić do 22 satelitów na 50 kanałach i osiąga najwyższy w branży poziom czułości, tj. śledzenie -161 dB, zużywając tylko 45mA prądu zasilania. Mechanizm pozycjonowania u-blox 6 może również pochwalić się czasem do ustalenia pierwszej naprawy (TTFF) poniżej 1 sekundy. Jedną z najlepszych funkcji zapewnianych przez chip jest tryb oszczędzania energii (PSM). Pozwala na zmniejszenie poboru mocy systemu poprzez selektywne włączanie i wyłączanie części odbiornika. To radykalnie zmniejsza pobór mocy modułu do zaledwie 11 mA, dzięki czemu nadaje się do zastosowań wrażliwych na moc, takich jak zegarek GPS. Niezbędne piny danych układu GPS NEO-6M są podzielone na nagłówki o skoku 0,1 cala. Obejmuje to piny wymagane do komunikacji z mikrokontrolerem przez UART.

Uwaga:- Moduł obsługuje szybkość transmisji od 4800bps do 230400bps z domyślną prędkością 9600 bodów.

Wskaźnik LED naprawy pozycji

Na module GPS NEO-6M znajduje się dioda LED, która wskazuje stan ustalania pozycji. Będzie migać w różnym tempie w zależności od stanu, w jakim się znajduje

  1. Brak migania ==> oznacza, że szuka satelitów
  2. Migaj co 1s – oznacza, że znaleziono Ustalenie pozycji

Regulator LDO 3.3V

Napięcie robocze układu NEO-6M wynosi od 2,7 do 3,6V. Ale moduł jest dostarczany z ultra-niskim regulatorem 3V3 MIC5205 firmy MICREL. Piny logiczne są również odporne na napięcie 5 V, więc możemy je łatwo podłączyć do Arduino lub dowolnego mikrokontrolera logicznego 5 V bez użycia konwertera poziomów logicznych.

Bateria i EEPROM

Moduł wyposażony jest w dwuprzewodową, szeregową pamięć EEPROM HK24C32. Ma rozmiar 4KB i jest podłączony do układu NEO-6M przez I2C. Moduł zawiera również ładowalną baterię guzikową, która działa jak superkondensator.

Pamięć EEPROM wraz z baterią pomaga zachować podtrzymywaną bateryjnie pamięć RAM (BBR). BBR zawiera dane zegara, najnowsze dane pozycji (dane orbitalne GNSS) i konfigurację modułu. Ale nie jest przeznaczony do stałego przechowywania danych.

Ponieważ bateria zachowuje zegar i ostatnią pozycję, czas do pierwszej naprawy (TTFF) znacznie skraca się do 1s. Pozwala to na znacznie szybsze blokowanie pozycji.

Bez baterii GPS zawsze uruchamia się na zimno, więc początkowa blokada GPS zajmuje więcej czasu. Akumulator jest automatycznie ładowany po włączeniu zasilania i przechowuje dane do dwóch tygodni bez zasilania.

Pinout

GND to pin uziemienia i musi być podłączony do pinu GND na Arduino

Pin TxD (nadajnik) służy do komunikacji szeregowej

Pin RxD (odbiornik) służy do komunikacji szeregowej

VCC zasila moduł. Można go bezpośrednio podłączyć do pinu 5V w Arduino

Krok 4: Arduino Mega

Arduino to platforma elektroniczna typu open source oparta na łatwym w użyciu sprzęcie i oprogramowaniu. Płytki Arduino potrafią odczytywać wejścia – światło na czujniku, palec na przycisku czy wiadomość na Twitterze – i zamieniać je w wyjście – uruchamiając silnik, włączając diodę LED, publikując coś online. Możesz powiedzieć swojej płytce, co ma robić, wysyłając zestaw instrukcji do mikrokontrolera na płytce. Aby to zrobić, użyj języka programowania Arduino (opartego na Wiring) oraz oprogramowania Arduino (IDE), opartego na Processing.

Arduino Mega

Arduino Mega 2560 to płytka mikrokontrolera oparta na Atmega2560.

  • Na płytce znajdują się 54 piny cyfrowych wejść/wyjść i 16 pinów analogowych, które czynią to urządzenie wyjątkowym i wyróżniającym się spośród innych. Z 54 cyfrowych wejść/wyjść 15 jest używanych do modulacji szerokości impulsu (PWM).
  • Na płytce dodano oscylator kwarcowy o częstotliwości 16 MHz.
  • Płytka jest dostarczana z portem USB, który służy do połączenia i przesyłania kodu z komputera do płytki.
  • Gniazdo zasilania DC jest połączone z płytką, która służy do zasilania płyty.
  • Płytka jest wyposażona w dwa regulatory napięcia, tj. 5 V i 3,3 V, co zapewnia elastyczność regulacji napięcia zgodnie z wymaganiami.
  • Jest przycisk resetowania i 4 sprzętowe porty szeregowe zwane USART, które zapewniają maksymalną prędkość konfiguracji komunikacji.
  • Istnieją trzy sposoby zasilania płyty. Możesz użyć kabla USB do zasilania płyty i przesłać kod do płyty lub możesz ją zasilić za pomocą Vin płyty lub przez gniazdo zasilania lub ciasto.

Specyfikacje

Pinout

Opis pinów

  • 5 V i 3,3 V ==> Ten pin służy do dostarczania regulowanego napięcia wyjściowego około 5 V. Ten regulowany zasilacz zasila kontroler i inne elementy na płytce. Można go uzyskać z Vin płytki lub kabla USB lub innego stabilizowanego zasilacza 5V. Natomiast inną regulację napięcia zapewnia pin 3.3V. Maksymalna moc jaką może pobierać to 50mA.
  • GND ==> Na płycie dostępnych jest 5 pinów uziemiających, co jest przydatne, gdy projekt wymaga więcej niż jednego pinu uziemiającego.
  • Reset ==> Ten pin służy do resetowania płyty. Ustawienie tego pinu na LOW spowoduje zresetowanie płyty.
  • Vin ==> Jest to napięcie wejściowe podawane na płytkę w zakresie od 7V do 20V. Napięcie dostarczane przez gniazdo zasilania jest dostępne przez ten pin. Jednak napięcie wyjściowe przez ten pin do płytki zostanie automatycznie ustawione na 5V.
  • Komunikacja szeregowa ==> RXD i TXD to piny szeregowe używane do przesyłania i odbierania danych szeregowych, tj. Rx reprezentuje transmisję danych, podczas gdy Tx służy do odbierania danych. Istnieją cztery kombinacje tych pinów szeregowych, gdzie Serial 0 zawiera RX(0) i TX(1), Serial 1 zawiera TX(18) i RX(19), Serial 2 zawiera TX(16) i RX(17), a Serial 3 zawiera TX(14) i RX(15).
  • Przerwania zewnętrzne ==> Sześć pinów jest używanych do tworzenia przerwań zewnętrznych, tj. przerwanie 0(0), przerwanie 1(3), przerwanie 2(21), przerwanie 3(20), przerwanie 4(19), przerwanie 5(18). Piny te wytwarzają przerwania na wiele sposobów, tj. dostarczając NISKĄ wartość, rosnące lub opadające zbocze lub zmieniając wartość na pinach przerwań.
  • LED ==> Ta płyta ma wbudowaną diodę LED podłączoną do cyfrowego pinu 13. Wysoka wartość na tym pinie włączy diodę LED, a LOW ją wyłączy.
  • AREF ==> AREF oznacza analogowe napięcie odniesienia, które jest napięciem odniesienia dla wejść analogowych.
  • Piny analogowe ==> Na płycie znajduje się 16 pinów analogowych oznaczonych jako A0 do A15. Należy zauważyć, że wszystkie te piny analogowe mogą być używane jako cyfrowe piny we/wy. Każdy pin analogowy ma 10-bitową rozdzielczość. Piny te mogą mierzyć od masy do 5V. Jednak górną wartość można zmienić za pomocą funkcji AREF i analogReference().
  • I2C ==> Dwa piny 20 i 21 obsługują komunikację I2C, gdzie 20 reprezentuje SDA (linia danych szeregowych używana głównie do przechowywania danych), a 21 reprezentuje SCL (linia szeregowa zegara używana głównie do zapewniania synchronizacji danych między urządzeniami)
  • Komunikacja SPI ==> SPI to skrót od Serial Peripheral Interface używany do transmisji danych pomiędzy sterownikiem a innymi urządzeniami peryferyjnymi. Do komunikacji SPI wykorzystywane są cztery piny tj. 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS).

Krok 5: IDE Arduino

Tutaj zakładam, że już zainstalowałeś Arduino IDE.

1. Pobierz wymaganą bibliotekę podaną poniżej

Mała biblioteka GPS

2. Po pobraniu. Wypakuj go i przenieś do folderu C:\Users\…\Documents\Arduino\libraries upewnij się, że nie ma (-).

3. Otwórz Arduino IDE i skopiuj kod z sekcji programu.

4. Następnie wybierz płytę dla tego przejdź do Narzędzia ==> Tablice ==> wybierz płytę tutaj używamy Arduino Mega 2560

5. Po wybraniu płyty wybierz port dla tego idź do Narzędzia ==> Porty

6. Po wybraniu płytki i portu kliknij wgraj.

7. Po przesłaniu kodu otwórz terminal szeregowy, aby zobaczyć dane wyjściowe.

Krok 6: Połączenia

Arduino MEGA ==> NEO-6M GPS

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

Możesz również użyć Serial2 lub Serial3 zamiast Serial1

Zalecana: