цифровая электроника
вычислительная техника
встраиваемые системы

 

Arduino и GPS: подключение GPS-модуля NEO-6m

Автор: Mike(admin) от 26-09-2017, 20:05

Что такое GPS?


Глобальная система позиционирования (GPS) – это спутниковая навигационная система, состоящая по меньшей мере из 24 спутников. GPS работает в любых погодных условиях в любой точке мира 24 часа в сутки без абонентской платы или платы за установку. Система GPS идеальна для определения местоположения в радиолюбительских проектах с использованием Arduino.


GPS-модуль NEO-6m

Как работает 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: подключение GPS-модуля NEO-6m

Код взаимодействия 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


Теги: Arduino, GPS



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий