Timeweb.Cloud

Timeweb.Cloud

Блог компании
То самое облако Наш сайт: https://timeweb.cloud/ ТГ: https://t.me/timewebru Хабр: https://habr.com/ru/companies/timeweb/articles/
На Пикабу
- рейтинг 1925 подписчиков 19 подписок 362 поста 307 в горячем
Награды:
более 1000 подписчиков5 лет на Пикабу
24

Паяльная станция «Магистр НеоТерм-3Т». Что внутри?

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

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

❯ Что за станции такие – «НеоТерм»?


У саратовской компании «Магистр» целая линейка симпатичных паяльных станций «НеоТерм». Отличаются они составом и количеством инструмента, который можно одновременно к ним подключать.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Ранее я приобрёл трёхканальную станцию «НеоТерм-3Т».

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Два паяльника позволяют работать одновременно с другом.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

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

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

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

Кроме того, в паяльники можно вставить разные жала:

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

В один побольше, в другой поменьше. Для ювелирных работ это может быть полезным.
Часто бывают ситуации, когда нужно залудить что-то (например, тоненький проводок), а потом сразу припаять к крохотному разъёму с мелким шагом, который только и ждёт, чтобы засосать соплю между своими маленькими выводами.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост


Делать это одним паяльником не очень удобно: для лужения хорошо бы взять на жало побольше припоя, а для ювелирной пайки, наоборот, почти полностью убрать припой. У разъёмов обычно много выводов, и эти операции чередуются. Гораздо удобнее лудить и паять отдельными паяльниками.

Если паять вдвоём всё-таки скучно, то можно выбрать станцию с тремя паяльниками («НеоТерм-3С»).

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

И паять не только в две руки, но и левой ногой.

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

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост
Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Термозачисткой можно снимать изоляцию.

Станцией я доволен.

❯ Что внутри?


Когда в руки попадает какой-нибудь приборчик, всегда интересно, что там у него внутри.
Снимаем переднюю панель.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

На передней панели установлена основная плата с микроконтроллером STM32F071RBT6, энергонезависимой памятью 24LC02B-I/SN, пищалкой, экраном, кнопками и прочей мелочёвкой.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост
Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Питается станция от тороидального трансформатора ПКФЛ 671113.678ш мощностью 148 ВА, изготовленного белорусским предприятием «Юджэн».

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост
Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Кроме управляющей платы есть ещё силовая. Все выводы трансформатора подключены к этой плате. На ней интересных деталей уже побольше: беленькие оптопары MOCD207R2M, 3 пары транзисторов (IRF7493 и IRFH6200), разъёмы для термоинструментов, 2 ОУ OP07C и разная мелочь.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

❯ Как же работает управление нагрузкой?


Можно заметить, что транзисторы включены попарно и встречно – любопытненько! Вооружившись мультиметром срисовываем схему, приводим её в понятный читаемый вид (показана только одна из вторичных обмоток трансформатора).

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Заодно можно помоделировать в Spice симуляторе.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Пусть на выводе 7 обмотки плюс, а на выводе 6 минус (положительная полуволна). Ток через R2, диод VD1 и обратный диод ключа VT2 заряжает конденсатор С1.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

По каналам ключей VT1, VT2 ток не течёт, так как они закрыты.
Постепенно накопительный конденсатор С1 заряжается до напряжения, равного амплитуде синусоиды минус падение на диоде VD1 и обратном диоде транзистора VT2.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Теперь можно использовать заряд этого конденсатора для открывания полевых транзисторов. Если открыть транзистор оптопары U1B, то ключи VT1, VT2 откроются и ток нагрузки потечёт через них.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Закрыть транзисторы VT1, VT2 можно открыванием оптопары U2B, которая разрядит ёмкости затворов.

Посмотрим на графики SPICE модели. Сверху видим ток нагрузки и напряжение на ней. А также Напряжение на обмотке трансформатора, питающей схему. По центру – короткие прямоугольные импульсы открывания и закрывания (подаются на светодиоды оптопар U1B и U2B соответственно). Снизу приведены напряжения сток-исток VT1 и VT2.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

Что здесь происходит?

  1. В обмотке трансформатора положительная полуволна, напряжение нарастает. Напряжение сток-исток ключа VT1 так же нарастает, а вот напряжение на ключе VT2 остаётся низким. Почему так происходит? Дело в том, что диод ключа VT2 при такой полярности открыт, а диод VT1 закрыт. Если поменять полярность полуволны, то состояния их диодов поменяются местами.

  2. Даём короткий импульс на открывающую оптопару, открывая её на время длительности импульса. Этого достаточно, чтобы зарядить ёмкости затвором зарядом из С1 и открыть транзисторы.

  3. Транзисторы VT1, VT2 открыты (напряжения сток-исток на них малы).

  4. Даём короткий импульс на закрывающую оптопару, открывая её на время длительности импульса. Этого достаточно, чтобы разрядить ёмкости затворов и закрыть транзисторы.

  5. Транзисторы закрыты. Диод ключа VT1 закрыт, а VT2 открыт.


Такое управление похоже на фазовое управление тиристорами (симисторами), но здесь мы можем закрыть транзисторы в любой момент, а не ждать, пока напряжение анод-катод уменьшится до нуля и тиристоры (симисторы) закроются сами.

Значительный плюс – малое сопротивление канала полевого транзистора, по сравнению с сопротивлением открытого тиристора или симистора. Посмотрим на график из даташита транзистора IRFH6200.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

При 4 В затвор-исток сопротивление канала в районе 1 мОм. При токе 50 А будет падение 50 мВ. У тиристора прямое падение напряжения на участке анод-катод будет более 1 В. Например, у тиристора CLA50E1200HB при 50 А будет падение 1,25 В.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

У более низковольтного КУ202Г максимальное напряжение в открытом состоянии указано 1,5 В. 1500 мВ/50 мВ=30 раз. Разница значительная.

Стабилитрон VD2 на 12 В защищает затворы транзисторов от превышения напряжения. Резистор между затвором и истоком препятствует самопроизвольному открыванию и поможет закрыть транзисторы, если контроллер вдруг отвалится.

Зачем диод VD1? Представим, что его нет. Тогда накопленный в С1 при положительной полуволне заряд утёк бы из конденсатора во время отрицательной полуволны.

Паяльная станция «Магистр НеоТерм-3Т». Что внутри? Электроника, Техника, Познавательно, Паяльник, Гаджеты, Timeweb, Длиннопост

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

Мы рассмотрели схему управления нагрузкой в канале термозачистки. Аналогичным образом управляются паяльники в двух других каналах.

Хороший инструмент есть – время творить!

Показать полностью 24
102

Видеокарта VGA для микроконтроллера

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Иногда, при разработке устройств на микроконтроллерах, возникает потребность в выводе на дисплей большого количества информации или же в выводе информации на крупный дисплей для возможности ее считывания с большого расстояния. К сожалению, готовых решений этой проблемы нет, а те что есть – весьма дороги. Например, графические ЖК-дисплеи с возможностью подключения к микроконтроллеру обычно имеют диагональ не более нескольких дюймов и достаточно существенную цену (причем, даже монохромные, о цветных вообще можно не говорить).

В то же время есть огромный парк старых ЖК мониторов. Модели с диагональю 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$ (не оригинал, разумеется).

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Макетная плата MAX II Altera EPM240

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

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Первый шаг — успешный вывод на экран символа «2». Символ получился отзеркаленным. Не беда

У указанной ПЛИС на борту имеется flash ПЗУ, которое весьма заманчиво использовать для хранения ПЗУ знакогенератора. Однако объем его крайне невелик – всего 8 кБит или 1 кБайт. Этого может хватить только для символов с разрешением 5х7, да и то, если пожертвовать неотображаемыми, малозначительными и визуально идентичными символами из таблицы ASCII. Кроме того, использование встроенного ПЗУ потребует расхода логических ячеек, которых и так немного. Как бы ни был привлекателен этот вариант, придется от него отказаться и использовать микросхему внешнего ПЗУ, взятую, например, из старых материнских плат. Если найти микросхему с питанием 3,3 В, то даже не придется ничего думать насчет согласования уровней напряжений с ПЛИС. Объемы таких ПЗУ достаточно велики – 2/4/8 Мбит или 256...1024 кБайт, что позволяет хранить там большое количество различных шрифтов в хорошем разрешении 8х16.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Макетная плата 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 В, единственное, при этом необходимо закладывать бОльшие тайминги.

Итак, получилась следующая схема.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Первый вариант схемы

Как видно, схема включает в себя только 3 микросхемы и минимум внешних деталей. Если применить в качестве основы вышеупомянутую макетную плату EPM240, то кроме нее потребуются только микросхемы ПЗУ, ОЗУ и разъем VGA с пятью резисторами. Подключение сигналов к ПЛИС показано условно, поскольку почти все ее ножки равнозначны (кроме глобальных тактовых сигналов, на один из которых необходимо подать сигнал с тактового генератора). При программировании микросхемы под конкретное устройство почти все сигналы можно будет переназначить. Пока же устройство собрано на макетной плате и этот вопрос можно отложить.

Устройство общается с микроконтроллером по параллельному 8-битному интерфейсу (сигналы с префиксом HOST), логически почти идентичному широко распространенному интерфейсу дисплеев на контроллере 1602 и им подобных. Единственное отличие – добавлен сигнал BUSY от устройства к микроконтроллеру. Его необходимость обусловлена тем, что доступ к микросхеме ОЗУ предоставляется только в момент обратного хода кадровой развертки. В остальное время микросхема занята логикой ПЛИС. Сигнал BUSY также имеет смысл сигнала запроса прерывания. По его перепаду контроллер может автоматически начинать запись в буфер экрана.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Второй шаг — вывод некоторых символов знакогенератора различным цветом символа и фона

