Форум программистов, компьютерный форум, киберфорум
GPS, ГЛОНАСС
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/41: Рейтинг темы: голосов - 41, средняя оценка - 4.54
 Аватар для шоколад
1 / 1 / 0
Регистрация: 19.05.2013
Сообщений: 47

Подключение GPS модуля Grove-GPS к Arduino UNO

11.11.2013, 11:35. Показов 7843. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подсоединил Grove-GPS к Arduino UNO. Вот код программы:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#include <SoftwareSerial.h>
 
#include <TinyGPS.h>
 
/* This sample code demonstrates the normal use of a TinyGPS object.
   It requires the use of SoftwareSerial, and assumes that you have a
   4800-baud serial GPS device hooked up on pins 3(rx) and 4(tx).
*/
 
TinyGPS gps;
SoftwareSerial nss(1, 0);//tx and rx pins in my arduino GPS shield
 
static void gpsdump(TinyGPS &gps);
static bool feedgps();
static void print_float(float val, float invalid, int len, int prec);
static void print_int(unsigned long val, unsigned long invalid, int len);
static void print_date(TinyGPS &gps);
static void print_str(const char *str, int len);
 
void setup()
{
  Serial.begin(9600);
  nss.begin(9600);//baud rate for the GPS shield
  
  Serial.print("Testing TinyGPS library v. "); Serial.println(TinyGPS::library_version());
  Serial.println("by Mikal Hart");
  Serial.println();
  Serial.print("Sizeof(gpsobject) = "); Serial.println(sizeof(TinyGPS));
  Serial.println();
  Serial.println("Sats HDOP Latitude Longitude Fix  Date       Time       Date Alt     Course Speed Card  Distance Course Card  Chars Sentences Checksum");
  Serial.println("          (deg)    (deg)     Age                        Age  (m)     --- from GPS ----  ---- to London  ----  RX    RX        Fail");
  Serial.println("--------------------------------------------------------------------------------------------------------------------------------------");
}
 
void loop()
{
  bool newdata = false;
  unsigned long start = millis();
  
  // Every second we print an update
  while (millis() - start < 1000)
  {
    if (feedgps())
      newdata = true;
  }
  
  gpsdump(gps);
}
 
static void gpsdump(TinyGPS &gps)
{
  float flat, flon;
  unsigned long age, date, time, chars = 0;
  unsigned short sentences = 0, failed = 0;
  static const float LONDON_LAT = 51.508131, LONDON_LON = -0.128002;
  
  print_int(gps.satellites(), TinyGPS::GPS_INVALID_SATELLITES, 5);
  print_int(gps.hdop(), TinyGPS::GPS_INVALID_HDOP, 5);
  gps.f_get_position(&flat, &flon, &age);
  print_float(flat, TinyGPS::GPS_INVALID_F_ANGLE, 9, 5);
  print_float(flon, TinyGPS::GPS_INVALID_F_ANGLE, 10, 5);
  print_int(age, TinyGPS::GPS_INVALID_AGE, 5);
 
  print_date(gps);
 
  print_float(gps.f_altitude(), TinyGPS::GPS_INVALID_F_ALTITUDE, 8, 2);
  print_float(gps.f_course(), TinyGPS::GPS_INVALID_F_ANGLE, 7, 2);
  print_float(gps.f_speed_kmph(), TinyGPS::GPS_INVALID_F_SPEED, 6, 2);
  print_str(gps.f_course() == TinyGPS::GPS_INVALID_F_ANGLE ? "*** " : TinyGPS::cardinal(gps.f_course()), 6);
  print_int(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0UL : (unsigned long)TinyGPS::distance_between(flat, flon, LONDON_LAT, LONDON_LON) / 1000, 0xFFFFFFFF, 9);
  print_float(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : TinyGPS::course_to(flat, flon, 51.508131, -0.128002), TinyGPS::GPS_INVALID_F_ANGLE, 7, 2);
  print_str(flat == TinyGPS::GPS_INVALID_F_ANGLE ? "*** " : TinyGPS::cardinal(TinyGPS::course_to(flat, flon, LONDON_LAT, LONDON_LON)), 6);
 
  gps.stats(&chars, &sentences, &failed);
  print_int(chars, 0xFFFFFFFF, 6);
  print_int(sentences, 0xFFFFFFFF, 10);
  print_int(failed, 0xFFFFFFFF, 9);
  Serial.println();
}
 
static void print_int(unsigned long val, unsigned long invalid, int len)
{
  char sz[32];
  if (val == invalid)
    strcpy(sz, "*******");
  else
    sprintf(sz, "%ld", val);
  sz[len] = 0;
  for (int i=strlen(sz); i<len; ++i)
    sz[i] = ' ';
  if (len > 0) 
    sz[len-1] = ' ';
  Serial.print(sz);
  feedgps();
}
 
