Часы из Метро Исход на газоразрядных лампах (первый блин комом)

2503

Идея и формирование задачи

Если приглядеться к картинке ранних часов из предыдущей версии игры Метро, можно разглядеть на лампах название ИН-12Б.

Но проблема в том, что они слишком большие для наручных часов (21х31 мм и 28мм в высоту). В СССР выпускалось довольно большое разнообразие знаковых газоразрядных индикаторов от ИН-1 до ИН-18. Цифра в обозначении означает размер, чем больше цифра, тем меньше размер. Четные номера означали вертикальное расположение символов относительно выводов лампы. Соответственно нечетные номера означали что плоскость индикаторов будет параллельна плате, на которой расположена лампа. Приходим к выводу - на нужна самая маленькая горизонтальная лампа, это ИН-17.

Газоразрядный индикатор устроен не многим сложнее чем неоновые лампочки встроенные во многие выключатели света в квартирах ( когда свет выключен, на выключателе светится оранжевая лампочка). Только тут в одном стеклянном корпусе электроды в виде цифр находятся стопкой друг над другом. Это минус, т. к. они частично перекрывают друг друга. Но иначе ни как. Так же в трубке есть один общий электрод, к которому подключается плюс. Стеклянный корпус наполнен инертным газом и небольшим количеством паров ртути. Если между общим анодом и любым другим катодом подать напряжение 180 вольт вокруг катода возникает оранжевое свечение, называемое тлеющим разрядом.

Почему такие же точно часы как в игре, в реальности сделать нельзя

Из-за того что электроды в лампе расположены стопкой, высота самой лампы получается очень большой (22мм сам корпус, плюс 4-7мм хрупкий сосок, через который лампу наполняют газами) А ведь в игре часы плоские и маленькие, совсем как обычные наручные.

Мой первый образец получился 40мм!!! в высоту и более 70 в диаметре. Если такой диаметр смотрится еще нормально, то вот высота вызывает ассоциации с башней Саурона.

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

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

Разработка схемы

Начнем с дисплея. У нас получается 4 знака по 10 значений, плюс точки мигающие по середине. Если подключать в лоб, то нам понадобится 41 высоковольтный управляемый вывод. Это некрасиво, займет очень много места на плате и будет тупо дорого. Поэтому воспользуемся динамической индикацией. Это когда все значения цифр на индикаторах включены параллельно. Индикаторы зажигаются по очереди с нужной цифрой. Все это происходит с большой скоростью, и глазам кажется что все цифры горят одновременно. Так мы сокращаем количество управляемых выводов до 15.

Коммутация ламп

Напомню, что для питания ламп нужно 180 вольт, а большинство управляющей микроэлектроники работает на 5 вольтах, поэтому нам нужна штука, которая сможет по команде управляющего микроконтроллера подавать высокое напряжение на соответствующие цифры на всех индикаторах. Для этого возьмем высоковольтный дешифратор К155ИД1. Он сможет зажигать все десть цифр, а управляется всего по четырем проводам. Для подачи положительного высокого напряжения на аноды индикаторных ламп и неонки для точек возьмем пять популярных высоковольтных оптопар TLP627. Итого, количество необходимых для управления всем дисплеем выводов нам удалось сократить с 41 до 9, и теперь ими можно управлять микроконтроллером с логическим уровнем напряжения всего в 5 вольт.

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

Повышающий преобразователь напряжения.

Теперь нам осталось получить те самые 180 вольт, чтобы зажечь наши часы. Для изменения напряжения постоянного тока с минимальными потерями используются DC-DC преобразователи, работающие по принципу Широтно-Импульсной Модуляции. Основной принцип тут в том, что напряжение подается не сплошным потоком, как в линейных стабилизаторах, а краткими импульсами и с большой частотой. То есть у тебя на выходе ШИМ контроллера, например, сначала в течении десяти микросекунд напряжение, к примеру, двенадцать вольт, потом идет пауза. Скажем, те же десять микросекунд, когда на выходе напряжения вообще нет. Затем все повторяется, словно мы быстро-быстро включаем и выключаем рубильник.

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

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

Первой попыткой у меня было использование специализированной микросхемы ШИМ контроллера MC34063. Подходящая схема была найдена в гугле и немного переделана под наши нужды. Отличается стабильностью работы, надежностью и избыточностью для наших задач. Компоненты преобразователя не помещались на плате дисплея, поэтому пришлось переместить их «на этаж повыше». На специальную плату в которой были прорезаны отверстия для ламп. Преобразователь давал стабильные 180 вольт и мог зажечь все цифры сразу на четырех индикаторах. Но я посчитал это не рациональным, т. к. вместо этой платы лучше впихнуть аккумулятор с одной стороны, и что-то еще с другой.

