Привет, пикабушники! Хотелось бы рассказать об инциденте, произошедшем при работе с компанией ООО «ТаймВэб», который я безуспешно пытался решить сначала в личной переписке, потом условно-публично в их канале телеграмма. Из телеграмма меня нагло выперли, т.к. задавал неудобные вопросы.
Ничего не остаётся как вынести сор в публичное обсуждение на просторы интернета.
Суть конфликта: Как известно таймвеб (далее ТВ) предоставляет услуги регистрации доменов. На их сайте подобрал себе домен за 2170 р (важно) и оплатил его. В результате мне на почту пришло уведомление об оплате с электронным чеком. В личном кабинете наблюдаю статус регистрации - ошибка Создаю тикет с вопросами и получаю ответ в стиле: Мы не можем предоставить вам домен, т.к. его цена 68526 р (!) доплатите полную сумму или мы вернём вам деньги. Далее начинают рассказывать про внутреннюю кухню, взаимоотношения с партнёрами и т.д. и т.п. Отвечаю, что мне не нужно возвращать деньги, мне нужно получить услугу\домен. На этом переписка по существу заглохла. ТВ морозится. Моя часть сделки\оферты была выполнена в полном объёме, услугу я оплатил. ТВ пишет, что они не в состоянии выполнить свою часть сделки и тупо шлют лесом. Исполнить обязательства не могут они, а проблема, оказывается, моя.
Судя по всему таймвебу плевать на свою репутацию, так же как на своих клиентов. Текущих и будущих. Из чата поддержки выкидывают, как только понимают, что не вывозят.
Имеются все подтверждающие скрины. При необходимости могу приложить к статье.
Мошенничество По сути хороший вариант отслеживать реально нужные домены, потом отшивать покупателя и перепродавать со своей наценкой. Профит.
Вопросы к аудитории Должен ли я, как простой обыватель, вникать во внутренние дела компании, чтобы получить услугу. Не противоречит ли это текущему законодательству? Является ли нежелание организации оказывать услугу причиной в отказе предоставления мне оплаченной услуги?
Иногда, при разработке устройств на микроконтроллерах, возникает потребность в выводе на дисплей большого количества информации или же в выводе информации на крупный дисплей для возможности ее считывания с большого расстояния. К сожалению, готовых решений этой проблемы нет, а те что есть – весьма дороги. Например, графические ЖК-дисплеи с возможностью подключения к микроконтроллеру обычно имеют диагональ не более нескольких дюймов и достаточно существенную цену (причем, даже монохромные, о цветных вообще можно не говорить).
В то же время есть огромный парк старых ЖК мониторов. Модели с диагональю 15-19 дюймов можно приобрести в рабочем состоянии за 200 – 500 руб. Особенно это касается моделей с немодным сейчас соотношением сторон 4:3. Эти модели достаточно надежные. Лампы CCFL, используемые для подсветки, конечно, теряют яркость за годы эксплуатации и их спектр свечения уходит в неприятный красноватый оттенок, но благодаря большому количеству таких мониторов всегда есть возможность выбрать более-менее живой экземпляр. Кроме того, лампы CCFL относительно несложно заменить обычной светодиодной лентой, подключив ее напрямую к источнику питания 12 В монитора. Однако при этом обычно необходимо заблокировать цепи обратной связи от микросхемы управления подсветкой к контроллеру самого монитора, иначе монитор будет думать что подсветка неисправна и просто выключится. Также придется пожертвовать функцией регулировки яркости. Однако, этой функцией мало кто пользуется. Обычно яркость монитора настраивается один раз в жизни, сразу после его покупки и потом никогда не меняется.
Мной таким образом был доработан монитор диагональю 17” фирмы «Самсунг». Результат меня удовлетворил, монитором вполне можно было продолжать пользоваться по его прямому предназначению. Единственное, хочу отметить, что в моем случае причиной переделки стал пробитый повышающий трансформатор, а не вышедшая из строя лампа CCFL, которые, как я уже говорил, достаточно надежны. Также светодиодные ленты я подключил через ключ на мощном транзисторе npn для того, чтобы подсветка отключалась по команде от контроллера монитора, иначе во время инициализации монитора или переключении режимов на экране видны полосы и неприятные мерцания.
Кроме выхода из строя ламп подсветки и схемы их питания, другой наиболее частой проблемой в таких мониторах следует назвать выход из строя конденсаторов в блоке питания. Иных проблемных мест в мониторах обычно не бывает и после указанной доработки и замены конденсаторов на свежие они наверняка еще проработают не менее 10 лет.
Большинство старых мониторов обычно всегда имеют разъем VGA для подачи на него сигнала от компьютера. Часто присутствует только один этот разъем. Иногда в паре с разъемом DVI (чаще на более дорогих моделях). Разъем HDMI больше встречается на относительно современной технике.
Таким образом, разъем, который с почти 100% вероятностью найдется на старом мониторе – это разъем VGA. На него и будем ориентироваться.
Чтобы вывести изображение на монитор достаточно оперировать всего 5-ю сигналами – R, G, B – отвечающие за цвет и яркость, HS, VS – отвечающие за синхронизацию. Как это сделать, подробно рассмотрено в статьях 1, 2, 3, 4, поэтому не буду повторяться.
В вышеперечисленных статьях для вывода видеосигнала чаще всего используется ПЛИС, которая обычно весьма недешевая. В одном из вариантов сигналы генерируются на микроконтроллере и рассыпухе. Хотелось бы попроще и подешевле одновременно. Поэтому было принято решение использовать ПЛИС, но не PGA, а CPLD. Такие ПЛИС имеют существенно меньше доступных логических ячеек, но также и стоят дешевле. Например, макетную плату ПЛИС MAX II Altera EPM240 мне удалось приобрести на Aliexpress всего за 8,57$ (без учета доставки). Причем, в комплект входил также и программатор. Сами чипы можно найти за 1,6 – 2,1$ (не оригинал, разумеется).
Макетная плата MAX II Altera EPM240
Да, для реализации был выбран текстовый режим, как наиболее простой для микроконтроллера, но, в то же время, достаточно информативный. Некоторые простые графические вещи можно реализовать символами псевдографики, как это широко практиковалось во времена DOS. Для реализации графического режима потребуется передавать большой объем данных от микроконтроллера и дополнительно загружать его формированием графики, что не всегда допустимо, особенно для слабых ядер.
Первый шаг — успешный вывод на экран символа «2». Символ получился отзеркаленным. Не беда
У указанной ПЛИС на борту имеется flash ПЗУ, которое весьма заманчиво использовать для хранения ПЗУ знакогенератора. Однако объем его крайне невелик – всего 8 кБит или 1 кБайт. Этого может хватить только для символов с разрешением 5х7, да и то, если пожертвовать неотображаемыми, малозначительными и визуально идентичными символами из таблицы ASCII. Кроме того, использование встроенного ПЗУ потребует расхода логических ячеек, которых и так немного. Как бы ни был привлекателен этот вариант, придется от него отказаться и использовать микросхему внешнего ПЗУ, взятую, например, из старых материнских плат. Если найти микросхему с питанием 3,3 В, то даже не придется ничего думать насчет согласования уровней напряжений с ПЛИС. Объемы таких ПЗУ достаточно велики – 2/4/8 Мбит или 256...1024 кБайт, что позволяет хранить там большое количество различных шрифтов в хорошем разрешении 8х16.
Макетная плата Altera MAX II крупным планом
Для хранения образа экрана также потребуется микросхема ОЗУ. Рассчитаем примерный требуемый объем. Если мы планируем использовать шрифт 8х16, то при разрешении экрана 640х480 мы получим 80 знакомест по горизонтали и 30 строк по вертикали. Значит для хранения образа экрана необходимо 80∙30=2400 байт. Не очень удобное число. Оно лишь ненамного больше чем ближайшая степень двойки – 2048. Поэтому память используется нерационально, всего на 58%, поскольку ближайший объем, кратный степени двойки – 4096. Кстати, именно поэтому получил распространение текстовый режим 80х25, в котором 5 строк были попросту выброшены. В этом случае количество потребной памяти – 2000 байт, что замечательно помещается в объем памяти 2 кБайт. Однако современные микросхемы памяти имеют достаточно большие объемы, экономить ее сейчас смысла особого нет. Более того, можно сознательно пойти на нерациональное использование объема памяти в угоду упрощения логики дешифрации и экономии логических ячеек ПЛИС. Итак, нужен объем 4096 байт (212, 12 бит адреса), который можно разделить следующим образом: 5 бит адреса выделить на адрес строки (будет использовано 30 из 32) и 7 бит на адрес столбца (будет использовано 80 из 128).
Такой же объем памяти потребуется для страницы атрибутов символов. В качестве атрибутов обязательно нужны будут цвет символа, цвет фона, подчеркивание, мигание.
Итого, необходима память размером не менее 8 кБайт. Из вариантов «под рукой» лучше всего подходит статическая память (используемая как кэш-память), также взятая со старых материнок. Единственное, эта память обычно 5-вольтовая. Однако если это память КМОП, она чаще всего без проблем работает и при напряжении 3,3 В, единственное, при этом необходимо закладывать бОльшие тайминги.
Итак, получилась следующая схема.
Первый вариант схемы
Как видно, схема включает в себя только 3 микросхемы и минимум внешних деталей. Если применить в качестве основы вышеупомянутую макетную плату EPM240, то кроме нее потребуются только микросхемы ПЗУ, ОЗУ и разъем VGA с пятью резисторами. Подключение сигналов к ПЛИС показано условно, поскольку почти все ее ножки равнозначны (кроме глобальных тактовых сигналов, на один из которых необходимо подать сигнал с тактового генератора). При программировании микросхемы под конкретное устройство почти все сигналы можно будет переназначить. Пока же устройство собрано на макетной плате и этот вопрос можно отложить.
Устройство общается с микроконтроллером по параллельному 8-битному интерфейсу (сигналы с префиксом HOST), логически почти идентичному широко распространенному интерфейсу дисплеев на контроллере 1602 и им подобных. Единственное отличие – добавлен сигнал BUSY от устройства к микроконтроллеру. Его необходимость обусловлена тем, что доступ к микросхеме ОЗУ предоставляется только в момент обратного хода кадровой развертки. В остальное время микросхема занята логикой ПЛИС. Сигнал BUSY также имеет смысл сигнала запроса прерывания. По его перепаду контроллер может автоматически начинать запись в буфер экрана.
Второй шаг — вывод некоторых символов знакогенератора различным цветом символа и фона
Описание интерфейса:
DATA[7:0] – данные 8 бит, порт однонаправленный, только на запись в устройство.
CS – выбор устройства, 0 – устройство выбрано, 1 – устройство не выбрано. По положительному перепаду CS защелкиваются данные при записи.
AD – адрес/данные, при операции записи: 0 – передаются данные, 1 – передается адрес.
BUSY – занятость устройства, 0 – не занято, 1 – занято. Если устройство занято, операция записи данных в ОЗУ игнорируется. Возможна запись только в регистр адреса.
RESET – сброс устройства. 0 – сбросе, 1 — работа. Аппаратный сброс можно использовать для мгновенного гашения экрана. При активации этого сигнала прекращается выдача сигнала на монитор. Сброс не влияет на содержимое микросхемы ОЗУ.
Запись данных от микроконтроллера в ОЗУ возможна только во время кадрового гасящего импульса, когда микросхема ОЗУ не занята логикой ПЛИС. Это время составляет 1,440 мс. Несмотря на то, что это довольно-таки большой интервал, при использовании медленных микроконтроллеров может не хватить времени чтобы полностью перезаписать всю область памяти. Например, микроконтроллер AVR при работе на частоте 11,0592 МГц успевает записать только 3 полные строки экрана со всеми атрибутами. Если не перезаписывать атрибуты (как это обычно и происходит при реальном использовании – атрибуты записываются один раз при старте программы), то можно за один раз записать 6 строк. Наверное, если оптимизировать код, переписать его на ассемблере, то можно существенно ускорить обновление данных. Иначе для перезаписи всего экрана может потребоваться от 5 циклов (если обновлять только данные) до 15 циклов (если обновлять еще и атрибуты). При частоте развертки 60 кадров в секунду, это займет от 1/12 до 1/4 секунды. Если кто-то из читателей когда-то работал на машинах класса ХТ или АТ с тактовыми частотами процессора в районе 4 – 12 МГц, то ощущения при обновлении экрана будут примерно такие же.
Если же ждать очередной гасящий импульс неохота и хочется записать все за один присест, можно воспользоваться сигналом RESET. При его активации внутренняя логика ПЛИС останавливается и отключается от микросхемы ОЗУ, давая прямой доступ микроконтроллеру к памяти. Регистры для работы с ОЗУ сигнал сброса не затрагивает.
В общем же случае операции при записи такие: нужно дождаться когда сигнал BUSY станет нулевым, затем необходимо выставить на шину данных нужные данные, выставить сигнал типа данных (адрес или данные) – AD и «щелкнуть» сигналом CS, сначала в лог. 0, затем в лог. 1. При переходе этого сигнала из лог. 0 в лог. 1 данные защелкнутся в памяти. Во время гасящего импульса микросхема ОЗУ напрямую подключается к сигналам HOST микроконтроллера, соответственно, соблюдение таймингов при записи является заботой микроконтроллера. Но, чаще всего, статическое ОЗУ — достаточно шустрое устройство и обычно имеет тайминги существенно меньшие того, с какой максимальной скоростью средний микроконтроллер может управлять своими линиями ввода/вывода.
Микросхема ОЗУ D43256BGU-70LL подключается к ножкам ПЛИС сигналами с префиксом RAM. К этим сигналам относится 8-разрядная шина данных (двунаправленная) и 13-разрядная шина адреса. Из управляющих сигналов используется только сигнал WE. Поскольку на шине RAM микросхема одна и обе шины (адреса и данных) в ее полном и безграничном владении, сигналы OE и CS не используются, на них необходимо подать постоянный лог. 0, соединив их с общим проводом.
Примерно так же подключена (сигналы с префиксом ROM) микросхема ПЗУ SST49LF002A, за исключением того, что шина данных однонаправленная. Сигналы OE и WE этой микросхемы также не используются и напрямую подключены к лог. 0 и лог. 1 соответственно.
На свободные ножки ПЛИС подключены джамперы для выбора текущего шрифта. Поскольку объем микросхемы ПЗУ достаточно велик, это позволяет записать в нее несколько различных шрифтов, в т. ч. и с национальными алфавитами и переключать их простой установкой джамперов.
Разъем VGA подключен к ПЛИС с помощью всего 5 резисторов. Причем, резисторы в цепях HS и VS несут больше защитную функцию и их можно безболезненно исключить. Резисторы в цепях R, G, B подобраны таким образом, чтобы совместно с входным сопротивлением монитора (75 Ом) они образовывали делитель напряжения, уменьшающий напряжение на входе монитора до номинального 0,7 В.
Внешний вид макета
Ножки питания зашунтированы керамическими конденсаторами, а на ножку GCLK0 подается тактовый сигнал частотой 50 МГц от кварцевого генератора. Эти детали уже были на макетной плате.
К сигналу RESET подключены резистор, конденсатор и кнопка, собственно, и формирующие этот сигнал. Но если этот сигнал формируется микроконтроллером, то эти детали не нужны.
После написания основной части планируемой логики работы ПЛИС, оказалось что объем использованных логических ячеек ненамного превысил только половину от имеющихся. В связи с этим появилось желание немного усложнить логику работы, добавить больше возможностей. В первую очередь можно увеличить количество цветов до 16. Для этого нужно использовать еще 3 ножки ПЛИС и добавить в схему еще 3 резистора. Это не слишком усложнит схему, зато добавит еще 8 цветов. В этом случае страницу ОЗУ с атрибутами придется полностью отдать под цвет и добавить еще одну страницу с атрибутами, увеличив на 1 разряд шину адреса ОЗУ. В дополнительную страницу атрибутов можно перенести и выбор шрифта, добавить подчеркивание, моргание символа, моргание фона и т. д.
Новая схема имеет следующий вид. Она не сильно отличается от предыдущей.
Второй вариант схемы
При увеличении количества цветов возникает вопрос — какую палитру выбрать? Когда цветов всего 8 такого вопроса нет – все цвета это двоичный перебор трех основных цветов r, g, b (2^3=8). Когда больше – тут возможны варианты. Например, 16-цветная палитра EGA:
Палитра EGA
Как видно, в этой палитре 4-й бит отвечает за яркость. Но половинки таблицы поделены по яркости неодинаково. Первая половина «настроена» на 2/3 яркости (байт ААH = 170 = 2/3*256). Во второй половине добавляется еще 1/3 яркости (байт 55H = 85 = 1/3*256) и цвета называются bright *color*. Интересный момент: из схемы выбивается цвет №6 (yellow/brown), который по логике должен быть АААА00, но специально сделан АА5500 для того, чтобы малопривлекательный грязно-желтый цвет заменить на более востребованный коричневый. Это известная аппаратная фича видеокарт и мониторов EGA. Причем, в некоторых мониторах это было учтено, а в некоторых моделях с целью упрощения схемотехники на это забивали. А в других даже добавляли отдельный регулятор для настройки (назывался «BROWN ADJ.»), которым можно было отрегулировать желаемый оттенок этого цвета. Поэтому цвет в таблице обозначен как желтый/коричневый.
Нелинейное деление по яркости автоматически приводит к появлению в палитре двух оттенков серого – светло-серого и темно-серого цвета, которые весьма востребованы на практике.
Однако, 16-цветная палитра VGA немного другая. Там цвета делятся по яркости ровно пополам (80Н = 128 = 1/2*256):
Палитра VGA
В ней также выбивается из логики один цвет – светло серый (С0С0С0), который должен быть черным и, соответственно, дублировать уже имеющийся. Кроме того, этот цвет поменялся местами с темно-серым цветом (808080). Это сделано специально для совместимости 16-цветных палитр VGA и EGA, которые, таким образом, почти идентичны по восприятию.
В нашем же случае, когда сигналы формируются аппаратно с помощью резисторов представляется более удобным использовать палитру EGA. При этом необходимо добавить в логику дешифрации коррекцию только одного цвета – того самого №6. Все остальные цвета получаются автоматически. Для коррекции палитры VGA только изменением программы дело бы не обошлось — понадобилось бы добавлять еще группу резисторов для формирования светло-серого цвета (С0С0С0).
Резисторы должны быть рассчитаны так, чтобы одна группа давала 1/3 яркости, вторая 2/3 яркости, и вместе, соответственно, давали полную яркость. Нехитрыми вычислениями согласно закону Ома были рассчитаны их сопротивления: 390 Ом и 750 Ом.
Логика для формирования видеосигнала для статичного изображения (например, тестовых цветных полос) довольно простая. Однако если необходимо формировать изображение в зависимости от внешних событий или команд, задача несколько усложняется. Необходимо организовать интерфейс с ОЗУ и ПЗУ. Причем, обмен должен происходить не просто быстро, а очень быстро! Попробуем для начала оценить, будут ли вообще выбранные микросхемы успевать работать.
Итак, у нас режим 640х480. Частота вывода пикселей – 25 МГц (вообще то по стандарту должно быть 25,175 МГц, но можно абсолютно безболезненно округлить до 25, VGA, как и многие другие аналоговые стандарты допускает довольно значительный разбег по параметрам), частота кадровой развертки 60 Гц (реально получается – 59,5 Гц), частота строчной развертки – 31,46875 кГц (реально – 31,25 кГц), то есть, время вывода одного пикселя составляет 40 нс, символа шириной 8 бит – 320 нс. За 320 нс необходимо прочитать ASCII код символа (байт), код цвета (байт) и поле атрибутов (байт) из ОЗУ, затем используя ASCII код в качестве адреса прочитать из ПЗУ битовую маску символа. Только после этого у логики ПЛИС будет вся необходимая информация для начала формирования изображения.
Третий шаг — получение информации от микроконтроллера
Согласно даташиту, для выбранной микросхемы D43256BGU-70LL полный цикл чтения занимает 70 нс. Поскольку мы ее используем при пониженном напряжении, длительность цикла необходимо увеличить. Хотя бы до 100 нс. Таким образом, за 320 нс мы как раз успеем прочитать из ОЗУ 3 байта — ASCII код, код цвета и атрибуты символа. Отлично. С ПЗУ сложнее, в нем адрес записывается в 2 захода – по строкам и столбцам и, согласно описанию, цикл чтения занимает 270 нс. Небыстро, но в 320 нс укладываемся, даже с запасом.
Проблема в том, что мы не можем начать выдавать адрес ПЗУ пока не узнаем как минимум ASCII код, а на это нужно 100 нс. В сумме получается 370 нс. Выручает нас то, что каждый по отдельности цикл чтения ОЗУ и ПЗУ укладывается в допустимый интервал и можно просто потратить на чтение данных не один цикл, а два. На время подготовки данных необходимо сместить область отображения символов, сделав дополнительную область гашения шириной 2 символа в начале строки, и, на те же 2 символа уменьшить область гашения после конца строки. Это сделать несложно – просто смещаем гасящий импульс на 640 нс (соответственно, смещается и синхроимпульс). С точки зрения монитора – никакой разницы.
Для понимания того, что и в какой момент писать и считывать удобно составить циклограмму. Поначалу ее и все тайминги я держал в голове, однако составление ее на бумаге и взгляд на нее со стороны позволил существенно оптимизировать циклы чтения и даже уменьшить количество использованных дефицитных регистров.
Циклограмма обращения к ОЗУ и ПЗУ
Цикл начинается с выставления на шину адреса ОЗУ адреса байта ASCII символа. Через 80 нс на шине данных ОЗУ появляется запрошенный байт, который мы незамедлительно используем для формирования адреса для чтения байта из ПЗУ знакогенератора. На отметке 100 нс выставляем на шину адреса ОЗУ адрес байта атрибутов символа. На 140 нс (через 60 нс после выставления адреса) защелкиваем первую часть адреса ПЗУ. Ждем еще 60 нс и выставляем на шину адреса ПЗУ вторую часть адреса. К этому времени на шине данных ОЗУ уже должен быть байт данных с атрибутами символа, 5 бит которого (подробные описания регистров ниже) отвечают за шрифт и входят во вторую часть адреса ПЗУ. Оставшиеся 3 бита данных сохраняются во временном регистре 2. Еще через 60 нс защелкиваем вторую часть адреса ПЗУ. Данные на шине данных ПЗУ появятся через 120 нс после этого события и это произойдет уже во время второго цикла. Чтобы циклы не пересекались, эти данные запишем во временный регистр 1 (на отметке 80 нс). И, наконец, на отметке 300 нс необходимо переписать все подготовленные данные в рабочие регистры. Битовая маска символа из временного регистра 1 переписывается в регистр rom_reg, применяются ранее сохраненные биты атрибутов к считанному в этот момент байту с цветом.
Таким образом, к концу второго цикла будут готовы все данные для вывода символа.
Четвертый шаг — картинку полностью формирует микроконтроллер. Символы и фон разных цветов, символы разных шрифтов. Некоторые нижние строчки моргают (фото этого не передает, прошу поверить на слово)
Основные регистры:
Запись данных из микроконтроллера в ОЗУ происходит следующим образом. Дожидаемся когда сигнал BUSY станет нулевым, записываем в регистры адреса начальные адреса, куда будут записываться данные (чаще всего это адрес 0 – адрес начала страницы данных, но может быть и произвольный адрес если необходимо изменить только несколько байт). Затем записываем необходимые данные. После записи каждого байта, адрес автоматически увеличивается на 1. При подходе к краю экрана (80-й символ в строке) адрес положения символа в строке автоматически обнуляется, а адрес строки увеличивается на 1. После записи всей страницы данных адрес автоматически переключается на запись страницы атрибутов, а после страницы атрибутов – на запись страницы цвета. После записи всех трех страниц адрес также автоматически обнуляется и начинается запись в страницу с данными. Таким образом, начальный адрес можно выставить только один раз и далее гнать только данные. Это позволяет сэкономить несколько мкс на установку адреса, а также упрощает программирование, когда закинуть все данные можно в одном цикле на 7200 итераций.
sym attribute (3 bit): bit 0 – symbol blinking bit 1 – background blinking bit 2 – underline symbol
На странице атрибутов хранятся шрифты и атрибуты символов. Младшие два бита отвечают за аппаратное моргание символа или фона, третий бит – за формирование подчеркивания. Старшие биты выбирают шрифт. Соответственно, можно выводить на экран символы из разных шрифтов вперемешку в любой комбинации. 5 разрядов для выбора шрифта позволяют хранить 32 разных шрифта, включающие как любые символы национальных алфавитов, так и спрайты для вывода картинки, например.
color page [7 - 4] [3 - 0] background color (4 bit) symbol color (4 bit)
Страница цвета содержит, соответственно цвет символа и цвет фона. Цвета могут быть любые из 16-цветной палитры.
Регистров адреса — 3. Выбор, в какой конкретно из них идет запись осуществляется старшими битами. Если старший бит [7] равен лог. 0, то записывается регистр позиции в строке (столбец). Если он равен лог. 1, то записывается регистр номера строки (строка) и номера страницы ОЗУ (данные или атрибуты или цвет). Если три старших бит равны лог. 1 то записывается специальный управляющий регистр, биты 4, 3 которого определяют положение аппаратно формируемой черты при включении бита подчеркивания, биты 2 – 0 зарезервированы для будущих настроек.
page: 00 – data page, 01 – attribute page, 10 – color page
Регистр хранит номер строки и выбор страницы.
[7 - 5] [4 - 0] 1 1 1 control reg (5 bit)
control reg: bit 4,3 – adjust underline 00 – 11 and 12 lines 01 – 12 and 13 lines 10 – 13 and 14 lines 11 – 14 and 15 lines
bit 2,1,0 – for future use
Специальный управляющий регистр.
Если задать адрес вне диапазона 0-79 по столбцу и 0-29 по строке, то данные начнут записываться в теневую область памяти, которая не отображается на экране. Ничего страшного в этом нет, после прохождения адреса 128 данные снова запишутся в видимую область. Была идея использовать теневую область данных как дополнительное ОЗУ для микроконтроллера. При этом, шину данных необходимо сделать двунаправленной и добавить сигнал чтения/записи. Однако от этого было решено отказаться с целью упрощения интерфейса. Тем более, что современные микроконтроллеры не испытывают настолько сильного недостатка в ОЗУ, как это было раньше. Кроме того, доступ к этому ОЗУ происходит не в любое время по желанию микроконтроллера, а также только во время гасящего импульса.
Пятый шаг — попытка вывести графическое изображение (неудачно)
Внутренние регистры ПЛИС (некоторые):
hreg[10:0] min-0, max-1599 [10 - 4] [3 - 1] [ 0 ] sym col pos (7 bit) sym col (3 bit) tact bit
Регистр содержит текущее положение развертки по горизонтали. Тактируется от частоты 50 МГц, что в 2 раза больше необходимых 25 МГц, поэтому младший бит (tact bit) не используется. Соответственно, биты с 1 по 3 обозначают позицию внутри символа, биты с 4 по 10 – позицию символа в строке. При достижении значения 1600 регистр обнуляется и на 1 увеличивается регистр vreg.
Регистр содержит текущее положение развертки по вертикали. Тактируется от регистра hreg. Соответственно, биты с 0 по 3 обозначают строку внутри символа, биты с 4 по 8 – строку символов. Бит 9 попадает уже в область гашения, поэтому не используется. При достижении значения 525 регистр обнуляется.
page: 00 – data page 01 – color page, 10- attr page
Регистры содержат текущее значение адреса для доступа к ОЗУ (всего 16 кБайт). Младшие 7 бит – адрес символа в строке (столбец), затем 5 бит – адрес строки и 2 бита – адрес страницы (данные, атрибуты или цвет). Этих регистров 2 – один для внутреннего использования логикой ПЛИС, второй управляется извне, микроконтроллером и может быть изменен только им.
rom_addr[10:0] col [10 - 6] [5 - 1] [0] 0 0 0 0 0 font (5 bit) ASCII code[7]
Регистр адреса ПЗУ, записывается в два приема. Содержит адрес строки символа, ASCII код символа и адрес шрифта. Эти адреса расположены таким образом, что в ПЗУ можно прошивать стандартные файлы шрифтов *.fnt без какой-либо дополнительной обработки, просто подряд. Объединить несколько шрифтов в один файл для прошивки можно, например, программой редактирования файлов WinHex. Главное, чтобы шрифты были с разрешением 8х16.
rgb[5:0] [5 - 3] [2 - 0] rgb color 1/3 rgb color 2/3
Регистр вывода цвета. Этот регистр подключен непосредственно к ножкам ПЛИС, подающие сигналы R, G, B на монитор. Младшие 3 бита подают сигнал уровнем 2/3 яркости (должны подключаться к резисторам 390 Ом), старшие подают сигнал уровнем 1/3 яркости (их необходимо подключить к резисторам 750 Ом).
Поскольку объем данных ПЗУ достаточен, на монитор также можно выводить и графические изображения. При этом, изображение необходимо разбить на спрайты размером 8х16 и зашить в ПЗУ знакогенератора. Изображение только должно удовлетворять двум требованиям: чтобы в пределах одного спрайта было использовано не более двух цветов из палитры и количество спрайтов не превышало 256. Как, например, на изображении ниже. За специально подготовленное изображение спасибо художнику A_Foxli.
К слову сказать, уложиться в 256 спрайтов — задача не из легких, именно поэтому изображение выглядит больше как детский рисунок. В процессе подгонки его приходилось несколько раз упрощать. Рисование спрайтами отлично подходит, например, при выводе на экран логотипа фирмы.
Следующим шагом эволюции компьютеров (который уже буквально на пороге) может стать постоянная энергонезависимая память большой ёмкости. Твёрдотельные накопители на несколько терабайт обеспечивают одновременно и длительное хранение данных, и функции оперативной памяти.
Это идеальный путь для развития компьютерных систем, так как он устраняет одно из фундаментальных противоречий современной компьютерной архитектуры. Но он вполне может хорошенько перемешать фигуры на доске существующей компьютерной индустрии, поскольку придётся изменить не только компьютеры, но и софт.
❯ Независимость — это свобода
Общий принцип организации перекрёстной матрицы памяти RRAM
Всем хорошо известны отличия энергозависимой памяти от энергонезависимой. Данные, хранящиеся в энергозависимой памяти живы только до тех пор, пока система работает. Как только подача энергии прекращается, данные становятся недоступными. Именно так работает оперативная память компьютера (ОЗУ) и кэш-память процессора.
Энергонезависимая память сохраняет информацию при отключении питания и хранит значительно бóльшие объёмы данных. Но работает она, на сегодняшний день неэкономично и гораздо медленнее, хотя именно в ней и содержится основная часть данных. Именно поэтому оперативная память остаётся первичной и применяется для хранения данных, необходимых ЦП для работы ОС и программ.
Сегодня существуют несколько видов быстрой энергозависимой памяти. Это динамическая, например, широко распространённая DRAM, разные версии которой используются в качестве ОЗУ, в ячейках она имеет транзистор и конденсатор, статическая (SRAM, применяется в качестве кэш-памяти ядра процессора), с шестью транзисторами в ячейке.
Но главная проблема состоит с том, что энергозависимая память, сколь быстра бы она ни была, отключаясь, теряет всю информацию. Это неудобно, но так работают сегодня большинство компьютерных систем. Пока.
Матрица RRAM под микроскопом
Поэтому и появились новые разработки быстрой, но уже энергонезависимой памяти. Это, например, резистивная память с произвольным доступом (RRAM, ReRAM, Resistive random-access memory). В её основе лежит свойство диэлектриков создавать внутри себя проводящие каналы при приложении высокого напряжения. Причём, изменив уровень напряжения проводящий канал можно разрушить, а затем создать снова. Получается так называемый мемристор, из которых и собираются матрицы памяти ReRAM.
❯ Сдвиг по фазе? Нет, фазовый переход!
Эскизная схема двухслойной памяти 3D XPoint. На пересечении линий (серый) показаны запоминающие ячейки (зелёный) и селектор (жёлтый)
В качестве ещё одного примера энергонезависимой памяти, претендующей на место ОЗУ, часто приводят 3D XPoint от Intel (торговая марка Optane). Она использует уже другой эффект — phase-change memory (PCM), изменение фазового состояния материала ячейки (кристалла халькогенида) при нагреве электрическим током. Халькогениды — бинарные химические соединения халькогенов (к которым относятся кислород, сера, селен, теллур, полоний, ливерморий) с металлами. В случае 3D XPoint используется халькогенидное стекло на основе сплава антимонида и теллурида германия Ge-Sb-Te). Память состоит из селектора и, собственно, ячейки, которые находятся в точках пересечения перпендикулярно друг к другу проложенных проводников (wordline и bitline). Селектор (ключ) включается при подаче на него напряжения и меняет состояние ячейки либо позволяет считать информацию. Память имеет многослойную структуру (она построена на базе вертикально интегрированных ячеек PCMS), что позволяет масштабировать плотность её размещения на кристаллах.
Phase-change memory на сегодняшний день считается наиболее перспективной технологией, которая может прийти на замену энергозависимой оперативной памяти. Она наиболее полно сочетает преимущества, которые присущи NAND, NOR, EEPROM и DRAM. При этом наиболее серьёзные недостатки всех этих видов памяти у PCM отсутствуют. Зато, преимущества очевидны. Изменение фазы вещества исключает возможные сбои в виде электрических помех, как это бывает в DRAM. Минимальные размеры стабильных ячеек — до 5 нм, что обеспечивает глубокую масштабируемость технологии. Phase-change memory позволяет выполнять побитное изменение данных, что возможно в DRAM, но нельзя сделать в NAND (там приходится оперировать крупными блоками).
Поскольку PCM обеспечивает высокую скорость чтения и произвольный доступ к ячейкам памяти, код можно запускать оттуда, без дополнительного сохранения его ещё куда-либо. К сожалению, пока скорость записи Phase-change memory не столь высока, как хотелось бы (она сравнима с этим показателем у NAND) но время начальной задержки у PCM, примерно в сто раз ниже. Кроме того, отсутствует цикл стирания.
Впрочем, у существующих разработок Phase-change memory на халькогенидах есть недостатки. Активный нагретый материал влияет на связанные с ним диэлектрик и электрод, что неизбежно вызывает постепенную их деградацию. Значительное изменение температуры извне может провоцировать утечку заряда и тем самым негативно влиять на длительность хранения данных. Для смены фазы ячейки требуется обеспечить высокую плотность тока, что непросто при нанометровых размерах матрицы и сокращает активную зону воздействия. Но часть этих недостатков может быть устранена благодаря недавним исследованиям учёных.
❯ Чудеса в слоистых никелатах
Рендер phase-change memory
В недавнем исследовании, опубликованном в журнале Advanced Science, сообщается об экспериментах с термически обратимым изменением электрического сопротивления при комнатной температуре в слоистых никелатах. Слоистые никелаты представляют собой класс сложных оксидных материалов, состоящих из ионов никеля. Они имеют сложную структуру, в которой слои атомов никеля и водорода перемежаются слоями, содержащими другие элементы, часто щёлочноземельные или редкоземельные. Именно эта уникальная слоистая структура привлекла интерес исследователей из-за свойств электронов, которые сулят слоистым никелатам применение в таких областях, как сверхпроводимость и электроника.
Свойства никелатов исследуются уже давно. В 2020 году учёные из Женевского университета (UNIGE) в сотрудничестве со швейцарским федеральным технологическим институтом в Лозанне EPFL), Цюрихским университетом и Льежским университетами, а также Нью-Йоркским институтом Флэтайрон выяснили, что слоистые никелаты по энергоэффективности могут превзойти кремний, причём с более низким энергопотреблением, обеспечив снижение дополнительных выбросов CO2 при производстве.
Схематическое изображение гетероструктур со сверхрешёткой, включая слои никелата самария поверх слоёв никелата неодима
Такие никелаты образуются из оксида никеля и атома редкоземельного элемента. В соответствии с тем, какой элемент использован, меняется и температура порога проводимости. Для самария она составит 130° C, для неодима −73° C. Столь значительная разница возникает из-за редкоземельных элементов, которые по-разному деформируют кристаллическую решётку никелата.
Команда учёных проанализировала поведение материала из нескольких слоёв никелата самария, поверх слоёв никелата неодима. Выяснилось, что если слои относительно толстые, то они работают на стандартной для составляющих их материалов температуре, но если сделать их тонкими, то образец становится «сэндвичем», в котором возникает эффект «скачка» проводимости в одном определённом промежуточном диапазоне температур. Причём всё это происходит без искажения кристаллической структуры материала, что предполагает надёжность, термическую и химическую стабильность процесса (никаких фазовых переходов и аморфных состояний, как в случае с халькогенидами, никакого перегрева и высоких температур), а значит — беспрецедентные перспективы для использования никелатов в электронике.
На схеме отражён процесс переключения электрического сопротивления в Sr2,5Bi0,5NiO5. Два объекта вверху — это кристаллические структуры Sr2,5Bi0,5NiO5 с различным расположением Sr/Bi. Внизу приведена кристаллическая структура двойного перовскита Sr2BiNiO4,5. Синее значение показывает электрическое сопротивление каждого слоя
Но вернёмся к недавнему исследованию, опубликованному Advanced Science. Созданный учёными никелат состоит из слоёв образований атомов стронция, висмута и кислорода, по структуре напоминающих каменную соль, чередующихся со слоями образований из атомов стронция, никеля и кислорода, по структуре напоминающих перовскит (псевдокубическая форма из геологии, иссечённая короткими штрихами). Эта специфичная кристаллическая структура формируется из двух положительно заряжённых атомов и одного с отрицательным зарядом, обладая свойствами сверхпроводимости и сегнетоэлектричества (явление спонтанной электрической поляризации в кристалле при определённой температуре даже в отсутствии внешнего электрического поля). Термически реентерабельное изменение полярности в слоистых никелатах (которое достигается подачей определённого напряжения) обеспечивает обратимое переключение электрического сопротивления при комнатной температуре, что позволяет разработать многоуровневую энергонезависимую память.
Если удастся довести исследования до логического завершения, слоистые никелаты могут привести к революции в компьютерной технике. Оксиды переходных металлов (более широкое понятие, включающее никелаты) в природе встречаются чаще, чем халькогениды, что потенциально может привести к снижению затрат на производство электроники и сделать процесс более экологичным.
❯ ReRAM+PCM — взболтать, но не смешивать!
Гибридные мемристоры с фазовым переходом открывают новые вычислительные возможности
Новые технологии, способные заменить энергозависимую память, продолжают появляться. Недавно команда учёных из университета Рочестера разработала новый материал для создания энергонезависимой памяти. По словам разработчиков, этот гибрид технологии, основанной на мемристорах (о ней шла речь выше) и памяти с фазовым переходом сочетает в себе лучшие свойства обоих видов резистивных переключателей. Разработчики технологии анонсируют низкое энергопотребление такой памяти и высокую плотность упаковки матрицы в кристалле. Технология основана на материале толщиной всего в один слой атомов.
В оригинальных технологиях не устранён целый ряд недостатков. Мемристоры, которые имеют ничтожный размер и постоянно разогреваются до высоких температур, не так надёжны, как хотелось бы. В свою очередь, материалы, обеспечивающие запоминание, при помощи фазового перехода вещества (фактически, его расплавления), требуют для работы больших токов, что, как уже говорилось выше, не так просто обеспечить при плотной упаковке ячеек в кристалле. Гибридная разработка состоит в том, что на кристалл воздействует небольшой ток, который не плавит его, а переводит в состояние, когда его сопротивление меняется.
Чтобы обеспечить неустойчивое состояние кристалла, которое легко изменить небольшим током, потребовалось создать специальный материал, растянутый до состояния тончайшей плёнки в одном направлении и сжатый в другом. В экспериментах использовался дителлурид молибдена (MoTe2). Напряжение, необходимое для переключения ячейки составило 90 мВ, а время переключения — 5 нс. Все параметры такой памяти можно регулировать путём изменения технологии производства и подаваемого на ячейки напряжения. Сейчас исследователи заняты повышением надёжности своей разработки.
❯ Операционные системы — на свалку истории
Начиная с эпохи мейнфреймов компьютеры использовали жёсткие диски и два уровня хранения данных: оперативную память и дисковое хранилище, доступ к которому осуществлялся через дисковый контроллер с использованием файловой системы для индексации и последующего извлечения содержимого. Если постоянное хранилище будет на карте памяти процессора, необходимость в дисковых контроллерах, файлах и файловой системе исчезнет. Трудно представить, что разработчикам удастся адаптировать к новым условиям существующие сегодня Unix-подобные операционные системы, с самого первого дня своего создания ориентированные на работу с файлами, каталогами и метаданными, которые являются их фундаментальной основой. Они тоже могут исчезнуть. Потребуются ОС и программное обеспечение с совершенно иной компьютерной архитектурой.
Содержимое оперативной памяти будет сохраняться от выключения до следующего включения компьютера. Причём храниться можно будет не только «снимок» оперативной памяти, регистры, но и состояние программ перед выключением, которое уже и не станет «шатдауном», в полном смысле этого слова.
Если создать ОС, которая обеспечит независимость сохранённых данных за счёт некой спецификации, то наличие самого компьютера и его физическая конфигурация могут оказаться не таким уж важным элементом системы. Это вполне может привести к ещё одной, пока неочевидной революции в компьютерной отрасли. Например, блок памяти может быть у каждого свой, его станет возможным носить в кармане, как сейчас карту SSD и при подключении начинать работу с того места, где она была завершена, со своими, привычными только вам настройками. Некоторые серверы необязательно должны будут всегда находиться во включённом состоянии. Может сильно упростится жизнь и для программистов, которым во многих случаях уже не потребуется производить сериализацию состояния программы. Пока это звучит как фантастика, но персистентная память и персистентные ОС уже существуют и постоянно совершенствуются, так что изменения однажды произойдут.
❯ ОС нового типа есть, но это не точно
Пока одни разработчики только строят планы и подбирают технологии для создания персистентной ОС, другие уже работают над подобными проектами.
Одна из операционных систем, опирающихся на новые принципы — ОС «Фантом» от известного разработчика Дмитрия Завалишина. Концепция ориентации на файлы, стандартная для Unix-подобных систем в ней изменена на концепцию, главным элементом которой является объект. ОС представляет собой виртуальную машину, обеспечивающую восстановление системы с момента последнего выключения за счёт того, что периодически делает и сохраняет снимки своего состояния. Новые принципы, заложенные в проекте, позволяют ОС не замечать перезагрузок и сохранять состояние компьютера, в том числе и при аварийном завершении работы. Все приложения работают в едином адресном пространстве и обмениваются данными через ссылки, а разделение доступа обеспечивается тем, что любые данные обрабатываются, как отдельные объекты и получить объект, принадлежащий другому процессу нельзя. В системе много интересных «фишек». Проект ещё в стадии разработки.
Существуют и другие ОС, включающие отдельные элементы и идеи, использованные в ОС «Фантом». Это IBM i, EROS, Singularity, и PalmOS. Из них, наиболее полно критериям персистентной ОС отвечает проект IBM i, наследник OS/400. Эта операционная система является объектно-ориентированной, содержит одноуровневую память, управляемую среду и поддерживает, собственно, персистентность. Но на сегодняшний день это не ОС для домашних компьютеров, а довольно дорогое платное серверное решение для бизнеса.
❯ Будущее
Вполне вероятно, что грядёт эра энергонезависимого ОЗУ, совмещающего ещё и функции хранилища данных. И возможно, что встретим мы её не только с другими компьютерами, но и с иными операционными системами и другими программами, так как существующий софт не совсем подходит под новую концепцию.
А знаете, я считаю голосовое управление умным домом эффектным, но не эффективным. Это когда молод, и делать нечего - можно поиграться - поуправлять светом голосом.
В свое время были простые решения типа управления светом хлопаньем рук, и где это все? Это не практично. В семье из нескольких человек, особенно если есть маленькие дети, всегда стоит шум, голосове управление при шуме - это еще тот геморрой.
Более того, если приходится часто включать/выключать свет, то ничего нет удобнее и практичнее простого выключателя на стене, просто поверьте. Проще пройти миммо нажав кнопку, чем произнести фразу. Да и фраза будет не краткой, если у вас больше одного светильника кооторым Вы управляете.
Я вообще не представляю дествительно умный дом с голосовым управлением, потому что в действительно умном доме огромное количество устройств управления и датчиков.
И если это действительно умный дом, значит его прозрачность должна быть максимальная.
Т.е. Вы не должны ощущать его присутствие. И тем более не должны больтать безумолку.
Просто должны выполняться сценарии без вашего участия. Все что вне сценариев должно управляться привычными, простыми органами управления типа выключателя. В том числе, удаление 'умного дома' не должно никак сказаться на основных функциях дома - свет как могли включить выключателем, так и включаем.
Умный дом - это прозрачное дополнение, которое информирует в случае проблем и выполняет элементарные действия, которые не могут быть негативны, типа выклчения всех не основных приборов после ухода всех из дома.
А иначе - весь этот рынок просто пиар бесполезных решений, с которыми интересно поиграться и не более того.
Я еще не говорю о вопросах безопасности, надежности и прочего устройств на базе WIFI и других безпроводных решений, особенно которые завязаны на заруюежные сервисы(в том числе на сервисы не дружественных стран).
В этой статье я расскажу, как прошел весь путь для реализации своего образовательного продукта от идеи до… полного провала. Как и многие преподаватели, я мечтал поделиться своими наработками. Кто-то выпускает учебные пособия или даже целые книги. Но мне хотелось запустить учебный стенд. Что из этого получилось, вы можете прочитать под катом.
Чтобы не создавать интриг, сразу скажу, что озолотиться конечно же не получилось! Но было чертовски интересно пройти весь этот путь.
❯ Преамбула
Так сложилось, что за свою трудовую жизнь у меня скопилось 12 лет педагогического стажа. На тот момент у меня была достаточно редкая квалификация для педагога, я специализировался на программировании микроконтроллеров. Хотя, это и по сей день не самый распространенный навык среди преподавателей. И, так как я начинал преподавать микроконтроллеры еще до того, как вышла платформа Arduino, необходимо было самостоятельно что-то придумывать и мастерить.
Вообще в то время среди преподавателей было принято изобретать какие-то лабораторные стенды и макеты. И мне достался от моего наставника замечательный по тем временам стенд. Тогда только вышли AVR, и мы с радостью перепрыгнули на них с архаичных MSC51. Стенд имел небольшое количество внешней периферии для изучения функций ввода/вывода, и был основан на внутрисхемном эмуляторе J-TAG-ICE.
На начало двухтысячных это было практически без альтернативное устройство. Нужно учесть, что это было почти 25 лет назад.
Для обучения у этого макета был только один недостаток, студентам он был доступен только в колледже. А мне хотелось, чтобы студенты имели возможность заниматься и дома. И я решил выпустить сильно упрощенную версию этого макета.
Фотография была сделана на мою первую цифровую мыльницу, мегапикселей там было еще крайне мало.
Плата получила название «AVRmegaboardX8». Все очень просто, в основе макета был использован микроконтроллер ATmega8. А прошивка его осуществлялась с помощью USB программатора AVR910.
Макет был выполнен на основе двухсторонней печатной платы. И первую версию я изготавливал утюгом. Переходы между сторонами были выполнены только за счет выводных компонентов. А необходимое количество печатных плат мне помогли изготовить между сменами на заводе «ИнжГео» по знакомству.
Мне удалось укомплектовать лабораторию необходимым количеством макетов, и даже иметь небольшой запас для дипломников.
В отличии от своего прообраза, мой макет не имел внутрисхемной эмуляции. И эту проблему со временем удалось решить благодаря тому, что появилась поддержка AVR в ISIS Proteus. Тогда же появилась моя группа в VK, в которой можно было найти готовую виртуальную модель, файлы для изготовления печатной платы и методички по изучению микроконтроллеров.
Заглавную страничку я нарисовал сам ручкой на бумаге. Потом отсканировал и наложил на скан старой журнальной странички. Подобрал шрифты и вуаля, готово!
Но со временем Arduino прочно заняла умы юных электронщиков. И актуальность моего макета сошла на нет. Я и сам перешел на Arduino в учебном процессе, но программировали на Си, использовался только загрузчик. Кстати, загрузчик в ардуино был полностью совместим с AVR910, можно было загружать прошивку в плату через AVR Prog.
Вновь вернулся я к идее лабораторного макета значительно позже, когда популярность AVR потеснили микроконтроллеры STM32.
❯ Концептуальная идея
В 2017 году меня пригласили работать тренером национальной сборной по компетенции «Электроника» для международных соревнований профессионального мастерства WorldSkills International. Одной из задач было обучение членов сборной программированию микроконтроллеров. И тут вновь появилась актуальность создания аппаратной платформы для прокачки базовых навыков программирования микроконтроллеров.
На скорую руку по хорошо знакомой схеме был изготовлен прототип, а позже заказана печатная плата в зеленке.
За время работы с макетом накопился достаточно большой объем учебных материалов, что-то было написано заново, какая-то часть актуализировалась с первой версии макета. Тогда я четко для себя решил, что это нужно вынести в массы и как-то внедрить в учебный процесс. Ну не выбрасывать же было такую кучу методичек!
По прошлому опыту сразу было понятно, что отдать исходники проекта в открытый доступ, ни к чему не приведет, так как мало кто из преподавателей сможет изготовить лабораторные макеты самостоятельно. И тут много причин. Преподаватели сейчас и без того загружены различного рода задачами: от проверки контрольных работ и до вне аудиторной работы.
Однозначно нужно было обеспечить возможность эти макеты купить в пригодном для использования виде. И не просто купить, а купить по доступной для учебного заведения цене.
К слову сказать, за все время реализации проекта я знаю всего два случая, когда макеты были все таки повторены по моим исходникам самостоятельно. Один из таких случаев был в Вологде. Там молодой и инициативный преподаватель сам собрал макеты.
Еще один клон (в хорошем смысле) моего макета. Но откуда он, я уже не помню.
Я поставил для себя следующие задачи.
1. Макет должен иметь стоимость не более 25тр, то есть минимальный учебный комплект из 12 устройств — 300тр. Иначе их точно никто не станет покупать. 2. Макеты всегда должны быть доступны к покупке, так как часто на такие вещи деньги в учебных заведениях выделяются стихийно, к примеру под конец года, и их надо оперативно реализовать или вернуть обратно. 3. Макет должен быть адаптирован под повседневное использование в учебном процессе. Должна быть соответствующая эргономика, нужно проработать систему хранения и прочее. 4. Необходимо организовать поддержку проекта. Макет должен иметь подробное методическое сопровождение. В идеале должен быть реализован интерактивный портал. Нужно провести обучение преподавателей для работы с макетом. 5. Так как задача заработать на макете не ставилась, нужно было реализовать проект без затраты собственных финансовых средств.
❯ Оценка емкости рынка сбыта
Сам по себе рынок сбыта для подобных продуктов весьма ограничен. В нашей стране на тот момент было 86 регионов. В среднем в каждом регионе по 1,5 колледжа, которые занимаются подготовкой студентов по профилю электроники. Среди них именно профильных не более 50, для остальных электроника побочна.
К примеру, в Краснодаре есть колледж электроники и приборостроения. Но там непосредственно на радиоэлектронные специальности набирают не более четверти абитуриентов. Большая масса учится по информационной безопасности и компьютерным сетям. Сравнимые с электроникой цифры набора для изучения 1С в бухгалтерии. И это не самый плохой вариант.
Как тебе такое, Илон Маск?!!! Колледж радиоэлектроники… заявленные цифры набора 400 человек. Из них всего 125 по электронике, и все бюджетные. Гос-заказчик просит готовить электронщиков, но за свои кровные туда точно ни кто не пойдет.
Пример из Кемеровской области. В провинциальном городке на 30 тысяч населения когда-то было ПТУ. В нем готовили телемастеров. В результате укрупнения в системе образования все ПТУ района объединили в техникум. Теперь в нем учат парикмахеров, поваров, автослесарей и… одну маленькую группу электронщиков человек на пятнадцать.
Есть примеры, когда в регионе существовал радиозавод, регион уточнять не буду. При нем организовали ПТУ для подготовки кадров по твердотельной электронике. Когда-то специалисты нужны были на производство резисторов и конденсаторов. Но, с течением времени, завод переориентировался, и такие специалисты больше не нужны. ПТУ также в результате укрупнения стал техникумом и продолжает набор… и набор этот носит больше социальное значение. Из-за практически отрицательного конкурса на эту специальность поступали сироты и дети из социально не защищенных семей, чтобы получать социальные выплаты.
Рынок сбыта стремится к нулю… его потенциальная емкость до 500 единиц. О каком финансовом интересе можно говорить дальше? Наверное, теперь мое заявление о больше социальном значении этой затеи, чем о финансовой, будет звучать правдоподобно?
❯ Поиск финансирования
Вот тут я сильно прокололся, но понятно это стало позже. Хоть меня и предупреждали добрые люди, мое упрямство помешало мне это вовремя понять. Поиск потенциальных партнеров начался с организаций, которые ориентированы на образовательные проекты. И такая организация нашлась достаточно быстро.
Планы были грандиозные. И позже они грандиозно провалились. Мое представление о схеме реализации проекта в корне не совпало с суровой реальностью современных бизнес моделей в сфере государственных закупок.
Но основная причина будущего провала все таки связана с ошибкой в ценообразовании. Я настаивал на своей цене. Мне казалось, что 25 т.р. это объективно. В стоимость были заложены даже риски «зависания» товара на складе. В конечном итоге проект нельзя считать убыточным, он себя отбил, но и прибыли не принес. По этой причине интереса в продвижении, развитии и организации поддержки на должном уровне у проекта не оказалось.
Зачем было кого-то искать? На мой взгляд, выходить с продажами единичного наименования — это в принципе плохая идея. Значительно лучше включиться в комплексные поставки. Тем более такие вещи, как лабораторное и методическое обеспечение, обычно идут как сопутствующие при комплексном оснащении учебного процесса. Колледж или вуз закупают лабораторию целиком, туда входит мебель, компьютеры, интерактивные доски и много всего. Какие-то макеты будут небольшой составляющей общего договора на поставку оборудования.
В реальности же схема продаж строилась на том, что макеты и методички к ним использовались как способ «защитить» контракт. Методический комплекс, включающий макет и методички, обладает рядом «эксклюзивных» параметров, которые прописываются в условиях поставки. Имея несколько подобных позиций, шансы выиграть тендер возрастают, нужно только правильно подготовить документы. Я открыл для себя много нового в мире продаж, и отчетливо понял, что заниматься этим не хочу.
Но, тем не менее, деньги на прототипирование и производство опытной партии были получены.
❯ Опытные образцы
После того, как были найдены заинтересованные в проекте лица, и получено финансирование, я приступил к разработке опытной партии образцов. Было изготовлено десять экспериментальных макетов.
На фотографии насчитал всего девять, но я точно помню, что десять было.
Далее нужно было провести апробацию макета на представителях целевой группы. Для этого я оформил учебную программу и, по договоренности с колледжем в Казани, провел курсы повышения квалификации для педагогов СПО. По второму образованию я магистр педагогики, и могу преподавать, а колледж предоставляет образовательную лицензию и выдает документы слушателям.
Группу набрал совсем небольшую, прочитал для них недельный курс. По результатам работы было принято решение провести корректировку макета и учебных материалов. Немного подправил шелкографию, подвигал разъемы на плате, переставил пины контроллера. Выявил некоторые неочевидные моменты в методичках. После чего макет обрел окончательный вид и был готов к реализации.
Как говориться, найдите десять отличий. Но… дьявол кроется в деталях.
На мой взгляд макет получился «что надо». Я никогда не любил искусственно синтезированные макеты в виде доски с шелкографией рисунка схемы, которая может быть находится внутри стенда… а может быть и не находится, и там затаилась совсем другая схема. Чем же это лучше компьютерного моделирования?
Мой макет максимально «прозрачный»: печатные проводники специально по максимуму размещены в верхнем слое; все компоненты также установлены на видимой поверхности платы; в шелкографии подписан каждый компонент и каждая функциональная схема макета. Для удобства отладки на печатной плате выведены контрольные точки, к которым без труда можно подключить щупы измерительных приборов, доступен фактически каждый сигнал. Названия, размещенные в шелкографии однозначно совпадают с методичками.
❯ Потребительские свойства
Для любого товара важна упаковка, именно с нее начинается знакомство потенциального потребителя с нашим продуктом. И тут важно понимать, кому мы хотели продавать макеты. Вероятность того, что покупать этот макет будут сами студенты, стремиться практически к нулю. Конечно же, расчет был на административных работников учебных заведений, которые участвуют в принятии решений о закупке оборудования. Именно поэтому я решил, что дизайн коробки должен быть выполнен в стиле старых советских журналов типа «Моделист конструктор». Для придания упаковке современного лоска, добавили немного ретро футуризма.
Сравните этикетку с обложкой журнала. Попадание в аудиторию получилось достаточно точное, несколько раз меня просили подарить просто коробку от макета.
Как известно, встречают по одежке, следовательно, экономить на упаковке не стоит. Коробку сделали с приличным принтом на не самой дешевой бумаге. А крышка имеет магнитную защелку. Внутри коробки сделан лоток по форме макета с отсеком под провода. Это позволяет использовать коробку для хранения макетов, чтобы они не валялись беспорядочно на полках.
Сам корпус — это набор компромиссов. Должно было получиться дешево, максимально просто в производстве крепко, и вандалоустойчиво. Сам макет должен быть наглядным, обеспечивать доступ к печатной плате. Было решено изготовить его из композитной сэндвич-панели, такие часто применяют в наружной рекламе. Торцы выполнены из поливинилхлоридного листа, он прост в обработке и хорошо клеится.
Торцы композитного листа спрятаны, это делает корпус более аккуратным на вид. Не так бросается в глаза то, что он изготовлен по кустарным технологиям.
В общем, корпус получился достаточно прочным и травмо безопасным. Торцы из ПВХ не царапаются. Нет острых углов. Элементы печатной платы скрыты в «корытце». Поломать можно что угодно, но случайно повредить макет достаточно сложно.
Макет вполне выдерживает нагрузку среднестатистического студента в прямом и переносном смысле.
❯ Подготовка к производству
Основная задача была правильно подобрать производство. Крупное контрактное производство я сразу откинул по причине очень маленького объема заказа. Да и с изготовлением корпусов не все хотят возиться.
Для сборки макетов Сергей подготовил необходимую оснастку. Чертежи, развертки и все прочее тоже его работа. Да и вообще, он сыграл очень важную роль в этом проекте.
На данном этапе нужно было искать компромиссы. Необходимо было оставаться в рамках цены, и чтобы сборщики не сильно матерились. Было непросто в моральном плане, но решение нашлось. И так, была собрана первая небольшая партия макетов и передана в продажу.
❯ Старт продаж и организация поддержки проекта
В рамках поддержки проекта я организовал программу обучения преподавателей. В этом помогли друзья из Уральского радиотехнического колледжа имени Попова. Курсы проходили на их базе. Еще несколько раз я проводил обучение в Санкт-Петербурге на базе колледжа электроники и приборостроения.
Вообще, подобная работа заслуживает отдельного внимания. Нужно разослать информационные письма, заключить договора, организовать проживание и питание. Это кроме того, что необходимо подготовить сами учебные материалы и оформить учебные программы и прочие документы. А еще найти желающих пройти обучение, подобрать удобное время, которое не попадает на сессии или защиты дипломов. Это очень хлопотно, особенно с учетом того, что делается один раз на десять человек.
Группы сознательно были рассчитаны на десять человек. Иногда чуть больше, иногда чуть меньше. Преподавателей в принципе очень трудно организовать на выездное обучение по ряду объективных факторов.
В качестве поддержки наш макет присоседился к порталу IT LECTORIUM. На этом портале размещаются методички для изучения программирования микроконтроллеров и выполнения практических работ. Но по причине низкой маржинальности проекта, развитие на портале забуксовало.
Методические пособия к макету оформлены в виде комплекта презентаций. Основной принцип изложения материала заключается в пошаговом следовании за инструкцией. Сперва по инструкции выполняется базовая работа. Далее по инструкции производится ее модификация. После чего обучаемому предлагается внести изменения самостоятельно, опираясь на рекомендации. По итогу раздела обучаемому предлагается самостоятельно решить задачу, используя полученные навыки.
Но тут я плохо оценил объем работы и свои ресурсы. В итоге смог реализовать только базовую часть работ, хотя и это весьма неплохой объем, позволяющий организовать аудиторный практикум в объеме 72 часов. В подготовке методичек участвовал мой товарищ из Чебоксар. Он внес свой неоценимый вклад в эту работу. В таких делах свежий взгляд со стороны бывает очень важен. Нашлись еще желающие включиться в проект, но я оказался к этому не готов, видимо перегорел.
Несколько рандомных слайдов из презентаций для примера, как это выглядит.
❯ Эпилог
Как обстоят дела с проектом сейчас. Я не связан больше с образованием, давно закончил преподавать и практически не имею отношения к системе образования в целом. Точное количество проданных макетов мне назвать сложно, это какие-то сотни штук, и это выше моих ожиданий. Совсем небольшие продажи идут до сих пор, просто потому, что этим никто особо сейчас не занимается. Я думаю, что из приобретенных макетов эффективно используется не более пятой части, а остальные пылятся по полкам учебных заведений в разных регионах нашей страны.
Какой вывод из всего этого сделал для себя Я?
1. Коммерсант из меня точно фиговый. В проект должна обязательно закладываться прибыль, он должен быть не только само окупаем. Необходимо заложить процент на развитие проекта, иначе такой проект захлебнется.
2. Не стоит привлекать к проекту деньги третьих лиц, даже если вы в них уверены. Лучше начинать на свои, или взять кредит в банке.
3. Не нужно начинать общее дело с друзьями. Не потому, что друг вас обязательно кинет. А потому, что существует вероятность, что вы сами подведете своего друга.
4. И не стоит считать себя самым умным))) нужно внимательнее относиться к советам других людей. Не обязательно слепо следовать этим советам, но прислушиваться точно нужно.
Для меня это был очень интересный опыт, повторять который я точно не собираюсь. Хотя, как знать…
Не так давно я показывал, как запустить электронный стрелочный тахометр из кабины пассажирского лайнера Boeing 737-300. И, разумеется, мне захотелось продолжить эту тему и подключить что-то ещё из авиаприборов.
Итак, в сегодняшней статье запустим два электронных блока индикации из кабины самолёта этой же модели. Посмотрим, что у них внутри и узнаем, насколько сложной может быть коробочка с тремя кнопками. Традиционно будет много интересного.
❯ Суть такова
Если тогда я рассказывал о стрелочном приборе, то тут речь пойдёт о простых индикаторах. С одной стороны, с ними дела обстоят проще, так как часто достаточно просто прозвонить, куда идут провода, и подключить лампочки подсветки, с другими же ситуация совершенно иная — необходимо реверсить авиационные интерфейсы и разбираться, как ими управлять. Ну что же, время разобраться, что же мы будем пытаться запустить.
❯ Обзор оборудования
Первым у нас на очереди будет индикатор режима тяги (Thrust mode annunciator).
Это лёгкая металлическая коробочка с разъёмом. На наклейках куча разных номеров, предупреждение о чувствительности к статике. Виден и производитель этого модуля — Smiths Aerospace. Этой же фирмой был выпущен тахометр из прошлого поста.
На передней части расположен дисплей. Он очень старый и порядком деградировавший. Нечто подобное может случиться и с современным дисплеем, если в питании сегментов будет постоянная составляющая: электролиз убивает тонкие электроды дисплея очень быстро.
Обратная сторона. Тут находится разъём подключения, а также табличка с номером.
Следом идёт другой блок — индикатор состояния трёх важных узлов: бортового компьютера, автопилота и автомата тяги. Коробочка уже поменьше и потяжелее. Впрочем, по размерам в поперечном сечении она абсолютно такая же.
Здесь же видно и крепление. Блок вставляется в специальную обойму с крепёжными проушинами, которая в свою очередь и прикручивается к панели.
Спереди находятся три кнопки-индикатора и тумблер тестирования. Он на три положения и без фиксации.
С обратной стороны два разъёма. Контактов неожиданно много для такой с виду простой штуки.
Таблички.
А вот тут можно увидеть расположение этих приборов в кабине.
❯ Чёрная коробочка
Самое время разобраться, зачем же столь много контактов такому, казалось бы, простому блоку.
Разбираем. Открутив небывалое количество винтов, снимаем крышку. Внутри нас ждут три кнопки-индикатора, две платы и плотно уложенные жгуты проводов. Все провода разного цвета, это сильно упрощает их разводку. На плате неизвестные микросборки и немного дискретных элементов.
Снимем плату. Под ней ещё одна с кучей диодов.
Обратная сторона верхней платы.
❯ Кнопки-индикаторы
Отдельного внимания заслуживают индикаторные кнопки.
К корпусу они крепятся следующим образом: каждая кнопка вставлена в свой кожух, туго засаженный в свою прорезь в корпусе. Чтобы кожух не сползал, на кнопках имеются защёлки в виде рычажка, который надо провернуть.
Сама кнопка имеет два светофильтра — красный и оранжевый. Соответственно, светиться она может тоже двумя цветами, для чего в ней предусмотрены четыре лампы накаливания, по две на каждый цвет. Разбирается кнопка очень легко: надо подцепить её с боков отвёрткой (для чего у неё есть специально предусмотренные прорези) и извлечь подвижную часть.
После этого можно получить доступ к лампочкам. Чтобы клавиша не потерялась, со стационарной частью её связывает пластиковая тяга.
Внутренности кнопки. Видны подпружиненные контакты лампочек и отверстие, куда уходит шток, нажимающий на микропереключатель.
Лампочка отдельно. Вся индикация питается от двадцати восьми вольт.
Кнопки слегка наклонены относительно корпуса. Это не тумблеры, сделано так для удобства нажатия.
❯ Подключаем кнопки
Самое время выяснить, куда идут провода и зачем нужна та самая плата. Как оказалось, плата с диодами служит для подключения лампочек, о верхней же поговорим чуть позже. Итак, распиновка разъёмов оказалась следующая. Итак, разъём J2:
Масса
Не подключён
Вывод «1» верхней платы
Не подключён
Вывод «2» верхней платы
Плюс красной лампы автопилота
Плюс оранжевой лампы автопилота
Вывод «3» верхней платы
Вывод «4» верхней платы
Вывод «5» верхней платы
Вывод «6» верхней платы
Вывод «7» верхней платы
Вывод «8» верхней платы
Вывод «9» верхней платы
Вывод «10» верхней платы
Разъём J1 оказался поинтереснее:
Не подключён
Не подключён
Неизвестно
Кнопка автопилота
Земля оранжевой лампы автопилота
Земля оранжевой лампы автопилота
Земля красной лампы автопилота
Земля красной лампы автопилота
Земля оранжевой лампы автомата тяги
Земля красной лампы автомата тяги
Кнопка автопилота
Кнопка автомата тяги
Кнопка автомата тяги
Плюс оранжевой лампы автомата тяги
Плюс красной лампы автомата тяги
Как можно видеть, индикация для автопилота, как для самой важной из этих систем, продублирована: лампочки не запараллелены, а выведены на отдельные контакты разъёма. Другие кнопки таким подключением не обладают.
Итак, пробуем подать питание. Ну что же, оно живое! Загадочная для обывателя надпись «P/RST» — тоже авиационный термин, означающий «Push to reset». Это значит, что кнопка-индикатор загорается при наличии какого-то предупреждения, а для его сброса эту кнопку надо жмякнуть.
❯ А что же с верхней платой?
Нетрудно догадаться, что верхняя плата как-то завязана на кнопки TEST и FMC. Так что время прозвонить, куда же идут провода от них.
На плате шестнадцать контактов, они вот такие:
3 контакт J2
5 контакт J2
8 контакт J2
9 контакт J2
10 контакт J2
11 контакт J2
12 контакт J2
13 контакт J2
14 контакт J2
15 контакт J2
TEST-2
TEST-1
TEST общий
Оранжевая лампа FMC
FMC общий
Кнопка FMC
Всё становится ещё интереснее, когда выясняется, что часть проводов таки соединена с разъёмом напрямую:
TEST-2 соединён с выводом 10 (15 контакт J2)
TEST-1 соединён с выводом 6 (11 контакт J2)
Кнопка FMC соединена с выводом 10 (5 контакт J2)
С этими контактами всё намного сложнее: микросборки нигде не гуглятся, а пытаться запустить наугад рискованно. Так что пока что последние два выключателя так и остались неподключёнными…
❯ Автомат тяги
Теперь очередь коробочки с дисплеем.
Разбирается она очень просто — надо открутить четыре винта по периметру разъёма. После этого кожух легко снимается.
Внутри нас ждёт одинокая плата. На ней МК неизвестной модели (гугл без понятия, что за чип, явно что-то заказное), несколько микросхем драйвера ЖКИ (CD4054BE), триггер Шмитта (74C914N), парочка операционных усилителей.
Обратная сторона дисплейного модуля. Подсветка осуществляется всё теми же лампочками накаливания. Во всех приборах Боинга подсветка питается от пяти вольт. Выведена она обычно на первый и второй контакты разъёма.
Плата с дисплеем. Он порядочно деградировал за годы работы, часть надписей видна и в выключенном виде. Как это бывает со многой авионикой, дисплей тут инверсный, работающий на просвет.
❯ Запуск
Подаём питание. На дисплее загораются и гаснут три черты, больше ничего интересного не происходит. Далее мне удалось найти контакт, отвечающий за тестовый режим. Притягивание его к земле включает все сегменты дисплея.
Другой контакт позволяет зажечь надпись «A/T LIM».
❯ Epic fail
Увы, показать что-то большее, нежели «A/T LIM» не получится: эта штука полностью цифровая и управляется по интерфейсу ARINC-429. Он во многом напоминает CAN, однако использует не два уровня напряжения, а три.
Я уже думал начать собирать схему трансивера для этого интерфейса, но тут случился производственный момент — не так давно я достал из закромов этот блок и обнаружил, что индикатор по неведомой мне причине треснул (хотя, казалось бы, собрал прибор я правильно, ничего не перетянув и не перепутав, да и после сборки он долго лежал, и ничего с ним не было). Теперь запустить не только деградировавший, но ещё и разбитый ЖКИ не представляется возможным. Так что единственным вариантом остаётся лишь выкинуть расколотый экран и поставить туда свой индикатор, а вместе с ним — и схему управления. Распиновка блока с оригинальной платой оказалась вот такая:
Подсветка
Подсветка
Ничего
Ничего
Масса
Питание
Земля
Тестирование
A/T LIM
Ничего
ARINC
ARINC
❯ Исправляем ошибки с тахометром
Когда я говорил о тахометре, я упомянул, что у меня не вышло зажечь лампу предупреждения. Но товарищ Atxmega подсказал, что, вероятно, она исправна, просто необходимо не просто подавать питание, а ещё и создавать условия для её зажигания. Ну что же, самое время это проверить. Подаём на неё питание и включаем самотестирование.
Работает!
❯ Вот как-то так
Как и в прошлом случае, с виду абсолютно простенькие приборы оказались крайне интересными внутри, не только по самому принципу работы, но и по количеству инженерных решений, в них применённых. Этим мне и нравятся подобные устройства — там всегда есть, на что посмотреть. Такие дела.
Радиолампы, словно артефакты из прошлого, олицетворяют нечто большее, чем просто технологию. Они несут в себе определенную магию, отражающую уникальное сочетание технического мастерства и эстетики. Не удивительно, что часы на неоновых индикаторах занимают довольно уникальную нишу в мире дизайна и интерьера. Они представляют собой не просто инструмент для отображения времени, но и элемент декора, который может значительно изменить атмосферу помещения. Этой статье я расскажу о своем опыте создания Nixie Clock на базе драйвера собственной разработки.
❯ С чего всё началось
Однажды, на предприятии где я работал, на складе обнаружилось много неликвидного материала, который хранился там ещё с советских времен.
Неликвид состоял из электронных компонентов, которые нам отдали безвозмездно для использования в личных целях, чтобы не тратить средства на утилизацию. На самом деле, там было очень много ценных компонентов, среди которых оказались неоновые индикаторные лампы марки ИН-12. В итоге я их забрал себе. С радиолампами знаком еще с детства, увлекаясь радиоконструированием, я часто собирал различные схемы, в том числе и на лампах. А тут такой флешбэк.
❯ Разработка часов
По состоянию на 2016 год, было много различных схем часов на лампах, но мне не нравилась их схемотехника, она казалась мне избыточной и не эффективной. Хотелось реализовать что-то простое, питающееся от стандартного USB порта, без использования модуля RTC и светодиодной подсветки, которая, по моему мнению, только портит всю эстетику ламп. На тот момент большинство схем работало на Arduino и микроконтроллерах от компании Atmel. Годом ранее, компания Espressif Systems выпустила на рынок свой микроконтроллер ESP8266, который произвел революцию. Так как на тот момент, широкополосный интернет уже был достаточно распространен, в том числе и домашние сети Wi-Fi, я решил отказаться от применения RTC модуля в своей схеме часов и использовать NTP серверы для синхронизации времени. Как вы могли догадаться, в своей схеме я применил модуль ESP8266. Далее я поделился в Twitter своим опытом применения нового модуля ESP8266 в своем проекте. Мой твит вызвал интерес, и мне предложили написать статью на Hackaday.io. Я последовал совету и опубликовал свою статью там.
Но в этой статье я хочу описать реализацию часов с применением шести индикаторов ИН-14 с использованием улучшенного драйвера. Как выглядят эти лампы, вы можете увидеть ниже.
Давайте приступим
Ниже изображена схема драйвера часов:
Схема подключения ламп:
Согласно документации, индикаторная лампа работает от напряжения в 170В (напряжение возникновения разряда), для стабильной работы нам потребуется напряжение в 200В. Как вы можете видеть из схемы, для повышения напряжения до 200В применен set-up преобразователь на базе ШИМ контроллера МАХ1771 в связке с L2, D1 и Q1. Так как нам недостаточно выводов ESP8266 для управления лампами, то будем «размножать» пины управления с помощью дешифраторов CD4028BM96. Данный модифицированный драйвер позволяет управлять десятью газоразрядными индикаторными лампами. Выше описанный драйвер имеет динамический метод управления индикацией, то есть в определенный момент времени загорается только одна лампа, но переключение выполняется настолько быстро, что человеческий глаз практически не воспринимает переключение ламп и кажется что все лампы горят одновременно. Данный режим переводит работу ламп в импульсный режим, что положительно сказывается на их срок службы.
Разработка платы
Разработка платы велась в Sprint-Layout 5.0, так как мне это было удобнее для изготовления платы в домашних условиях.
Плата драйвера:
Плата для установки ламп:
Изготовление печатной платы выполнялось с применение фотошаблона и фоторезиста:
Засветка фоторезиста платы драйвера:
Засветка фоторезиста платы крепления ламп:
Травление платы драйвера:
Пайка компонентов:
Плата драйвера в собранном виде:
Монтаж ламп на плату управления:
Тест работы схемы часов с небольшой отладкой:
Для управления высоким напряжением используются оптроны TLP627 от компании TOSHIBA.
TLP627 — высоковольтный транзисторный оптрон со схемой Дарлингтона на выходе.
Корпус часов
Корпус часов не предполагает какой либо сложной конструкции, разработка выполнялась во FreeCAD:
Далее корпус был распечатан на 3D принтере, с использованием HIPS пластика. Данный пластик при печати создает структуру стенки, которая чем-то похоже на дерево и не обладает глянцевым эффектом как другие виды пластика типа PLA, ABS и т. п.
Монтаж электроники
После изготовления корпуса, необходимо смонтировать все компоненты. Ниже показан монтаж платы драйвера с применением, всеми любимого, термоклея. :)
В итоге мы получаем следующее:
Часы в работе:
Часы в данный момент находятся на моём на рабочем столе, естественно, в живую они выглядят гораздо красивее:
❯ Давайте поговорим о прошивке часов
Для разработки прошивки часов, я использовал среду разработки Arduino IDE. Ниже представлен код прошивки:
После удачной прошивки и первом включении, часы создадут Wi-Fi точку доступа. Для конфигурации часов необходимо подключиться к созданной точке доступа (пароль сети указан в прошивке) и перейдя по IP адресу 192.168.4.1 в браузере вашего устройства, выполнить не сложную настройку часов. Ниже представлен скриншот интерфейса устройства:
Для настройки часов, вам необходимо будет подключиться к вашей Wi-Fi сети, указать NTP сервер и ваш часовой пояс. Затем перезагрузить часы. Всё, часы готовы к использованию.
❯ Что в итоге?
В итоге у нас получились простые в реализации часы на ламповых индикаторах, где не требуется применять антикварные микросхемы типа К155ИД1, вся схема выполнена на современной элементарной базе. Часы не нуждаются в ручной настройке времени, синхронизация времени выполняется автоматически с удаленного NTP сервера, что гарантирует постоянную точность времени. Разработанный драйвер показал хорошие результаты надежности, работая уже более пяти лет.
Есть желание собрать часы на базе этого драйвера с применением ламп ИН-18, но пока стоимость ламп меня пугает).
Спасибо, что дочитали до конца! Если статья понравилась, то вы знаете что делать. И как всегда, вопросы, пожелания, осуждение? :) — добро пожаловать в комментарии. До встречи в новых статьях!
Стекло – замечательно красивый, обладающий целым рядом полезных свойств, но и непростой в обработке, материал. Обычно применения его в своих конструкциях, а здесь мы говорим о домашней лаборатории-мастерской, стараются всячески избегать. Часто один только вид заготовки – неправильной формы куска стекла, уже вызывает у граждан приступ малодушия, а между тем, освоив несложные приёмы работы и действуя вдумчиво и аккуратно, можно существенно обогатить и разнообразить свой арсенал.
❯ Стеклорез, работа стеклорезом
Итак. Стекло – материал хрупкий, твёрдый, плохо проводящий тепло. Начнём со стекла листового, обычно, не толще оконного, а это около 4 мм. Резка его заключается в нанесении царапины и последующих действиях, приводящих к появлению вдоль неё сквозной трещины. После этого части заготовки легко разламываются или распадаются сами. Длинные прямые резы делают стеклорезом под линейку, положив заготовку-лист на ровную прямую, слегка упругую поверхность. Некогда в стекольных мастерских работали на столе, отделанном фетром, при нечастых домашних работах довольно нетолстого слоя старых газет. Хорошо себя показал лист тонкого ДВП плохого качества (мягкий, рыхлый) (Фото 1), годится и фанера берёзовая, ДСП.
Хрестоматийный роликовый стеклорез с масляным резервуаром в ручке, где: 1 – сменная режущая головка; 2 – ручка; 3 – тяжёлый металлический шарик на конце ручки, им постукивают вдоль царапины, с обратной стороны листа, для возникновения трещины. Чужое фото из сети
Стеклорез для периодических работ лучше всего с твердосплавным роликом – алмазные требуют постоянно поддерживаемого навыка и не прощают ошибок в работе. Роликовый стеклорез (Фото 2) демократичнее и терпимее, тем не менее – ведём его с постоянным и заметным нажимом, всю линию без отрыва, от края до края стекла за один раз. В идеальном случае должен быть ровный шипящий звук и чёткая непрерывная черта. Прочерчивание царапины дважды по одному месту сильно затупляет ролик. Сведение её концов на середине заготовки, с высокой вероятностью, заставит трещину в этом месте споткнуться и махнуть в непредсказуемом направлении. Ролик в стеклорезе лучше периодически смазывать машинным маслом или смесью масла с керосином и вдоль разметки на стекле, пальцем нанести его тонкий слой. Удобны стеклорезы с ёмкостью для масла в ручке. Работать следует чистое стекло.
Пример простой резки листового стекла – некрупный прямоугольник (фоторамка, окно шкалы прибора и т. п.). Нужная часть указана стрелочкой. Заготовку – подходящий кусок старого оконного стекла отмыл, высушил, разметил спиртовым фломастером. Прочертил стеклорезом под линейку две царапины – №1, №2. Ломать будем в этом же порядке
Замечательно простой и быстрый способ ломки более или менее крупных заготовок с прямым резом – на ровном краю стола. Кладём на него, прочерченный стеклорезом, лист царапиной вверх и одним уверенным энергичным движением – хруп! Рез обычно получается изрядного качества. Интересно, что если при ломке деликатничать, сломается, скорее всего, не там, где нужно
Традиционно декоративно-прикладное применение (цветного) стекла – разного рода вещицы, панно, светильники в витражной технике с характерной сложной криволинейной резкой. Прежде всего, при проектировании рисунка (условно – витража), всячески избегаем сложных в резке и обработке деталей, но бывает всякое. Витражное стекло, против ожидания, обычно легко резать – оно тоньше (обычно, 3 мм) и заметно менее прочно, зато самые красивые художественные стёкла имеют слоистую структуру с её непредсказуемостью в обработке. Стекло прозрачное, общего назначения, тоньше обычных 4 мм, тоже режется без особенных приключений.
Трещина в стекле, возникая, ведёт себя подобно тяжело груженному самосвалу на большой скорости – резко повернуть не в состоянии. Например, в прочерченной стеклорезом стеклянной детали на рисунке, при ломке, трещина, вероятнее всего, пойдёт как указано стрелочками
Рез стеклянной детали тем не менее может иметь некоторую внутреннюю кривизну, но не очень глубокую и во всяком случае, следует по возможности избегать при этом более или менее тонких концов – скорее всего, они обломятся
Витражи бывают нескольких техник и сложности. Классические, из-за ограниченных возможностей технологии, состоят из весьма простых линейных деталей. Современные способы соединения стекляшек в рисунок, могут иметь элементы сложные и вычурные – резы для них характерны криволинейные, однако, в любом случае стремимся к деталям максимально крупным и с плавными однонаправленными изгибами.
Витраж «Гранаты» в классической технике «Тиффани» – края стеклянных деталей отделываем медной фольгой и спаиваем в рисунок
Ведут такой стеклорез вперёд, от себя, чтобы видеть кривую линию разметки на стекле
Таким образом, вырезание и отламывание плавных кривых – а-ля натюрель – режем и ломаем как есть за один раз. Вырезание и отламывание сложных, сильно изогнутых кривых – с разбитием их на несколько простых.
Вырезание нескольких стеклянных криволинейных деталей из листа. Размечаем их так, чтобы каждый простой рез был от края до края заготовки. №1 – отрезаем всю группу
Вырезание каждой детали в три приёма. Каждый – от края до края листа и не слишком сильно изогнут
Пример вырезания группы небольших, неправильных очертаний, заготовок из листа. Детали расположены кучно для экономии ценного материала, но с учётом рисунка самого стекла. Сначала разделяем всех участников на небольшие компании, дальнейшее очевидно. Стеклорезом можно прочертить сразу всё, а потом разламывать или работать последовательно – прорезал-сломал, прорезал-сломал. Как сердце подскажет
Таким образом, например, круг – вырезаем из заготовки-квадрата четырьмя изогнутыми касательными.
❯ Разламывание стекла
Самая непредсказуемая и сложная операция при резке. Мы наметили трещине путь стеклорезом, но барышня эта легкомысленная и вздорная – в заготовке может быть масса невидимых препятствий – мелкие дефекты, напряжения. Не говоря о стекле цветном слоистом, неоднородном в принципе. Кроме прочего, в нём не следует располагать длинные детали поперёк общего направления «перьев». В целом же, следует заранее смириться с некоторым процентом неудач. Обломки цветного стекла следует собирать и хранить, они пригодятся для более мелких деталей, других техник, дробления на крошки и т. д.
Прямые резы на более или менее крупных заготовках и деталях обычно отламывают очень простым и эффективным, если не сказать эффектным, приёмом на краю стола. Иной ходовой способ – с обратной стороны царапины заготовку последовательно простукивают небольшим твёрдым предметом – некрупным молоточком, стамеской и т. п. На многих стеклорезах для этого есть специальное утяжеление на конце длинной ручки.
Вырезание стеклорезом небольшой детали для художественной стеклянной работы. Стеклорез держим как авторучку, ведём вперёд от себя по линии разметки. Чтобы усилие на ролик, в нетвёрдых руках, было выше, головку инструмента часто нажимают указательным пальчиком второй руки
Даже небольшие детали витражного непрочного стекла хорошо обламываются при постукивании их шариком ручки стеклореза
Тем не менее для ломки стеклянных мелочей есть ряд специальных интересных инструментов упрощающих и убыстряющих операцию, повышающих шансы на её благополучное проведение, а в ряде случаев – они и вовсе единственная возможность.
❯ Ломатели стекла
Инструменты для быстрого разламывания – работают аналогично резаку для облицовочной керамической плитки – некое ребро упирающееся снизу в черту от твердосплавного ролика и прочные лапки с усилием давящие на заготовку сверху, по обе стороны от царапины.
Классическая резалка облицовочной плитки, где: 1 – ребро снизу; 2 – лапки с рычагом. Фото из сети
Ручной ломатель стекла. Фото из сети
Ломатель нетолстого стекла. Инструмент обычный для витражной мастерской. На металлические губки одеваются защитные силиконовые колпачки. Фото из сети
Авторский ломатель витражного стекла из плоскогубцев и пары бронзовых деталей от старого душевого смесителя. Металлические губки в несколько слоёв обмотаны прозрачным скотчем – чтобы не скрежетали
Работа инструмента очевидна – некрупные детали разламывает мгновенно, в один присест, длинные же сложные кривые полезно сначала не до конца сжать таким ломателем с обеих сторон и в нескольких местах.
❯ Отщипыватель маленьких кусочков
Во истину необходимый для работы со стеклянными мелочами инструмент! – необходимость отломать после стеклореза очень небольшой кусочек стекла возникает постоянно. Такой клочок не схватить пальцами, не помогает стучание снизу и даже небольшим губкам ломателя нет места для опоры.
Ломатель-отщипыватель витражного (~3 мм) стекла. Всегда под рукой
❯ Обработка края стеклянной детали
Обычно её края спрятаны и можно допустить их некоторую зазубренность, но случается торцам работать и снаружи. Тогда у краёв вырезанного стекла придётся, как минимум, притупить острые кромки. При работах разовых и более или менее правильной форме стекла, сделать это можно на куске обычной наждачной бумаги на тряпочной основе, со средним зерном. Стеклянная пыль, образующаяся при шлифовке, вредна и затрудняет работу абразива – её следует смывать или вовсе, работать под слоем воды. Оконное стекло довольно твёрдое, заметный результат будет только при ощутимом нажиме на деталь или абразив – следует позаботиться о целости рук. Зёрна наждачной бумаги весьма быстро притупляются, и работа становится раздражающе малорезультативной – патронов не жалеть! Кусок наждачки удобно пришпилить мебельным степлером к деревянному бруску, во время работы периодически макая его в ведро с водой.
При обработке краёв резаного стекла наждачной бумагой, иногда, удобно подложить под неё кусок плотного войлока – от нажима он слегка проминается и закругляет торец детали. На фото – отрезанная часть небольшой бутылочки от специй. Наждачка крупностью 140 единиц. Работа с плоскими деталями аналогична
Отшлифованный край получившегося стаканчика. Торец слегка округлён, кромки затуплены
Самодельная тушечница из отрезанной бутылки и металлического хлама
Наждачная бумага для работы со стеклом – подручный, широко распространённый и недорогой, но прискорбно малостойкий абразив, обычно же, для таких упражнений применяют инструмент алмазный. Следует стремиться обзавестись его промышленным вариантом на металлической связке. Он значительно долговечнее, изношенный внешний слой часто удаётся растворить сильной кислотой, восстановив работоспособность. Алмазный инструмент при работе нужно часто смачивать или непрерывно поливать водой – это смыв стеклянного шлама, предотвращение пылеобразования, охлаждение и увеличение его ресурса.
Вертикально вращающимися колёсиками с алмазным слоем удобно обрабатывать и кривые торцы стекла. Маленькие слева – на бакелитовой (?) связке, справа покрупнее – на металлической
Алмазные колёсики на державках для установки в трёхкулачковый сверлильный патрон. Специальные, выточенные и импровизированная, из стандартного крепежа М6
Алмазное колёсико в сверлильном станке, настроенном на 3000 об/мин. Обработка-подгонка стеклянной шкатулки к крышке
Импровизированное омывание инструмента водой – с обратной его стороны слегка прижимаем кусочек мокрой губки и часто споласкиваем её в плошке стоящей рядом. Мутная вода через сутки – двое оседает. Осторожно слив её, собрав и высушив стеклянный шлам со дна, получаем полезный материал для приготовления термостойкого клея-замазки. При шлифовании стекла будут брызги – работать в защитных очках или щитке
❯ Чтобы два раза не вставать
Научившись вырезать и обрабатывать плоские стеклянные детали сложной формы, грешно не помянуть о клее с ультрафиолетовым (УФ) отверждением. Варианты китайского производства работают сносно и недороги. Клей после полимеризации прозрачен. Цветное матовое «глухое» стекло им склеивать сложнее, прозрачное – будьте любезны.