Часы с синхронизацией по gps. GPS-точность в часах Casio — принцип работы и нюансы

20 августа 2015 в 12:34

Самодельные электронные часы, элементная база - часть 1, измерение времени

  • DIY или Сделай сам

Наверное, каждый гик, увлекающийся самодельной электроникой, рано или поздно приходит к идее сделать свои, уникальные, часы. Идея вполне неплоха, разберемся как и на чем их лучше сделать. В качестве отправной точки будем считать, что человек умеет программировать микроконтроллеры, понимает как переслать 2 байта по i2c или serial-порту, и может спаять вместе несколько проводов. В принципе, этого достаточно.

Понятно, что ключевая функция часов - измерение времени (кто бы подумал, да?). И делать это желательно максимально точно, здесь есть несколько вариантов и подводных камней.

Итак, какие доступные в «железе» способы измерения времени мы можем использовать?

Встроенный RC-генератор процессора

Самая простая идея, которая может придти в голову - это просто настроить программный таймер, и им отсчитывать секунды. Так вот, эта идея никуда не годится. Часы-то работать конечно будут, только вот точность встроенного генератора никак не регламентируется, и может «плавать» в пределах 10% от номинала. Вряд ли кому-то нужны часы, уходящие в месяц на 15 минут.

Модуль реального времени DS1307

Более правильный вариант, он же использующийся в большинстве «народных» изделий - это часы реального времени. Микросхема обменивается с микроконтроллером по I2C, требует минимума обвязки (кварц и пара резисторов). Цена вопроса около 100р за микросхему, или около 1$ на ебее за готовую плату с микросхемой, модулем памяти и разъемом для батарейки.

Схема из даташита:

Что не менее важно, микросхема выпускается в DIP-корпусе, значит припаять ее может любой начинающий радиолюбитель. Встроенная батарейка обеспечивает работу часов, даже если питание было отключено.

Казалось бы, все хорошо, если бы не одна проблема - невысокая точность. Примерная точность часовых кварцев - 20-30ppm. Обозначение ppm - parts per million, показывает число миллионных долей. Казалось бы, 20миллионных - это супер, однако для частоты в 32768Гц получается 20*32768/1000000 = ±0,65536Гц, т.е. уже полгерца. Путем несложных подсчетов видно, что генератор с такой разницей за сутки «натикает» лишних (или недостающих) 56тыс тактов, что соответствует 2 секундам в день. Кварцы бывают разные, некоторые пользователи писали и об ошибке в 5 секунд в день. Как-то не очень точно - за месяц такие часы уйдут как минимум, на минуту. Это уже приличная разница, заметная невооруженным глазом (когда любимый сериал бабушки начинается в 11.00, а часы показывают 11.05, разработчику таких часов перед родственниками будет неудобно).

Впрочем, поскольку температура в помещении более-менее стабильна, и частота кварца не будет сильно меняться, можно добавить программную коррекцию. Другой совет, даваемый на форумах, использовать часовой кварц от старых материнских плат, по отзывам, они там довольно точные.

Модуль реального времени DS3231

Мы не первые, кто задался вопросом точности, и компания Dallas пойдя навстречу пожеланиям, выпустила более совершенный модуль - DS3231. Он называется «Extremely Accurate Real Time Clock», имеет встроенный генератор с температурной коррекцией. Точность в 10 раз выше, и составляет 2ppm. Цена вопроса чуть повыше, но корпус микросхемы рассчитан под SMD-монтаж, паять не так удобно, зато можно купить на ебее готовую плату.


(фото с сайта продавца)

Точность в 6 секунд в месяц, это уже неплохой результат. Но мы пойдем дальше - в идеале, часы в 21 веке вообще не нужно подстраивать.

Радиомодуль DCF-77

Метод скорее экзотический, но для полноты картины его нельзя не упомянуть. Немногие знают, но сигналы точного времени передаются по радио еще с 70х годов. Передатчик DCF-77 расположен в Германии недалеко от Франкфурта, и на СДВ-частоте 77.5КГц передаются метки точного времени (да, у них уже 20 лет назад были настенные и настольные часы, которые не надо подстраивать).

Способ хорош тем, что схема имеет малое энергопотребление, так что сейчас производятся даже наручные часы с такой технологией. Готовую плату приема DCF-77 можно купить на ebay, цена вопроса 20$.

Многие часы и метеостанции имеют возможность приема DCF-77, проблема лишь в том, что до России сигнал практически не доходит. Карта покрытия с Википедии:

Как можно видеть, лишь Москва и Питер находятся на границе зоны приема. По отзывам владельцев, лишь иногда сигнал удается принять, что для практического применения конечно, не годится.

GPS-модуль

Если часы будут стоять недалеко от окна, то вполне реальный метод получения точного времени - GPS-модуль. Эти модули можно недорого купить на ebay (цена вопроса 10-15$). Например, Ublox NEO-6M, подключается напрямую к serial-пинам процессора, и выдает строки NMEA на скорости 9600.

Данные приходят примерно в таком формате " $GPRMC,040302.663,A,3939.7,N,10506.6,W,0.27,358.86,200804,*1A", и распарсить их даже для слабой Arduino труда не составляет. Патриоты кстати, могут приобрести более дорогой модуль Ublox NEO-7N, поддерживающий (по отзывам) как GPS так и «Глонасс».

Очевидно, что про разные часовые пояса GPS-модуль ничего не знает, так что их вычисление и смену летнего/зимнего времени, разработчику придется продумать самому. Другой минус использования GPS - относительно высокое энергопотребление (впрочем, некоторые модули можно отдельными командами переводить в «спящий режим»).

Wi-Fi

И наконец, последний (и самый очевидный на сегодняшний момент), способ получения точного времени - это брать его из Интернета. Здесь есть два подхода. Первый, и наиболее простой - использовать в качестве платы часов что-то типа Raspberry PI с Линуксом, тогда делать ничего не надо, все будет работать «из коробки». Если же хочется «экзотики» - то самым интересным вариантом является модуль esp8266.

Это недорогой (цена вопроса около 200р на ebay) WiFi-модуль может обмениваться с сервером по serial-порту процессора, при желании его можно также перепрошить (сторонних прошивок довольно много), и часть логики (например опрос сервера времени) сделать в самом модуле. Сторонними прошивками поддерживается куча всего, от Lua до C++, так что вариантов «размять мозги» вполне достаточно.

На этом тему измерения времени наверно можно закрыть. В следующей части мы поподробнее рассмотрим процессоры, и способы вывода времени.


Не думал, что спустя много лет я вернусь к часам на газоразрядных индикаторах. В конце 70-х я собирал подобные часы на микросхемах 155-й серии, плата выглядела внушительно, по 5 Вольтам потребляли не мало, да и малогабаритными их нельзя было назвать…

Собрать такие винтажные часы попросил меня мой сын, увидел он их на просторах Интернета, где они зовутся Nixie Tube Clock , ну и загорелся. Порыскал я по Инету, схем много, на разных лампах, на любой вкус, но просто повторить - это не по мне, я люблю делать свое, так намного интереснее и приятнее.

Изюм!

Обязательно хотелось сделать синхронизацию часов с сигналами точного времени, ведь какими бы точными ни были часы, в конце концов, все начинают отставать или убегать вперед. Для синхронизации времени можно применять, сигналы на радиостанции «Маяк», либо принимать сигналы передатчика DCF77 на частоте 77,5 кГц, есть еще несколько станций на КВ и УКВ передающих сигналы времени. В любом случае нужно будет делать полноценный приемник, решать проблему помех на него со стороны цифровой части, декодировать принятый сигнал и т.д.
А вот модули GPS мне понравились - практически готовые устройства, минимум обвязки, выход модуля можно подключать к СОМ порту (через МАХ232) и на выходе формируются сигналы совместимые с протоколом NMEA-0183 . Я испробовал два типа модулей ЕВ-500 и MSTAR1316 .



Следует обратить внимание на конденсатор С3 в цепи антенны. При использовании пассивной антенны его надо поставить обязательно, а вот при использовании активной поставить перемычку. Здесь присутствует 2.5-2.8 Вольт для питания активной антенны, поэтому старайтесь избегать закорачивания этого вывода, есть вариант остаться без модуля!
Часы могут работать и без GPS модуля , но об этом ниже.
Итак, дошли до схемы часов. Что они умеют делать:
- показывать время
- в начале каждого часа синхронизироваться с GPS модулем
- менять подсветку баллонов индикаторов
- устанавливать часовой пояс (от 0 до 12) нашего полушария (через меню), т.к модуль выдает всемирное координированное время (UTC)
- отключать синхронизацию с GPS модулем, в случае его отсутствия (через меню)
- выбирать скорость работы с GPS модулем (через меню)

Часы собраны на PIC 16F876A и 4-х высоковольтных дешифраторах К155ИД1 .
Идея самих часов состоит в следующем: у GPS модуля есть свои RTC (часы реального времени), очень точные, которые при наличии хотя бы одного спутника постоянно с ним синхронизируются, по некоторым данным точность составляет вплоть до 50 - 100 нсек. В 04 минуты каждого часа МК обращается к GPS модулю и получает он него часы и минуты, делает поправку на часовой пояс и формирует двоичный код, который поступает на входы высоковольтных дешифраторов 155ИД1 , управляющих лампами ИН-12А. Если модуль поймал хоть один спутник, то загорается светодиод HL4 .

Я намеренно не делал динамическую индикацию, не нравится она мне и я стараюсь ее избегать, когда это возможно, да и портов у МК достаточно.

Для подсветки колб индикаторов я взял светодиоды, не знаю как их зовут, из RGB ленты. Всего 8 режимов подсветки, меняется нажатием кнопки S2 : выключена, красная, зеленая, синяя и комбинации этих трех цветов.

Кнопки S1 и S3 установка часов и минут соответственно.
Кнопка S4 – коррекция/синхронизация. Если включен режим синхронизации GPS , то при нажатии S4 происходит принудительная синхронизация часов с GPS модулем. Если режим синхронизации GPS отключен, то нажатие S4 сбрасывает минуты в 0 и, пока кнопка нажата, часы не идут. После отпускания кнопки часы запускаются с 00 минут 00 секунд. После этого нужный час можно установить кнопкой S1 .

Стабилизатор и полевой транзистор нужно разместить на небольших теплоотводах.

Итого

Итак, получилось 4 основных блока.


Блочная конструкция дает некоторую свободу при монтаже устройства в корпус:

Покупая наручные часы, мы хотим быть уверены в том, что они всегда показывают точное время. В механических вся надежда возлагается на точность механизма. От того, насколько он хорош, зависит точность времени. А чем точнее идут часы, тем лучше это характеризует мастера, сделавшего их. По крайней мере, так было на заре развития часовой индустрии. Мастерство ремесленника определялось к тому же не только точностью хода, но и размером корпуса. Чем меньше - тем лучше. С появлением немеханических часов вопрос точного времени исчез. Сегодня многие производители предлагают модели с синхронизацией времени. В этой статье мы разберемся с тем, что это такое и как это работает. Поехали.

Радиосинхронизация

Самые точные часы на планете - это атомные. Отставание у них минимальное, можно сказать - микроскопическое. Настолько, что его даже не учитывают. Такие часы крайне важны в авиации, мореходном и других делах, где отставание или спешка даже на одну секунду может привести к фатальным последствиям.

В общем, владельцы часов с радиосинхронизацией во время настройки своих наручных часов указывают временную зону, в которой они находятся. А в дальнейшем часы сами корректируют и исправляют показания.

Как они знают, что нужно сделать поправку? Они ориентируются на показания специальных вышек. Всего их существует шесть: по одной в Германии, Британии, США и Китае, и две - в Японии. При смене часового пояса перенастройка часов происходит автоматически. Вам даже не нужно об этом думать. Из производителей такой функцией свои продукты оснащают Касио, Ситизен и Таймекс. Те компании, которые делают ставку именно на высокотехнологичное оснащение и “полный фарш”.

GPS-сигнал

По сути, та же самая радиосинхронизация. Только часы принимают сигнал не от специальных вышек, а от спутника по GPS.

Так, Сейко предлагает модель Astron GPS Solar. Она умеет поддерживать связь с несколькими спутниками одновременно, что гарантирует точные показания времени во всех часовых поясах.