Я понял что нужно упрощать, т. к. места очень мало. И как раз нашлась хорошая схема от Железнякова Андрея ( https://itworkclub.ru/arduino-часы-на-газоразрядных-индикаторах/ ) Из нее и было взято многое, в том числе и преобразователь напряжения. В качестве ШИМ контроллера выступает микроконтроллер который подает шим сигнал частотой 30 кГц на преобразователь. Сам преобразователь выполнен по классической схеме катушка, обратный диод, электролитический конденсатор на 350 вольт. Ток ШИМ сигнала усиливается мощным мосфетом IRF840. На выходе получается примерно 180 вольт (на деле от 100 под нагрузкой до 270 без).

Принципиальная схема дисплея готова. У нас получилось 9 выводов управления, 1 вывод сигнал для ШИМ преобразователя, 5V и общая земля. Сразу после проектирования новой схемы я развел плату и изготовил ее, но про страдания с домашним изготовлением печатных плат я расскажу чуть позже.

Схема контроллера часов

Сердцем всей схемы является микроконтроллер ATMEGA 328P. Он управляет всем дисплеем, задает ШИМ для преобразователя напряжения, опрашивает кнопки управления. Обвязка контроллера стандартная кварцевый резонатор на 16 МГц и несколько конденсаторов. Для удобной прошивки микроконтроллера через USB порт, так-же размещенный на плате, установлена микросхема преобразователя USB→UART CH340G. По аналогичной схеме построена популярная платформа Arduino (китайская версия). В следующей версии этого не будет, т. к. это избыточно.

Для того, чтобы знать точное время служат часы реального времени. Такая микросхема есть в любом компьютере, мобильном телефоне и устройстве где нужно точное время. Эта схема иногда бывает встроена в процессор, как в мобильном. Но всегда обязательно нужна батарейка, чтобы часы не сбрасывались при отключении питания, а продолжали свой ход. У нас это чудесная микросхема DS3231 со встроенным кварцевым резонатором двумя будильниками и кучей прочих плюшек. Допустимая погрешность хода этих часов - две секунды в год. С микроконтроллером она общается по протоколу i2c. Для того чтобы время не сбрасывалось, поставил маленький литий-железный аккумулятор, выпаянный с того же модуля что и часы реального времени. В следующей версии я буду питать их от основного аккумулятора. Все остальное на схеме это схемы по обслуживанию питания устройства и обслуживанию аккумулятора.

Аккумулятор выбрал маленький литиевый 240 мАч, т. к. он идеально помещается сверху на плате дисплея рядом с лампами. Он имеет номинальное напряжение 3,7 вольт, а для питания всех потребителей устройства нам нужно стабильные 5v. Для их получения воспользовался хорошим китайским повышающим преобразователем напряжения MT3608, включенным по типовой схеме из датащита. Выходное напряжение настраивается делителем напряжения, как в прочем и везде. Номиналы резисторов считаются по формуле из датащита. Опять же, применение этой микросхемы здесь не совсем уместно, т. к. для решения этих задач есть специализированные микросхемы требующие меньше места и обладающие лучшей эффективностью. Напоминаю, я использовал те детали и знания которые у меня были. А знания мои получены, в основном, методом научного тыка, проб и ошибок.

Для зарядки и обеспечения безопасности аккумулятора была использована схема популярного китайского модуля. В его составе есть микросхема зарядки TP4056 которая не позволяет перезарядить аккумулятор чтобы он не взорвался, а так же контролирует ток зарядки. И микросхема DW01A которая не дает возможности аккумулятору разрядиться до конца, чтобы он не умер. Именно с ней я ошибся в схеме - неправильно выбрал управляемую транзисторную сборку, которая, непосредственно отключает аккумулятор. Плюс, на схеме случайно замкнул вывода аккумулятора на 100ом резистор. Потом долго не мог понять почему он разряжается так быстро. Эта часть схемы тоже не нужна, т. к. главный микроконтроллер может мерить напряжение на аккумуляторе и не включать часы если он слишком разряжен.

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

Управление должно было осуществляться тремя кнопками подключенными к одному аналоговому входу микроконтроллера через разные резисторы. Схему я взял у того-же Железнякова Андрея т. к. под нее была написана хорошая прошивка. Но, однажды они перестали работать, микроконтроллер перестал прошиваться и часы начали глючить. Я менял микроконтроллер, прозванивал все дорожки и переходы, прогревал плату, но починить их и найти причину так и не удалось.

Выводы по схеме

Я изначально выбрал сложный путь, не хакерский. Нужно делать все проще. Подобрать специализированный преобразователь напряжения в 5 вольт. Уменьшить детали преобразователя напряжения в 180 вольт. Убрать защиту аккумулятора от переразряда.

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

Изготовление печатных плат в домашних условиях

Вся суть сводится к растворению незащищенных участков медной фольги на поверхности стеклотекстолита при помощи химии. Можно конечно и маркером нарисовать дорожки, но в нашем случае это мазохизм. Будем использовать самый доступный народный метод - ЛУТ (Лазерно Утюжная Технология)

Нам понадобится:

  • •файл разведенной печатной платы

  • •двусторонний фольгированный стеклотекстолит

  • •ЛАЗЕРНЫЙ принтер (струйный не подойдет)

  • •бумага глянцевого журнала порезанная под ширину А4

  • •утюг (в идеале ламинатор, т. к. это ИМБА в сравнении с утюгом)

  • •средство для травления (хлорное железо, персульфат аммония, лимонная кислота с перекисью и т. д.)

  • •мелочи вроде надфиля, кусочка мелкой наждачки, обезжириватель, моющее средство CIF и т.д.

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

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

Лазерный принтер применяется т. к. его тонер при нагревании размягчаеется и становится липким. Для подготовки файла и распечатывания я использую программу SprintLayout. Т.к. мы изготавливаем двустороннюю печатную плату, то рисунок нижнего слоя дорожек нужно отделить от верхнего и расположить справа, на расстоянии 5-7мм от верхнего. При этом верхний нужно отзеркалить по горизонтали. В настройках печати отключаем все кроме дорожек и цвет их делаем черным. В настройках принтера ставим самое высокое качество, выбираем самую плотную бумагу и отключаем экономию тонера. Нам нужно добиться максимально толстого слоя принтера. Печатаем.

Дальше вырезаем полоску с нашими дорожками и складываем ее пополам так, чтобы на просвет, переходные отверстия совпали. Зафиксировать свободные хвосты удобно степлером.

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

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

Если у вас есть ламинатор :), можно начинать гонять через него, иногда прогревая плату утюгом. Если ламинатора нет, то нужно тщательно проглаживать плату во всех направлениях. И все равно какая-нибудь дорожка прилипнет плохо.

После тщательной проглажки кидаем горячую заготовку в воду отмокать в обычную воду. После 15 минут отмокания (можно и раньше) начинаем пальцам стирать размокшую бумагу. Когда останутся только мелкие островки и перемычки между дорожками, берем старую зубную щетку и смело избавляемся от всего ненужного. Не бойтесь стереть тонер, если вы сделали все правильно они выдержат. А вот если будете излишне аккуратность и тонер отвалится при травлении - потери будут сильно больше.

Перед травлением тщательно проверяйте плату. Если есть косяки, можно поправить тонким маркером для CD дисков.

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

Сверление платы производится бормашинкой или самодельной микродрелью. Я сверлю вручную, т. к. мне лень сделать станок. Да и редко нужно делать платы. Переходные отверстия сверлю 0.6мм сверлом, чтобы потом запаять их медной проволокой добытой из витой пары для интернета. Остальные отверстия в зависимости от деталей.

Лужение платы стоит делать именно после сверления. Сначала намазываю всю поверхность флюсом (ЛТИ-120) потом паяльником разглаживаю припой тонким слоем.

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

Запайка деталей уже более интересный процесс. Начинаю его с мелких простых SMD деталек. SMD это детали которые припаиваются на поверхность, а те что в дырки - DIP/ Сначала резисторы. Это самое сложное, т. к. они мелкие и разных номиналов. Потом керамические конденсаторы, их обычно немного и их применяемое разнообразие мало. Считается правилом хорошего тона ставить максимально близко к питающим ногам каждой микросхемы керамический конденсатор, это изгоняет подавляющее большинство чертовщины из устройства. После конденсаторов можно припаять транзисторы и мелкие микросхемы. За ними идут крупные микросхемы. И в самом конце выводные DIP элементы.

В изготовлении плат дома есть куча нюансов. Некоторые придут только с опытом, другие разрешатся поиском в интернете, а некоторые не разрешимы.

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

По большому счету дома стоит делать только односторонние платы на DIP элементах. В крайнем случае прототипы как я сейчас. Все остальное от лукавого. Я так считаю, это мое мнение.

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

Об основных своих ошибках и планах их исправления я уже рассказал в части про схему.

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

Корпус был напечатан на 3D принтере TEVO Tornado. Модель была разработана в онлайн редакторе Tinkercad за полчаса, и естественно я не учел кучу нюансов.

Вывод

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

Мои же часы будут доработаны уменьшены как в диаметре, так и в высоту.