Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: Добавить тег

GPS Мультичасы «МЕРКУРИЙ 402». Финал.

Автор: vitalyadm
Опубликовано 23.05.2019.
Создано при помощи КотоРед.

Предыдущая статья тут: «МЕРКУРИЙ 402-А. Продолжение»

Здравствуйте дорогие друзья!
Вначале позвольте пару слов. Сразу скажу, что почти обо всём, о чём пойдёт речь в этой статье уже было сказано, но правда на форуме, урывками и достаточно скудно. Грубо говоря, эта статья «размазана тонким слоем» по всей тематической ветке. А в виду того, что не все любят вчитываться в каждую строку сообщений форума, было бы обидно, если огромное количество времени и трудов оказалось просто где- то оставлено без особого внимания. Именно поэтому, собрав всё воедино, от начала и до конца, я и решил закончить тему GPS часов «МЕРКУРИЙ 402-А», неким готовым «продуктом» в виде финальной статьи. Надеюсь, интересно будет всем и тем, кто любит паять, и тем, кто любит мастерить «эдакое красивое» и конечно же тем, кому нравится 3D печать…. Достаточно много будет из предыдущей статьи. Так или иначе, я постараюсь донести всю информацию здесь, но тем не менее, какие-то ссылки к «МЕРКУРИЙ 402-А. Продолжение» будут, ну, надеюсь вы поняли 
Поехали!

 ВВОДНОЕ

И так, давайте для начала разберёмся.
Название «МИУЛЬТИЧАСЫ» родилось, потому что когда-то не было определённого понимания классификации устройства, от того так и решил.
Что они «умеют»?
• Отображать время.
• Синхронизация времени осуществляется по GPS приёмнику, поэтому пункта меню установки времени у часов вообще нет.
• Отображать значения температуры воздуха и атмосферного давления, которые передаются от передатчика к часам по радиоканалу.
• Секундомер. Ограничение 99 часов, 59 минут.
• Отображение секунд выполнено в стиле «кругового циферблата», количество стилей отображения – 5, подробнее в видеоролике ниже.
• Выход «БУДИЛЬНИК», для подключения внешнего устройства, при наступлении установленного времени на выходе появляется логический 1 (т.е. +5 вольт).
Собственно ролик из предыдущей статьи, для общего ознакомления «Что? и Как?», а после уже пойдём по нововведениям и перейдём к новым устройствам, которыми «обросли» часы в ходе их доработки.

Фактически, все основные принципы работы, как цельного устройства - остались прежними, за исключением блока значений температуры и атмосферного давления. Теперь вместо датчика BMP180 находится модуль приёмника, а сам датчик располагается на передатчике. Значения температуры и атмосферного давления передаются по беспроводному каналу. Устанавливается приёмник на те же посадочные места, что и BMP. Зачем была осуществлена такая схема (приёмник - передатчик)?
Во-первых, датчик BMP180 хорош в плане замера атмосферного давления, но вот температуру он измерять совсем не умеет, показывает какие- то значения, но явно не соответствующие действительности, а хотелось бы точности.
Во-вторых, хотелось получать информацию о температуре за окном (используя DS18B20), а не в квартире. Температуру в квартире я и так знаю.
И, в-третьих, сам канал связи в виде проложенного провода из одного конца квартиры в другой был вообще никак не реализуем.

Печатная плата часов (как устройства в сборе), по сути, содержит на себе два независимых модуля, это сами часы на основе ATmega328 и модуль кругового циферблата (секунд), на основе ATmega8. Поэтому, для упрощения и в избежание тавтологии будем называть модуль часов - «основным модулем». Модуль кругового циферблата – «кольцо». Модуль приёмника значений температуры и давления – «приёмник».

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

 

ЧАСЫ

Как печатная плата, так и сами принципиальные схемы не потерпели каких- то либо серьёзных изменений за исключением всего нескольких элементов. (пары конденсаторов и иной стабилизатор питания), рассматривать подробно не будем, всё предельно просто. Обе платы, что новая (из этой статьи), что старая (из предыдущей статьи) абсолютно совместимы как по элементам, так и по подключению «приёмника». Практически, они почти идентичны. GPS модуль тот же, NEO-6M, желательно в виде красного шилда, другие могут не подойти по пинам. Вот такой:

GPS антенна, обычная активная 25х25х8мм.

 

Принципиальная схема «основного модуля»

Принципиальная схема «кольца»

Все резисторы, конденсаторы и светодиоды в корпусе 0805.


Карта элементов, лицевая сторона

Карта элементов, обратная сторона

