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

 



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




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

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

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