static void print_float(float val, float invalid, int len, int prec)
{
  char sz[32];
  if (val == invalid)
  {
    strcpy(sz, "*******");
    sz[len] = 0;
        if (len > 0) 
          sz[len-1] = ' ';
    for (int i=7; i<len; ++i)
        sz[i] = ' ';
    Serial.print(sz);
  }
  else
  {
    Serial.print(val, prec);
    int vi = abs((int)val);
    int flen = prec + (val < 0.0 ? 2 : 1);
    flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;
    for (int i=flen; i<len; ++i)
      Serial.print(" ");
  }
  feedgps();
}
 
static void print_date(TinyGPS &gps)
{
  int year;
  byte month, day, hour, minute, second, hundredths;
  unsigned long age;
  gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
  if (age == TinyGPS::GPS_INVALID_AGE)
    Serial.print("*******    *******    ");
  else
  {
    char sz[32];
    sprintf(sz, "%02d/%02d/%02d %02d:%02d:%02d   ",
        month, day, year, hour, minute, second);
    Serial.print(sz);
  }
  print_int(age, TinyGPS::GPS_INVALID_AGE, 5);
  feedgps();
}
 
static void print_str(const char *str, int len)
{
  int slen = strlen(str);
  for (int i=0; i<len; ++i)
    Serial.print(i<slen ? str[i] : ' ');
  feedgps();
}
 
