
Здравствуйте Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
|
![]() как говорят, "Что не собирай, а в итоге получаются часы..." (с)
К чему это я... Мной собрано около десятка различных часов: с будильниками, без будильников, даже сирену в качестве будильника прикручивал)) в качестве индикатора также собирал на СемиСегментниках, на ЖК дисплеях от магнитол, на ЖК дисплеях от мобильников, итд... В качестве часов реального времени применял и DS1307, и PCF8583, и даже MK41T56 с корректором хода, и другие микрушки... Вобщем много всего перепробовал =) Единственный недостаток всех этих часов- рано или поздно их надо корректировать, то на минуту, то и на три, а то и на 6 минут, что неудобно. Сразу снимаю с себя всю ответственность за потраченное вами время, детали, деньги, итд, проект некоммерческий, а поэтому вы делаете всё на свой страх и риск!! Конструкция сделана для ознакомления с протоколом NMEA-0183, работой с передачей данных через UART, работой с регистрами, а также как пример использования графического дисплея в радиолюбительской конструкции. Если у вас что-то не заработало, то вините во всём свои кривые руки!! Было решено сделать часы с какой-либо синхронизацией. Синхронизация через Интернет отпадает, т.к. у нас интернет частенько сбоИт, да и платный он. В качестве альтернативы был найден GPS-приёмник, работающий через NMEA-0183-протокол, который достаточно хорошо описан на просторах интернета. Ссылка на описание NMEA-протокола Но вот беда- в нашем городе нет ни одного радиомагазина, а ближайший- 260 км от наc. Но в то же время валяется без дела Bluetooth-GPS-модуль, который я когда-то покупал аж за целых 2500 рублей..... К чему это я? Да к тому, что модуль то у меня Bluetooth!! а как с него добыть данные ? ![]() Решено было вскрыть корпус и осмотреть печатную плату. После визуального осмотра, на плате было обнаружено около 15-ти контрольных точек. ![]() Подав питание, я "пощупал" выходные сигналы в контрольных точках, и.... на одной из них был найден нужный мне NMEA-сигнал. Сразу скажу (кто не знает)- протокол работы приёмника обычный RS232, или UART, кому как нравится =) Подобрал скорость, она оказалась аж 115200 бит/сек. Амплитуда логических импульсов- 2,8 вольта. К счастью, вы можете не страдать такими бедами, а просто купить готовый GPS-модуль, со всей документацией, и не париться как я. GPS-модуль L50 компании Quectel ![]() GPS-модуль Lassen компании Trimble. Дорогая и надёжная вещь..... ![]() Просто я хотел собрать девайс из того, что было под рукой. Да и сейчас GPS встроен практически во все телефоны, поэтому пользы от этого Bluetooth-GPS-модуля не было никакой- он просто провалялся на полке 2 года.... Ещё отмечу, что разные приёмники передают разное количество информационных "пакетов". Пакеты GPS-приёмник "плюёт" ежесекундно. Раз в секунду- пачка пакетов. Мой приёмник передаёт четыре разных пакета: $GPGGA $GPGSA $GPGSV $GPRMC Ну а в моём проекте GPS-часов используется только один GGA-пакет. Его структура изображена ниже: $GPGGA,hhmmss.ss,1111.11,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh Из этого пакета нам и то нужны только четыре значения (остальные игнорируем): -время UTC+0 (внимание!! время передаётся без привязки к часовому поясу, поэтому в часах нужно было сделать настройку часового пояса) -количество спутников -данные о фиксированном решении (или просто GPS-FIX) -контрольная сумма Ну а дальше дело техники- заводим UART в микроконтроллер, захватываем пакет, проверяем контрольную сумму, и если она верна, то потрошим "пакет" на отдельные составляющие.... Далее- вывод на дисплей от сотового всех настроек, и вывод на крупные сегменты, составленные из светодиодных лент жёлтого цвета: Яркость светодиодных лент такая, что ночью лупит по глазам будь-здоров!! Поэтому я ещё присобачил к часам датчик света. Можно регулировать мин и макс яркость циферблата (по датчику света), а также отключать датчик света и регулировать яркость вообще вручную..... Также можно сделать например, чтобы: -после AA часов BB минут яркость будет CC процентов. -после XX часов YY минут яркость будет ZZ процентов. например: --после 07 часов 30 минут яркость будет 90 процентов. --после 22 часов 50 минут яркость будет 05 процентов. Все эти настройки выведены на дисплей от сотового телефона, который я разместил прямо внутри корпуса!! Дисплей я взял от сотика Siemens_S65_LPH88 Кстати так и не сказал, датчик света я спёр из сотика Nokia_N95. Вот его даташит: Ссылка на даташит Аппликуха по использованию При включении питания часов, алгоритм такой: циферблат показывает: — это означает что подано питание. Связи с GPS-приёмником нет Затем включается GPS-приёмник. После того как пошли первые пакеты, циферблат начинает показывать: —— это означает что связь с GPS-приёмником установлена, приём 0 спутников. Затем через какое-то время циферблат начинает показывать: ——— это означает что связь с GPS-приёмником имеется, приём 1 спутника. Затем через какое-то время циферблат начинает показывать: ———— это означает что связь с GPS-приёмником имеется, приём 2 спутников. Проходит ещё немного времени, и циферблат начинает показывать текущее время: 23-45 это означает что связь с GPS-приёмником имеется, приём 3 или более спутников. Как только связь с GPS-приёмником нарушается (например обрыв кабеля, или выход приёмника из строя), на циферблате через 5 секунд пропадает время, и индицируется: — это означает что только подано питание. Связи с GPS-приёмником нет. GPS приёмник находится на удалении 5-метров от часов (висит у окна), для связи используется 4-жильный провод (можно витую пару). После приёмника и перед часами стоЯт микросхемы MAX232, благодаря которым сигнал устойчиво передаётся по проводу длиной 10 метров. Также в меню настроек можно изменить скорость работы UART'а, сделано это для того, чтобы можно было подключать различные GPS-приёмники, не прибегая к переделке "прошивки" (разные GPS-приёмники работают на разных скоростях, например, мне встречались модули, работающие на скрорстях 4800, 9600 и 115200 бит/сек!!). Также имеется функция тестирования сегментов. При её включении зажигаются все сегменты, и можно найти "битые" светодиоды. Подсветка внутреннего дисплея (который для настроек) автоматически выключается через 15 секунд бездействия (ну а чего внутри корпуса просто так светить?). Внешний вид настроечного LCD-дисплея: Для настройки у часов имеется всего 3 кнопки ("+", "-", "Ок"). Про настройки подробно в файле: Скачать файл Работа девайса в целом Смотреть видео Конструктивно я разбил печатку на 3 части: первая и вторая части управляют "часами" и "минутами" на циферблате (на них расположены микросхемы-регистры), а третья печатка получает данные с приёмника, и управляет первыми двумя печатками (циферблатом). Фото третьей (управляющей) печатки (печатка кривая, такчто не пинать((( Поставил матовое оргстекло, вот что получилось: Схема+программа Splan 7 Скачать Прошивка atmega16 (кварц 11,059200 мгц) Скачать Фьюзы atmega16 (кварц 11,059200 мгц) ВНИМАНИЕ!!!! ФЬЮЗЫ НЕ ИНВЕРТИРОВАНЫ!!!!! На некоторых программаторах они инвертируются!!! Скачать Исходный код проекта (написано в среде Flowcode 4.3.6.61 или 4.3.9.65) Обсудить статью на форуме С уважением, ваш Zlodey © September-October 2012 |