Или, например, EcoDrive Satellite Wave. Модель постоянно находится в контакте с одним из двух с половиной десятков спутников. Синхронизация происходит с атомными часами. То есть, эти часы синхронизированы с атомными, но не через вышку, а через GPS-спутник. В качестве приятного бонуса в этой модели - подзарядка батареи от любого света.

Синхронизация со смартфоном

Это самый распространенный вариант, знакомый всем владельцам смарт-часов. Посредством технологии Блютус идет синхронизация времени на двух устройствах. В результате этого, часы отображают то время, которое показывает смартфон.

Компания Касио предлагает несколько моделей наручных часов с технологией Bluetooth, которые будут сопряжены с вашим смартфоном. То есть, вам не нужно покупать умные часы той же компании, что и смартфон. Отличная альтернатива монополистам, не так ли?

Самые точные наручные часы

Мы несколько раз упомянули об атомных часах, которые самые точные в мире, и по которым сверяются остальные часы. Есть ли шанс, что когда-то мы увидим наручные атомные часы? Есть, и он очень велик. Уже собраны деньги на запуск такой модели. По предварительным оценкам, их стоимость будет составлять порядка шести тысяч долларов. Но вот когда именно они появятся - этого никто не может сказать. Нам остается лишь ждать.

2016 год будет чертовски напряженным для производителей GPS-часов. Причина проста: многие спортсмены хотят пользоваться просто смартфоном и фитнес-приложением или приобретают недорогие фитнес-трекеры. GPS-часы стремятся завоевать сердца «настоящих» спортсменов, делая ставку на большое число предлагаемых функций.

Бег, езда на велосипеде и кросс-тренинги - конечно, всем этим заниматься можно и просто ради удовольствия. Но в наше время большинство спортсменов хотят контролировать свои результаты, как говорится, «от и до».

Таким образом, если кто-то хочет знать, насколько быстро и далеко он может бегать, сколько при этом сжигается калорий и достаточно ли хороша его форма, чтобы выиграть у начальника в корпоративном забеге, стоит задуматься о покупке пульсометра с модулем GPS. При этом важно не перепутать GPS-часы, которые часто называют еще и просто «часами с пульсометром», с очень популярными в последнее время фитнес-браслетами.

Фитнес-браслеты в основном служат для мотивации и контроля за тем, достаточно ли активно человек двигается в течение дня. GPS-часы, напротив, могут стать настоящим партнером по тренировкам и даже тренером для амбициозных спортсменов. И все же, миры этих различных спортивных гаджетов немного пересекаются.

Например, в 2016 году на наших тестах уже побывали некоторые модели часов с пульсометром и модулем GPS, которые могут работают круглосуточно в качестве фитнес-трекера. Chip протестировал актуальные модели GPS-часов для бега, езды на велосипеде и плавания.

Читайте на нашем сайте:

Быстрые на старте

Быстро: ни одни из протестированных нами часов не держали GPS-сигнал так стабильно, как TomTom Runner Cardio

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

Насколько быстры часы при первом включении? Как они срабатывают на территории постоянного использования? Насколько быстро можно устанавливается связь со спутниками, если воспользоваться часами в незнакомой местности?

Подводя итоги, можно сказать, что модели 2016 года быстры, как никогда. Но, разумеется, не в том случае, если просто распакуете часы и сразу отправитесь на пробежку. Вместо этого надо сначала подключить их к ПК/Mac или смартфону. Тогда часы скачают информацию о положении спутников и GPS-сигнал во время последующей пробежки будет найден гораздо быстрее.

Измеряем точность GPS

Очень точные: Polar V800 во время теста продемонстрировали очень высокую точность GPS-измерений

GPS-часы имеют обусловленную техническими особенностями погрешность в определении местоположения, которая составляет около 10 метров для каждой точки в пространстве. Таким образом, при измерении дистанции между двумя точками в самом худшем случае возможна неточность до 20 метров.

Производители пытаются улучшить ситуацию с помощью различных программных алгоритмов, но пока что это приводит лишь к незначительным улучшениям в точности отслеживания ваших передвижений. При средних скоростях и расстояниях отклонение от истинных значений не должно составлять более 2,5 процентов.

