Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Бесплатная браузерная игра «Слаймы Атакуют: Головоломка!» в жанре головоломка. Подходит для мальчиков и девочек, доступна без регистрации, на русском языке

Слаймы Атакуют: Головоломка!

Казуальные, Головоломки, Аркады

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
121
Timeweb.Cloud
Timeweb.Cloud
1 год назад
Лига программистов C/C++

Сборка MS-DOS 4.0⁠⁠

Автор текста: dlinyj

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

Совсем недавно появилась следующая новость: На GitHub опубликован исходный код MS-DOS 4.00 под лицензией MIT. Раз появились исходные коды, стало сразу интересно: а можно ли собрать эту операционную систему?

Задача оказалась нетривиальной и совсем неочевидной. Оказывается, что исходные файлы DOS не так-то уж и легко переносятся в git, и уж как минимум, не как текстовые файлы в кодировке UTF-8. Но, к счастью, в отличие от утечек исходников MS-DOS 6.0, здесь имеется полный комплект файлов и инструментов, достаточный для корректной сборки и тестирования. Остались сущие нюансы, которые попили много крови.

Поэтому я, как и многие — начал свои эксперименты по сборке MS-DOS 4.0, с исправлением ошибок, а также возможностью исследования исходных кодов и тестирования их на реальном железе.

В статье же изложено краткое руководство по сборке и созданию загрузочной дискетки.

❯ Инструментарий


Собирать всё буду в Linux Mint (читай Ubuntu). Средой DOS для сборки выбрал dosbox, к сожалению, это не самый лучший вариант, потому что там идёт замедление частоты (чтобы старые программы корректно работали), поэтому сборка идёт достаточно долго. Лучше всего использовать любой удобный DOS, запущенный в виртуальной машине.

Для создания загрузочной дискеты и тестирования полученной сборки буду задействовать виртуальную машину qemu. А чтобы получить дискеты с готовым образом, я буду использовать установочную дискету MS-DOS 4.0 (найденную тут см. 4.00 OEM [Sampo]).

Прежде чем пойдём дальше — важное замечание:

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

❯ В чём сложности сборки?


Проблемы две:

  1. Некорректная инициализация переменных среды (в самом bat-файле SETENV.BAT содержится ошибки или опечатки).

  2. Проблемы с кодировкой при переносе кода с дискеток DOS в GIT с кодировкой UTF-8.


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

Значительно сложнее обстоят дела с тем, что в части кода, при переносе в UTF-8, побились некоторые символы. У меня была попытка сборки, которую я описывал у себя в ЖЖ, и, в конце концов, я получил вот это:

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

Это достаточно частая и болезненная проблема со старыми исходниками времён DOS. С аналогичной задачей я столкнулся и при попытке собрать программу RAM View. Об этом пути и исправлении проблемы, я подробно написал в статье Правка чужого кода.

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

❯ Подготовительные операции перед сборкой


Итак, шаги по сборке ДОС. Клонируем оригинальный репозиторий:

git clone https://github.com/microsoft/MS-DOS.git

Исправляем проблемы с кодировками:

sed -i -re 's/\xEF\xBF\xBD|\xC4\xBF|\xC4\xB4/#/g' MS-DOS/v4.0/src/MAPPER/GETMSG.ASM
sed -i -re 's/\xEF\xBF\xBD|\xC4\xBF|\xC4\xB4/#/g' MS-DOS/v4.0/src/SELECT/SELECT2.ASM
sed -i -re 's/\xEF\xBF\xBD|\xC4\xBF|\xC4\xB4/#/g' MS-DOS/v4.0/src/SELECT/USA.INF

Переходим в рабочую папку:

cd MS-DOS/v4.0

Перекодируем все текстовые файлы в формат MS-DOS:

find -iname '*.bat' -o -iname '*.asm' -o -iname '*.skl' -o -iname 'zero.dat' -o -iname 'locscr' | xargs unix2dos -f
find -iname '*.BAT' -o -iname '*.ASM' -o -iname '*.SKL' -o -iname 'ZERO.DAT' -o -iname 'LOCSCR' | xargs unix2dos -f


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

$ cat src/e.bat
@Echo off
echo setting up system to build the MS-DOS 4.01 SOURCE BAK...
set CL=
set LINK=
set MASM=
set COUNTRY=usa-ms
set BAKROOT=e:
rem BAKROOT points to the home drive/directory of the sources.
set LIB=%BAKROOT%\src\tools\bld\lib
set INIT=%BAKROOT%\src\tools
set INCLUDE=%BAKROOT%\src\tools\bld\inc
set PATH=%BAKROOT%\src\tools;%PATH%

В принципе этих операций достаточно для сборки, а то что ниже — это лично моё хулиганство, чтобы продемонстрировать, что DOS в действительности собрался, и нет подмены файлов. Я заменяю компанию Microsoft своим ником:

find -name "*.ASM" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.INC" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.H" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.MAC" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.MSG" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.C" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.CLB" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +
find -name "*.SKL" -type f -exec sed -i 's/Microsoft/Dlinyj/g' {} +

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

❯ Сборка


Собирать буду в dosbox, как показала практика — это не самое лучшее решение, сборка занимает около часа, что, мягко скажем, раздражает.

Запускаю dosbox:

dosbox

Далее в нём монтирую текущую директорию как диск E.

mount e: ./

И переходим на диск e, запускаем в dosbox бат-файл, который инициализирует среду окружения, и начинаем сборку:

e:
cd SRC
e.bat

и запускаем сборку командой nmake:

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

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

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

После этого надо скопировать все собранные файлы в один каталог. Создаём каталог «4» в корне диска и копируем все бинарники специальным скриптом:

mkdir \4
CPY.BAT \4


Далее самое интересное:проверка того, что файлы запускаются. Для этого надо сделать так, чтобы dosbox прикидывался старым ДОСом. Выполняем следующую команду:

ver set 4.0

После переходим в каталог\4и можно выполнить в нёмcommand.com:

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

Хулиганство сработало, ДОС собрался и прикидывается, будто бы я его разработал. Дело стало за малым — протестировать это на реальном железе.

❯ Создание загрузочной дискетки


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

sys <path> a:

Но, факир был пьян, и фокус не удался. Поэтому решил MBR (Master Boot Record) позаимствовать с загрузочной дискетки DOS 4.0. К сожалению, MBR от MS-DOS 6.22 у меня не заработал.

Скачиваем установочные дискетки, попутно создаём пустую дискетку командой:

truncate --size 1474560 fdd.img

Загружаемся с установочной дискетки и ставим наш пустой образ 1,44 МБ дискетки в дисковод B, с помощью qemu:

qemu-system-i386 -fda Disk01.img -fdb fdd.img

Отменяем установку и форматируем дискету с переносом системных файлов:

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

По окончании можно закрывать окно qemu. Возвращаемся к окну с dosbox и монтируем полученный образ дискетки, с помощью следующей команды:

imgmount a: <path to fdd.img> -t floppy

И потом просто вручную переносим файлы COMMAND.COM, IO.SYS и MSDOS.SYS на дискету:

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

Всё, образ готов. Можно его протестировать в виртуальной машине, или даже записать на настоящую дискету и загрузиться!

Для запуска в qemu следует использовать следующую команду:

qemu-system-i386 -fda fdd.img

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

Записать на дискетку можно командой dd, я использую USB-FDD дисковод.

sudo dd if=fdd.img of=/dev/sdk status=progress

И, да! Эта система успешно работает на реальном железе. В данном случае проверка идёт на 386 компьютере.

❯ Выводы

Сборка MS-DOS 4.0 Гаджеты, Электроника, Программирование, Разработка, Программа, Техника, Timeweb, DOS, Длиннопост

Запуск свежесобранного MS-DOS 4.0 на реальном железе

Не буду лукавить, сборка MS-DOS 4.0 оказалась не столь простой. Пришлось посмотреть некоторые видео, пошерстить различные репозитории. Но всё же это прекрасный опыт, который позволяет заглянуть внутрь исторических исходников и покопаться в них.

Давняя утечка MS-DOS 6.0 была неполной, и собрать его не представлялось возможным. А теперь у исследователей есть готовый инструментарий, для того чтобы попрактиковаться в разработки каких-то своих модулей старой операционной системы.

Конечно же, я по-настоящему жду, когда же обнародуют исходники MS-DOS 6.22, так как ещё надеюсь увидеть их на своём веку.

Удачи вам в ваших экспериментах!

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

  1. Исходные коды MS-DOS от Microsoft

  2. Пример сборки MS-DOS 4.0 во FreeDOS (видео)

  3. Compiling MS-DOS 4.0 from DOS 4.0, on a PS/2!

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные статьи.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 9
[моё] Гаджеты Электроника Программирование Разработка Программа Техника Timeweb DOS Длиннопост
10
16
Timeweb.Cloud
Timeweb.Cloud
1 год назад
Лига программистов

Играем в крестики-нолики c RPN калькулятором⁠⁠

Автор текста: dlinyj

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

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

Игр для калькуляторов, как на просторах бывшего СССР, так и за рубежом громадное количество, остаётся только выбрать. Наиболее популярная — это «Посадка на Луну». Однако, для меня она показалась скучной и неинтересной, а сам код сложным и запутанным. Поэтому мой выбор пал на крестики-нолики, так как все мы играли в них в школе, и мне стало интересно сыграть в неё с калькулятором.

Реализовать игру решил на модели HP-32S, поскольку он мне очень полюбился за красоту архитектурной реализации и удобство программирования.

❯ Основа программы


В предыдущей своей статье "Калькуляторы с обратной польской нотацией" я делал обзор литературы для программируемых калькуляторов. Среди которой была замечательная книга А.Г. Гайшут "Калькулятор твой помощник и соперник в играх".

В этой книге приводится огромное количество примеров игр на калькуляторе и, в частности, пример игры в крестики-нолики:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

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

Поэтому придётся разбираться с этой программой самостоятельно. Приведу текст и описание программы из книги под спойлером:

Описание программы Крестики-нолики из книги:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост
Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Главная задача – это перенос этого кода с МК-61 на калькулятор HP-32S. Для начала, разберёмся как эта программа работает.

❯ Проверка программы на МК-61


Первое, что я сделал – это перенабрал код из книги в формате, который понимает онлайн-эмулятор МК-61.

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Кстати, если интересно, то можно попробовать поиграть в эмуляторе, чтобы понять принцип работы. Для этого копируем код, вставляем в область «Код программы:» и нажимаем кнопку «Ввести в память». Картинка из книжки выше подсказывает нам, что калькулятор даёт координаты, куда ставить "X", а мы ему в ответ передаём координаты, куда ставить "O".

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Координаты для игры

Чтобы начать играть на клавиатуре калькулятора, нужно нажать кнопку [С/П]. В ответ будет выведено число, первое число всегда «9» (центр поля). В ответ необходимо ввести свою координату, например, «2» и нажать [С/П]. И так далее, пока вы не проиграете (калькулятор выведет «77», либо будет ничья (калькулятор выведет «0»).

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Калькулятор победил

Чтобы посмотреть последний ход калькулятора, надо обменять регистры X и Y местами, для этого нужно нажать на клавишу [⟷].

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

❯ Анализ кода программы для калькулятора МК-61


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

Особенность программирования МК-61 в том, что он пропускает команду перехода, если условие истинно, и исполняет — если ложно! Поэтому все условия для python пришлось инвертировать. Плюс, я для удобства ввёл дополнительные функции, которые также перенёс впоследствии в HP-32S: функция вывода координат крестиков и ввода ноликов, функция ничья и победа калькулятора:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

Первое – инициализирую регистры калькулятора:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

После всех подпрограмм идёт головная программа:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

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

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

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

Исходный код доступен в репозитории проекта.

И, да, код вполне себе работоспособен, в чём несложно убедиться:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

❯ Перенос кода на HP-32S

Напомню, что калькулятор HP-32S, который есть у меня, принадлежит семейству калькуляторов HP10B/14B/17B/17BII/19BII/20S/21S/22S/27S/28S/32S/32SII/42S, таким образом, всё, что приводится ниже, с небольшими адаптациями можно будет перенести и на другие модели этой серии.

Трудозатраты в предыдущей главе, по переносу кода на python, были проделаны с двумя целями:

  1. Понять, как же работает этот код (увы, не выполнено).

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

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

Вооружившисьдокументацией на калькулятор HP-32S, я переписал программу крестиков-ноликов с питона для него. Для удобства я делал это в таблицах Exel. Как я уже говорил, особенность калькулятора в том, что он маркирует каждую строку буквой и цифрой, а любая метка – это смена буквы. Таблицы идеально подходят для этого.

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

Код программы для калькулятора HP-32S:

Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост
Играем в крестики-нолики c RPN калькулятором Калькулятор, Программирование, СССР, Timeweb, Электроника, Познавательно, Игры, Крестики-нолики, Гаджеты, Длиннопост

В силу того, что на калькуляторе HP-32S можно сделать вывод на экран конкретного регистра (с указанием имени регистра), а также запрос ввода другого конкретного регистра, то ввод-вывод становится чуть более интерактивным и интересным.

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

❯ Выводы


Изначально задача казалась мне такой простой, но заняла у меня достаточно приличное время. Её ценность состояла в том, что мне удалось разобраться — как же программировать для калькулятора HP-32S. В результате оказалось, что из модельного ряда калькуляторов, с которыми я занимался — эта версия оказалась самая дружелюбная и удобная.

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

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

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

  1. Гитхаб этого проекта

  2. Первая часть «Калькуляторы с обратной польской нотацией»

  3. Сайта автора «Гайштут и его друзья»

  4. Онлайн-эмулятор МК-61

  5. Документация на калькулятор HP-32S


Если вам интересна металлообработка, старое железо, всякие DIY штуки, погроммирование и linux, то вы можете следить за мной ещё в телеграмме.

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные статьи.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 13
[моё] Калькулятор Программирование СССР Timeweb Электроника Познавательно Игры Крестики-нолики Гаджеты Длиннопост
5
940
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER

Оживляем неизвестный дисплей от японского поезда/автобуса⁠⁠1

  • Автор текста: vladkorotnev

Как-то раз, очередным томным субботним вечером, я в очередной раз листал от нефиг делать Yahoo! Auctions — одну из крупнейших японских сетевых барахолок. Внезапно, среди рекомендуемых лотов появился вот такой внушительных размеров электровакуумный дисплей:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Однако, рулить дисплеем, как правило, та ещё задача. «Особенно если динамическая индикация, да ну его, влом!» — подумал было я. Но у того же продавца обнаружилась и, судя по всему, управляющая плата:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

На фотографии виднеется 8085 процессор, 8251 UART и ПЗУшка — казалось бы, дизассемблируй себе, разбирай протокол, да просто с ардуины выводи что угодно. Да ещё и за одну йену, это прям даром! После этого я решил всё же попытать удачу и выхватить этот дисплей. Тем более, что давно уже хотелось какие-нибудь красивые часики в комнату...

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

❯ Всё уже поломано до нас


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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Да, я в курсе, что полярность на коннекторе питания подписана задом наперёд %)

Первым же делом снимаю ПЗУ, кидаю в MSX, чтобы вычитать на комп, но увы — кроме нулей ничего не вычитывается, да ещё и греется оно очень подозрительно. При подаче питания сама плата тоже ничего не делает.

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

Гуглёж по маркировке (Morio Denki 6M06056) тоже ничего, кроме сайта производителя, не выявил. Судя по всему, они занимаются дисплеями для транспорта — так что, скорее всего, этот стоял в каком-то автобусе или поезде.

Вероятнее всего, это был автобус — ведь в поездах между станциями, как правило, на экране идёт бегущая строка. В старых автобусах же отображается лишь название следующей остановки. Выгоревший текст — 「次は、(неразборчиво)」(«Следующая: (нрзб.)») подтверждает эту догадку.

❯ Плата драйвера панели


Значит, придётся рулить панелью напрямую — благо, какая-то плата, адаптирующая его к какой-то шине, к дисплею уже прилагается.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

А ведь в наше время вся эта требуха поместится в дешёвую ПЛИСку размером с ноготь…

Судя по наличию микросхемы ОЗУ (MN2114), плата представляет себе какой-то простенький фреймбуфер. Отлично, значит с динамической индикацией на 100+ катодов уже разобрались до меня :-)

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

Пара минут с тестером и карандашом — и вот уже отчётливо видно, где на разъёме шины данных входы, а где выходы.

Верхний ряд группами по 4 пина соединён со входом коммутатора 74LS257 — скорее всего, это вход данных шириной в 1 байт. Нижний ряд же идёт на инвертеры, выполняющие роль буферов — так хотя бы можно понять, что в нём есть 5 входных сигналов, и 2 выходных.

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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

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

❯ Конструкция дисплея


Почему-то всё это время мне думалось, что это — ВЛИ, которому нужно около 20-30 вольт для свечения. Однако при прозвонке самой лампы тестером никакие пины между собой соединены не были — в случае ВЛИ так быть не может, ведь ему нужен накал катода. Ну, разве что, если нить накала перегорела…

Впрочем, пристальный взгляд на дисплей под лупой показал, что ни накала, ни сеток — типичных для люминисцентных индикаторов компонентов — там и вовсе нет:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Значит, скорее всего, это газоразрядный индикатор! По горизонтали у него расположены платы с кучей группированных транзисторов. По маркировке «L-S» никакие транзисторы в справочниках подходящих лет, увы, не находятся.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

По бокам у дисплея — практически одинаковые платы с диодами, логическим инвертером (7414) и неизвестным модулем Mitsubishi MA7446-01.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

  • Поперёк «12-вольтовой» линии питания стоит конденсатор на 250 вольт — значит, как минимум, там должно быть высокое постоянное напряжение. Очевидно, положительное, если этот конденсатор проектировщики не вставили туда в роли петарды.

  • На плате мультиплексора между питанием и выходом на дисплей есть цепь с транзистором 2SC1473 — он тоже рассчитан на 250 вольт.


Значит, скорее всего, на молексе вместо 12 вольт ожидается, как минимум, под сотню с лишним, а значит и индикатору для поджига нужно напряжение где-то такого порядка.

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

Припаиваем к одному из горизонтально стоящих пинов минусовой выход через резистор на пару килоом, а плюсовым аккуратненько одной рукой ведём по вертикально-стоящим…


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

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

❯ Диагностика платы мультиплексора


Под такое дело для проекта был куплен аж целый китайский лабораторник на амазоне — и подключение платы к нему показало, что жрёт она как не в себя! Почти что целый ампер, на конструкцию из 38 корпусов. Для логики серии 74LS это уж слишком много. Получается, в плате управления тоже что-то не так.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Так как компаратора навроде HP 10529A у меня нет, пришлось вооружиться осциллографом и таблицами истинности из даташитов.

На шине данных у ОЗУ хоть и завалены фронты, но в принципе всё смотрится не так и плохо:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

А вот на прочих чипах местами встречается откровенная дичь — например, сигналы, у которых логический ноль где-то на 1,8 вольтах, а единица на 3,5.

В двоичной логике бывает True, бывает False, но встречается и «Да нет наверное»:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Видимо, собирали девайс на 74 логике из альтернативной вселенной.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

  • 107-1 (JK-триггер) — кипятится (60+°C) сразу при включении питания, выход закорочен на вход

  • 107-2 — от выхода на вход 1кОм, в первом триггере выходной сигнал просажен (ну ещё бы), а второй вообще выдаёт не то, что в даташите, а погоду на Марсе. До кучи ещё и греется под 40 градусов.

  • 107-3 — 2кОм со входа на выход, теплее всего остального.

  • 393-1, 393-2 (сдвоенные 4-битные счётчики) — между тактовым входом и Vcc всего лишь 2 кОм, поэтому и сигналы выглядят странно.


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

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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

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

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

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

❯ Повторный запуск


Выпаиваем всех подозрительных и заменяем их на панельки — ну вдруг опять вылетит, не паять же по новой :-)

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Фото уже более позднее — заменил ещё и кварц, чтобы увеличить частоту развёртки, дабы экран не полосил на видео

Подаём питание. Один из светодиодов на макетке, раньше постоянно горевший, на сей раз гаснет — это хороший знак. Ставим крутилки в положение 0xFF, от балды трогаем один из джамперов, и…

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Две негорящие строки — это от макетки один из проводов шины данных отвалился при проверке :-)

Оно живое!!! И жрёт со всеми включёнными пикселями аж 25 ватт.

Экспериментально подбираем распиновку коннектора:

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

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

После подачи питания нужно дождаться, пока ~READY не уйдёт в лог. 0. Затем выставляем биты данных и дёргаем ~CLOCK. Этот байт попадёт в верхнюю половину самого левого столбца — пиксели, выставленные в «1», загорятся, а в «0», соответственно, погаснут.

Следующий импульс на ~CLOCK запишет байт в нижнюю половину самого левого столбца, потом — верхнюю половину второго столбца, и так далее — сверху вниз, слева направо. После записи последнего байта (нижняя половина самого правого столбца), следующий байт опять попадёт в верхнюю половину самого левого, т.е. запись идёт в цикле.

Если мы хотим начать рисовать с начала, можно дёрнуть ~RETZ — это обнулит счётчик, и рисование опять начнётся с самого левого столбца. Можно сбросить вообще всё и очистить экран при помощи ~RESET.

Притянув BRIGHT к земле можно уменьшить яркость (и потребляемую мощность) дисплея вдвое. Притянув же к земле SHOW, можно отключить отображение на дисплее вообще, при этом рисовать в память платы всё так же возможно.

❯ Проба пера


Так как терпения у меня в организме ещё меньше, чем дофамина, то была распотрошена ещё какая-то плата из мусорки. Оттуда были извлечены TC4050B — буферы, которые отлично подойдут для согласования 3.3-вольтовой ESP32 с 5-вольтовой логикой на дисплее.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Переходник с 1980 года на 2016

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

На JLCPCB я всё ещё не зарегистрировался...

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


Дописываем ещё простенький рендер шрифтов, обновляем скетч:


Ну а дальше едем в Акихабару закупаться требухой для развития проекта до какого-то полезного состояния :-)

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Котлета в комплект радиодеталей не входит!

Опытный читатель уже догадался по содержимому этого хабара из Акихабары, что дисплею уготована типичная радиолюбительская участь — стать будильником-метеостанцией %)

Операционная система же обрела рабочее название Plasma Information System OS — или, если коротко, PIS-OS.

Оживляем неизвестный дисплей от японского поезда/автобуса Гаджеты, Электроника, Техника, Timeweb, Ретро, Сборка, Видео, YouTube, Длиннопост

Смотрится итоговый результат, как по мне, восхитительно:

Но о сборке девайса и написании прошивки — уже в следующей части :-)

В реалтайме за обновлениями, среди тонны фоток еды и Мику, вы можете также следить в моём телеграме.

Также, можно посмотреть ход описанного в статье «в реалтайме», прочитав тему на EEVBlog.

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 21 3
[моё] Гаджеты Электроника Техника Timeweb Ретро Сборка Видео YouTube Длиннопост
43
95
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER

Тюнинг старого тетриса⁠⁠

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

Недавно я прикупил себе старенький и оригинальный — «тот самый» тетрис, а дальше меня затянуло. Собственно, нормальная ситуация. Однако, мне пришлось столкнуться с одной неприятной проблемой: если во время игры — скорость (ака сложность) повышается выше двух пунктов, то играть становится совершенно невозможно, а скоростей-то много…

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

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

❯ Суть проблемы


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

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


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

Ну что же, настало время RTFM на процессор HT443A0.

❯ Приступим!


Из статей «Так какой же процессор использовался в играх Brick Game?» часть 1 и часть 2 мы узнаем, что конкретно в этой модели тетриса установлен четырёхбитный микроконтроллер HT443A0. И если обратиться к документации, то можно выяснить, что частота процессора задаётся резистором.

Ниже привожу схему из документации на этот контроллер, которая попутно является просто принципиальной электрической схемой тетриса:

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

Но, как обычно бывает, нигде не сказано, какой номинал резистора отвечает за определённую частоту. Единственное, что мы знаем, в каких пределах его можно изменять (от 36 кОм до 620 кОм). Это значит, что настало время весёлых опытов.

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

Если вскрыть корпус этого устройства, то можно увидеть следующую картину:

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

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

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

Внимание вопрос: если мы уменьшим сопротивление – частота вырастет или уменьшится? Да, зная RC-цепочки понятно, что при уменьшении сопротивления частота будет расти, но нужно в этом убедится. Да и сверху напаять резистор проще, чем делать последовательное соединение.

Увеличиваем частоту


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

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

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


Интересно теперь уменьшить частоту тетриса.

Уменьшение частоты


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

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

И это оказалось тем самым сопротивлением, на котором тетрис играет адекватно, с той скоростью, которой должен.


Круто, теперь можно уже завинчивать и играть, но мне хотелось большего.

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

❯ Добавляем регулятор частоты


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

Тюнинг старого тетриса Тетрис, Электроника, Гаджеты, Timeweb, Техника, Длиннопост, Telegram (ссылка), Видео, YouTube

Крутилка

После сборки можно приступить к натурным испытаниям.


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

❯ Выводы

Да — частоту работы микроконтроллера можно менять прямо на ходу. А вот насчёт мультика — сохраню интригу, пускай кто-то сам пройдёт, и проверит можно ли посмотреть его :)

Честно говоря, мне тоже хотелось приобщиться к этому движу вокруг реверса Brick Game. Даже немного поколдовал с транслятором ассемблера и некоторыми другими вещами. Но то времени, то вдохновения не хватает, то просто экосистемы таких же фанатиков. Поэтому для начала решил для себя сделать что-то простое и понятное.

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

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

  1. Процессор, который использовался в «Тетрисе»: на каких SoC работала недорогая микроэлектроника в 90-х?

  2. Так какой же процессор использовался в играх Brick Game?

  3. Так какой же процессор использовался в играх Brick Game? Часть 2

  4. Документация на микроконтроллер HT443A0

Если вам интересна металлообработка, старое железо, всякие DIY штуки, погроммирование и linux, то вы можете следить за мной ещё в телеграмме.

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 6 5
Тетрис Электроника Гаджеты Timeweb Техника Длиннопост Telegram (ссылка) Видео YouTube
12
193
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER

Сканер отпечатков кошачьих носиков⁠⁠

  • Автор текста: dlinyj

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

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

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

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

❯ Концепция КотСКУДа


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

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

Чешу любимого Бандита

Кошачий нос или лапка имеет уникальный рисунок, точно так же как рисунок отпечатка пальцев у человека. Значит осталось найти способ сканировать подушечку лап или носик (зависимости от того, что коту больше понравится).

Достаточно долго анализировал, что же есть доступного и недорогого на рынке, а после остановился на оптическом сканере отпечатков пальца модели FPM10A. Для него имеется огромное количество примеров, ПО, есть куча библиотек на Python и Arduino, а значит, по идее, с ним проблем возникнуть не должно.

❯ Пару слов об устройстве оптического сканера отпечатков


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

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

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

Далее там идёт сложная система распознавания отпечатков по базе данных, по каким-то хитрым алгоритмам, действие которых мне неведомо.

❯ Подключение сканера FPM10A


Прелесть сканера FPM10A заключается в том, что он подключается по-обычному UART и питается от 3,3 вольта. Для его подключения понадобится любой обычный переходник USB-UART. Не буду подробно останавливаться на способе подключения этого датчика, всё достаточно подробно расписано в официальном документе.

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

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

Сканер моего КотСКУД подключён и готов к работе

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

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

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

Подготовка ПО к испытаниям

Настало самое интересное – перейти к натурным испытаниям.

❯ Натурные испытания


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

Сканер отпечатка лапы

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

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

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

Отпечаток кошачьего носа


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

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

Сканируем кошачий носик

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

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

Что же ты там такое делаешь?

Настал момент истины, можно ли использовать оптический сканер отпечатков для кошачьих носиков и далее реализовывать мой КотСКУД?

❯ Результаты


Вам же тоже, как и мне не терпится посмотреть, что же там удалось насканировать? Удачных сканов не так много, как я уже говорил, Бандит достаточно резво крутил мордой, а проявлять насилие или как-то фиксировать его — мне не позволяла совесть.

Вот первые два более-менее удачных снимка отпечатка кошачьего носика, ощутите уникальность момента: вы видите их первыми.

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

Первые отпечатки кошачьих носиков

В конце концов, мне удалось получить более-менее чёткий снимок котоноса. И как раз к этому моменту, Бандиту надоела эта игра, и он решил слинять.

Сканер отпечатков кошачьих носиков Гаджеты, Электроника, Техника, Кот, Timeweb, 1 апреля, Сканер отпечатков, Своими руками, Познавательно, Длиннопост

Чёткий снимок кошачьего носа

Считаю это настоящим успехом!

❯ Выводы


Главный вывод из всей этой затеи такой: отпечаток кошачьего носика можно использовать в системе КотСКУД для доступа животного в помещение.

Однако я не учёл несколько факторов:

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

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

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

Так что научно-исследовательская работа по внедрению КотСКУДа продолжается. Думаю, следующие результаты будут обнародованы через год, ровно первого апреля.

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

  1. Устройство и принцип работы оптического сканера отпечатков пальца.

  2. Документация подключения оптического датчика отпечатков FPM10A.


Если вам интересна металлообработка, старое железо, всякие DIY штуки, погроммирование и linux, то вы можете следить за мной ещё в телеграмме.

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 10
[моё] Гаджеты Электроника Техника Кот Timeweb 1 апреля Сканер отпечатков Своими руками Познавательно Длиннопост
9
201
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР⁠⁠

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

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

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

❯ Суть такова

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

ПИУ-1 и ПИУ-2 — две модели индикаторных приборов, использовавшихся в неком оборудовании (мне так и не удалось выяснить, где именно, но, по слухам, стояли такие где-то на ЖД). Оба этих девайса имеют схожую конструкцию и отличаются лишь кодовой таблицей. Так что практически всё, что будет сказано тут, применимо и к ПИУ-1.

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

Так уж вышло, что в моих руках побывали два ПИУ — ранней и поздней версии.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

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

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

На обратной стороне разъём, клемма заземления, крепёжные винты (один из которых под пломбой) и заводская табличка. Как и практически все интересные и необычные советские приборы индикации, выпускался девайс на ровненском «Газотроне».

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Снимем кожух. Внутри металлическая рама, к которой прикручены плата, панель и разъём.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

С обратной стороны ничего интересного.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

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

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Разъём, связывающий панель с внешним миром. Почему-то очень сложно было найти какую-то информацию на этот счёт, так что оставлю тут для потомков: ответная его часть называется 2РМ30КПН32Г5В1В.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Панель представляет собой законченный модуль, соединённый с платой разъёмом МРН. Состоит он из стеклянного индикатора, рамки и платы, к которой он подключается.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

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

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

А вот более старая панель. Внешне отличия заметны не особо…

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

С обратной стороны отличие лишь в годе выпуска — 1983. Также видно, что изолятор в разъёме на этот раз карболитовый.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

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

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Первая плата — низковольтная. На ней расположена управляющая логика и ПЗУшки.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

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

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Шасси со снятыми платами.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Оба модуля втыкаются в расположенную на боковой стенке кросс-плату. От неё же расходятся жгуты проводов к разъёму и индикатору. К слову, о разъёме. Вместо ОНЦ здесь стоит другой разъём — 2РМ30Б32Ш5В1В. Впрочем, ответная часть к нему та же самая.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Те самые слоты.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Разъём МРН, через который подключается индикатор.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Индикатор отдельно. От рассмотренного ранее он не отличается ничем.

❯ Как работает ПИУ

Вообще, по своей структуре ПИУ во многом схож с МС6205 — здесь тоже есть преобразователь питания, генератор импульсов, знакогенератор, блок интерфейса и подобная логика. Но вот индикаторы тут стоят совершенно иные. Это так называемые газоразрядные индикаторы с самосканированием.

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

Наиболее доходчиво о работе таких ГРИ рассказывал товарищ radiolok. Я сам узнал об этих индикаторах, посмотрев этот ролик, после чего немедленно захотел себе какой-то законченный девайс на базе такой панели. Именно им и стал ПИУ.

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

❯ В чём разница между ПИУ-1 и ПИУ-2

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

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

У ПИУ-1 она такая.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

А у ПИУ-2 — вот такая.
По просторам гуляют две документации: одна называется «ПИУ-1: паспорт, техническое описание и руководство по эксплуатации», другая — «Приборы индикаторные универсальные ПИУ-1, ПИУ-2: паспорт, техническое описание и руководство по эксплуатации». При этом они описывают по сути два совершенно разных по схемотехнике устройства. Первая рассказывает про более старую версию, имеющую внутри два слотовых модуля и кросс-плату, вторая — про поздний вариант, собранный на одной плате. Помимо этого в первой инструкции детально описаны некоторые аспекты работы устройства в синхронном и асинхронном режимах (в документации к ПИУ-2 эти моменты скромно опущены). Чтобы вам не пришлось искать эти архивы среди кучи битых, ссылку на них я дам чуть позже.

❯ Первый запуск

Итак, самое время приступить к экспериментам.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Берём ответную часть разъёма и припаиваем провода. Распиновка есть в документации.
Но, увы, при попытке что-то вывести меня ждала неудача — на экране отображался один и тот же символ. Последующие проверки показали, что в индикаторе, судя по всему, вылетела ПЗушка, так как адресный счётчик работал исправно. Я понятия не имею, где взять такую же, чем её прошить и какой прошивкой, так что разбирательства с этим индикатором я забросил, а через полгода его лежания у меня и вовсе продал.

Также именно упомянутый экземпляр успел засветиться в ролике всё того же radiolok, где на 2:37 показаны внутренности моего ПИУ. Этими фотографиями я поделился в чатике давным-давно, и вот они наконец пригодились.

❯ Подключение

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

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

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

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

  1. X8

  2. Первая строка

  3. X7

  4. Вторая строка

  5. X6

  6. Третья строка

  7. X5

  8. Четвёртая строка

  9. X4

  10. Пятая строка

  11. X3

  12. Шестая строка

  13. X2

  14. Седьмая строка

  15. X1

  16. Ничего

  17. Гашение

  18. Синхросигнал

  19. Запись/индикация

  20. Импульсы сброса

  21. Строб

  22. Ничего

  23. Сброс

  24. 5 В

  25. Управление яркостью

  26. -12,6 В

  27. Ничего

  28. Ничего

  29. Ничего

  30. Земля

  31. Ничего

  32. Масса

Для питания требуется два напряжения — +5 и -12,6 В. Взять их можно, разумеется, в компьютерном БП. Как показала практика, от -12 В он девайс тоже отлично стартует.

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

❯ Синхронный и асинхронный режим

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

❯ Пишем первую программу

Памятуя о жёстких глюках неясной природы при подключении МС6205 напрямую к выводам МК, я решил и тут использовать сдвиговый регистр. Подключение, таким образом, очень простое — строб и сброс к выводам МК, X1...X8 — к Q0...Q7 регистра. В качестве управляющего девайса была взята всё та же тестовая ардуино.

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Саму микросхему удалось уместить внутри разъёма.
Теперь о программе. Для начала необходимо сбросить экран (после чего он погаснет), после чего последовательно загрузить в регистр каждый символ, не забывая после этого дёргать строб. У ПИУ нет шины адреса как у МС6205, он работает по сути как обычный дисплей 1602: выставляем на шине код, после чего даём высокий уровень на строб. Для программиста единственное отличие лишь в том, что у HD44780 строб по спаду сигнала, а также есть поддержка управляющих команд, тогда как единственная команда, которую знает ПИУ, — это считать код символа с восьмибитной шины и протолкнуть его в буфер.

Прибор работает в кодировке КОИ-7, что тоже надо учитывать.
Остаётся только залить её, и, если ПИУ живой, на экране должно будет появиться примерно следующее:

ПИУ-2. Оживляем плазменный текстовый индикатор из СССР Гаджеты, Электроника, СССР, Timeweb, Познавательно, Техника, Длиннопост

Наконец-то оно работает!

❯ Немного про ГТИ и внешний знакогенератор

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

Для этого индикатор обладает выводами управления строками, ГТИ и импульсов сброса.
Контакты 2, 4, 6, 8, 10, 12, 14 служат для непосредственного включения или выключения пикселей в столбце. ГТИ — генератор тактовых импульсов, от которого работает схема сканирования. В момент смены уровня этого сигнала с высокого на низкий происходит считывание данных с выводов управления строками. Контакт импульсов сброса нужен для определения начала панели — на нём появляется низкий уровень в тот момент, когда сканирующий разряд проходит «нулевой» катод.

И при попытке запустить индикатор в таком режиме можно наглядно увидеть, насколько же всё-таки слабо работает Arduino! «Медленные» digitalWrite не справляются с таким переключением, отчего изображение размазывается.

Смена «медленных» pinMode и digitalWrite на «быструю» работу с портами резко меняет ситуацию к лучшему.

❯ Управление яркостью

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

❯ Неожиданные глюки

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

❯ Библиотека для Arduino

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

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

При кажущейся простоте ПИУ оказался прибором, не менее интересным, что и МС6205.

По сравнению с цифровыми ГРИ или ВЛИ, проектов на подобных девайсах немного, но они всё же есть. На просторах удалось найти вот такой вот шикарнейший девайс. Индикатор очень круто выглядит и разбавляет уже приевшиеся проекты типа привычных «ИН-12 с синей подсветкой».

Такие дела.

Больше фото в источнике материала на Хабре. Увы, все фото не влезли (их действительно много), а именно в них вся суть и самое вкусное. Так же там элементы кода и прошивка :)

  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

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

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 25
[моё] Гаджеты Электроника СССР Timeweb Познавательно Техника Длиннопост
4
22
Timeweb.Cloud
Timeweb.Cloud
1 год назад
Лига Новых Технологий
Серия Технологии

Apple M1 — разбор с точки зрения аппаратной безопасности⁠⁠

  • Автор текста: Frazick

Давным-давно, в далёкой-далёкой яблочной компании зародилась идея создать собственный процессор для ноутбуков. И вот, спустя годы, Apple презентовала свой десктопный процессор M1.

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

В этой статье мы сосредоточимся на разборе безопасности процессора M1 от Apple. Компания всегда уделяла значительное внимание информационной безопасности своих устройств, особенно мобильных. Это не значит, что iPhone или iPad нельзя взломать. Нет, можно, конечно, вопрос лишь в цене. Просто цена взлома iOS существенно выше, чем взлома устройств на других ОС.

Но за всё приходится платить. И пользователи Apple платят сполна. Невозможно установить стороннее приложение, кроме как из AppStore, невозможно пользоваться NFC, кроме как через ApplePay, невозможно скачивать сторонние оформления иконок, шрифтов, клавиатур и т. д. Да даже бесполезный в большинстве случаев авиарежим и AirDrop нельзя убрать из панели быстрого доступа. Фактически — это непроницаемый железный занавес, который опустился от Штеттина на Балтике до Триеста на Адриатике.

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

Всё же, вернёмся к Apple M1. Что это такое? Фактически, это существенно улучшенный вариант 5-нм мобильного чипа A14 Bionic, который установлен в линейке смартфонов iPhone 12 и на двух iPad. Его мощность позволила Купертино поставить его в ноутбуки — сначала в MacBook Air, а затем в MacBook Pro — аж в 3-х версиях.

Apple M1 — это не только центральный процессор (CPU), это система из множества чипов, которые находятся под одним колпаком. То есть, система на чипе (system on the chip, SoC). Если в обычных процессорах от Intel и AMD стоит множество универсальных ядер, то в M1, как у наследника энергоэффективных мобильных чипов, сильно фрагментированы ядра и, соответственно, решаемые ими задачи.

Apple М1 — это:

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

  • Графический процессор GPU — работа с графикой, видео, изображениями и игры, конечно же.

  • Блок нейронной обработки (Neural processing unit, NPU) — машинное обучение и искусственный интеллект – зона ответственности данного чипа.

  • Обработчик цифровых сигналов (digital signal processor, DSP) — сложные математические вычисления. Выполняет более сложные математические функции, чем центральный процессор, включая декомпрессию музыкальных файлов.

  • Блок обработки изображений ISP — думаю, из расшифровки понятно, зачем он нужен.

  • Кодировщик видео (Video encoder/decoder) — аналогично.

  • Блок единой памяти (Unified memory) — позволяет модулям чипа взаимодействовать максимально быстро.

  • Блок безопасности (Secure Enclave) — самое интересное для нас место, скоро перейдём к нему.

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

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

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

❯ Secure Enclave — цитадель чипа M1

Secure Enclave — не новомодное изобретение. Его встраивают в чипы Apple уже давно — с 2013 года яблочные гаджеты постепенно обзаводились этим островком безопасности. Первыми устройствами с ним были iPhone 5S и iPad Air, а уже сейчас он находится на всех без исключения гаджетах Apple. Зачем он нужен и как он работает?

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

Secure Enclave это фактически компьютер в компьютере, а именно — выделенная защищенная подсистема. Она обеспечивает защиту вашим самым сокровенным тайнам (нет, не фоткам в iCloud) — код-паролю и биометрической информации, которая хранится в отдельном хранилище. Естественно, Secure Enclave шифрует и обычные данные на накопитель, но не так, как для код-пароля и биометрии. Работает он чуть менее, чем постоянно. Вы его используете каждый день, но не замечаете этого. Как он работает?

Приведу простой пример. Есть у нас приложение “Госуслуги”. В нём – куча разной полезной информации для вас и, что самое главное, о вас. Поэтому при настройке приложения оно вам крайне рекомендует задать пароль для входа. Но чтобы не вводить пароль каждый раз, его можно дополнить биометрией —Touch ID/Face ID.

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

Когда вы запускаете приложение, то оно просит вас провести аутентификацию. Touch ID/Face ID её проводит (заменяя ввод пароля), и вы получаете доступ к Госуслугам.

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

Концептуально безопасность Secure Enсlave построена на двух основных принципах.

Первый— изоляция Secure Enclave от основного процессора телефона. Это две параллельные системы, которые связаны между собой только защищенными каналами связи.

Второй — на Secure Enclave не хранится никакой информации о пользователе (он просто не имеет собственного хранилища). Эта система лишь контролирует поступление и извлечение информации, которая хранится в защищенном энергозависимом хранилище.

А вот как и с помощью чего происходит этот контроль я и предлагаю поговорить ниже. За основу взят материал про Secure Enclave, опубликованный на сайте службы поддержки Apple.

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

Схема Secure Enclave

Начнём с самого главного — сопроцессора процессора процессора (хе-хе). Он обеспечивает основную вычислительную мощность Secure Enclave, занимаясь управлением всех функций системы.

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

Модуль защиты памяти. Смотрите, сам Secure Enclave работает в выделенной области DRAM-памяти (т. е. оперативке). Когда вы запускаете устройство, загрузочное ПЗУ (постоянное запоминающее устройство — энергонезависимое хранилище, как CD-диск, грубо говоря, о нём ниже) генерирует случайный кратковременный ключ защиты памяти для модуля защиты памяти, с помощью которого происходит ваша аутентификация.

Когда Secure Enclave записывает информацию в отдельный блок памяти, модуль защиты зашифровывает выделенный блок. Чтобы получить доступ к зашифрованной информации, модуль защиты должен получить необходимый тег аутентификации, и тогда модуль производит расшифровку блока. Если же тег не совпадает, МЗП передаёт Secure Enclave сообщение об ошибке и дальнейшие операции останавливаются до перезагрузки системы.

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

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

Ещё одним важным элементом защиты является корневой криптографический ключ уникального идентификатора (UID). Это значение является уникальным для каждого устройства и не связано ни с какими другими ID на устройстве. Они генерируются генератором случайных чисел Secure Enclave на этапе производства, при этом процесс происходит исключительно в Анклаве. Это означает, что никто ни на каком этапе производства и продажи техники не может получить доступ к UID.

Модуль AES Secure Enclave. Это аппаратный блок, который выполняет симметричное дополнительное шифрование на основе шифра AES (один блок данных шифруется в другой посредством ключа шифрования).

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

Ключи, используемые AES SE, не видны даже загрузочному ПЗУ Secure Enclave, хоть он и может запрашивать операции по шифровке и дешифровке данных.

Модуль AES. Ага, кроме того, что выше, существует ещё и отдельный AES модуль. Как показано на схемке ниже, он не находится в составе Secure Enclave. Он заключен между энергонезависимой изолированной флеш-памятью NAND и основной системной памятью.

В момент загрузки sepOS (операционка Secure Enclave) создаёт с помощью генератора случайных чисел случайный кратковременный ключ. AES модуль передаёт этот ключ по выделенным проводам, что ограничивает доступ к модулю одним Secure Enclave.

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

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

Акселератор открытого ключа (PKA) — это ещё один аппаратный блок, но уже внутри Secure Enclave, который выполняет криптографические операции. В отличие от модуля AES выше его шифрование — асимметрично.

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

Чтобы было более понятно различие этих двух систем, разберём разницу между симметричным (AES) и асимметричным (PKA) шифрованием. Более подробно прочитайте в этой статье на Хабре.

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

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

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

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

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

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

В Secure Enclave используется оба этих принципах в схожих по своей сути задачах, но в разных модулях. Причина дублирования, в целом, очевидна — если ключ от модуля AES в Secure Enclave будет скомпрометирован, то им не получится воспользоваться для дальнейшего продвижения через модуль РКА.

Переходим к последним модулям Secure Enclave — шина I2C, защищенное энергонезависимое хранилище и защищенный нейронный модуль, который не представлен на схемах Анклава, так как его, с недавних пор, там тупо нет.

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

Шина I2C обеспечивает физическое соединение Secure Enclave с защищенным энергозависимым хранилищем с помощью двухканального соединения. Один провод отвечает за передачу данных, другой – за управление этим процессом. Само хранилище представляет собой, грубо говоря, CD-диск, на котором записана определенная информация.

Что там за информация? Там записаны корни всех ключей шифрования данных пользователей, UID, биометрия, данные Apple Pay и самое главное — значение код-пароля. Кроме того, там находится счетчик попыток входа и количество этих самых доступных попыток. По истечению этих попыток (допустим, 10 попыток на айфоне) происходит либо блокировка устройства, либо уничтожение всех данных, которые были защищены код-паролем пользователя.

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

Защищенный нейронный модуль. Он интегрирован в Neural Engine, но связан только с Secure Enclave. На смартфонах и планшетах с Face ID модуль преобразует двумерные изображения и карты глубины лица в математические данные. А они уже по этапу отправляются через Анклав в защищенное хранилище.

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

Поступление информации:

  1. В момент регистрации Face ID/Touch ID датчики сканируют вашу биометрию и направляют её в зашифрованном виде в Secure Enclave.

  2. Прежде чем попасть в Анклав, данные проходят через AES-модуль, который их шифрует.

  3. Зашифрованная вне Secure Enclave биометрия проходит уже через внутреннюю симметричную шифровку аналогичного AES-модуля.

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

  5. Наконец, идёт запись шаблона биометрии на защищенное энергонезависимое хранилище.

Извлечение информации, а вернее — сверка шаблона:

  1. В момент прохождения аутентификации Face ID/Touch ID датчики сканируют вашу биометрию и направляют её в зашифрованном виде в Secure Enclave.

  2. Прежде чем попасть в Анклав, данные проходят через AES-модуль, который их шифрует.

  3. Зашифрованная вне Secure Enclave биометрия проходит уже через внутреннюю симметричную шифровку аналогичного AES-модуля. И вот здесь момент, в котором я не уверен, — либо полученная биометрия сверяется сопроцессором Secure Enclave с шаблоном между AES модулем и РКА, либо она сверяется между РКА и защищенным хранилищем. Я больше склоняюсь ко второй версии.

  4. Защищенное хранилище по запросу РКА отправляет шаблон для сверки.

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

Шифровка обычной информации на накопитель:

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

T2 – это один из родителей M1 — по крайне мере, в сфере аппаратной безопасности.

  1. Мы нажимаем на кнопочку «Сохранить» сохраняя нашу красивую презентацию.

  2. Файл с презентацией отправляется в AES модуль вне Secure Enclave и проходит через симметричное шифрование.

  3. Для шифровки данных используется ключ из защищенного хранилища.

  4. Ваша презентация в зашифрованном виде записана на накопитель.

❯ Аппаратное отключение микрофона

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

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост

Схема реализации

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

После закрытия крышки или чехла проходит буквально 0,5 секунд и система отключает каналы передачи данных между микрофоном и ЦП, либо отключает один из каналов ввода микрофона, которые обеспечивают его работу. То есть, просто-напросто технически отключая микрофон от системы. Опять же, если ваше устройство было взломано — прослушать вас при закрытой книжке будет технически невозможно, так как физического контакта между микрофоном и системой нет.

❯ Резюмируя

Ну как-то так. В основе аппаратной безопасности чипа Apple M1 лежит Secure Enclave. Несмотря на кажущуюся сложность чипа, принцип его работы довольно… Понятен? Зашифрованная информация поступает в Анклав, проходит через ещё два уровня шифровки и записывается в защищенное хранилище. Для хранилища всех остальных данных применяется один уровень шифровки. Если уж совсем упрощать.

Разбирая каждый модуль отдельно, можно просто сдохнуть от количества различных терминов. Но если рассматривать общий принцип защиты информации в Secure Enclave, то можно понять, что Apple ничего сверхсложного не выдумывала.

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

Cписок источников:

  • Статья службы поддержки Apple о Secure Enclave;

  • Статья службы поддержки Apple о безопасности Face ID и Touch ID.

Apple M1 — разбор с точки зрения аппаратной безопасности Apple, Криптография, Процессор, Электроника, Гаджеты, Техника, Timeweb, Информационная безопасность, Познавательно, Длиннопост
  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

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

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 11
[моё] Apple Криптография Процессор Электроника Гаджеты Техника Timeweb Информационная безопасность Познавательно Длиннопост
4
55
Timeweb.Cloud
Timeweb.Cloud
1 год назад
TECHNO BROTHER
Серия Старое железо

Оживляем контроллер машиниста от ушедшего в историю электропоезда⁠⁠

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

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

И вот наконец в мои руки попал не просто какой-то контроллер, а очень примечательный экземпляр — от «концептуальной» электрички ЭМ2И, коих в наши дни уже не осталось.

Итак, в сегодняшней статье поговорим о том, как устроен такой контроллер и как его подключить. Традиционно будет много интересного.

❯ Суть такова


Так получилось, что ко мне в руки попал контроллер от старого электропоезда ЭМ2И. И, само собой, напрашивалось единственное верное решение — подключить его к Trainz или «Метрострою».

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Безусловно, кое-что всё же существует. Есть такая штука как Raildriver, которая даже нативно поддерживается в Trainz, однако в России оказалось реальнее достать настоящий контроллер, нежели её.

Немного про электропоезда ЭМ2И

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

ЭМ2И являются детищем более старых проектов — ЭМ1 и ЭМ2. Все эти поезда — глубокие модернизации куда более старых ЭР2. Серия была предназначена для эксплуатации на линии в Домодедово в качестве экспрессов.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Электропоезд обладал целым рядом нововведений — новые сцепные устройства, полупантографы, электронная система управления. Выпускались они на Московском локомотиворемонтном заводе, а запчасти для них поставляло некое ЗАО «Спецремонт».

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Увы, с самого начала история этих электричек пошла не в их пользу — уже на испытаниях выяснилось, что многие характеристики не соответствовали заявленным, а в конструкции имелось немало фатальных недостатков. Эксплуатировались необычные поезда совсем недолго, в первой половине нулевых, а большую часть своего существования они стояли в депо или на базах запаса и тихонечко гнили. Проект вышел крайне неоднозначным: стоили машины очень дорого (практически как новые ЭД4М), имели небольшой срок службы (ведь ходовая часть осталась от старых ЭРок), а также были крайне ненадёжными и неудобными в ремонте. В итоге от их использования довольно быстро отказались, а в 2019-2020 годах все машины (точнее, то, что от них осталось за долгие годы стояния на открытом воздухе и постепенного разграбления вандалами) были порезаны на металлолом.

Впрочем, многие (как и я) до сих пор жалеют, что не успели прокатиться на этом неудачном, но всё же весьма интересном МВПС.

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


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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

А вот и подопытный экземпляр. На нём две ручки — реверс и непосредственно управление. Также имеется тумблер.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Позиции.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Вид снизу. Видно сердце контроллера — кулачки. В нынешних электронных вагонах применяются бесконтактные контроллеры машиниста (БКМы), где вместо кулачков и контактных групп используются датчики (оптические или магнитные). Чуть позже я расскажу и про этот тип контроллеров, ну а пока что будем разбираться с нашим.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Разъём для связи девайса с внешним миром — DB37F. Закреплён он на обычном куске фанерки.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Наклейка того самого «Спецремонта».

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Вдалеке видно тот самый прижимной механизм.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Нужное усилие обеспечивается двумя мощными пружинами.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

По бокам находятся толстые стальные пластины, в которые вкручиваются стойки и вставляются валы. Из-за их толщины (десять миллиметров) скромный по размерам контроллер имеет весьма внушительную массу — чуть больше семи килограммов.

Кулачки


Контроллер внутри очень похож на командоаппарат.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост
Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Вот для примера положение кулачков в разных позициях ручки.

Реверс


Начнём, наверное, с самого простого — с ручки реверса.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

Вот положение этих двух деталей при нулевой позиции реверса.

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

А вот — когда включён реверс, а ручка повёрнута на ход или тормоз.

Распиновка


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

  1. Пятый кулачок (нормально разомкнутый контакт)

  2. Четвёртый кулачок (нормально разомкнутый контакт)

  3. Третий кулачок (нормально разомкнутый контакт)

  4. Второй кулачок (нормально разомкнутый контакт)

  5. Первый кулачок (нормально разомкнутый контакт)

  6. Третий кулачок (нормально замкнутый контакт)

  7. Второй кулачок (нормально замкнутый контакт)

  8. Назад

  9. Вперёд

  10. Ничего

  11. Вперёд

  12. Назад

  13. Второй кулачок (нормально замкнутый контакт)

  14. Третий кулачок (нормально замкнутый контакт)

  15. Первый кулачок (нормально разомкнутый контакт)

  16. Второй кулачок (нормально разомкнутый контакт)

  17. Третий кулачок (нормально разомкнутый контакт)

  18. Четвёртый кулачок (нормально разомкнутый контакт)

  19. Пятый кулачок (нормально разомкнутый контакт)

  20. Ничего

  21. Ничего

  22. Ничего

  23. Ничего

  24. Ничего

  25. Ничего

  26. Ничего

  27. Ничего

  28. ЗАП/ОТП

  29. ЗАП/ОТП

  30. Ничего

  31. Ничего

  32. Ничего

  33. Ничего

  34. Ничего

  35. Ничего

  36. Ничего

  37. Ничего


Далее берём мультиметр и выясняем, какие контакты в какой позиции замкнуты.

Далее объединяем всё в одну таблицу:

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост

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

Подключение к ПК


Для того, чтобы связать контроллер с компьютером, понадобится всего-ничего — плата на самом дешёвом МК с поддержкой USB HID в лице Raspberry Pico, вилка DB37 и немного проводков...

> Продолжение в источнике материала на Хабре. Увы, все фото не влезли (их действительно много), а именно в них вся суть и самое вкусное. Так же там элементы кода и прошивка :)

Оживляем контроллер машиниста от ушедшего в историю электропоезда Электроника, Поезд, Timeweb, Электричка, Познавательно, Электрика, Техника, Гаджеты, Длиннопост
  • Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.

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

  • Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.

Показать полностью 25
[моё] Электроника Поезд Timeweb Электричка Познавательно Электрика Техника Гаджеты Длиннопост
5
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии