Spisu treści:
- Krok 1: Potrzebne komponenty
- Krok 2: Informacje o GPS
- Krok 3: Moduł GPS Neo-6M
- Krok 4: Arduino Mega
- Krok 5: IDE Arduino
- Krok 6: Połączenia
Wideo: Interfejs Arduino Mega z modułem GPS (Neo-6M): 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
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
- Brak migania ==> oznacza, że szuka satelitów
- 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:
Interfejs modułu GPS z Raspberry Pi: 10 kroków
Łączenie modułu GPS z Raspberry Pi: Hej chłopaki!! Czy chcesz połączyć moduł GPS z Raspberry Pi? Ale napotykasz pewne trudności, aby to zrobić? „Nie martw się, jestem tutaj, aby ci pomóc! Możesz zacząć od następujących części:
Interfejs modułu GPS z Arduino Uno: 7 kroków
Interfejs modułu GPS z Arduino Uno: Cześć ! Czy chcesz podłączyć moduł GPS do swojej płytki Arduino Uno, ale nie wiesz, jak to zrobić? Jestem tu, żeby Ci pomóc! Aby rozpocząć, potrzebujesz następujących części
Gra samogłosek z modułem Arduino i YX5300 MP3 Catalex: 13 kroków
Gra samogłosek z Arduino i modułem MP3 YX5300 Catalex: Czy jesteś w stanie przeczytać to pytanie? To jest dziwne! Celowo zadałem to pytanie. Jeśli potrafisz przeczytać ten tekst, to dlatego, że znasz cały alfabet i oczywiście znasz wszystkie samogłoski. Samogłoski są obecne we wszystkich słowach. Nie da się
HiFive1 Arduino z modułem Bluetooth HC-05 Samouczek: 7 kroków
HiFive1 Arduino z modułem Bluetooth HC-05 Samouczek: HiFive1 to pierwsza kompatybilna z Arduino płytka oparta na RISC-V, zbudowana z procesorem FE310 firmy SiFive. Płytka jest około 20 razy szybsza niż Arduino UNO, a jako UNO brakuje łączności bezprzewodowej. Na szczęście istnieje kilka niedrogich modułów
ESP32 z modułem E32-433T LoRa - samouczek - Interfejs LoRa Arduino: 8 kroków
ESP32 z modułem E32-433T LoRa - samouczek | Interfejs LoRa Arduino: Hej, co słychać, chłopaki! Akarsh tutaj z CETech.Ten mój projekt łączy moduł E32 LoRa firmy eByte, który jest 1-watowym modułem nadawczo-odbiorczym o dużej mocy z ESP32 przy użyciu Arduino IDE. Zrozumieliśmy działanie E32 w naszej ostatniej lekcji