static bool feedgps()
{
  while (nss.available())
  {
    if (gps.encode(nss.read()))
      return true;
  }
  return false;
}
 
 
выдает почему то нулевые значения и кучу всяких звездочек но координаты не выводит(((, так же использовал эту программу:
        uint8_t RX_Pin=8; 
    uint8_t TX_Pin=9;    
     
    void setup()  
    {     
      pinMode(0, INPUT); //RX  
      pinMode(1, OUTPUT);//TX  
      pinMode(RX_Pin, OUTPUT);  
      pinMode(TX_Pin, INPUT);   
     
    } 
     
    void loop()  
    { 
    uint8_t Result; 
    asm volatile(  
    "cli" "\n\t"             
    "label%=:"  "in %[Result], %[in_portd]"   "\n\t" 
                "out %[out_portb],  %[Result]" "\n\t"  
                "in %[Result], %[in_portb]"   "\n\t"     
                "out %[out_portd],  %[Result]" "\n\t"  
    "rjmp label%=" "\n\t" 
     
            : [Result] "=r" (Result) 
            : [out_portb] "I" (_SFR_IO_ADDR(PORTB)), [out_portd] "I" (_SFR_IO_ADDR(PORTD)),  
              [in_portb] "I" (_SFR_IO_ADDR(PINB)), [in_portd] "I" (_SFR_IO_ADDR(PIND))    
            :  
            );//asm end 
          
    }
тоже значения нулевые. Ждал мин 10-15 так как холодный старт у него где то 7-10 минут. Пробовал в помещении и на улице все равно нулевые значения. У кого идеи есть какие нибудь?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2013, 11:35
Ответы с готовыми решениями:

Подключение к Arduino Uno модуля SP8266 32m flash
Взял к ардуинке wi-fi модуль SP8266 32m flash, но тот оказался достаточно навороченым, гугл не привёл к чему, только пояснения по...

Arduino CW+GPS+SD
Это QRPp CW-маяк, работающий на 160/80/40-метровом диапазоне. Автор скетча Клименко Максим. Есть желание доработать этот скетч для...

Arduino Nano, GPS
Создаю GPS трекэр но данные с gps не могу привести в корректный вид, не начинается расшифровка, help) Использую Arduino Nano (old...

8
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
11.11.2013, 15:29
1- выставить скорость правильную, может быть и 4800, если не сконфигурировано отдельно
2- проверить на ПК при подключении на гипертерминале
0
 Аватар для шоколад
1 / 1 / 0
Регистрация: 19.05.2013
Сообщений: 47
11.11.2013, 15:30  [ТС]
хорошо попробую
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
11.11.2013, 15:34
...кроме того, это у вас в комментарии даже написано + если используете программный UART из SoftwareSerial.h, то не забываем назначить пины на покдлюченный к ним GPS-модуль. Например:
C
1
SoftwareSerial comSerial(3,4);
У вас:
C
1
SoftwareSerial nss(1, 0);
есть нулевой на уне? Сейчас не помню.
0
 Аватар для шоколад
1 / 1 / 0
Регистрация: 19.05.2013
Сообщений: 47
11.11.2013, 16:40  [ТС]
попробывал не получилось(((

Добавлено через 46 секунд
порты тоже правельно настроены

Добавлено через 44 секунды
нулевой есть

Добавлено через 29 секунд
rx - 0 tx -1 на уне расположение

Добавлено через 11 секунд
ну и на GPS так же
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
11.11.2013, 17:45
...что на GPS также: должно перекрещиваться, RX-TX и TX-RX.

rx - 0 tx -1 на уне расположение
хм этот UART задействован под конвертор USB/UART, по которому идет загрузка прошивки, он есть первый аппаратный Serial по-умолчанию и задействовать под него программный UART - маразм (назначать на них не нужно). Используйте, скажем, 7 и 8, если такое большое желание программного Serial.
Миниатюры
Подключение GPS модуля Grove-GPS к Arduino UNO  
0
 Аватар для шоколад
1 / 1 / 0
Регистрация: 19.05.2013
Сообщений: 47
12.11.2013, 08:28  [ТС]
я начал использовать 8 и 9 результаты позже будут Спасибо
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
12.11.2013, 08:32
...и покажите вы как подключаете ваш GPS-модуль.
0
 Аватар для шоколад
1 / 1 / 0
Регистрация: 19.05.2013
Сообщений: 47
12.11.2013, 12:45  [ТС]
Вот таким методом подключаю GPS-модуль(Подключаю на 8 и 9 порт):


Добавлено через 3 часа 17 минут
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:48.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:49.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:49.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:49.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:50.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:50.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:50.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:50.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:50.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:50.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:51.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:51.25Satellites - 0
Location: 0.000000,0.000000 Date/Time: 11/12/2013 05:31:51.25Satellites - 0
Location: 56.798114,60.621448 Date/Time: 11/12/2013 05:31:52.25Satellites - 3
Location: 56.798114,60.621448 Date/Time: 11/12/2013 05:31:52.25Satellites - 3
Location: 56.798114,60.621448 Date/Time: 11/12/2013 05:31:52.25Satellites - 3
Location: 56.798171,60.621994 Date/Time: 11/12/2013 05:31:53.25Satellites - 3
Location: 56.798171,60.621994 Date/Time: 11/12/2013 05:31:53.25Satellites - 3
Location: 56.798171,60.621994 Date/Time: 11/12/2013 05:31:53.25Satellites - 3
Location: 56.798175,60.622146 Date/Time: 11/12/2013 05:31:54.25Satellites - 3
Location: 56.798175,60.622146 Date/Time: 11/12/2013 05:31:54.25Satellites - 3
Location: 56.798175,60.622146 Date/Time: 11/12/2013 05:31:54.25Satellites - 3
Location: 56.798141,60.621936 Date/Time: 11/12/2013 05:31:55.25Satellites - 3
Location: 56.798141,60.621936 Date/Time: 11/12/2013 05:31:55.25Satellites - 3
Location: 56.798141,60.621936 Date/Time: 11/12/2013 05:31:55.25Satellites - 3
Location: 56.798141,60.621936 Date/Time: 11/12/2013 05:31:55.25Satellites - 3
Location: 56.798141,60.621936 Date/Time: 11/12/2013 05:31:55.25Satellites - 3
Location: 56.798141,60.621936 Date/Time: 11/12/2013 05:31:55.25Satellites - 3
Location: 56.798130,60.621883 Date/Time: 11/12/2013 05:31:56.25Satellites - 3
Location: 56.798130,60.621883 Date/Time: 11/12/2013 05:31:56.25Satellites - 3
Location: 56.798130,60.621883 Date/Time: 11/12/2013 05:31:56.25Satellites - 3
Location: 56.798114,60.621829 Date/Time: 11/12/2013 05:31:57.25Satellites - 3
Location: 56.798114,60.621829 Date/Time: 11/12/2013 05:31:57.25Satellites - 3
Location: 56.798114,60.621829 Date/Time: 11/12/2013 05:31:57.25Satellites - 3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2013, 12:45
Помогаю со студенческими работами здесь

Убрать диалог о включении GPS и иконку GPS. Тихий запуск GPS
Здравствуйте! Подскажите есть ли возможность включить GPS в тихом режиме, чтобы пользователь не догадался об этом! На данном...

В чем разница между БП Chieftec GPS-400AA-101 A и GPS-400A ?
В марте закончилась гарантия. И вот сдох блок питания (1). Мне впарили второй (2). Говорят нет разницы, но если я не ошибаюсь, разница от 5...

GPS навигатор на планшет windows 8.1 с модулем GPS (DIGMA EVE 8.0)
Здравствуйте. Всех с наступившим годом и рождеством! Прошу помощи, есть планшет с GPS (DIGMA EVE 8.0) - 2015 года выпуска, ищу...

Отличия GPS-350FB-101A и GPS-350A
хочу купить бп Chieftec остановился на 2 моделях GPS-350FB-101A и GPS-350A по характеристикам вродь одинаковы но цена отличается на 4$...

Arduino и GPS модуль, кривое считывание спутников
Я не профессионал по знаниям языка Си, но всё же пытаюсь в нём разобраться. Пришёл ко мне модуль GPS NEO-6 общается он по UART на скорости...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru