Стоят эти чипы сейчас копейки. За 10 доллариев на иБее купил GPS-модуль u-blox neo-6m с антенной. Довольно средненький чип, если разобраться -- но зато дёшево.
Чип на платке, уже припаян.
В принципе, чип поддерживает сразу несколько протоколов для общения, от I2C и SPI до старого-доброго UART, но на плате выведен только UART (сиречь, серийный порт).
Так что цепляем RX/TX, землю и питание, заводим любимую коммуникационную программу (хоть "Телемейт" -- кто-нибудь ещё помнит, что это такое? Есть тут динозавры БиБиЭс, помимо меня?)
Подключаемся к нужному серийному порту и наблюдаем работу GPS. Каждую секунду чип высылает в порт серию строк. Разные чипы высылают слегка разные наборы, этот шлёт примерно следующее:
$GPRMC,152732.00,A,3328.32250,N,08645.05
$GPVTG,,T,,M,0.209,N,0.387,K,A*24
$GPGGA,152732.00,3328.32250,N,08645.0524
$GPGSA,A,2,17,28,01,,,,,,,,,,3.58,3.44,1.0
$GPGSV,4,1,14,01,27,043,32,02,04,216,,03,2
$GPGSV,4,2,14,06,34,208,,07,03,165,,11,1
$GPGSV,4,3,14,17,62,322,27,19,02,066,,24,0
$GPGSV,4,4,14,30,31,181,14,32,08,053,*7F
$GPGLL,3328.32250,N,08645.05241,W,152732.0
Чего это вообще? Это формат NMEA.
Наиболее информативная из этих строк начинается с $GPGGA:
$GPGGA,152732.00,3328.32250,N,08645.0524
Это всего-лишь значения полей через разделители (запятую). Эта строка говорит нам вот что:
Данные получены в 15:27:32 (время Гринвичское), местоположение приёмника 33°28.32250'N, 86°45.05241'W, 1 означает, что данные получены со спутников GPS, 03 -- количество видимых спутников (это мало на самом деле, приёмник внутри помещения стоял). 3.44 -- насколько точно известно горизонтальное местоположение (хреновая цифра, по той же причине). Высота 204.8 метров над уровнем моря, дальше какая-то непонятная фигня (высота геоида над эллипсоидом в метрах -- понятия не имею, что это, и зачем), и контрольная сумма.
Ещё можно найти немного данных в строке $GPRMC:
$GPRMC,152732.00,A,3328.32250,N,08645.05
Тут тоже есть координаты, и время захвата сингала. А также есть скорость (0.209 узла -- ненулевая из-за невысокой точности сигнала), а также дата -- 17го сентября 15го года. Ещё в этой же строке указывается курс -- только в данном случае значение этого поля NULL. Не шёл я никуда никаким курсом :)
В-общем, простенький Перловый скриптик вытащит из этих строчек всю доступную информацию как нефиг делать.
Какие идеи приходят в голову? Ну, самая банальная -- это, собственно, самодельный приёмник GPS. С какими-нибудь бильярдами и профурсетками :) GPS трекер. Кроме того, GPS -- неплохой источник точного времени, а также даты. Самосинхронизирующиеся часы, которые никогда не надо устанавливать.
Попробую, поиграюсь.