Мы провели практический тест на предварительно официально размеченной дистанции и «намотали» с каждыми часами по 55 км. При этом выяснилось, что с каждым годом GPS-часы работают все точнее.

Чрезвычайно точные измерения во время практического теста произвели актуальные модели производства компании Garmin: Forerunner 920XT, Fenix 3 и Forerunner 235. Polar V800 и TomTom Runner тоже имеют очень хорошую точность.

Важное оснащение

Без ремня с датчиком пульса: некоторые часы, например Garmin Forerunner 235, имеют встроенный датчик пульса; нагрудный ремень больше не нужен

Модуль GPS есть у всех часов, но в плане остального оборудования имеются существенные различия. Некоторые из моделей имеют компас, термометр, барометр, WLAN, Bluetooth и много чего еще.

Кстати: в настоящее время самый главный тренд в отрасли - измерение пульса на запястье с помощью оптического датчика.

При этом надежность данных, полученных таким методом, уже практически достигла точности измерений отдельных пульсометров, которые закрепляются на нагрудных ремнях. Но стоит иметь ввиду две вещи: во-первых, измерение пульса оптическим методом подходит не всем.

Лучше всего будет протестировать модель, которую вы желаете приобрести - справится ли она с измерением пульса на конкретно вашем запястье. Во-вторых, пока что точность измерения пульсометра на нагрудном ремне все-таки выше, и большую роль может сыграть воспроизводимость измерений.

Эти данные очень важны, например, для расчета времени восстановления сердечного ритма после нагрузок. Также для читателей Chip наверняка очень важной информацией станут данные о том, насколько хорошо GPS-часы взаимодействуют с приложениями, веб-сервисами и локальным ПО на компьютере. Все это во время тестирования мы проверили.

Важные функции для тренировок


Также во время теста мы обращаем внимание на тренировочную функциональность, ведь в конце концов, это - основная задача GPS-часов. Почти все протестированные модели имеют такой базовый функционал, как, например, возможность измерять временные интервалы.

К числу стандартных относятся и функция отсчета времени круга, а также промежуточных интервалов. Наличие более сложных функций позволяет, как говорится, отделить зерна от плевел.

Например, не все GPS-часы имеют на борту функцию автопаузы. А она, между прочим, очень важна для спортсменов, занимающихся бегом в городских условиях и вынужденных часто останавливаться на светофорах. Эти вынужденные паузы данная функция потом исключила бы из графика тренировки.

Тем не менее, по сравнению с предыдущими годами функциональность GPS-часов значительно расширяется: в частности, некоторые модели предлагают услуги виртуального напарника, с помощью которого можно проводить тренировки без участия реального партнера.

У моделей производства компании Garmin есть режим «живое отслеживание», а для Suunto вы можете создавать собственные комплексы упражнений и затем загружать их на эти спортивные часы.

Покупаем GPS-часы: муки выбора


В настоящее время существует великое множество часов, которые удовлетворят любые запросы. Важным критерием выбора для многих спортсменов является цена.

Часы начального уровня стартуют от 5-7 тысяч рублей, профессиональные модели работают гораздо лучше, но и потратить на них придется более 35 000 рублей. Если кому-то надо измерять лишь скорость и пройденную дистанцию, так это (равно как и измерять пульс тем или иным способом) могут все протестированные нами часы.

Кстати, ошибается тот, кто думает, что в таких часах будет неуклюже выглядеть или придется использовать неудобные аксессуары, например, датчики измерения скорости, прикрепляемые к обуви. Такие модели уже давно вымирают. GPS-часы для бега в настоящее время являются очень компактными: GPS-приемник с антенной и другие дополнительные датчики движения встроены в их корпус.

Всегда хотел сделать часы, не нуждающиеся в коррекции времени. В студенчестве пытался собрать приёмник сигналов синхронизации времени на ДВ (DCF77), даже кварц нужный выпилил. Но сигнал из Германии доходил слабый, да и антенна нешуточная получалась.

Потом появилась возможность синхронизации от GPS. В своё время приобрел RS232 GPS модуль, выдающий информацию о координатах в NMEA , который подключал к чёрно-белому PALM m105 и радовался программе PathAway. Но прогресс на месте не стоял, появились другие задачи и GPS модуль провалялся на полке до текущего момента.