Описание интерфейса:

  • 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 В.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Внешний вид макета

Ножки питания зашунтированы керамическими конденсаторами, а на ножку GCLK0 подается тактовый сигнал частотой 50 МГц от кварцевого генератора. Эти детали уже были на макетной плате.

К сигналу RESET подключены резистор, конденсатор и кнопка, собственно, и формирующие этот сигнал. Но если этот сигнал формируется микроконтроллером, то эти детали не нужны.

После написания основной части планируемой логики работы ПЛИС, оказалось что объем использованных логических ячеек ненамного превысил только половину от имеющихся. В связи с этим появилось желание немного усложнить логику работы, добавить больше возможностей. В первую очередь можно увеличить количество цветов до 16. Для этого нужно использовать еще 3 ножки ПЛИС и добавить в схему еще 3 резистора. Это не слишком усложнит схему, зато добавит еще 8 цветов. В этом случае страницу ОЗУ с атрибутами придется полностью отдать под цвет и добавить еще одну страницу с атрибутами, увеличив на 1 разряд шину адреса ОЗУ. В дополнительную страницу атрибутов можно перенести и выбор шрифта, добавить подчеркивание, моргание символа, моргание фона и т. д.

Новая схема имеет следующий вид. Она не сильно отличается от предыдущей.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Второй вариант схемы

При увеличении количества цветов возникает вопрос — какую палитру выбрать? Когда цветов всего 8 такого вопроса нет – все цвета это двоичный перебор трех основных цветов r, g, b (2^3=8). Когда больше – тут возможны варианты. Например, 16-цветная палитра EGA:

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Палитра 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 для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Палитра 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 код в качестве адреса прочитать из ПЗУ битовую маску символа. Только после этого у логики ПЛИС будет вся необходимая информация для начала формирования изображения.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Третий шаг — получение информации от микроконтроллера

Согласно даташиту, для выбранной микросхемы D43256BGU-70LL полный цикл чтения занимает 70 нс. Поскольку мы ее используем при пониженном напряжении, длительность цикла необходимо увеличить. Хотя бы до 100 нс. Таким образом, за 320 нс мы как раз успеем прочитать из ОЗУ 3 байта — ASCII код, код цвета и атрибуты символа. Отлично. С ПЗУ сложнее, в нем адрес записывается в 2 захода – по строкам и столбцам и, согласно описанию, цикл чтения занимает 270 нс. Небыстро, но в 320 нс укладываемся, даже с запасом.

Проблема в том, что мы не можем начать выдавать адрес ПЗУ пока не узнаем как минимум ASCII код, а на это нужно 100 нс. В сумме получается 370 нс. Выручает нас то, что каждый по отдельности цикл чтения ОЗУ и ПЗУ укладывается в допустимый интервал и можно просто потратить на чтение данных не один цикл, а два. На время подготовки данных необходимо сместить область отображения символов, сделав дополнительную область гашения шириной 2 символа в начале строки, и, на те же 2 символа уменьшить область гашения после конца строки. Это сделать несложно – просто смещаем гасящий импульс на 640 нс (соответственно, смещается и синхроимпульс). С точки зрения монитора – никакой разницы.

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

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Циклограмма обращения к ОЗУ и ПЗУ

Цикл начинается с выставления на шину адреса ОЗУ адреса байта ASCII символа. Через 80 нс на шине данных ОЗУ появляется запрошенный байт, который мы незамедлительно используем для формирования адреса для чтения байта из ПЗУ знакогенератора. На отметке 100 нс выставляем на шину адреса ОЗУ адрес байта атрибутов символа. На 140 нс (через 60 нс после выставления адреса) защелкиваем первую часть адреса ПЗУ. Ждем еще 60 нс и выставляем на шину адреса ПЗУ вторую часть адреса. К этому времени на шине данных ОЗУ уже должен быть байт данных с атрибутами символа, 5 бит которого (подробные описания регистров ниже) отвечают за шрифт и входят во вторую часть адреса ПЗУ. Оставшиеся 3 бита данных сохраняются во временном регистре 2. Еще через 60 нс защелкиваем вторую часть адреса ПЗУ. Данные на шине данных ПЗУ появятся через 120 нс после этого события и это произойдет уже во время второго цикла. Чтобы циклы не пересекались, эти данные запишем во временный регистр 1 (на отметке 80 нс). И, наконец, на отметке 300 нс необходимо переписать все подготовленные данные в рабочие регистры. Битовая маска символа из временного регистра 1 переписывается в регистр rom_reg, применяются ранее сохраненные биты атрибутов к считанному в этот момент байту с цветом.

Таким образом, к концу второго цикла будут готовы все данные для вывода символа.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Четвертый шаг — картинку полностью формирует микроконтроллер. Символы и фон разных цветов, символы разных шрифтов. Некоторые нижние строчки моргают (фото этого не передает, прошу поверить на слово)

Основные регистры:

Запись данных из микроконтроллера в ОЗУ происходит следующим образом. Дожидаемся когда сигнал BUSY станет нулевым, записываем в регистры адреса начальные адреса, куда будут записываться данные (чаще всего это адрес 0 – адрес начала страницы данных, но может быть и произвольный адрес если необходимо изменить только несколько байт). Затем записываем необходимые данные. После записи каждого байта, адрес автоматически увеличивается на 1. При подходе к краю экрана (80-й символ в строке) адрес положения символа в строке автоматически обнуляется, а адрес строки увеличивается на 1. После записи всей страницы данных адрес автоматически переключается на запись страницы атрибутов, а после страницы атрибутов – на запись страницы цвета. После записи всех трех страниц адрес также автоматически обнуляется и начинается запись в страницу с данными. Таким образом, начальный адрес можно выставить только один раз и далее гнать только данные. Это позволяет сэкономить несколько мкс на установку адреса, а также упрощает программирование, когда закинуть все данные можно в одном цикле на 7200 итераций.

Формат данных для записи данных (AD=0):

data page
[7 - 0]
sym ASCII (8 bit)

На странице данных хранятся ASCII коды символов.

attribute page
[7 - 3] [2 - 0]
font (5 bit) sym attribute (3 bit)

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 зарезервированы для будущих настроек.

Формат данных для записи адреса (AD=1):

[7] [6 - 0]
0 sym col pos (7 bit)

Регистр хранит позицию в строке.

[7] [6 - 5] [4 - 0]
1 page (2 bit) sym row pos (5 bit)

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 данные снова запишутся в видимую область. Была идея использовать теневую область данных как дополнительное ОЗУ для микроконтроллера. При этом, шину данных необходимо сделать двунаправленной и добавить сигнал чтения/записи. Однако от этого было решено отказаться с целью упрощения интерфейса. Тем более, что современные микроконтроллеры не испытывают настолько сильного недостатка в ОЗУ, как это было раньше. Кроме того, доступ к этому ОЗУ происходит не в любое время по желанию микроконтроллера, а также только во время гасящего импульса.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

Пятый шаг — попытка вывести графическое изображение (неудачно)

Внутренние регистры ПЛИС (некоторые):

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.

vreg[9:0] min-0, max-524
[9] [8 - 4] [3 - 0]
0 sym row pos (5 bit) sym row (4 bit)

Регистр содержит текущее положение развертки по вертикали. Тактируется от регистра hreg. Соответственно, биты с 0 по 3 обозначают строку внутри символа, биты с 4 по 8 – строку символов. Бит 9 попадает уже в область гашения, поэтому не используется. При достижении значения 525 регистр обнуляется.

ram_addr_int[13:0], ram_addr_ext[13:0]
[13 - 12] [11 - 7] [6 - 0]
page (2 bit) sym row pos (5 bit) sym col pos (7 bit)

page: 00 – data page 01 – color page, 10- attr page

Регистры содержат текущее значение адреса для доступа к ОЗУ (всего 16 кБайт). Младшие 7 бит – адрес символа в строке (столбец), затем 5 бит – адрес строки и 2 бита – адрес страницы (данные, атрибуты или цвет). Этих регистров 2 – один для внутреннего использования логикой ПЛИС, второй управляется извне, микроконтроллером и может быть изменен только им.

rom_addr[10:0] row
[10 - 4] [3 - 0]
ASCII code (7 bit) sym row (4 bit)

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.

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост

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

Видеокарта VGA для микроконтроллера Электроника, Техника, Электрика, Timeweb, Познавательно, VGA, Микроконтроллеры, Длиннопост
Показать полностью 16
82

Внедрение персистентной памяти: добро пожаловать в революцию?

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

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

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

❯ Независимость — это свобода

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Общий принцип организации перекрёстной матрицы памяти RRAM

Всем хорошо известны отличия энергозависимой памяти от энергонезависимой. Данные, хранящиеся в энергозависимой памяти живы только до тех пор, пока система работает. Как только подача энергии прекращается, данные становятся недоступными. Именно так работает оперативная память компьютера (ОЗУ) и кэш-память процессора.

Энергонезависимая память сохраняет информацию при отключении питания и хранит значительно бóльшие объёмы данных. Но работает она, на сегодняшний день неэкономично и гораздо медленнее, хотя именно в ней и содержится основная часть данных. Именно поэтому оперативная память остаётся первичной и применяется для хранения данных, необходимых ЦП для работы ОС и программ.

Сегодня существуют несколько видов быстрой энергозависимой памяти. Это динамическая, например, широко распространённая DRAM, разные версии которой используются в качестве ОЗУ, в ячейках она имеет транзистор и конденсатор, статическая (SRAM, применяется в качестве кэш-памяти ядра процессора), с шестью транзисторами в ячейке.

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

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Матрица RRAM под микроскопом

Поэтому и появились новые разработки быстрой, но уже энергонезависимой памяти. Это, например, резистивная память с произвольным доступом (RRAM, ReRAM, Resistive random-access memory). В её основе лежит свойство диэлектриков создавать внутри себя проводящие каналы при приложении высокого напряжения. Причём, изменив уровень напряжения проводящий канал можно разрушить, а затем создать снова. Получается так называемый мемристор, из которых и собираются матрицы памяти ReRAM.

❯ Сдвиг по фазе? Нет, фазовый переход!

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Эскизная схема двухслойной памяти 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, примерно в сто раз ниже. Кроме того, отсутствует цикл стирания.

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Впрочем, у существующих разработок Phase-change memory на халькогенидах есть недостатки. Активный нагретый материал влияет на связанные с ним диэлектрик и электрод, что неизбежно вызывает постепенную их деградацию. Значительное изменение температуры извне может провоцировать утечку заряда и тем самым негативно влиять на длительность хранения данных. Для смены фазы ячейки требуется обеспечить высокую плотность тока, что непросто при нанометровых размерах матрицы и сокращает активную зону воздействия. Но часть этих недостатков может быть устранена благодаря недавним исследованиям учёных.

❯ Чудеса в слоистых никелатах

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Рендер phase-change memory

В недавнем исследовании, опубликованном в журнале Advanced Science, сообщается об экспериментах с термически обратимым изменением электрического сопротивления при комнатной температуре в слоистых никелатах. Слоистые никелаты представляют собой класс сложных оксидных материалов, состоящих из ионов никеля. Они имеют сложную структуру, в которой слои атомов никеля и водорода перемежаются слоями, содержащими другие элементы, часто щёлочноземельные или редкоземельные. Именно эта уникальная слоистая структура привлекла интерес исследователей из-за свойств электронов, которые сулят слоистым никелатам применение в таких областях, как сверхпроводимость и электроника.

Свойства никелатов исследуются уже давно. В 2020 году учёные из Женевского университета (UNIGE) в сотрудничестве со швейцарским федеральным технологическим институтом в Лозанне EPFL), Цюрихским университетом и Льежским университетами, а также Нью-Йоркским институтом Флэтайрон выяснили, что слоистые никелаты по энергоэффективности могут превзойти кремний, причём с более низким энергопотреблением, обеспечив снижение дополнительных выбросов CO2 при производстве.

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Схематическое изображение гетероструктур со сверхрешёткой, включая слои никелата самария поверх слоёв никелата неодима

Такие никелаты образуются из оксида никеля и атома редкоземельного элемента. В соответствии с тем, какой элемент использован, меняется и температура порога проводимости. Для самария она составит 130° C, для неодима −73° C. Столь значительная разница возникает из-за редкоземельных элементов, которые по-разному деформируют кристаллическую решётку никелата.

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

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

На схеме отражён процесс переключения электрического сопротивления в Sr2,5Bi0,5NiO5. Два объекта вверху — это кристаллические структуры Sr2,5Bi0,5NiO5 с различным расположением Sr/Bi. Внизу приведена кристаллическая структура двойного перовскита Sr2BiNiO4,5. Синее значение показывает электрическое сопротивление каждого слоя

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

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

❯ ReRAM+PCM — взболтать, но не смешивать!

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Гибридные мемристоры с фазовым переходом открывают новые вычислительные возможности

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

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

Чтобы обеспечить неустойчивое состояние кристалла, которое легко изменить небольшим током, потребовалось создать специальный материал, растянутый до состояния тончайшей плёнки в одном направлении и сжатый в другом. В экспериментах использовался дителлурид молибдена (MoTe2). Напряжение, необходимое для переключения ячейки составило 90 мВ, а время переключения — 5 нс. Все параметры такой памяти можно регулировать путём изменения технологии производства и подаваемого на ячейки напряжения. Сейчас исследователи заняты повышением надёжности своей разработки.

❯ Операционные системы — на свалку истории


Начиная с эпохи мейнфреймов компьютеры использовали жёсткие диски и два уровня хранения данных: оперативную память и дисковое хранилище, доступ к которому осуществлялся через дисковый контроллер с использованием файловой системы для индексации и последующего извлечения содержимого. Если постоянное хранилище будет на карте памяти процессора, необходимость в дисковых контроллерах, файлах и файловой системе исчезнет. Трудно представить, что разработчикам удастся адаптировать к новым условиям существующие сегодня Unix-подобные операционные системы, с самого первого дня своего создания ориентированные на работу с файлами, каталогами и метаданными, которые являются их фундаментальной основой. Они тоже могут исчезнуть. Потребуются ОС и программное обеспечение с совершенно иной компьютерной архитектурой.

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

Если создать ОС, которая обеспечит независимость сохранённых данных за счёт некой спецификации, то наличие самого компьютера и его физическая конфигурация могут оказаться не таким уж важным элементом системы. Это вполне может привести к ещё одной, пока неочевидной революции в компьютерной отрасли. Например, блок памяти может быть у каждого свой, его станет возможным носить в кармане, как сейчас карту SSD и при подключении начинать работу с того места, где она была завершена, со своими, привычными только вам настройками. Некоторые серверы необязательно должны будут всегда находиться во включённом состоянии. Может сильно упростится жизнь и для программистов, которым во многих случаях уже не потребуется производить сериализацию состояния программы. Пока это звучит как фантастика, но персистентная память и персистентные ОС уже существуют и постоянно совершенствуются, так что изменения однажды произойдут.

❯ ОС нового типа есть, но это не точно


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

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Одна из операционных систем, опирающихся на новые принципы — ОС «Фантом» от известного разработчика Дмитрия Завалишина. Концепция ориентации на файлы, стандартная для Unix-подобных систем в ней изменена на концепцию, главным элементом которой является объект. ОС представляет собой виртуальную машину, обеспечивающую восстановление системы с момента последнего выключения за счёт того, что периодически делает и сохраняет снимки своего состояния. Новые принципы, заложенные в проекте, позволяют ОС не замечать перезагрузок и сохранять состояние компьютера, в том числе и при аварийном завершении работы. Все приложения работают в едином адресном пространстве и обмениваются данными через ссылки, а разделение доступа обеспечивается тем, что любые данные обрабатываются, как отдельные объекты и получить объект, принадлежащий другому процессу нельзя. В системе много интересных «фишек». Проект ещё в стадии разработки.

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

Существуют и другие ОС, включающие отдельные элементы и идеи, использованные в ОС «Фантом». Это IBM i, EROS, Singularity, и PalmOS. Из них, наиболее полно критериям персистентной ОС отвечает проект IBM i, наследник OS/400. Эта операционная система является объектно-ориентированной, содержит одноуровневую память, управляемую среду и поддерживает, собственно, персистентность. Но на сегодняшний день это не ОС для домашних компьютеров, а довольно дорогое платное серверное решение для бизнеса.

Внедрение персистентной памяти: добро пожаловать в революцию? Техника, Инновации, Технологии, Timeweb, Память, Электроника, Познавательно, Длиннопост

❯ Будущее


Вполне вероятно, что грядёт эра энергонезависимого ОЗУ, совмещающего ещё и функции хранилища данных. И возможно, что встретим мы её не только с другими компьютерами, но и с иными операционными системами и другими программами, так как существующий софт не совсем подходит под новую концепцию.

Показать полностью 11
58

Как «озолотиться» на собственном образовательном продукте

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

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

Чтобы не создавать интриг, сразу скажу, что озолотиться конечно же не получилось! Но было чертовски интересно пройти весь этот путь.

❯ Преамбула


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

Вообще в то время среди преподавателей было принято изобретать какие-то лабораторные стенды и макеты. И мне достался от моего наставника замечательный по тем временам стенд. Тогда только вышли AVR, и мы с радостью перепрыгнули на них с архаичных MSC51. Стенд имел небольшое количество внешней периферии для изучения функций ввода/вывода, и был основан на внутрисхемном эмуляторе J-TAG-ICE.

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

На начало двухтысячных это было практически без альтернативное устройство. Нужно учесть, что это было почти 25 лет назад.

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

Фотография была сделана на мою первую цифровую мыльницу, мегапикселей там было еще крайне мало.

Плата получила название «AVRmegaboardX8». Все очень просто, в основе макета был использован микроконтроллер ATmega8. А прошивка его осуществлялась с помощью USB программатора AVR910.

Макет был выполнен на основе двухсторонней печатной платы. И первую версию я изготавливал утюгом. Переходы между сторонами были выполнены только за счет выводных компонентов. А необходимое количество печатных плат мне помогли изготовить между сменами на заводе «ИнжГео» по знакомству.

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

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

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

Заглавную страничку я нарисовал сам ручкой на бумаге. Потом отсканировал и наложил на скан старой журнальной странички. Подобрал шрифты и вуаля, готово!

Но со временем Arduino прочно заняла умы юных электронщиков. И актуальность моего макета сошла на нет. Я и сам перешел на Arduino в учебном процессе, но программировали на Си, использовался только загрузчик. Кстати, загрузчик в ардуино был полностью совместим с AVR910, можно было загружать прошивку в плату через AVR Prog.

Вновь вернулся я к идее лабораторного макета значительно позже, когда популярность AVR потеснили микроконтроллеры STM32.

❯ Концептуальная идея


В 2017 году меня пригласили работать тренером национальной сборной по компетенции «Электроника» для международных соревнований профессионального мастерства WorldSkills International. Одной из задач было обучение членов сборной программированию микроконтроллеров. И тут вновь появилась актуальность создания аппаратной платформы для прокачки базовых навыков программирования микроконтроллеров.

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

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

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

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

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

