Наконец-то я доделал свой первый электротехнический проект: часы на газоразрядных индикаторах ИН-1 на базе Attiny x313 в около-стимпанковском стиле.
Всё началось с того, что случайно нагуглил по запросу “стимпанк” схожий девайс, а затем нашлась замечательная страничка на
Radiokot. Насмотревшись красивых фотографий, подумалось мне: а почему бы не завести такое милое, рукодельческое хобби? Раньше мне никогда не приходилось заниматься электротехникой, и самое сложное, что я делал с паяльником - это чинил разъемы для наушников. Но это меня не остановило, хотя и внесло корректирующие требования: сложность схемы и пайки должна была быть простой, а с программой под девайс разберёмся. Всё-таки как-никак три года опыта с элитными и сложнейшими микроконтроллерами и встроенными системами. Поэтому был выбран обычный DIP-монтаж и схема на одной микросхеме: Attiny2313-20PU - найденная
тут.
Первоначально я хотел реализовать проект 1 в 1, чтобы не усложнять себе жизнь, не имея опыта в сабже. Но быстро выяснилось, что, во-первых надо немного, но пошевелить мозгами, чтобы найти аналоги перечисленных в исходном случае микросхем. Во-вторых, почти сразу же меня стало не устраивать две вещи: 12-часовые часы, а не 24-часовые и отсутствие блинкующих разделителей. И сразу за двумя третье - если у нас есть будильник, то он должен быть не бездушным биппером, а полноценным звонком, механическим по мере возможностей.
Определив техническое задание, были закуплены необходимые компоненты (большие и рабочие газоразрядные индикаторы пришлось поискать, и из желаемых ИН-16 и ИН-1 нашлись только последние; и то в количестве 7 штук, одна из которых оказалась битой). А так же разобрано три дисковых телефона, чтобы достать электромеханический, железный и звонкий звонок. А так же повзаимствован у умершего роутера 12-вольтовый блок питания. Вся схема была перерисована мною в
DipTrace, который оказался очень удачным как в плане структурной схемы, так и разводки платы. А так же заказана латунная фурнитура для ламп у хорошего мастера слесарных дел.
Всё необходимое можно найти в
Чип и Дип'е за исключением газоразрядных индикаторов. Их можно найти под заказ в
Кварце или на митинском радиорынке. Для монтажа мною была прикуплена паяльная станция и собственно макетная плата по грабительским расценкам. Впрочем, всё можно найти в разы дешевле, если задаться целью, а из Китая и вовсе в пару десятков вечнозелёных и убитых енотов. Я не буду приводить расписанную стоимость по каждой детали, отмечу только, что стоимость компонентов около 1т.р, ламп и платы - ещё 1,5т.р. и шкатулки (купленной на ярмарке в Измайловском кремле) с латунью - 1т.р. Итого 3-3,5 т.р. без паяльной станции и непредвиденных расходов.
Непредвиденными оказались обстоятельства, что одна из оставшихся ламп треснула во время испытательного прогона, а две неоновых лампы, снятых с военной СТ-68 в своё время, сгорели из-за неправильно разведённой схемы - под них пришлось ставить 330кОм резисторы, при том, что дежурные индикаторы AM\PM, сделанные в Китае итак светят не столь ярко, как полагается неонкам. Совершенно неожиданным оказалось необходимость отказаться от варианта с лобзиком и напильником для работ по деревянной шкатулке, и приобрести сверло форестера, а так же удивительное ОТК СССР, которое пропускало все кривые и косые лампы с отклонениями по 1-2, а то и более миллиметров. Непредвиденным так же оказалось то, что электромеханический звонок не влез в шкатулку из-за чуть большего размера латунных втулок, из-за чего пришлось отложить вариант 12-вольтового питания с усиляющим конденсатором, и заменить его сложной системой звонка на основе виброзвонка и исходного купола звонка от телефона с возвратной пружиной. Впрочем, благодаря этому немного изменяя код, можно заставить будильник играть, к примеру, Чижика-Пыжика или симфониетту Янычека.
Во время замены треснувшей ИН-1 оказалось, что не все ИН-1 одинаковы, и у приобретённых в Митино ламп оказался шаг сетки меньше, чем у приобретённых в Кварце, что визуально бросалось в глаза. Поэтому пришлось лампы перезаказывать ещё раз в Кварце. Так же оказалось, что код, позволяющий выводить дату, физически не помещается в 2Кб памяти. Поэтому было найдено решение использовать ту же разводку, но на базе Attiny4313 с 4Кб памяти. Код так же пришлось сильно птимизировать и трюкачествовать, хотя всё ещё на си, допускающем и большие оптимизации, не говоря о компактности ассемблера. Но, проще взять схожую микросхему, чем биться за каждый байт. Впрочем, все усложнения кода привели к тому, что все мои действия не влезли в исходный фрейм 1мс и происходил overrun, выливающийся в подвисание кнопок и зависании будильника. Поэтому фрейм был сменён на 2мс, что никак визуально не повлияло на восприятие часов. Тем не менее, несмотря на все злоключения,
AVR Studio мне очень сильно помогла и своим встроенным дебаггером (конечно с Dragon, наверное было бы удобнее, но, увы, на один раз я не готов покупать отладочную плату) и своими просто замечательными оптимизациями.
В-общем, на отладку, проверку всех непропаянных частей с помощью мультиметра, осцилографа, доводку механического звонка, дебаг кода и всё это после работы по 2-3 часа в неделю ушло два месяца. Возможно много, но результат вы можете оценить на следующих видео.
Click to view
Click to view
Отдельно хочу сказать про техническую сторону дела. Монтаж я производил исключительно проводами\ножками, т.к. протравливать плату - ещё дополнительные расходы на реагенты, и для разового проекта неразумны. Лампы достаточно капризны в плане пайки и монтажа, поэтому к ним надо проявлять особо бережное отношение. Электрическая же схема очень хорошая, во-первых, не раз получая КЗ из-за выгоревших, а затем и треснувшей лампы, из-за замкнувшей ножки схемы и микросхемы отлично себя чувствовали несмотря ни на что. Отчасти благодаря грамотным транзисторным ключам, и отчасти силовой электроники. Поэтому особое внимание следует обратить на стабилизационный контур, а так же мощность элементов. Хотя в оригинале товарищ рекомендует использовать 250В конденсатор и 200мкГн элемент индуктивности, тем не менее, в моём случае 400В и 250мкГн работают только лучше. И отдельно хочу сказать про потребление и надёжность. Во-первых часы работают в импульсном режиме со скважностью 6. Поэтому и потребление, и выгорание ламп, и тепловыделение почти незаметное. Сам не измерял, но все элементы комнатной температуры, так что можно верить в то, что оно не больше 2-3Вт.
И, наконец, исходный код, бинарники и схему можно найти тут для
2313 и
4313.