29.07.2018 19:23, автор DiEitch
Когда уйдёт из жизни тая,
Любимый близкий человек,
Страданья сердце разрывают,
И не вернуть его вовек...
Посвящается моей маме.
Этот проект я начал сравнительно давно - в октябре 2017 года, но за неимением достаточного количества времени (и "имением" других дел, а также "работы, дающей хлеба насущного") он продлился более полугода. На сегодняшний день я могу сказать, что проект практически готов, и данная статья имеет право на публикацию.
Началось всё с того, что я задумался, как же мне использовать VFD-дисплей FUTABA M202MD10C. Для чего-то простого не хотелось его применять, и созрел план - вывести на этот дисплей строку с ПК через USB. Но это оказалось очень "мелко", т.к. изучая данный дисплей, я наткнулся на статью, в которой немецкие радиолюбители такое уже делали.
Таким образом, созрела идея совместить информационное табло, часы и метеостанцию, как говорится, "в одном флаконе". Теперь надо было выбрать элементную базу. В качестве микроконтроллера в такое табло просто напрашивался Cortex-M3 (например, STM32F103). Но по роду работы я постоянно в последнее время с ними имел дело, и они мне изрядно поднадоели, к тому же хотелось превратить проект во что-то увлекательное и простое (да и не думаю, что кто-то возьмётся это делать :-)), поэтому я твёрдо решил: AVR->MEGA->ATMEGA8, и "будь что будет". Я обожаю эти простые, понятные и человекоориентированные "камни". Писать под них - одно удовольствие и отдых.
Походил я "по сусекам", наскрёб комплектующих, что-то купил, что-то выпаял из ненужного хлама. Составил принципиальную схему (заранее каюсь за ненаучный подход - схема нарисована не в Altium, и даже не в MG, а в ... Paint!).
Схема до неприличного проста, поэтому мне даже лень было запускать что-то серьёзное для её проектирования (и редактирования). Раскидал пины микроконтроллера наиболее удобным для программирования способом. "Подсоединил" индикатор, датчики, мост USB (библиотеку VUSB или другую не стал тянуть в проект по нескольким причинам: жрёт ресурсы, не моя, проще написать программу для ПК). С блоком питания вроде ещё проще: трансформатор взял со вторичкой 8-12В (если меньше - может не запуститься индикатор), мост на диодах Шоттки, кренка, пара электролитов. Плату для упрощения и убыстрения взял макетную (думал, потом заменю, но "потом" пока не пришло, и так всё работает хорошо).
Инфракрасный датчик выбросил, а вместо "части Осамы Тамуры" на ATTiny45 (по схеме) я взял готовое решение (красная платка с чипом CP2102):
Модуль датчика давления BMP180 разместился на основной плате. Т.к. питание производится от 3,3 вольт, стабилизатор на плате удалён.
И тут меня "попёрло", вечерами с девяти до двенадцати...часа ночи я писал код. Во-первых, когда свежо и есть идеи - всё происходит быстро, во-вторых - боялся, что пропадёт вдохновение, и проект "потухнет". Т.к. отладчиком я не пользовался (да и что в восьмой меге отлаживать-то?), иногда случались запары в виде "убежавшего" указателя или какой-нибудь "логической тупизны", но код шёл легко и стройно. Модульность не стал даже и использовать - разбил код на разделы в основном файле (хотя никому так делать никогда не рекомендую), только часы вынес, т.к. раньше уже писал (вернее переписал чью-то) эту библиотеку...
Часы, Календарь, праздники, бегущая строка, большие часы, индикатор уровня записи, меню настроек (режим, яркость, скорость, время, дата, настройки строк, USB и т.д.). Далее настолько "записАлся", что стало не хватать Flash в ATMEGA8. Для начала я честно попытался перенести часть строк в EEPROM, но данных было много, и EEPROM тоже вскоре быстро закончилась, а идей оставалось ещё много. Пришлось рассмотреть замену микроконтроллера MEGA8 на MEGA168 или MEGA328 в том же (DIP18) корпусе. Я побоялся что 16й не хватит (в текущей версии у меня были поздравления только под главные праздники и ещё не все функции были реализованы, например, выдача данных через USB не работала) и заказал на ALI сразу ATMEGA328.
Режим больших часов (BIG CLOCK):
Режим ИУЗ (данные в этом режиме приходят от ПК через USB):
Теперь немного по внешнему виду. Корпус я не нашёл подходящий и сделал (спаял) его по любимой технологии из кусков текстолита. Но на этот раз я превзошёл самого себя: взял только качественный стеклотекстолит и не поленился оклеить заготовку декоративной плёнкой под дерево (на самом деле, для оклейки пришлось попросить помощников, которым большое спасибо). Вспомнился сопромат, и конструкция была дополнена усиливающими общую жёсткость элементами. Получилось очень даже неплохо (теперь свежая баночка с пивом легко станет сверху).
Задняя стенка по сути и является метеостанцией, здесь удобно расположились: разъём USB, датчик температуры и влажности, модуль часов с батарейкой наружу (так её удобно менять, не разбирая корпус), сетевой разъём "восьмёрка" и кнопки с толкателями из корпусов старых неисправных светодиодов АЛ307Б. Отверстие для батарейки позже будет закрыто задвижкой, которая будет вращаться на одном из винтов, что крепят модуль часов.
С датчиком температуры и влажности типа DHT22(AM2302) получилась неувязка, температуру завышал на 3 градуса, а влажность незначительно менялась от температуры в небольших пределах и была всегда около 40% (+/- 2%). Я проверил код, заменил для проверки датчик на DHT11 (тот показывал всё правильно), и в итоге заменил DHT22, как неисправный. Кроме того, этот датчик часто не "отвечал", пока его предварительно не прогреешь пальцем!
Снизу приклеил каучуковые ножки с ALI. А внутри ко дну припаял шестигранные длинные гайки для крепления трансформатора и платы.
После оклейки "шпоном" оказалось, что нужна качественная передняя панель (чтобы не испортить вид и проделанную работу) из алюминия. Я применил кусок дюраля от старого советского плоттера "Автограф". Когда я его пилил и полировал (вручную, тряпочкой с пастой ГОИ, почти так как самураи полировали свои мечи), то плакал горькими слезами - очень прочный износостойкий сплав с хреновым качеством поверхности (выбоины, щербины). Но когда закончил механические работы, и панель встала на место - я тоже рыдал, но уже по другой причине - плоттер-то не зря пострадал!
С креплением передней панели пришлось проявить смекалку (шляпки винтов не всегда радуют глаз на передней панели), я применил капроновые шестигранные втулки (винт, у которого вместо шляпки шестигранная длинная гайка), которые являются гайками для винтов крепления индикатора. Из-за такой хитрости пришлось тонкими шайбочками выбрать лишние зазоры. Зато выглядит достойно.
Вид спереди на панель, которая почти сверкает (изначально я планировал её матовой, но технологию не смог воспроизвести из-за сложности техпроцессов, отсутсвия нужных химикатов и нежелания разводить дома грязь):
А вот как внутри (индикатор пока прикреплен пробно на обычные винты М3 шляпками наружу - теперь же, наоборот, шляпки внутри корпуса):
Для пущей аккуратности применена самоклеящаяся площадка со стяжкой кабельной (ещё одна сбоку слева держит сетевые провода и одна на задней стенке).
Трансформатор от зарядного устройства. Китайцы не поленились заизолировать каждую обмотку своим цветом (только почему-то "сетевая" изолента синяя, а не красная, как должно быть по логике). Крепление трансформатора осуществляется самодельным хомутом из какой-то полосы (чтобы её согнуть пришлось тщательно отжигать на комфорке плиты и остужать на воздухе).
А теперь предлагаю посмотреть, как это работает: Скачать видео.
Спасибо за внимание.