Еще один клон (в хорошем смысле) моего макета. Но откуда он, я уже не помню.

Я поставил для себя следующие задачи.

1. Макет должен иметь стоимость не более 25тр, то есть минимальный учебный комплект из 12 устройств — 300тр. Иначе их точно никто не станет покупать.
2. Макеты всегда должны быть доступны к покупке, так как часто на такие вещи деньги в учебных заведениях выделяются стихийно, к примеру под конец года, и их надо оперативно реализовать или вернуть обратно.
3. Макет должен быть адаптирован под повседневное использование в учебном процессе. Должна быть соответствующая эргономика, нужно проработать систему хранения и прочее.
4. Необходимо организовать поддержку проекта. Макет должен иметь подробное методическое сопровождение. В идеале должен быть реализован интерактивный портал. Нужно провести обучение преподавателей для работы с макетом.
5. Так как задача заработать на макете не ставилась, нужно было реализовать проект без затраты собственных финансовых средств.

❯ Оценка емкости рынка сбыта


Сам по себе рынок сбыта для подобных продуктов весьма ограничен. В нашей стране на тот момент было 86 регионов. В среднем в каждом регионе по 1,5 колледжа, которые занимаются подготовкой студентов по профилю электроники. Среди них именно профильных не более 50, для остальных электроника побочна.

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

Как тебе такое, Илон Маск?!!! Колледж радиоэлектроники… заявленные цифры набора 400 человек. Из них всего 125 по электронике, и все бюджетные. Гос-заказчик просит готовить электронщиков, но за свои кровные туда точно ни кто не пойдет.

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

Есть примеры, когда в регионе существовал радиозавод, регион уточнять не буду. При нем организовали ПТУ для подготовки кадров по твердотельной электронике. Когда-то специалисты нужны были на производство резисторов и конденсаторов. Но, с течением времени, завод переориентировался, и такие специалисты больше не нужны. ПТУ также в результате укрупнения стал техникумом и продолжает набор… и набор этот носит больше социальное значение. Из-за практически отрицательного конкурса на эту специальность поступали сироты и дети из социально не защищенных семей, чтобы получать социальные выплаты.

Рынок сбыта стремится к нулю… его потенциальная емкость до 500 единиц. О каком финансовом интересе можно говорить дальше? Наверное, теперь мое заявление о больше социальном значении этой затеи, чем о финансовой, будет звучать правдоподобно?

❯ Поиск финансирования


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

Планы были грандиозные. И позже они грандиозно провалились. Мое представление о схеме реализации проекта в корне не совпало с суровой реальностью современных бизнес моделей в сфере государственных закупок.

Но основная причина будущего провала все таки связана с ошибкой в ценообразовании. Я настаивал на своей цене. Мне казалось, что 25 т.р. это объективно. В стоимость были заложены даже риски «зависания» товара на складе. В конечном итоге проект нельзя считать убыточным, он себя отбил, но и прибыли не принес. По этой причине интереса в продвижении, развитии и организации поддержки на должном уровне у проекта не оказалось.

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

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

Но, тем не менее, деньги на прототипирование и производство опытной партии были получены.

❯ Опытные образцы


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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

На фотографии насчитал всего девять, но я точно помню, что десять было.

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

Группу набрал совсем небольшую, прочитал для них недельный курс. По результатам работы было принято решение провести корректировку макета и учебных материалов. Немного подправил шелкографию, подвигал разъемы на плате, переставил пины контроллера. Выявил некоторые неочевидные моменты в методичках. После чего макет обрел окончательный вид и был готов к реализации.

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

Как говориться, найдите десять отличий. Но… дьявол кроется в деталях.

На мой взгляд макет получился «что надо». Я никогда не любил искусственно синтезированные макеты в виде доски с шелкографией рисунка схемы, которая может быть находится внутри стенда… а может быть и не находится, и там затаилась совсем другая схема. Чем же это лучше компьютерного моделирования?

Мой макет максимально «прозрачный»: печатные проводники специально по максимуму размещены в верхнем слое; все компоненты также установлены на видимой поверхности платы; в шелкографии подписан каждый компонент и каждая функциональная схема макета. Для удобства отладки на печатной плате выведены контрольные точки, к которым без труда можно подключить щупы измерительных приборов, доступен фактически каждый сигнал. Названия, размещенные в шелкографии однозначно совпадают с методичками.

❯ Потребительские свойства


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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

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

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

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

Торцы композитного листа спрятаны, это делает корпус более аккуратным на вид. Не так бросается в глаза то, что он изготовлен по кустарным технологиям.

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

Макет вполне выдерживает нагрузку среднестатистического студента в прямом и переносном смысле.

❯ Подготовка к производству


Основная задача была правильно подобрать производство. Крупное контрактное производство я сразу откинул по причине очень маленького объема заказа. Да и с изготовлением корпусов не все хотят возиться.

В итоге производство организовали у моего друга в Екатеринбурге. Сергей достаточно давно ведет интернет магазин электронных конструкторов. И подобная задача очень хорошо ему подошла.

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

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

На данном этапе нужно было искать компромиссы. Необходимо было оставаться в рамках цены, и чтобы сборщики не сильно матерились. Было непросто в моральном плане, но решение нашлось. И так, была собрана первая небольшая партия макетов и передана в продажу.

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

❯ Старт продаж и организация поддержки проекта


В рамках поддержки проекта я организовал программу обучения преподавателей. В этом помогли друзья из Уральского радиотехнического колледжа имени Попова. Курсы проходили на их базе. Еще несколько раз я проводил обучение в Санкт-Петербурге на базе колледжа электроники и приборостроения.

Вообще, подобная работа заслуживает отдельного внимания. Нужно разослать информационные письма, заключить договора, организовать проживание и питание. Это кроме того, что необходимо подготовить сами учебные материалы и оформить учебные программы и прочие документы. А еще найти желающих пройти обучение, подобрать удобное время, которое не попадает на сессии или защиты дипломов. Это очень хлопотно, особенно с учетом того, что делается один раз на десять человек.

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

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

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

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

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

Как «озолотиться» на собственном образовательном продукте Успех, Познавательно, Техника, Электроника, Timeweb, Изобретения, Макет, Длиннопост

Несколько рандомных слайдов из презентаций для примера, как это выглядит.

❯ Эпилог


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

Какой вывод из всего этого сделал для себя Я?

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

2. Не стоит привлекать к проекту деньги третьих лиц, даже если вы в них уверены. Лучше начинать на свои, или взять кредит в банке.

3. Не нужно начинать общее дело с друзьями. Не потому, что друг вас обязательно кинет. А потому, что существует вероятность, что вы сами подведете своего друга.

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

Для меня это был очень интересный опыт, повторять который я точно не собираюсь. Хотя, как знать…

Показать полностью 18
67

Оживляем блоки индикации из кабины «Боинга»

Приветствую всех!

Не так давно я показывал, как запустить электронный стрелочный тахометр из кабины пассажирского лайнера Boeing 737-300. И, разумеется, мне захотелось продолжить эту тему и подключить что-то ещё из авиаприборов.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

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

❯ Суть такова


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

❯ Обзор оборудования


Первым у нас на очереди будет индикатор режима тяги (Thrust mode annunciator).

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Это лёгкая металлическая коробочка с разъёмом. На наклейках куча разных номеров, предупреждение о чувствительности к статике. Виден и производитель этого модуля — Smiths Aerospace. Этой же фирмой был выпущен тахометр из прошлого поста.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

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

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Обратная сторона. Тут находится разъём подключения, а также табличка с номером.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

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

Здесь же видно и крепление. Блок вставляется в специальную обойму с крепёжными проушинами, которая в свою очередь и прикручивается к панели.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Спереди находятся три кнопки-индикатора и тумблер тестирования. Он на три положения и без фиксации.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

С обратной стороны два разъёма. Контактов неожиданно много для такой с виду простой штуки.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Таблички.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

А вот тут можно увидеть расположение этих приборов в кабине.

❯ Чёрная коробочка


Самое время разобраться, зачем же столь много контактов такому, казалось бы, простому блоку.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Разбираем. Открутив небывалое количество винтов, снимаем крышку. Внутри нас ждут три кнопки-индикатора, две платы и плотно уложенные жгуты проводов. Все провода разного цвета, это сильно упрощает их разводку.
На плате неизвестные микросборки и немного дискретных элементов.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Снимем плату. Под ней ещё одна с кучей диодов.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Обратная сторона верхней платы.

❯ Кнопки-индикаторы


Отдельного внимания заслуживают индикаторные кнопки.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

К корпусу они крепятся следующим образом: каждая кнопка вставлена в свой кожух, туго засаженный в свою прорезь в корпусе. Чтобы кожух не сползал, на кнопках имеются защёлки в виде рычажка, который надо провернуть.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Сама кнопка имеет два светофильтра — красный и оранжевый. Соответственно, светиться она может тоже двумя цветами, для чего в ней предусмотрены четыре лампы накаливания, по две на каждый цвет. Разбирается кнопка очень легко: надо подцепить её с боков отвёрткой (для чего у неё есть специально предусмотренные прорези) и извлечь подвижную часть.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

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

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Внутренности кнопки. Видны подпружиненные контакты лампочек и отверстие, куда уходит шток, нажимающий на микропереключатель.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Лампочка отдельно. Вся индикация питается от двадцати восьми вольт.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Кнопки слегка наклонены относительно корпуса. Это не тумблеры, сделано так для удобства нажатия.

❯ Подключаем кнопки


Самое время выяснить, куда идут провода и зачем нужна та самая плата. Как оказалось, плата с диодами служит для подключения лампочек, о верхней же поговорим чуть позже. Итак, распиновка разъёмов оказалась следующая.
Итак, разъём J2:

  1. Масса

  2. Не подключён

  3. Вывод «1» верхней платы

  4. Не подключён

  5. Вывод «2» верхней платы

  6. Плюс красной лампы автопилота

  7. Плюс оранжевой лампы автопилота

  8. Вывод «3» верхней платы

  9. Вывод «4» верхней платы

  10. Вывод «5» верхней платы

  11. Вывод «6» верхней платы

  12. Вывод «7» верхней платы

  13. Вывод «8» верхней платы

  14. Вывод «9» верхней платы

  15. Вывод «10» верхней платы


Разъём J1 оказался поинтереснее:

  1. Не подключён

  2. Не подключён

  3. Неизвестно

  4. Кнопка автопилота

  5. Земля оранжевой лампы автопилота

  6. Земля оранжевой лампы автопилота

  7. Земля красной лампы автопилота

  8. Земля красной лампы автопилота

  9. Земля оранжевой лампы автомата тяги

  10. Земля красной лампы автомата тяги

  11. Кнопка автопилота

  12. Кнопка автомата тяги

  13. Кнопка автомата тяги

  14. Плюс оранжевой лампы автомата тяги

  15. Плюс красной лампы автомата тяги


Как можно видеть, индикация для автопилота, как для самой важной из этих систем, продублирована: лампочки не запараллелены, а выведены на отдельные контакты разъёма. Другие кнопки таким подключением не обладают.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Итак, пробуем подать питание. Ну что же, оно живое! Загадочная для обывателя надпись «P/RST» — тоже авиационный термин, означающий «Push to reset». Это значит, что кнопка-индикатор загорается при наличии какого-то предупреждения, а для его сброса эту кнопку надо жмякнуть.

❯ А что же с верхней платой?


Нетрудно догадаться, что верхняя плата как-то завязана на кнопки TEST и FMC. Так что время прозвонить, куда же идут провода от них.

На плате шестнадцать контактов, они вот такие:

  1. 3 контакт J2

  2. 5 контакт J2

  3. 8 контакт J2

  4. 9 контакт J2

  5. 10 контакт J2

  6. 11 контакт J2

  7. 12 контакт J2

  8. 13 контакт J2

  9. 14 контакт J2

  10. 15 контакт J2

  11. TEST-2

  12. TEST-1

  13. TEST общий

  14. Оранжевая лампа FMC

  15. FMC общий

  16. Кнопка FMC

Всё становится ещё интереснее, когда выясняется, что часть проводов таки соединена с разъёмом напрямую:

  • TEST-2 соединён с выводом 10 (15 контакт J2)

  • TEST-1 соединён с выводом 6 (11 контакт J2)

  • Кнопка FMC соединена с выводом 10 (5 контакт J2)


С этими контактами всё намного сложнее: микросборки нигде не гуглятся, а пытаться запустить наугад рискованно. Так что пока что последние два выключателя так и остались неподключёнными…

❯ Автомат тяги


Теперь очередь коробочки с дисплеем.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Разбирается она очень просто — надо открутить четыре винта по периметру разъёма. После этого кожух легко снимается.

Внутри нас ждёт одинокая плата. На ней МК неизвестной модели (гугл без понятия, что за чип, явно что-то заказное), несколько микросхем драйвера ЖКИ (CD4054BE), триггер Шмитта (74C914N), парочка операционных усилителей.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Обратная сторона дисплейного модуля. Подсветка осуществляется всё теми же лампочками накаливания. Во всех приборах Боинга подсветка питается от пяти вольт. Выведена она обычно на первый и второй контакты разъёма.

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Плата с дисплеем. Он порядочно деградировал за годы работы, часть надписей видна и в выключенном виде. Как это бывает со многой авионикой, дисплей тут инверсный, работающий на просвет.

❯ Запуск

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

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

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Другой контакт позволяет зажечь надпись «A/T LIM».

❯ Epic fail


Увы, показать что-то большее, нежели «A/T LIM» не получится: эта штука полностью цифровая и управляется по интерфейсу ARINC-429. Он во многом напоминает CAN, однако использует не два уровня напряжения, а три.

Я уже думал начать собирать схему трансивера для этого интерфейса, но тут случился производственный момент — не так давно я достал из закромов этот блок и обнаружил, что индикатор по неведомой мне причине треснул (хотя, казалось бы, собрал прибор я правильно, ничего не перетянув и не перепутав, да и после сборки он долго лежал, и ничего с ним не было). Теперь запустить не только деградировавший, но ещё и разбитый ЖКИ не представляется возможным. Так что единственным вариантом остаётся лишь выкинуть расколотый экран и поставить туда свой индикатор, а вместе с ним — и схему управления.
Распиновка блока с оригинальной платой оказалась вот такая:

  1. Подсветка

  2. Подсветка

  3. Ничего

  4. Ничего

  5. Масса

  6. Питание

  7. Земля

  8. Тестирование

  9. A/T LIM

  10. Ничего

  11. ARINC

  12. ARINC

❯ Исправляем ошибки с тахометром


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

Оживляем блоки индикации из кабины «Боинга» Электроника, Техника, Boeing, Гаджеты, Электрика, Познавательно, Timeweb, Длиннопост

Работает!

❯ Вот как-то так


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

Показать полностью 25
76

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

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

❯ С чего всё началось


Однажды, на предприятии где я работал, на складе обнаружилось много неликвидного материала, который хранился там ещё с советских времен.

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

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

❯ Разработка часов


По состоянию на 2016 год, было много различных схем часов на лампах, но мне не нравилась их схемотехника, она казалась мне избыточной и не эффективной. Хотелось реализовать что-то простое, питающееся от стандартного USB порта, без использования модуля RTC и светодиодной подсветки, которая, по моему мнению, только портит всю эстетику ламп. На тот момент большинство схем работало на Arduino и микроконтроллерах от компании Atmel. Годом ранее, компания Espressif Systems выпустила на рынок свой микроконтроллер ESP8266, который произвел революцию. Так как на тот момент, широкополосный интернет уже был достаточно распространен, в том числе и домашние сети Wi-Fi, я решил отказаться от применения RTC модуля в своей схеме часов и использовать NTP серверы для синхронизации времени. Как вы могли догадаться, в своей схеме я применил модуль ESP8266. Далее я поделился в Twitter своим опытом применения нового модуля ESP8266 в своем проекте. Мой твит вызвал интерес, и мне предложили написать статью на Hackaday.io. Я последовал совету и опубликовал свою статью там.

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

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Давайте приступим


Ниже изображена схема драйвера часов:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Схема подключения ламп:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Согласно документации, индикаторная лампа работает от напряжения в 170В (напряжение возникновения разряда), для стабильной работы нам потребуется напряжение в 200В. Как вы можете видеть из схемы, для повышения напряжения до 200В применен set-up преобразователь на базе ШИМ контроллера МАХ1771 в связке с L2, D1 и Q1. Так как нам недостаточно выводов ESP8266 для управления лампами, то будем «размножать» пины управления с помощью дешифраторов CD4028BM96. Данный модифицированный драйвер позволяет управлять десятью газоразрядными индикаторными лампами. Выше описанный драйвер имеет динамический метод управления индикацией, то есть в определенный момент времени загорается только одна лампа, но переключение выполняется настолько быстро, что человеческий глаз практически не воспринимает переключение ламп и кажется что все лампы горят одновременно. Данный режим переводит работу ламп в импульсный режим, что положительно сказывается на их срок службы.

Разработка платы


Разработка платы велась в Sprint-Layout 5.0, так как мне это было удобнее для изготовления платы в домашних условиях.

Плата драйвера:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Плата для установки ламп:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Изготовление печатной платы выполнялось с применение фотошаблона и фоторезиста:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Засветка фоторезиста платы драйвера:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Засветка фоторезиста платы крепления ламп:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Травление платы драйвера:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Пайка компонентов:


Плата драйвера в собранном виде:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Монтаж ламп на плату управления:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Тест работы схемы часов с небольшой отладкой:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Для управления высоким напряжением используются оптроны TLP627 от компании TOSHIBA.

TLP627 — высоковольтный транзисторный оптрон со схемой Дарлингтона на выходе.

Корпус часов


Корпус часов не предполагает какой либо сложной конструкции, разработка выполнялась во FreeCAD:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Далее корпус был распечатан на 3D принтере, с использованием HIPS пластика. Данный пластик при печати создает структуру стенки, которая чем-то похоже на дерево и не обладает глянцевым эффектом как другие виды пластика типа PLA, ABS и т. п.

Монтаж электроники


После изготовления корпуса, необходимо смонтировать все компоненты. Ниже показан монтаж платы драйвера с применением, всеми любимого, термоклея. :)

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

В итоге мы получаем следующее:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Часы в работе:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Часы в данный момент находятся на моём на рабочем столе, естественно, в живую они выглядят гораздо красивее:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

❯ Давайте поговорим о прошивке часов


Для разработки прошивки часов, я использовал среду разработки Arduino IDE. Ниже представлен код прошивки:

После удачной прошивки и первом включении, часы создадут Wi-Fi точку доступа. Для конфигурации часов необходимо подключиться к созданной точке доступа (пароль сети указан в прошивке) и перейдя по IP адресу 192.168.4.1 в браузере вашего устройства, выполнить не сложную настройку часов. Ниже представлен скриншот интерфейса устройства:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Для настройки часов, вам необходимо будет подключиться к вашей Wi-Fi сети, указать NTP сервер и ваш часовой пояс. Затем перезагрузить часы. Всё, часы готовы к использованию.

❯ Что в итоге?


В итоге у нас получились простые в реализации часы на ламповых индикаторах, где не требуется применять антикварные микросхемы типа К155ИД1, вся схема выполнена на современной элементарной базе. Часы не нуждаются в ручной настройке времени, синхронизация времени выполняется автоматически с удаленного NTP сервера, что гарантирует постоянную точность времени. Разработанный драйвер показал хорошие результаты надежности, работая уже более пяти лет.

Есть желание собрать часы на базе этого драйвера с применением ламп ИН-18, но пока стоимость ламп меня пугает).

Спасибо, что дочитали до конца! Если статья понравилась, то вы знаете что делать. И как всегда, вопросы, пожелания, осуждение? :) — добро пожаловать в комментарии. До встречи в новых статьях!

Небольшой бонус, фото из архива:

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266
Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266
Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266
Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266 Электроника, Техника, Изобретения, Часы, Timeweb, Гаджеты, Своими руками, Инженер, Видео, YouTube, Длиннопост, Esp8266

Ссылки к статье:


Моё мобильное приложение для быстрого поиска и доступа к моим(и не только) самодельным устройствам.

Показать полностью 23 1
47

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

❯ Стеклорез, работа стеклорезом


Итак. Стекло – материал хрупкий, твёрдый, плохо проводящий тепло. Начнём со стекла листового, обычно, не толще оконного, а это около 4 мм. Резка его заключается в нанесении царапины и последующих действиях, приводящих к появлению вдоль неё сквозной трещины. После этого части заготовки легко разламываются или распадаются сами. Длинные прямые резы делают стеклорезом под линейку, положив заготовку-лист на ровную прямую, слегка упругую поверхность. Некогда в стекольных мастерских работали на столе, отделанном фетром, при нечастых домашних работах довольно нетолстого слоя старых газет. Хорошо себя показал лист тонкого ДВП плохого качества (мягкий, рыхлый) (Фото 1), годится и фанера берёзовая, ДСП.

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Хрестоматийный роликовый стеклорез с масляным резервуаром в ручке, где: 1 – сменная режущая головка; 2 – ручка; 3 – тяжёлый металлический шарик на конце ручки, им постукивают вдоль царапины, с обратной стороны листа, для возникновения трещины. Чужое фото из сети

Стеклорез для периодических работ лучше всего с твердосплавным роликом – алмазные требуют постоянно поддерживаемого навыка и не прощают ошибок в работе. Роликовый стеклорез (Фото 2) демократичнее и терпимее, тем не менее – ведём его с постоянным и заметным нажимом, всю линию без отрыва, от края до края стекла за один раз. В идеальном случае должен быть ровный шипящий звук и чёткая непрерывная черта. Прочерчивание царапины дважды по одному месту сильно затупляет ролик. Сведение её концов на середине заготовки, с высокой вероятностью, заставит трещину в этом месте споткнуться и махнуть в непредсказуемом направлении. Ролик в стеклорезе лучше периодически смазывать машинным маслом или смесью масла с керосином и вдоль разметки на стекле, пальцем нанести его тонкий слой. Удобны стеклорезы с ёмкостью для масла в ручке. Работать следует чистое стекло.

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Пример простой резки листового стекла – некрупный прямоугольник (фоторамка, окно шкалы прибора и т. п.). Нужная часть указана стрелочкой. Заготовку – подходящий кусок старого оконного стекла отмыл, высушил, разметил спиртовым фломастером. Прочертил стеклорезом под линейку две царапины – №1, №2. Ломать будем в этом же порядке

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

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

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Трещина в стекле, возникая, ведёт себя подобно тяжело груженному самосвалу на большой скорости – резко повернуть не в состоянии. Например, в прочерченной стеклорезом стеклянной детали на рисунке, при ломке, трещина, вероятнее всего, пойдёт как указано стрелочками

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Рез стеклянной детали тем не менее может иметь некоторую внутреннюю кривизну, но не очень глубокую и во всяком случае, следует по возможности избегать при этом более или менее тонких концов – скорее всего, они обломятся

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

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Витраж «Гранаты» в классической технике «Тиффани» – края стеклянных деталей отделываем медной фольгой и спаиваем в рисунок

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

Таким образом, вырезание и отламывание плавных кривых – а-ля натюрель – режем и ломаем как есть за один раз. Вырезание и отламывание сложных, сильно изогнутых кривых – с разбитием их на несколько простых.

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Вырезание нескольких стеклянных криволинейных деталей из листа. Размечаем их так, чтобы каждый простой рез был от края до края заготовки. №1 – отрезаем всю группу

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Вырезание каждой детали в три приёма. Каждый – от края до края листа и не слишком сильно изогнут

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

Таким образом, например, круг – вырезаем из заготовки-квадрата четырьмя изогнутыми касательными.

❯ Разламывание стекла


Самая непредсказуемая и сложная операция при резке. Мы наметили трещине путь стеклорезом, но барышня эта легкомысленная и вздорная – в заготовке может быть масса невидимых препятствий – мелкие дефекты, напряжения. Не говоря о стекле цветном слоистом, неоднородном в принципе. Кроме прочего, в нём не следует располагать длинные детали поперёк общего направления «перьев». В целом же, следует заранее смириться с некоторым процентом неудач. Обломки цветного стекла следует собирать и хранить, они пригодятся для более мелких деталей, других техник, дробления на крошки и т. д.

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

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

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

❯ Ломатели стекла


Инструменты для быстрого разламывания – работают аналогично резаку для облицовочной керамической плитки – некое ребро упирающееся снизу в черту от твердосплавного ролика и прочные лапки с усилием давящие на заготовку сверху, по обе стороны от царапины.

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Классическая резалка облицовочной плитки, где: 1 – ребро снизу; 2 – лапки с рычагом. Фото из сети

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Ручной ломатель стекла. Фото из сети

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Ломатель нетолстого стекла. Инструмент обычный для витражной мастерской. На металлические губки одеваются защитные силиконовые колпачки. Фото из сети

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

Работа инструмента очевидна – некрупные детали разламывает мгновенно, в один присест, длинные же сложные кривые полезно сначала не до конца сжать таким ломателем с обеих сторон и в нескольких местах.

❯ Отщипыватель маленьких кусочков


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

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Ломатель-отщипыватель витражного (~3 мм) стекла. Всегда под рукой

❯ Обработка края стеклянной детали


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

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

При обработке краёв резаного стекла наждачной бумагой, иногда, удобно подложить под неё кусок плотного войлока – от нажима он слегка проминается и закругляет торец детали. На фото – отрезанная часть небольшой бутылочки от специй. Наждачка крупностью 140 единиц. Работа с плоскими деталями аналогична

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Отшлифованный край получившегося стаканчика. Торец слегка округлён, кромки затуплены

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

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

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Вертикально вращающимися колёсиками с алмазным слоем удобно обрабатывать и кривые торцы стекла. Маленькие слева – на бакелитовой (?) связке, справа покрупнее – на металлической

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Алмазные колёсики на державках для установки в трёхкулачковый сверлильный патрон. Специальные, выточенные и импровизированная, из стандартного крепежа М6

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

Алмазное колёсико в сверлильном станке, настроенном на 3000 об/мин. Обработка-подгонка стеклянной шкатулки к крышке

Работа с листовым стеклом в домашней мастерской. Сложная ручная резка, обработка краёв Творчество, Витраж, Timeweb, Познавательно, Рукоделие, Длиннопост, Стекло

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

❯ Чтобы два раза не вставать


Научившись вырезать и обрабатывать плоские стеклянные детали сложной формы, грешно не помянуть о клее с ультрафиолетовым (УФ) отверждением. Варианты китайского производства работают сносно и недороги. Клей после полимеризации прозрачен. Цветное матовое «глухое» стекло им склеивать сложнее, прозрачное – будьте любезны.

На благо всех разумных существ.

Babay Mazay, ноябрь, 2023 г.

Показать полностью 25
10

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

Однажды, когда я искал эффективное решение для преобразования речи в текст (транскрибации), чтобы применить его в своем проекте умной колонки, обнаружил интересное решение под названием Whisper от широко известной компании Open AI. К сожалению, Whisper не подошел для реализации в моем проекте по «аппаратным» причинам, но его функционал отпечатался в моей душе. Прошло время и меня посетила идея: «Почему бы не разработать телеграмм бота, куда бы пользователь мог отправлять аудиофайл, а в ответ получал текстовую расшифровку и перевод (песни) на родной язык». В этой статье я расскажу о реализации данной идеи и Whisper в этом проекте займет одну из ключевых функций.

❯ Чем же меня так впечатлил Whisper?


Во первых, что такое Whisper?

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

Ну и само название модели «Whisper» переводится как шепот, что само по себе намекает о качестве распознавания речи.

Чтобы не быть голословным, давайте запустим базовый пример использования и посмотрим вывод:

import whisper
model = whisper.load_model("base")

# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)

# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio).to(model.device)

# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")

# decode the audio
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)

# print the recognized text
print(result)

В результате выполнения скрипта мы получим следующий вывод в формате json:

{'text': ' Солнечное излучение (большой текст обрезал).',
'segments': [
{'id': 0, 'seek': 0, 'start': 0.0, 'end': 4.84, 'text': ' Солнечное излучение является одним из самых мощных источников энергии в Селенной.', 'tokens': [50364, 2933, 20470, 4310, 6126, 3943, 41497, 5627, 29755, 50096, 3943, 37241, 39218, 5783, 12410, 20483, 22122, 40804, 7347, 740, 2933, 21180, 5007, 13, 50606], 'temperature': 0.0, 'avg_logprob': -0.1954750242687407, 'compression_ratio': 2.0371621621621623, 'no_speech_prob': 0.0006262446404434741},
{'id': 1, 'seek': 0, 'start': 4.84, 'end': 8.4, 'text': ' Оно поступает на Землю в виде видимого и инфракрасного света,', 'tokens': [50606, 3688, 1234, 43829, 3310, 1470, 42604, 6578, 740, 12921, 38273, 2350, 1006, 6635, 3619, 481, 1272, 17184, 4699, 4155, 20513, 11, 50784], 'temperature': 0.0, 'avg_logprob': -0.1954750242687407, 'compression_ratio': 2.0371621621621623, 'no_speech_prob': 0.0006262446404434741},
{'id': 2, 'seek': 0, 'start': 8.4, 'end': 10.56, 'text': ' а также в виде космических лучей.', 'tokens': [50784, 2559, 16584, 740, 12921, 31839, 919, 38911, 15525, 2345, 13, 50892], 'temperature': 0.0, 'avg_logprob': -0.1954750242687407, 'compression_ratio': 2.0371621621621623, 'no_speech_prob': 0.0006262446404434741},
{'id': 3, 'seek': 0, 'start': 10.56, 'end': 15.8, 'text': ' Солнечное излучение имеет мощность примерно в квадратный метр поверхности Земли.', 'tokens': [50892, 2933, 20470, 4310, 6126, 3943, 41497, 5627, 33761, 39218, 9930, 37424, 740, 35350, 2601, 11157, 4441, 18791, 481, 44397, 13975, 42604, 1675, 13, 51154], 'temperature': 0.0, 'avg_logprob': -0.1954750242687407, 'compression_ratio': 2.0371621621621623, 'no_speech_prob': 0.0006262446404434741},
{'id': 4, 'seek': 0, 'start': 15.8, 'end': 19.44, 'text': ' Это достаточно для производства электроэнергии и других применений.', 'tokens': [51154, 6684, 28562, 5561, 28685, 12115, 31314, 9938, 7570, 489, 19480, 7347, 1006, 31211, 31806, 1008, 17271, 13, 51336], 'temperature': 0.0, 'avg_logprob': -0.1954750242687407, 'compression_ratio': 2.0371621621621623, 'no_speech_prob': 0.0006262446404434741}
], 'language': 'ru'}

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

❯ Улучшения приходят в процессе творчества


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

❯ Оффлайн перевод с помощью нейронных сетей


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

Для оффлайн перевода будем использовать модели Helsinki-NLP от Группы исследований языковых технологий Хельсинкского университета.

Пример Python скрипта для оффлайн перевода:
from transformers import pipeline

import torch
device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
# устанавливаем количество потоков для torch
torch.set_num_threads(4)
#Перевод с любого языка на английский
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-mul-en")
text = "Какой-то текст на любом языке"
translation = translator(text)
print(translation[0]['translation_text'])

В примере указан мультиязычный перевод на английский. К сожалению, у Helsinki-NLP нет мультиязычных моделей с переводом на русский язык, поэтому воспользуемся трюком большинства генеративных ИИ и применим двойной перевод, то есть в нашем случае, с английского языка на русский, используя модель Helsinki-NLP/opus-mt-en-ru.

❯ Ну что ж, давайте собирать бота


Учитывая все свои размышления по функциональности бота, получился следующий результат, для удобного восприятия кода, я разделил скрипт на несколько файлов:

Главный скрипт, отвечающий за работу бота tg_bot.py:

import neural_process
import file_process
import config
from telegram import ForceReply, Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, CallbackContext, ContextTypes

# Функция, которая вызывается при отправке файла
async def handle_file(update: Update, context: CallbackContext):
audio = update.message.audio
print(audio.mime_type)
# Сохраняем аудиофайл локально и получаем путь сохранения
file = await context.bot.get_file(audio.file_id)
f_name = audio.file_name
local_file_path = file_process.save_audio_file(f_name, file.file_path)
# Отправляем сообщение о успешном сохранении аудиофайла
await update.message.reply_text(
f"Подождите немного, я в ускоренном темпе прослушаю аудиофайл {f_name} и отправлю вам текстовую "
f"расшифровку с переводом."
)
# проверяем файл на длительность
status = True
status_dur = True
try:
file_dur = file_process.file_duration_check(local_file_path)
if file_dur > 600:
status_dur = False
except Exception as e:
print(f"Возникла ошибка: {e}")
status_dur = False

# Получаем перевод

trance_text = 'в эту переменную сохраняется текст транскрибации с переводом'
if status_dur:
try:
start_time = time.time()
trance_text = neural_process.final_process(local_file_path, f_name)
except Exception as e:
print(f"Возникла ошибка: {e}")
status = False
else:
status = False
await update.message.reply_text(
f"Сожалею, но возникла ошибка обработки файла. Длительность файла не должна превышать десять минут."
)

if status:

# Сохраняем вывод в текстовый файл
tx_file_path = file_process.save_text_to_file(f_name, trance_text)
end_time = time.time()
process_time = round(end_time - start_time, 2)
await update.message.reply_text(
f"Перевод готов! Ловите файл с переводом. Затраченное время: {process_time} сек. "
)

# Отправляем текстовый файл
with open(tx_file_path, "rb") as document:
await context.bot.send_document(chat_id=update.message.chat_id, document=document)

else:
file_process.delete_file(local_file_path)
if status_dur:
await update.message.reply_text(
f"Сожалею, но возникла ошибка обработки файла. Пожалуйста, убедитесь что файл имеет правильный аудиоформат."
)

# Функция для команды /start
async def start(update: Update, context: CallbackContext) -> None:
await update.message.reply_text(
'Привет! Добро пожаловать! Нравится песня, но ты не знаешь о чем она? Я могу перевести песню с любого языка '
'на русский за считанные секунды, просто скинь аудио файл в чат. ')

# Функция для команды / help
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Send a message when the command /help is issued."""
user = update.effective_user
await update.message.reply_html(
rf"{user.mention_html()}, я могу перевести песню с любого языка на русский, просто скинь аудио файл в чат.",
reply_markup=ForceReply(selective=False),
)

# Запускаем бота
def main():
# Токен бота
application = Application.builder().token(config.tg_key).build()
# Регистрируем обработчик для команды /start
application.add_handler(CommandHandler("start", start))
application.add_handler(CommandHandler("help", help_command))
# Регистрируем обработчик для приема файлов
application.add_handler(MessageHandler(filters.AUDIO, handle_file))
# Запускаем бота
application.run_polling()
# Останавливаем бота при нажатии Ctrl+C
application.idle()

if __name__ == '__main__':
main()

Скрипт для работы с файлами file_process.py:

import requests
import os
from pydub.utils import mediainfo

def delete_file(file_path):
try:
os.remove(file_path)
print(f"Файл {file_path} успешно удален.")
except FileNotFoundError:
print(f"Файл {file_path} не найден.")
except Exception as e:
print(f"Произошла ошибка при удалении файла {file_path}: {e}")

def save_audio_file(file_name, file_link):
response = requests.get(file_link)
# Сохраняем аудиофайл локально для последующей обработки
sound_folder = 'sound'
local_file_path = f"{sound_folder}/{file_name}"

if not os.path.exists(sound_folder):
# Если папки нет, создаем её
os.makedirs(sound_folder)

with open(local_file_path, 'wb') as local_file:
local_file.write(response.content)
return local_file_path

def save_text_to_file(file_name, trance_text):
text_folder = 'output'
local_file_path = f"{text_folder}/{file_name.replace('.', '_') + '.txt'}"

if not os.path.exists(text_folder):
# Если папки нет, создаем её
os.makedirs(text_folder)
# Сохраняем вывод в текстовый файл
with open(local_file_path, "w", encoding="utf-8") as output_file:
output_file.write(trance_text)

return local_file_path

def file_duration_check(file_path):
audio_info = mediainfo(file_path)
duration = float(audio_info['duration'])
print(duration)
return duration

Скрипт для работы с нейросетями neural_process.py:

from transformers import pipeline
import torch
import whisper
import file_process

device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
# устанавливаем количество потоков для torch
torch.set_num_threads(4)

def sound_to_text(audios):
model = whisper.load_model("base")
# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio(audios)
audio = whisper.pad_or_trim(audio)
# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# detect the spoken language
_, probs = model.detect_language(mel)
lang = max(probs, key=probs.get)
print(f"Detected language: {max(probs, key=probs.get)}")
# decode the audio
result = model.transcribe(audios, fp16=False, language=lang)
print(result)
return result['segments'], lang

def final_process(file, file_name):
print(f"Сохранен в директории: {file}")
raw, detected_lang = sound_to_text(file)
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-mul-en")
translator2 = pipeline("translation", model="Helsinki-NLP/opus-mt-en-ru")
text = f"Перевод аудиофайла: {file_name} \n"
text += f"В файле используется {get_language_name(detected_lang)} язык. \n"
for segment in raw:
text += "-------------------- \n"
text += f"ID элемента: {segment['id']} Начало: {int(segment['start'])} --- Конец: {int(segment['end'])} \n"
text += f"Исходный текст:{segment['text']} \n"
if detected_lang == 'en':
text_en = segment['text']
translation2 = translator2(text_en)
text += f"Перевод: {translation2[0]['translation_text']} \n"
elif detected_lang == 'ru':
text += ""
else:
translation = translator(segment['text'])
text_en = translation[0]['translation_text']
translation2 = translator2(text_en)
text += f"Перевод: {translation2[0]['translation_text']} \n"

file_process.delete_file(file)
print(text)
return text

def get_language_name(code):
languages = {
'ru': 'русский',
'en': 'английский',
'zh': 'китайский',
'es': 'испанский',
'ar': 'арабский',
'he': 'иврит',
'hi': 'хинди',
'bn': 'бенгальский',
'pt': 'португальский',
'fr': 'французский',
'de': 'немецкий',
'ja': 'японский',
'pa': 'панджаби',
'jv': 'яванский',
'te': 'телугу',
'ms': 'малайский',
'ko': 'корейский',
'vi': 'вьетнамский',
'ta': 'тамильский',
'it': 'итальянский',
'tr': 'турецкий',
'uk': 'украинский',
'pl': 'польский',
}
return languages.get(code, 'неизвестный язык')

Для запуска скрипта, нам необходимо установить следующие пакеты, используя команду:

pip install transformers, torch, accelerate, sentencepiece, sacremoses, python-telegram-bot, openai-whisper, pydub

❯ Деплоим бота

Чтобы всё заработало, не деплойте по пятницам.


Наш телеграмм бот, который работает с использованием алгоритмов ML, достаточно требователен к аппаратным ресурсам. Да, вы можете его использовать на своем ПК, но целесообразнее использовать облачные сервисы для подобных целей. Для размещения своего телеграмм бота, я решил воспользоваться облачной инфраструктурой от компании Timeweb Cloud. Итак, приступим к созданию нашего облачного сервиса.

Для создания нашего облачного сервиса, нам необходимо войти в панель управления под вашей учетной записью. Если учетная запись не создана, то регистрация учетной записи займет всего пару кликов. Я, например, для регистрации и авторизации воспользовался аккаунтом Google.
Создаем новый сервис, выбираем пункт «Облачный сервер»:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

Далее нам предстоит выбрать операционную систему для нашего сервера, я выбрал Debian 11:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

Выбираем расположение нашего сервера:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

Выбираем конфигурацию сервера, как видно на изображении, для начальных тестов я выбрал конфигурацию с четырьмя ядрами CPU и 8 ГБ оперативной памяти:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

Вот и все основные опции, которые нам нужны для создания сервера, остальные опции выбираете/указываете по желанию. Чтобы создать сервер, необходимо нажать кнопку «Заказать», которая располагается справа.

Процесс создания сервера:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

Сервер создан:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

После успешного создания сервера, перейдя в дашборд, с правой стороны вы увидите параметры для удаленного подключения к созданному серверу:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

Всё выполняется очень быстро, на создание сервера ушло пару минут.

❯ Подключаемся, настраиваем сервер для размещения бота


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

apt-get update & upgrade


Запускать скрипты с root правами — как минимум, это дурной тон, поэтому создаем нового пользователя с именем tg_bot:

adduser tg_bot


и пропишем его в группу sudo:

usermod -aG sudo tg_bot


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

Проверим обновления Python3 и установим, если имеются:

sudo apt update
sudo apt install python3

Установим менеджер пакетов:

sudo apt install python3-pip

Так как мы работаем с медиафайлами, нам необходимо установить набор библиотек FFmpeg:

sudo apt install ffmpeg

Для оценки производительности, на всякий случай установим системный монитор htop:

sudo apt install htop

Устанавливаем необходимые зависимости, для работы нашего бота:

pip install transformers, torch, accelerate, sentencepiece, sacremoses, python-telegram-bot, openai-whisper, pydub

Создаем рабочую директорию для нашего бота:

mkdir tg_bot_scripts

Затем переходим в созданную директорию, с помощью команды:

cd tg_bot_scripts

Далее нам нужно создать файлы Python нашего бота, с помощью команд:

nano tg_bot.py

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

nano neural_process.py

nano file_process.py

nano config.py


файл config.py содержит только одну переменную, которая содержит секретный ключ телеграм-бота.

tg_key = 'Ваш секретный ключ'

Или можно воспользоваться альтернативным способом, клонировав код моего репозитория GitHub.

Чтобы это реализовать, нам нужно установить Git:

sudo apt install git

После установки Git, выполнить следующую команду:

git clone https://github.com/VGCH/music_translate_AI_bot

Далее нам необходимо переименовать созданную при клонировании Git репозитория папку music_translate_AI_bot с помощью команды:

mv music_translate_AI_bot tg_bot_scripts

После этого важно не забыть добавить токен телеграмм бота:

cd tg_bot_scripts
nano config.py

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

pyton3 tg_bot.py

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

sudo nano /etc/systemd/system/AI_tg_bot.service

Копируем в открывшийся текстовый редактор следующее содержимое и сохраняем файл:

[Unit]
Description=My AI Bot service
After=network.target

[Service]
WorkingDirectory=/home/tg_bot/tg_bot_scripts/
User=tg_bot
Type=simple
Restart=always
ExecStart=/usr/bin/python3 /home/tg_bot/tg_bot_scripts/tg_bot.py > /dev/null

[Install]
WantedBy=multi-user.target

Чтобы добавить созданный сервис в автозагрузку, используйте следующую команду:

sudo systemctl enable AI_tg_bot.service

Чтобы запустить сервис используйте команду:

sudo systemctl start AI_tg_bot.service

Чтобы остановить:

sudo systemctl stop AI_tg_bot.service

❯ Изменение конфигурации сервера


В процессе отладки бота, я решил изменить конфигурацию своего облачного сервера с четырехъядерного CPU на восьмиядерный. Захожу в панель управления Timeweb Cloud, выбрав свой сервер, перехожу на вкладку «конфигурация»:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

И выбираю необходимую конфигурацию:

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

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

При изменении количества ядер CPU на облачном сервере, так же необходимо в скрипте обработки neural_process.py изменить количество потоков для torch, в моем случае на восемь.

torch.set_num_threads(8)

После изменения конфигурации сервера, можно понаблюдать нагрузку при обработке аудиофайла нашим телеграмм ботом с помощью команды:

htop

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни Изобретения, Познавательно, Timeweb, Бот, Музыка, Перевод, Технологии, Код, Длиннопост

❯ Заключение


В итоге у нас получился интересный эксперимент реализации телеграм-бота с применением алгоритмов машинного обучения для распознавания речи и перевода текста.
Спасибо вам за уделенное время и внимание. Есть вопросы, критика, осуждение? Добро пожаловать в комментарии. :)

Небольшой бонус к статье. Переводы песен с помощью созданного бота:

Перевод аудиофайла: Lana Del Rey West Coast.mp3
В файле используется английский язык.

ID элемента: 16 Начало: 99 — Конец: 103
Исходный текст: Who baby, who baby, I'm in love
Перевод: Кто, детка, я влюблен.

ID элемента: 17 Начало: 103 — Конец: 113
Исходный текст: I'm in love
Перевод: Я влюблен.

ID элемента: 18 Начало: 113 — Конец: 123
Исходный текст: Don't know the west coast, they got their icons
Перевод: Не знаю западного побережья, у них есть иконы.

ID элемента: 19 Начало: 123 — Конец: 127
Исходный текст: They serve as others, their queens are psychons
Перевод: Они служат как другие, их королевы — психи.

ID элемента: 20 Начало: 127 — Конец: 132
Исходный текст: You, good to music, you, good to music and you
Перевод: Ты, хорош в музыке, ты, хорош в музыке и ты

ID элемента: 21 Начало: 132 — Конец: 134
Исходный текст: Don't you
Перевод: А ты нет?

ID элемента: 22 Начало: 134 — Конец: 139
Исходный текст: Don't know the west coast, they love their movies
Перевод: Не знаю западного побережья, они обожают свои фильмы.

ID элемента: 23 Начало: 139 — Конец: 142
Исходный текст: They're golden-guzzing, rocking all copies
Перевод: Они хвастаются золотом, раскачивают все копии.

ID элемента: 24 Начало: 142 — Конец: 147
Исходный текст: And you, good to music, you, good to music and you
Перевод: А ты, хорош в музыке, ты, хорош в музыке и ты

ID элемента: 25 Начало: 147 — Конец: 149
Исходный текст: Don't you
Перевод: А ты нет?

Перевод аудиофайла: Edis-Banane.mp3
В файле используется турецкий язык.

ID элемента: 0 Начало: 0 — Конец: 1
Исходный текст: Alo.
Перевод: Привет.

ID элемента: 1 Начало: 2 — Конец: 3
Исходный текст: Bir şey söyle.
Перевод: Скажи что-нибудь.

ID элемента: 2 Начало: 6 — Конец: 7
Исходный текст: Bir şey söylemek istemiyorum.
Перевод: Я не хочу ничего говорить.

ID элемента: 3 Начало: 8 — Конец: 9
Исходный текст: Peki o zaman.
Перевод: Ну что ж.

ID элемента: 4 Начало: 30 — Конец: 32
Исходный текст: Bala ne dediğimi soracak olamazsın.
Перевод: Ты не можешь спросить моего отца, что я сказал.

ID элемента: 5 Начало: 32 — Конец: 33
Исходный текст: Hayır.
Перевод: Нет, нет, нет.

ID элемента: 6 Начало: 33 — Конец: 36
Исходный текст: Bir sebebim yok artık kalamam mı?
Перевод: У меня больше нет причин?

ID элемента: 7 Начало: 36 — Конец: 37
Исходный текст: Hayır.
Перевод: Нет, нет, нет.

ID элемента: 8 Начало: 40 — Конец: 42
Исходный текст: Ki göz dilimi.
Перевод: Вот об этом я и говорю.

ID элемента: 9 Начало: 42 — Конец: 43
Исходный текст: Bu ne?
Перевод: Что это?


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

Полезные ссылки:

Показать полностью 10
Отличная работа, все прочитано!