Основная печатная плата, фото вид с обеих сторон

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

Фюзы для прошивки ВСЕХ МК проекта будут также находится в архиве вместе с прошивками.

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

Принципиальная схема «приёмника»

 

Карта элементов, лицевая сторона

 

Карта элементов, обратная сторона

 

Для организации радиоканала использовались готовые радио модули HC-12.

 

Очень удобно, стоимость одного модуля на алике всего 120-150р! При этом, это уже отстроенный приёмопередатчик, вообще в действительности это ни что иное как беспроводной UART. Никаких сложностей, вся организация канала между устройствами сводится к набору нескольких АТ команд. Очень важный плюс, у радио модуля есть спящий режим, в котором он потребляет около 16 мка! Для питания устройства от батареек – самое то. Из основных достоинств – их не надо сопрягать как блютуз, выбрал канал и вещай, как рации и дальность, максимум на сколько проверял – 200 метров берёт на ура с учётом, что передатчик находился в квартире, а я с ноутбуком и приёмником на улице т.е. видимость была не прямая. Частота 433Мгц. После сборки «бутерброда» из радио модуля и управляющей платы получилось вот такое устройство

Микроконтроллер ATTiny2313 управляет как радио модулем, так и данными в целом, выступая неким посредником между ATMega8 и «передатчиком». На уровне Tiny идёт проверка корректности посылки, принятой от «передатчика», обработка этой посылки, возврат подтверждения о получении пакета, хранение и последующая передача полученной информации. Никакой предварительной настройки не требуется. Просто собирается «бутерброд» и устанавливается на основную ПП.

 В итоге получается следующая сборка

 

Припаивается передатчик к основной плате через штыри

В роли антенны выступают две спаянные вместе антеннки от GSM модуля SIM800L, продаются отдельно. Можно просто смотать в виде пружины 30 сантиметров провода. Также, на плате HC-12 имеется разъём для подключения внешней антенны, это если нужно сильно увеличить радиус передачи.

Сразу отвечу на вопрос, который может возникнуть у многих. «А почему нельзя было распаять всё на одной, основной, плате, не прибегая к «бутербродному» принципу? Зачем такой «огород городить» …?» Дело в том, что это разно модульный принцип построения устройства, например лично мне больше нравится такой подход. Почему? Так проще разрабатывать и потом собирать, когда отдельный блок — это небольшое устройство, проще отлаживать, да и интереснее как- то. А во-вторых, когда пришла идея сделать «беспроводной вариант» не только у меня, но и у некоторых уже были собраны часы, не перепаивать же полностью плату. Поэтому единственное решение – это выпаять датчик давления и припаять на его место «приёмник». Да и кстати, в реальности очень даже симпатично вышло 

Каких- то настроек или важных нюансов при монтаже часов в целом - нет, просто берутся ПП, берутся электронные компоненты, всё собирается, заливаются прошивки, после подачи питания часы должны сразу начать работать.
Теперь очень интересный момент, который сразу и не заметишь. На «приёмнике» имеется два светодиода, и одна перемычка, зачем они нужны? Про перемычку чуть позже, хотя это и взаимосвязанные между собой элементы (светодиоды и перемычка), но пока только про светодиоды. Благодаря им создаются красивые визуальные эффекты. Ведь ручная работа должна быть хороша не только с практической точки зрения, но и эстетической и если кто- то скажет, глядя на ваш труд «Ой как красиво!», радуйтесь, всё получилось . Не так ли?!

И так, зелёный светодиод постепенно увеличивает яркость и постепенно уменьшает, время перехода яркости от макс. к мин. и обратно 2,5 секунды и больше ничего. Красный постепенно увеличивает яркость в зависимости от того, сколько времени прошло с момента последнего принятого пакета от передатчика – чем ярче, тем больше времени прошло с момента прихода последней посылки от передатчика.
Изначально я думал сделать немного иначе, от каждого светодиода отвести пучки лески, которые бы выполняли роль оптоволокна, а другие концы лески должны были выйти наружу через множество отверстий в корпусе, в итоге должен был бы получиться некий эффект «пульсирующих звёзд» (название же «МЕРКУРИЙ»), не сложилось, да и дизайн представлялся иначе. Но потом, когда полностью допечатал и собрал часы в нынешнем корпусе, не ожидая того, получился ещё более интересный эффект. Через отверстия, которые находятся сзади, проходит зелёный свет, образуя интересные и красивые пульсирующие пятна на стене, чем- то хвост павлина напоминает. А с красным светодиодом, получилось ещё более забавно. Цвет корпуса часов- красный, образуется некий светофильтр. Свет от зелёного не проходит через красный пластик, а свет от красного светодиода проходя через корпус создаёт эффект как будто сам корпус начинает светиться и так он постепенно становится всё ярче пока не придёт посылка или таймаут ожидания. Сфотографировать в темноте сложно что либо, поэтому получилось только так. Надеюсь, суть станет ясна.

 

Заканчивая этот раздел, пройдёмся по пунктам меню. Переход в настройки осуществляется нажатием кнопки «МЕНЮ».
F1 – «Стиль круговой индикации»
1 – Заполнение +
2 – Заполнение –
3 – «Змейка». При подсвечивании новой единицы нового десятка, предыдущий десяток как бы перебегает в новый.
4 – Бегущая точка.
5 – Бегущая точка с подсвечиванием десятка. Аналогично 4 пункту, с той разницей что все светодиоды десятков, через которые прошла «точка» остаются светиться.
6 – При выборе этого значения пункта «F1» все стили сменяются автоматически с наступлением новой минуты.
F2 – «Что отображать на круге»
1 – секунды.
2 – значение температуры.
F3 – «Какие значения отображать на основном LED дисплее»
1 – Время.
2- Время -> Температура.
3 – Время -> Давление.
4 – Время -> Температура -> Давление.
5 – Температура.
6 – Давление.
F4 – «Количество секунд между сменами значений на основном LED дисплее»
F5 – «Ваш часовой пояс»
F6 – «Количество часов между корректировкой (синхронизацией) текущего времени по GPS»
После включения, часы получают текущее время, а в последствии через установленный промежуток корректируют его. Поэтому, часы никогда не спешат и никогда не отстают.
F7 – «Время входа в спящий режим»
F8 – «Время выхода из спящего режима»
При установке F7 = 0:00 и F8 = 0:00 – «спящий режим» вообще не активируется. При входе в «спящий режим» - кольцо полностью гаснет, яркость основного LED дисплея уменьшается в несколько раз, а отображается только текущее время. Используется как правило ночью, т.к. яркости всех светодиодов вполне хватает для того, чтобы осветить небольшую комнату.
F9 – «Точность синхронизации»
0 – Нормальный режим. Отклонение от точного времени может быть в пределах 5 секунд.
1 – Максимальная точность.
После опубликования первой статьи выяснилось, что время, которое получил GPS приёмник от спутника может иметь отклонение в +- 5 секунд (не более), в том случае, если приёмник не зафиксировал своё местоположение, грубо говоря не «поймал» достаточное количество спутников. Кто- то не обратил вообще внимание на эти +-5 секунд, а кого- то этот факт совершенно не устроил. При активации «максимальной точности», время синхронизации очень сильно увеличивается, особенно в помещениях. Проще говоря, если мы устанавливаем «0», то будет достаточно и одного спутника, если же «1», то МК будет ожидать максимально-точного значения от GPS приёмника и в некоторых случаях, может вообще «не дождаться», особенно в крытых и бетонных помещениях!
F10 – «Время срабатывания будильника»
При наступлении установленного времени на 16 пине (PORTB.4) микроконтроллера ATmega8 образуется высокий уровень, по истечению 50 секунд, высокий уровень сменяется низким. Отключение раньше времени по нажатию любой из кнопок.

ПЕРЕДАТЧИК

Сразу начнём с принципиальной схемы.

Для начала разберём как осуществлён принцип приёма- передачи информации:
МК ATTiny13 выполняет роль «будилки», в зависимости от установленной перемычки через определённый промежуток времени Tiny создаёт на пине (PORTD.3) МК ATmega8 логический 0 длительностью 1 секунда, тем самым выводя его из состояния сна (режим максимального энергосбережения powerdown). И вот здесь вспомним про перемычку как «приёмника», так и «передатчика».

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

При установленной перемычке интервал отправки составляет 40 минут, при снятой перемычке интервал составляет 5 минут! Честно говоря, опытным путём было установлено, что 40 минут – вполне идеальный интервал для замера, чаще особо и не обязательно т.к. на столько быстро температура воздуха не меняется.

Состояние перемычек как на приёмнике, так и на передатчике должно быть одинаково!!! Если на «передатчике» установлена, значит и на «приёмнике» устанавливается и наоборот. Суть в том, что «приёмник», исходя из состояния перемычки начинает «ждать» очередной пакет в вышеуказанных пределах (40 минут/5 минут) и если «приёмник» не дождётся 3 определённых перемычкой промежутка в подряд (снята - ~2 часа ожидания, установлена - 16,5 минут), то Tiny на «приёмнике» обнулит последние принятые значения, а на LED дисплее часов вместо температуры высветится «---°», а вместо давления «Р---». Зачем? Всё просто, для того чтобы понять, что пора менять батарейки на передатчике. Поэтому если на дисплее высветились прочерки, это значит «передатчик» перестал передавать данные, меняем батарейки!

И так, далее. После пробуждения, ATMega на «передатчике» опрашивает датчики и формирует посылку с данными, после чего эта посылка отправляется на «приёмник». Но, после отправки, уже «передатчик» ожидает подтверждения от «приёмника», что отправленная посылка была успешно получена и данные корректны. Если же «передатчик» не получил подтверждения, то через 2 секунды он отправит пакет заново и так по кругу. Количество попыток отправки, если нет подтверждения о успешной доставке – 10 раз. Этот алгоритм необходим для исключения вариантов, когда на приёмник из-за неуверенного сигнала или каких- то преград приходит искажённый пакет данных или вообще не приходит. В реальности это выглядит примерно так:

- Вася кричит Пете: «Триста-тридцать-пять», а Петя в ответ, когда услышит, кричит Васе «Хорошо». Если Вася от Пети «Хорошо» не услышал, значит крикнет Пете снова «335». При этом Петя, когда услышит, что- то от Васи, обязательно проверит, что он услышал, только ли число и ничего лишнего (формат соблюдён)? В ином случае Петя не будет кричать «Хорошо». Примерно так.

После того, как сессия отправки пакета будет закончена, ATmega «передатчика» обесточит все датчики и снова перейдёт в режим сна т.е. максимального энергосбережения. Таким образом будет выполнен очередная последовательность бесконечного цикла отправки данных. В упрощённом виде это выглядит так: Пробуждение -> Считывание данных -> Отправка данных (в случае отсутствия подтверждения снова попытка отправки) -> Уход в сон. Ток потребления в режиме сна «передатчика» в целом - ~500 микроампер, в активном режиме 16-40 миллиампер. На практике, последний раз батарейки менял в ноябре прошлого года, сейчас май, т.е. комплекта батареек на момент написания статьи уже хватило как минимум на 5,5 месяцев – я считаю отличный результат!
Кнопка служит для принудительного пробуждения и начала отправки пакета данных. После нажатия кнопки, счётчик пробуждения у Tiny обнуляется. После подачи питания, отправка первого пакета начинается сразу, без отсчёта времени сна.

По монтажу так же, никаких настроек делать не нужно, просто собирается устройство и всё. Допускается несколько параллельно подключённых датчиков DS18B20, до 3- х штук. При этом будет высчитываться среднее значение суммы температур со всех найденных на линии датчиков. Точность измерения температуры 0.1 градуса, пределы специально не проверял, на практике -25 было, +48 тоже. Точность барометра 1мм/ртст.

Единственный момент, я повторю его несколько раз!
ВНИМАНИЕ!!! ВНИМАНИЕ!!! ПРОШИВКА В МК ATTINY13 ПРОЛИВАЕТСЯ В ОПРЕДЕЛЁННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ!!!!!
СНАЧАЛА ВЫСТАВЛЯЮТСЯ ФЮЗЫ И ТОЛЬКО ПОТОМ ПРОЛИВАЕТСЯ ПРОШИВКА!!!!!
Дело в том, что в прошивке введён делитель на 256 для уменьшения скорости работы АЛУ, в следствии уменьшается ток потребления МК, а в конечном итоге «передатчика в целом. Поэтому, если сначала пролить прошивку в новый МК, то его частота станет равной 37,5Кгц вместо 9,6Мгц. На этой частоте, например USBASP, даже с учётом понижающей перемычки видеть Tiny не будет, соответственно фюзы вы уже не выставите!!!! Проверено!!!! ПОЭТОМУ!!!! ПРОШИВКА В МК ATTINY13 ПРОЛИВАЕТСЯ В ОПРЕДЕЛЁННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ!!!!!
СНАЧАЛА ВЫСТАВЛЯЮТСЯ ФЮЗЫ И ТОЛЬКО ПОТОМ ПРОЛИВАЕТСЯ ПРОШИВКА!!!!!
Даже если и произойдёт ошибка при проливке, с помощью бубна и плясок стереть флеш и вернуть проц к жизни можно, но оно вам зачем, эти сложности!

В принципе, добавить, наверное, уже и нечего.
Печатные платы «передатчика» и «приёмника», также заказывал в Китае. Вышли какие- то условные деньги, даже не помню сколько, помню, что мало. Заказывал в виде одной платы, потом разламывалась на несколько ПП, места сломов подпиливал немного надфилем, для красоты.

Изначально выглядело так, вид с обеих сторон:

 

А уже после монтажа и окончательной сборки вышло вот так:

 

Карта элементов, лицевая сторона

 

А так выглядит передатчик в сборе, но со снятой верхней крышкой.

Помимо всего и прочего, добавлю ещё один раздел.

КРОНШТЕЙН КРЕПЛЕНИЯ ДАТЧИКА ТЕМПЕРАТУРЫ

Вынести датчик за окно- мало, его ещё нужно хорошо закрепить и очень желательно защитить от дождя иначе датчик может покрыться льдом и тогда в лучшем случае, он просто перестанет показывать правильные значения, в худшем повредится. Поэтому, пока шёл ремонт, из остатков профиля для гипсокартона и напечатанном на 3D принтере держателя, был сделан вот кронштейн. Модель, разумеется, в архиве.

Сам держатель.

 

Прикручиваем его к профилю для гипсокартона винтами М3 из нержавейки.

 

Крепим стяжками датчик к держателю и одной стяжкой фиксируем провод

 

Вот и всё, дело за малым, осталось закрепить конструкцию за окном

В итоге получилось и красиво, и очень практично, профиль оцинкован – соответственно не ржавеет и при этом датчик находится всегда под «крышей», а значит ни дождь, ни снег ему не страшен. По крайней мере, зиму пережил отлично, проверено 

3D ПЕЧАТЬ И ОКОНЧАТЕЛЬНАЯ СБОРКА

Все детали этого проекта были распечатаны из PLA, слой 0.1. Заполнение 20%. Самая долгая печать одного элемента составила 32 часа — это основной корпус часов. Поддержки нигде не отключались. В остальном, всё как обычно.

Часы. В сборе.

 

Место установки GPS антенны, без крышки.

 

Плата часов фиксируется за счёт лицевой крышки (обода), вид без крышки

 

Вид корпуса изнутри

 

Ножки соединяются с дном подставки, клеить не обязательно, держится крепко

 

Подставка крепится к корпусу через две проставки. В архиве модель только одной ножки, вторая печатается в зеркале относительно первой.

Весь корпус собирается исключительно на винтах, клей не использовал вообще. Подставка крепится к корпусу на винтах М4, сначала до самой шляпки на винт накручивается гайка, после чего винт вставляется изнутри, и конструкция собирается. Можно использовать болт, но болтов М4 под рукой не было. Вместо внешней гайки я использовал барашек (см. фото), так вышло симпатичнее. Для фиксации лицевой панели и платы часов используются винты М3. Для фиксации крышки антенны GPS и соответственно самой антенны - винты М2. Длину винтов подбирать по факту сборки, как удобнее.

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

 

Без крышки. Вставка, выделанная красным кругом, используется для фиксации провода от датчика. В прорезь укладывается провод, после чего устанавливается вставка. Фиксируется двумя винтами М2.

Платы (основная плата передатчика и плата с кнопкой) крепятся при помощи винтов М3. Крышка задвигается, после чего фиксируется двумя винтами (также М3). Контакты с пружинками и без для батареек я покупал на алике, стоят копейки. Ищется просто, в поиске «контакты для батареек», интересуют те, что размером 10х9х0.3мм. Контакты просто вставляются в посадочные места.

ИТОГ

Собственно, после всего, порой не простого, пути к конечному результату получилось то, что получилось…. Причём, лично я считаю, что это одна из лучших работ в моей жизни, а если учесть, что эти часы уже обратили не малое количество внимания на себя, в том числе «Я себе тоже такие хочу…», могу уверенно сказать: «Всё получилось!». Чего и вам желаю!

А эту инсталляцию не могу оставить без внимания, делал один мой товарищ как подарок на день рождения. Он назвал это «РЕАКТОР», получилось действительно интересно.

P.S. Так сказать, пользуясь случаем.

Выражаю огромную благодарность

Солдатову Александру Владимировичу (АКА takedown1)

за помощь и огромную поддержку в проектах,

да и просто творчестве, спасибо тебе огромное, дорогой товарищ!

 

Ссылка на ветку форума по теме «Часы серии "МЕРКУРИЙ 40х-А"»

Пишите, не забывайте! И до новых встреч, дорогие друзья!

Всё, финал!

 

 

 

 


Файлы:
Файлы проекта


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

37 1 2
1 0 1