Часики

Часы, синхронизирующиеся по спутнику GPS

В тему названию сайта, наши часики тоже будут космические!

Можно было бы написать две статьи, но у меня получилась одна, но состоящая из двух частей.

Часть 1.

Пример использования популярного в народе символьного LCD-дисплея WH0802. Это восьмисимвольный двухстрочный жидкокристаллический дисплей со светодиодной подсветкой.

Для его подключения был спаяна вот такая платка:

Платка для подключения LCD дисплея к плате Марсоход

Ее схема:

Схема платки для подключения LCD дисплея к плате Марсоход

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

доработка LCD дисплея

Дисплей имеет не сложный параллельный интерфейс, подробно описанный в документации (

LCD дисплей ( 458341 bytes )
). Для сокращения количества подключаемых пинов мы использовали 4х-битный режим, хотя из-за этого несколько усложнился проект для платы Марсоход ().

Хочу отметить несколько важных моментов при работе с дисплеем. Сразу после включения питания нужно немного подождать - в дисплее есть свой контроллер, и на его инициализацию уходит какое-то время (мы ждем 1 секунду). Далее в него нужно занести управляющую последовательность, включить 4-х битный режим, отображение второй строки и так далее. ( мы, кроме того, пишем слово "Marsohod" в верхней строке ). После этого можно выводить нужную нам информацию, не забывая корректировать указатель на дисплейную память.

Теперь, когда мы можем пользоваться дисплейчиком и хотим сделать из него часы, встает резонный вопрос, а где, собственно, брать время?

Часть 2.

GPS-приемник.
Приобрел по случаю GPS модуль CONDOR67650-10. К счастью, к самому модулю, в магазине, где я его покупал, мне предложили взять и антенну, за что им огромное спасибо.

антенна GPS приемника

К сожалению, документация на него не очень подробная (

GPS приемник ( 1006382 bytes )
), но что куда подключать в принципе понятно.

Для экспериментов была спаяна платка:

платка для подключения GPS модуля к плате Марсоход

Обратная сторона:

платка для подключения GPS модуля к плате Марсоход

Модуль имеет последовательный интерфейс,  и первое, что мы сделали - это подключили его к компьютеру (правда понадобился еще преобразователь уровней RS232). Сразу после включения модуль один раз в секунду передает примерно такие сообщения:


$GPRMC,115403.908,V,,,,,0.00,0.00,261110,13.6,W,N*06
$GPGGA,115404.908,,,,,0,0,,,M,,M,,*4C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115404.908,V,,,,,0.00,0.00,261110,13.6,W,N*01
$GPGGA,115405.908,,,,,0,0,,,M,, $GPGGA,115417.908,,,,,0,0,,,M,,M,,*4E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115417.908,V,,,,,0.00,0.00,261110,13.6,W,N*03
$GPGGA,115418.908,,,,,0,0,,,M,,M,,*41
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115418.908,V,,,,,0.00,0.00,261110,13.6,W,N*0C


Что они конкретно означают, можно почитать где-нибудь в википедии, а нас интересуют только первые цифры после названия сообщения - это время UTC в символьном виде ( московское UTC+3, в проекте мы это учли ).
Причем время есть с разных сообщениях, для нас достаточно какого нибудь одного, например, "$GPRMC".

Нам остается подключить приемник к плате Марсоход и из каждого сообщения "$GPRMC" выводить время на дисплей.

Сразу после включения GPS-приемник выдает какое-то свое время (2:59:47),
а правильное начинает выдавать только через некоторое время, когда настроится на спутник. Причем, в зависимости от условий приема, это время может быть достаточно большим.

 


Добавить комментарий