Квм переключатель своими руками

Простой переключатель компьютерных консолей на транзисторе и реле (KVM Switch)

Если вы уже, длительное время пользуетесь персональным компьютером, то вам приходится периодически обновлять не только программное обеспечение, но и «железо», тоесть, сам компьютер. А что делать со старым? Особенно, если от него остается только системный блок (монитор «перебрался» к новому). Приобретенный десять лет назад «486DX33», который был тогда последним достижением техники, сейчас уже продать невозможно.

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

Устанавливать всю эту «архитектуру» на новый проблематично, — не хватает портов СОМ и LPT (в старом было три СОМ и два LPT), а с портами USB нового ничего из старой периферии работать не может. Вот и было решено сохранить два системных блока и две «мышки».

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

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

После продолжительных мучений с ним было решено сделать самодельный переключатель рабочих мест, но не на тайванском «галетнике”, контакты которого просто облезли, а на советстких реле РЭС-22, управляемый двумя кнопками.

На удивление, «Мaxtro» переключал все контакты разъемов клавиатуры и монитора, потому и в нем было так много контактных. На самом деле, для таких переключений достаточно семи контактных групп, потому что все «GND» можно соединить вместе, а питание клавиатуры коммутировать двумя диодами. Каждое РЭС-22 имеет по четыре контактные группы, поэтому, даже остается одна из них, которую можно использовать для управления самими реле (триггерный эффект реле).

Принципиальная схема

Схема сделана так, что она опознает включенный компьютер 2 по поступлению от него напряжения питания +5 V на клавиатуру. Если включить компьютер 2, то напряжение +5V поступит через конденсатор С2 на базу транзистора VT1, который откроется и включит реле.

Оно самоблокируется свободной контактной группой К1.4 и после окончания зарядки С2 останется включенным. В таком состоянии клавиатура и монитор переключатся на компьютер 2. В обесточенном состоянии клавиатура и монитор переключены на старый компьютер 1.

Рис. 1. Принципиальная схема коммутатора консолей.

Все детали собраны в железном корпусе от переключателя «Maxtro». «Мышки» используются отдельные для каждого из компьютеров. Питается переключатель от сетевого адаптера от неисправного принтера.

Проблема переключения принтера между двумя компьютерами решена иначе. Принтер (Samsung 1210) имеет два порта — LPT и USB. Порт LPT подключен к старому системному блоку, a USB — к новому.

Источник

IP KVM своими руками

Эта статья написана под впечатлением от другой — большое спасибо автору! В этой статье почти удалось сделать собственный IP KVM Switch, и это круто! Но объясню, почему почти. Да, там все работает как и написал автор… До момента перезагрузки в биос — там вся магия рассеивается и сколько не старайся, ничего не происходит.

Читайте также:  Муз инструмент для детей своими руками

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

Итак, что нам понадобится:

1. Плата видеозахвата обязательно с поддержкой UVC драйвера, вроде этой.Вариантов
полно на алиекспрессе и других китайских магазинах.

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

2. VGA to AV Конвертер:


Обратите внимание! Нужен именно VGA to AV, а не наоборот.

3. Arduino UNO, именно UNO, так как на ней есть чип Atmega16u2, он нас интересует в первую очередь. Вот он рядом с USB портом, так же бывают ардуины с чипом Atmega8u2 подойдут и с тем и с тем.

4. Ну и конечно Raspberry Pi, у меня был версии 2 b поэтому все написанное в этой статье актуально именно для него, но в целом думаю не должно возникнуть особых сложностей и с другими моделями малины.

Заливаем дистрибутив

Что ж вводные данные даны, пожалуй приступим.Я использовал дистрибутив 2015-05-05-raspbian-wheezy, вероятно это не принципиально, дальнейшие манипуляции должны подойти для любого дистрибутива основанного на Debian.

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

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

Передача видео

Проверяем определилась ли плата:

Должно выдать что-то вроде: /dev/video0.

Устанавливаем Motion, трансляцию захваченного изображения будем вести именно через него:

Редактируем конфиг автозапуска:

В строке start_motion_daemon ставим ‘yes’. Сохраняем изменения Ctrl + x, y, Enter.

Редактируем конфиг самого motion(а):

Меняем значения параметров как указано далее:

Параметр определяет запуск приложения в качестве службы:

Эти параметры определяют разрешение передаваемого изображения, смысла ставить большее разрешение нет, т.к. захват видео ограничен стандартами PAL или SECAM, разрешение коих 720х576. Это кстати досадный недостаток, но об этом позднее.

Частота захвата кадров:

Отключаем сохранение скриншотов:

Качество передачи изображения:

Частота передачи кадров:

Отмена ограничения на подключение с других ip

Сохраняем изменения Ctrl + x, y, Enter.

Ждем пару минут если все сделали правильно должен загореться светодиод на плате видео захвата.

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

Процесс пошел, ищем жертву для захвата сигнала с VGA порта, подключаем к порту “VGA IN” конвертера, а плату видеозахвата к “VIDEO OUT”. Должна получиться примерно такая картинка, не пугайтесь у меня плохой кабель поэтому изображение «двоит», пробовал с другим изображение было лучше, но разрешение не изменить. 720х576 это ограничение конвертера и платы видео захвата, которое при всем желании не преодолеть.

Что ж передавать изображение научились, осталось дело за малым — передать управление.

Передача управления

Для этого, как вы уже догадались, будем использовать ардуину. Выбор пал на Arduino UNO неспроста, там есть очень нужная для наших целей микросхема с названием Atmega16u2, только благодаря ей мне удалось заставить БИОС компьютера определить arduino как USB клавиатуру. По умолчанию в составе платы ардуино эта микросхема выполняет роль USB to Serial конвертера для заливки прошивки в микроконтроллер Atmega328p, большая прямоугольная микросхема на плате ардуино. По сути же Atmega16u2 является то же микроконтроллером, но с важным отличием, она способна напрямую работать с шиной USB. Atmega16u2, при наличии нужной прошивки, может эмулировать практически любое USB устройство. Понимаете к чему я веду? Мы прошьем это чудо инженерной мысли и заставим трудиться на благо общества.

Читайте также:  Костюм султана своими руками для взрослых

Прошивка Atmega16u2

На просторах интернета была найдена прошивка, которая превращает Atmega16u2 в USB клавиатуру принимающую команды, определенного вида, через Serial Port.

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

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

Сначала кнопки(галки) не активны, это нормально, подключаем ардуину к компьютеру и замыкаем – размыкаем два крайних контакта со стороны USB порта, RESET и GND.

В системе должно появиться новое устройство под названием, как ни странно, ATmega16u2 устанавливаем драйвер(в папке с программой), выбираем в программе flip вкладку «Settings» → «Communication» → «USB» → «open», кнопки должны стать активны. На всякий случай можно сделать бэкап прошивки, чтоб можно было все вернуть на место. В меню «File» нажимаем «Load HEX File», программа требовательна к путям, лучше всего положить файл прошивки в корень диска C:, выбираем нужный hex файл с прошивкой, проверяем стоят ли галки «Erase», «Program», «Verify» и нажимаем «Run». Отключаем — подключаем arduino и вуаля… Теперь мы больше не сможем загружать прошивки в ардуино через встроенный USB, зато получили отличную клавиатуру без кнопок.

Не переживайте по поводу прошивки arduino, прошивку можно будет загрузить из Arduino IDE через отдельный USB To TTL адаптер, хотя надо сказать, теперь это будет менее удобно.

Подключаем USB To TTL адаптер, например такой:

Нам понадобятся Белый, зеленый и черный контакты это RX, TX и GND соответственно, подключаем их к пинам с такими же обозначениями на ардуине, только наоборот RX к TX, а TX к RX. Красный контакт использовать не следует!

Подключаем USB To TTL к компьютеру, устанавливаем драйвера, в диспетчере устройств должен появиться новый COM Port. Открываем arduino IDE и выставляем: Плата — Arduino/Genuino Uno, Порт – наш новоиспеченный последовательный порт.

Приступаем к прошивке arduino

Добавим необходимую библиотеку в arduino IDE: Переходим по ссылке github.com/SFE-Chris/UNO-HIDKeyboard-Library нажимаем «Clone or download» → «Download ZIP». далее в arduino IDE выбираем вкладку «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку» и выбираем только что скачанный zip архив.

Подготовка закончена, переходим непосредственно к прошивке. Копируем мою писанину:

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

Читайте также:  Монтаж рольшторы своими руками

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

Финишная прямая

Открываем консоль на распберри и пишем:

Откроется меню настройки распберри, выбираем «Advanced Options» → «Serial» и выбираем «No».

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

Устанавливаем программу minicom.

Minicom — простенькая программа для работы с serial портом.

Задаем права на доступ к устройству, /dev/ttyAMA0 — это тот самый сериал порт.

Откроется меню программы, выбираем пункт «Serial port setup», откроется еще одно меню, выбираем «Serial Device» нажатием на клавишу A, прописываем /dev/ttyAMA0, нажимаем Enter, далее выбираем пункт Bps/Par/Bits под буквой E, появляется очередное меню нажимаем C и Q строчка Current: должна выглядеть вот так «9600 8N1» нажимаем Enter. Убедимся что в строчках F — Hardware Flow Control: и G — Software Flow Control: стоит No, в общем все должно быть как на скриншоте ниже, нажимаем Enter.

Сохраним эти настройки как настройки по умолчанию «Save setup as dfl» и закрываем «Exit from Minicom».

Подключение

Едем дальше, теперь у нас практически все готово, осталось только подключить ардуину к serial порту малины, вот как-то так:

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

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

Или хотя бы собрать делитель напряжения на резисторах.

Запуск

Все готово, можно начинать.

Проверяем все соединения, вкючаем raspberry pi, переходим в консоль малины, запускаем minicom. Сразу оговорюсь я подключался к малине через ssh, в качестве клиента использовал KiTTY(модифицированную версию PuTTY), это важно т.к. с другими терминалами значения передаваемых клавиш могут быть иными и соответственно нужно будет сделать поправку на ветер — поменять номер перехода switch case.

В общем передаю вам в руки как говорится «as is». Что ж на этом пожалуй закончу, самодельный IP KVM готов.

На последок опишу что получилось в сухом остатке.

Плюсы:

— Цена
— Устройство получилось относительно недорогим
— Raspberry Pi: примерно 2700руб.
— Arduino UNO: примерно 400руб.
— VGA to AV конвертер: примерно 700руб.
— Плата видеозахвата: 500руб.
— Итого: 4300руб.

— Тонкая настройка
Можно перехватывать практически любые комбинации и назначать на них практически любые клавиши вплоть до KEYBOARDPOWER и VOLUMEUP, кстати возможные значения можно посмотреть в заголовочном файле HIDKeyboard.h, а можно и добавить свои.

Минусы:

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

Источник

Оцените статью
Своими руками