Недостаток синхронизации времени от GPS - необходимость располагать приемник в прямой видимости хотя бы одного спутника, что в разрезе часов не всегда приемлемо. В связи с этим появилась появилась идея беспроводной синхронизации, т.е. приёмник располагается на подоконнике и по радиоканалу раздаёт близлежащим желающим точное время. Городить дуплексный канал, чтобы время синхронизировалось по запросу, счёл излишним. GPS приёмник сам передаёт синхронизацию с заданным периодом.

В качестве радиоканала применил лежащие без дела узлы дохлой автосигнализации (рабочая частота 433мГц). После обновления сетевого оборудования в родной конторе (провайдерской) освободились свитчи отечественного производства LightCOM S100, управление которого строилось на процессоре PIC18F452, так что дополнительных финансовых расходов не предвиделось.

Для избежания дальнейших вопросов ниже по тексту, устройство с GPS-приёмником и передатчиком синхронизации буду называть передатчиком, а часы с приёмником синхронизации - приёмником.
Исторически привык собирать схемы на монтажных платах при помощи МГТФ.


Так что сторонников ЛУТа прошу не пинать. Выпилив процессор приклеил его к монтажке. Схемы передатчика и 2-х часов не привожу, в коде есть пинауты.
Итак начну с передатчика:


Система функционирования передатчика проста. Принимаем USART портом PICa NMEA предложения и достаем оттуда данные о текущем времени, дате и актуальности этих данных. Как только подходит период синхронизации (у меня 4 минуты) - передаём всё это в эфир. Из особенностей схемы передатчика замечу следущее:

Схема питается от 5 вольт, в то время как брелок хочет 12 Вольт. Пришлось городить диодно-конденсаторный удвоитель напряжения.
- чтобы не делать преобразователь уровней из RS232 в TTL вскрыл GPS модуль и вывел TTL сигнал до выходного RS232 преобразователя.

Вот обратная сторона передатчика:

Особенность радиообмена автосигнализации - необходимость в передаче т.н. преамбуле - меандра определенной длительности для выхода приемных цепей и АРУ в стабильный режим (можно почитать спецификацию на keeloq в интернетах). Итак, передав преамбулу, передаём нужные байты и в конце - байт контрольной суммы для уменьшения вероятности ошибок на приёмной стороне.

Первый приемник синхронизации (часы) сделал на основе индикатора от списанного кассового терминала:

Особенность этих часов, да и любых, использующих внешнюю синхронизацию - отсутствие необходимости в собственных точных часах (RTC), обычно реализуемых на микросхемах с кварцами 32768 или имеющихся на борту большинства современных микроконтроллеров. В принципе таки часы можно делать и на RC-генераторе. Главное чтобы точность не значительно плыла за время периода синхронизации.

Схема часов тривиальна. Индикатор подключен в режиме 4-битной шины данных. На вход int0 PICa приходит выход от приёмника автосигнализации. Для реализации отображения больших цифр на 2-х строчном текстовом индикаторе пришлось использовать клиенто-изменяемые символы в cgram. Дизайн символов честно спер.
Найдя в загашнике лампы ИН-14, которые чуть младше меня, не смог удержаться от создания вторых часов:

Схемотехнически, тут также нет особых изысков, но все же:
- индикация стстическая (благо есть много свободных выводов у PICa да и 155ИД1 хватает).

Пришлось вешать на радиатор греющиеся элементы


умножителя напряжения (180Вольт по спецификации на лампы ИН14)

Еще пару дизайнерских ходов для подчёркивания постапокалиптического сюжета:

Решил упаковать часы в противогаз, для чего пришлось сделать манекен головы из монтажной пены и кусков пенопласта:

В индикацию добавил глюков (покажу на видео)
- добавил зуммер для создания звуков работающего дозиметра
- глюки и сигнал дозиметра формируются с помощью функции rand() в c18, seed которой формируется с участием атмосферных шумов, берущихся в с выхода приёмника.
- переключение минут сопровождается выключением умножителя и красивом потуханием индикации

Готовые часы номер 2:

Видео работы:

Еще видео:

Писал первый раз на c18. Раньше под PIC писал на ассемблере.

Статьи по теме: