Подключаем старую венгерскую клавиатуру Videoton по USB
Не знаю откуда она у меня взялась и зачем, но при очередной уборке на даче и спотыкания об эту доску который раз встал вопрос — выкинуть ее нафиг, или все-таки запустить зверушку и потом выкинуть?
Videoton VDN 51521 (TYP: 52501)
По всей видимости, от какого-то венгерского терминала Videoton. Весу, надо сказать, она немалого и кнопки нажимаются так же, как и в IBM Model M — мягко, приятно, с легким щелчком. Если я правильно понял, то клавиатура — на датчиках Холла, а может быть и нет, да и не особо важно. Разрыв не затуманенного БК'шками 0010–01 мозга начинается при внимательном взгляде на раскладку клавиатуры — русская тут привычная ЙЦУКЕН, а вот английская — фонетическая JCUKEN, что лично меня сперва поставило в ступор. Для набора какой-либо простой команды, типа DIR, скорость печати упала примерно до одного символа в пол-минуты. Потом я конечно понял чит — произносить про себя английское слово, в мозгу его транслитирировать, и уже как-бы печатать его по-русски ориентируясь на русские буквы — тогда скорость печати немного возрастает. Вообщем, забавная штука и пора бы уже её подключать к компу. Гугл про распиновку разъема конечно ничего не знает, ровно как и не знает от какого конкретно она терминала, поэтому вскрываем и смотрим кишочки:
Без верхней крышкиПровод уходящий на разъем
Хорошо, что без всяких микропроцессоров, просто стандартная логика, значит не надо подключать логический анализатор. То, что там параллельный, а не последовательный интерфейс, было понятно с самого начала, по количеству контактов в разъеме. Значит, срисовываем на глаз приблизительное место соединения кабеля с клавой:
Приблизительная схема
После чего всё становится ясно и понятно как белый день. Перебираем строки и столбцы, если клавиша нажата в /BST получаем низкий уровень. Нужно придумать какое-то устройство, которое переберет все строки/столбцы и выдаст нам коды нажатой клавиши для составления таблички скан-кодов клавиш. Самое быстрое здесь — откопать комп с LPT портом, нарисовать по быстрому на дельфях формочку, в которой отображается кей-код клавиши и составить с помощью этой временной конструкции примерно такую табличку:
#define VDN_BREAK 0x01
#define VDN_ESC 0x59
#define VDN_OFFLINE 0x41
#define VDN_ONLINE 0x11
#define VDN_MPON 0x19
#define VDN_PAR 0x21
#define VDN_ROLL 0x29
...skip...
Закапываем обратно комп с LPT и дельфями туда, где взяли. Берем какой-нибудь микроконтроллер STM32 с USB-device на борту и какую-нибудь чистую плату, с посадочным местом для этого микроконтроллера. Вкуриваем немного мануал по этому STM32, находим у него ноги, которые толерантны к 5V TTL логике, их и используем для подключения к нашей пяти-вольтовой клавиатуре. Далее паяем контроллер на плату, колхозим что-нибудь с питанием для микроконтроллера. Да, например, с помощью обычного линейного стабилизатора 3.3V, не долго думая. Соединяем все небольшим количеством МГТФ, немного вкуриваем про дескрипторы HID-устройств, рисуем в CubeMX ножки и сразу включаем USB. Затем чуть-чуть разбавляем говнокод, сгенерированный CubeMX, своим говнокодом, и включаем конструкцию:
Вон на той белой платке stm32 перебирает строки/столбцы
Вот и всё, получили стандартную USB-клавиатуру с интересной английской раскладкой, винтажным внешним видом, мягким ходом клавиш и прикольными щелчками:
Можно поставить на рабочее место и попросить кого-нибудь подретактировать какой-то текст — реакция бесценна. Правда не особо придумал, на что в USB клавиатуре забиндить кнопки типа OFF LINE, ON LINE, MP ON, PAR, ROLL, DPLX, SEND, VAL DUP и тд, но, но это уже совсем другая история ©