Что такое GPS?
Глобальная система позиционирования (GPS) – это спутниковая навигационная система, состоящая по меньшей мере из 24 спутников. GPS работает в любых погодных условиях в любой точке мира 24 часа в сутки без абонентской платы или платы за установку. Система GPS идеальна для определения местоположения в радиолюбительских проектах с использованием Arduino.
Как работает GPS?
Спутники GPS кружат вокруг Земли два раза в день на точной орбите. Каждый спутник передает уникальный сигнал и параметры орбиты, которые позволяют устройствам GPS декодировать и вычислять точное местоположение спутника. GPS-приемники используют эту информацию и трилатерацию для расчета точного местоположения пользователя. По сути, GPS-приемник измеряет расстояние до каждого спутника относительно количества времени, которое требуется для приема передаваемого сигнала. При измерениях расстояния от нескольких спутников приемник может определить положение пользователя и отобразить его.
Чтобы вычислить ваше положение в двумерном пространстве (широта и долгота) и движение, GPS-приемник должен принимать сигналы не менее 3 спутников. При наличии 4 или более спутников приемник может определить ваше трехмерное положение (широта, долгота и высота). Как правило, приемник GPS будет отслеживать 8 или более спутников, но это зависит от времени суток и того, где вы находитесь на земле. Как только ваша позиция будет определена, модуль GPS сможет рассчитать другую информацию, такую как скорость, расстояние до пункта назначения и т.д.
Спутники GPS передают по меньшей мере 2 маломощных радиосигнала. Сигналы движутся по линии прямой видимости, то есть они будут проходить сквозь облака, стекло и пластик, но не будут проходить через большинство твердых объектов, таких как здания и горы. Однако современные приемники более чувствительны и обычно могут отслеживать эти сигналы в помещениях. Сигнал GPS содержит 3 различных типа информации. Во-первых, это псевдослучайный код, то есть ID-код, который идентифицирует, какой спутник передает информацию. Во-вторых, данные эфемерид – необходимы для определения местоположения спутника и дают важную информацию о состоянии спутника, текущую дату и время. В-третьих, данные альманаха, которые сообщают GPS-приемнику, где каждый спутник GPS должен быть в определенное время в течение дня, и отображают информацию об орбите для этого спутника и каждого другого спутника в системе.
Подключение GPS-модуля NEO-6m к Arduino
Добавить в Arduino-проект возможности GPS довольно просто. Нужно лишь подключить к плате Arduino GPS-модуль, например, NEO-6m. Схема подключения показана ниже. Для лучшего приема сигналов к GPS-модулю желательно присоединить антенну.
Код взаимодействия Arduino и GPS-модуля NEO-6m
Ниже представлен код (скетч), позволяющий получать данные от GPS-модуля и выводить их на экран LCD-дисплея.
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>
float lat = 28.5458,lon = 77.1703; // создать переменную для объекта широты и долготы
SoftwareSerial gpsSerial(3,4); // линии RX, TX
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
TinyGPS gps; // создать gps-объект
void setup(){
Serial.begin(9600); // последовательный порт
//Serial.println("The GPS Received Signal:");
gpsSerial.begin(9600); // подключить GPS-датчик
lcd.begin(16,2);
}
void loop(){
while(gpsSerial.available()){ // проверить данные gps
if(gps.encode(gpsSerial.read())) // декодировать данные gps
{
gps.f_get_position(&lat,&lon); // получить широту и долготу
// отобразить положение
lcd.clear();
lcd.setCursor(1,0);
lcd.print("GPS Signal");
//Serial.print("Position: ");
//Serial.print("Latitude:");
//Serial.print(lat,6);
//Serial.print(";");
//Serial.print("Longitude:");
//Serial.println(lon,6);
lcd.setCursor(1,0);
lcd.print("LAT:");
lcd.setCursor(5,0);
lcd.print(lat);
//Serial.print(lat);
//Serial.print(" ");
lcd.setCursor(0,1);
lcd.print(",LON:");
lcd.setCursor(5,1);
lcd.print(lon);
}
}
String latitude = String(lat,6);
String longitude = String(lon,6);
Serial.println(latitude+";"+longitude);
delay(1000);
}
© digitrode.ru