Usb кабель с выключателем сделать самому – как подключить своими руками, как работают и можно ли установить в машине, как сделать ЮСБ устройство в стене дома, а также схемы подсоединения

USB-педаль для переключения между компьютерами / Habr

Статья из блога самоделкина с ником РедькаМышь

Вот она, во всей своей красе:

Файлы STL:


Зачем я её сделал


Я одновременно использую несколько ноутбуков. На них запущены Linux, OpenBSD, macOS и ChromeOS. Я предпочитаю работать на клавиатуре вслепую и использую навигацию при помощи клавиш. Мне нужно было переключаться между ноутбуками.

И мне хотелось делать это, не убирая руки с клавиатуры. Что же делать? Мастерить!

Список запчастей

  • 3 порта USB-A (мама).
  • 2 кабеля USB-A (папа-папа).
  • 1 кабель удлинения USB.
  • 1 фиксирующийся выключатель 4PDT.
  • Монтажный провод.
  • Припой.
  • Термоусадка.
  • Мешок пластика для 3D-принтера.

Схема


«Схема» мало что делает – это просто четыре провода, между которыми идёт переключение. Принцип работы USB не используется.

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

Немного об USB


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

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

Для USB rev. 1.1 и 2 провода расположены так:

  • 5V (питание)
  • D+ (приемник)
  • D- (передатчик)
  • GND (земля)

В теории мне нужны только провода D+ и D-, но тогда пришлось бы придумывать отдельное питание клавиатуры. И это было гораздо сложнее, чем просто найти переключатель, поддерживающий четыре провода.

О переключателях


Переключатели – это крутая штука. Я больше не буду воспринимать их, как нечто само собой разумеющееся. Представляя себе переключатель, я обычно думал, что он размыкает контур или замыкает, как показано на диаграмме с сайта electronicshub.org:

Но мне было нужно не только это. Мне нужно было переключать по четыре провода для USB-клавиатуры за раз. И мне не нужно было отключать ни один из четырёх проводов. Мне нужно было, чтобы:

  • 4 провода были подключены к компьютеру А.
  • Когда я нажимаю на переключатель, эти четыре провода подключаются к компьютеру Б.
  • После повторного нажатия они вновь подключаются к компьютеру А.

Невозможно? Ничуть.

Такой переключатель, который представлял себе я (типа выключателя света в комнате) известен, как один полюс, одно направление [Single Pole, Single Throw — SPST].

Вот диаграмма для него с sparkfun.com:

А мне был нужен переключатель 4PDT – четыре полюса (4 провода), два направления (переключение между двумя положениями), как на следующей диаграмме:

Оказалось, что это очень распространённый вариант, используемый… в гитарных педалях! (помните, я говорил, что не хочу снимать руки с клавиатуры).

Вот такой переключатель я заказал с mammothelectronics.com:

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

Прототип: баночка из-под паштета


Да. Для прототипа я взял баночку из-под паштета и прорезал в ней отверстия. И, да – это термоклей держит USB-порты.

Вот. Так. Всё. Просто.

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

Правильная пайка


В процессе изготовления этой схемы пострадало несметное количество USB-портов. Но в процессе я здорово прокачал навыки пайки. В процессе припайки крохотных проводов к крохотным контактам очень помогла система «третья рука» с магнитными захватами.

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

Да, да. Очень «профессионально».

Моделирование корпуса для 3D-печати


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

Разъёмы для USB-портов


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

Я сначала пробовал использовать их для удержания порта в разъёме – на следующем фото их видно, с обеих сторон от контактов:

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

Ну ничего, можно просто сделать там сужение, и это не повторится.

Главный корпус


Я думал схитрить и оставить корпус открытым снизу. Чтобы можно было менять эти дешёвые USB-порты, когда они сломаются (а я ожидал, что это будет происходить постоянно). Однако это решение оказалось плохим; открытые провода – прекрасный способ разломать пайку или уничтожить контакты.

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

  • Удержит ли она на месте порты и переключатель.
  • Достаточно ли она высокая, чтобы в неё поместились провода от переключателя.

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

У модели справа есть отверстия для винтов. И вот я подготовился к проектированию и печати дна корпуса.

Днище


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

Если у вас в руках молоток…


Хотел бы я, чтобы у меня осталась видеозапись моих попыток 3D-моделирования. Если вам знакомы CAD-системы, то из текста вы поймёте, насколько неуклюжий подход я избрал.

Я выдавил всё дно из главного корпуса, а потом сделал вырез в 0,5 мм толщиной, чтобы отделить от него дно. Это было криво, но результат дало. Вообще, мои навыки 3D-моделирования можно описать так:

  • Рисовать прямоугольники и круги.
  • Надавить/вытянуть.

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

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

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

Добавляем поддержку USB-портов


Места для портов получились слишком высокими, туда могла попасть грязь. Не думаю, что она повредит, однако грязь – это плохо (педаль стоит на полу, а у нас кошки).

Я добавил столбиков, входящих в слоты, чтобы они держали USB-порты, и закрывали отверстия.

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

Более эргономичная крышка для кнопки


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

Заключение


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

Среди потенциальных улучшений могут быть:

  • Резиновая прокладка снизу.
  • Светодиодная подсветка, обозначающая, какая сторона сейчас работает.
  • Гидравлика.
  • Сабвуфер.

Как сделать витой usb-кабель из обычного

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

Понадобится


Для превращения прямого кабеля в витой нужно немного:
  • Стандартный кабель lightning для зарядки по usb.
  • Карандаш или железная ручка для намотки кабеля.
  • Бытовой фен для прогрева.

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

Изготовление витого кабеля из обычного


Сначала я намотал кабель на обычную шариковую ручку, и это была моя первая ошибка. Оказалось, что пластик ручки под действием температуры фена начинает плавиться. Сняв кабель с ручки, я увидел, что он растягивается, и витым практически не становится. Точнее он немного завился, но это было не то, чего я ожидал от своей работы. Причина была, возможно, в недолгом прогреве из-за того, что начал плавиться пластик ручки.
Для второй попытки заменил пластиковую ручку на металлический Паркер, и после десятиминутного нагрева снял кабель для проверки результата прогрева. Эффект оказался почти таким же и снова неудовлетворительным.
Как сделать витой usb-кабель из обычного
На третий раз повторил все в точности так, как и во втором эксперименте, но изменил момент снятия кабеля с ручки. После прогрева в течение 10 минут дал кабелю полностью остыть, и только после этого снял его с ручки!
Третий эксперимент, наконец-то, дал положительный результат. И хотя кабель получился не таким уж сильно пружинистым, как тот, который можно купить в магазине, но поставленной цели я все же добился.
Как сделать витой usb-кабель из обычного
Что можно сказать по данной работе по превращению прямого usb кабеля в витой? Думаю, что 10 минут работы для повышения комфорта, это не такой уж большой труд. Не нужно бегать в поисках нового кабеля, если можно переделать тот, что имеется.
Проверка кабеля на работоспособность после всех этих манипуляций показала, что он исправно продолжает выполнять свою функцию! Но теперь он стал намного удобнее!
Как сделать витой usb-кабель из обычного

Смотрите видео


РадиоКот :: Выключатель для шины USB

РадиоКот >Схемы >Цифровые устройства >Примочки к ПК >

Выключатель для шины USB

Тем, кто занимается разработкой USB-устройств, наверняка приходится при отладке многократно вынимать и вновь вставлять в разъем USB кабель, соединяющий устройство с компьютером. Это приводит к износу контактов USB разъемов устройств и кабеля. Было-бы гораздо удобнее включать и отключать устройство посредством кнопки.  Механические выключатели в данном случае неприменимы по нескольким причинам, в частности из-за неизбежного дребезга их контактов.

К такому-же выводу пришел ранее и Райнер Ройш — автор статьи об аналогичном по функционированию выключателе, опубликованной в журнале Elektor Electronics №7-8 (2009), стр. 64. Однако, в его выключателе управление сигнальными шинами USB осуществлялось низкочастотными ключами серии 4000 и управление их включением и отключением производилось двумя раздельными механическими переключателями. Кроме того, сигнальные шины USB подключались к устройству одновременно с питанием. Как известно, при подключении USB устройства геометрия разъема USB обеспечивает подачу питания на него до подключения сигнальных шин. Отключение устройства производится в обратном порядке. Для некоторых USB устройств это может быть существенно.   

С учетом указанных недостатков оригинальный выключатель был переработан под иную элементную базу и логику работы. Включение и отключение устройства к шине USB в предлагаемом выключателе производится одной кнопкой с индикацией состояния светодиодом. Подключение сигнальных шин D+ и D- по нажатии кнопки происходит с задержкой около 200 мсек после подачи питания на потребитель. При повторном нажатии на кнопку отключение питания производится с той-же задержкой после отключения шин D+ и D-. Это позволяет иммитировать процесс подключения/отключения USB устройства к шине без его физического удаления/вставки в разъем. Для исключения коммутации подключенного USB устройства при случайном нажатии на кнопку введена задержка на время около 3 секунд. Таким образом, для коммутации USB устройства кнопка должна удерживаться в нажатом состоянии несколько секунд. Я пользуюсь описанным здесь выключателем на протяжении уже более 2 лет и не раз мысленно благодарил Райнера за его идею.

Выключатель соединяется с компьютером (или хабом) через USB кабель, подключаемый к разъему J1 типа USB-B. Ведомые USB устройства подключаются к нему через разъем J2 типа USB-A.  Сигнальные шины D+ и D- коммутируются электронными ключами U1 и U2, а питание — МОП транзистором Q1. Последний не нагреваясь коммутирует нагрузку до 1А. Работа при больших токах не проверялась, т.к. стандартом USB предполаается подключение устройств потребляющих не более 500 мА.

Логика работы устройства обеспечивается микроконтроллером (МК) U3, который помимо упомянутых выше функций устраняет влияние дребезга контактов кнопки. Кнопка подключена к входу МК через подтягивающий резистор внутри МК. При ожидании нажатия кнопки МК переводится в спящий режим, что минимизирует токопотребление устройства. Резисторы R1 и R2 обеспечивают отключение ведомого устройства от шины USB после подачи питания на схему вплоть до того, как МК инициализируется и установит напряжения логической 1 и нуля на выводах 1 и 3, соответственно. Полоса пропускания сигнальных ключей U1 и U2 достаточна для работы подключаемого USB устройства в режиме Full Speed (скорость обмена данными до 12 Мбит/сек).

Выключатель собран на печатной плате, установленной в корпус 1551H фирмы Hammond. Файл печатной платы для системы Eagle прилагается. Первым делом на плате следует устанавливить МК и запрограммировать его внутрисхемно, временно подпаяв провода от программатора к дорожкам печатной платы. На плате имеются 3 проволочные перемычки, показанные синим цветом в файле платы. Программа МК написана на языке ассемблера и отлажена в системе MPLAB, которую можно скачать с сайта www.microchip.com . Исхoдный текст программы и загрузочный HEX файл прилагаются.

 

Файлы:
Исходный текст программы + HEX
Файл платы для Eagle

Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?

Делаем розетку с USB

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

Изготовление розетки с USB выходом


Для начала нужно найти USB розетку. Я возьму переходник и отрежу от него.
Делаем розетку с USB
Разберу разъем и вот она — будущая USB розетка.
Делаем розетку с USB
Я буду устанавливать разъем рядом с телефонными розетками, потому что тут есть место. Вы можете выбрать и другой вариант. Прикладываем разъем, обводим карандашом.
Делаем розетку с USB
Делаем розетку с USB
Далее дисковой мини пилой выпиливаем отверстие, делая припуск внутрь отверстия, чтобы гнездо не проваливалось внутрь. Это можно сделать и раскаленной на огне плоской отверткой. Или иным способом.
Делаем розетку с USB
Делаем розетку с USB
Вставляем разъем USB. Надеюсь вы не переборщили и все подошло как надо. Будет здорово, если входит плотно и не болтается.
Делаем розетку с USB
С обратной стороны фиксируем горячим клеем. Держаться должно все надежно.
Делаем розетку с USB
Берем ненужное зарядное устройство на 5 В. Желательно с нагрузочной способностью от одного Ампера. И разбираем его.
Делаем розетку с USB
Вытаскиваем плату зарядника.
Делаем розетку с USB
Отпаиваем от нее провода. Два сетевых и два пятивольтовых.
Делаем розетку с USB
Подключаем к нашей розетке с USB выходом.
Делаем розетку с USB
Припаиваем провода к USB. Плюс к плюсу, минус к минусу. Будьте внимательны — не перепутайте.
Делаем розетку с USB
Припаиваем сетевые, их желательно взять потолще.
Делаем розетку с USB
Плату, со стороны выхода контактов, обильно поливаем горячим клеем и приклеиваем к самому корпусу розетки. Горячий клей не проводит электричество и никаких замыканий быть не может.
Делаем розетку с USB
Делаем розетку с USB
Подключаем сетевые провода. Чтобы блок питания не работал 24 часа в сутки, я выделил под него одну клавишу выключателя. Подключаем к розетке последовательно с ней.
Делаем розетку с USB
Делаем розетку с USB

Результат


Готовая розетка с USB выходом. Все выглядит так как буд-то так и продавалось. Меня это конечно же радует.
Делаем розетку с USB

Проверка работы


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

Смотрите видео

Кабель USB (22AWG) кабель питания 1.5 м., с выключателем для Raspberry Pi 2

­
Микро-обзор кабеля micro-USB.
­

Попалась на глаза пара кабелей micro-USB (о втором в следующем микро-обзоре) с выключателями питания.
Продавец их позиционирует, скопирую оригинал так как перевод таких характеристик мне трудно дается, «USB To Micro USB With ON/OFF Switch Cable Charger For Raspberry Pi Android».
Мне же такой шнурок нужен при ремонтах и отладке всяких изготовленных мной штучек. Бывает неудобно втыкать/вытыкать разъем, проще щелкнуть переключателем и готово.

Технические характеристики с сайта продавца:


• материал оболочки: ПВХ
• материал жил: медь
• количество жил: 2
• максимальный диаметр кабеля: 3.5 мм.
• сечение жил: 0.3 mm²
• сертификация продукции: RoHS
• длина: 1.5 (м)
• совместимость: Raspberry PI и Banana Pi
• разъемы: USB A type to Micro USB B type

Доставка, упаковка


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


Сам кабель


Кабель у нас USB A to Micro USB B с выключателем.

Длина шнурка полтора метра, диаметр 3,5 мм.

Подсмотрев сечение заявленного провода AWG22 в 0,326 мм² и подставив данные в калькулятор, получаем расчетные 1,5 ампера.

Что меня вполне устраивает. Но на что способен кабель реально?

Проверим в деле


А в деле он как-то не очень…
С одного конца подаем 5 вольт, другой конец нагружаем на самопальную нагрузку.
При нагрузке в 1 ампер, напряжение падает до 4,54 вольта. При нагрузке в 1,5 ампера напряжение просело до 4,24 вольта.

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

Выводы


Плюсы:
— Кабель почти укладывается в мои потребности, более ампера при наладке пока не было необходимости подключать. Попользую пока не сдохнет.
— Есть тумблёр. :0)
Минусы:
— Нас в очередной раз надули. Возможно с сечением провода все в порядке, ну нет у меня микрометра, по тому и не потрошил. Но тогда нас обманули с материалом жил. Видимо там далеко не медь.
— Кабель жесткий, думаю проживет недолго.
— Цена в 3 бакса за неизвестно что, дороговато.
Брать не советую.
Всем удачных покупок!!!

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Дешевая USB кнопка для PC / Habr

Идея — запускать скриптик по нажатию физической кнопки, подключенной к компьютеру.

кнопка

Варианты:

  • Arduino nano — 1400 р (ориг), 300 р (не ориг). (плюсы: можно навесить много кнопок на 1 usb порт; минусы: надо паять + понять как она работает и на компьютере придется держать постоянно программу, которая будет ждать нажатия кнопки)
  • USBbutton — 780 р (плюсы: все красиво оформлено и сделано; минусы: высокая цена и она win-only)
  • U-HID Nano — 1150 р (плюсы: есть софт; минусы: высокаяя цена + необходимо паять)
  • Usb устройство (почти любое) — 0 — 100 р (плюсы: почти 0 себестоимость, не надо программировать; минусы: linux, возможная пайка, повреждение usb кабеля)


Все эксперименты я проводил на Raspberry PI с debian на борту (точнее прошивка raspbmc).
Для реализации подойдет любой дистрибутив, испльзующий udev для отслеживания системных устройств.

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

Делаем кнопку

Схема работы кнопки проста до безобразия
важное замечание по схеме подключения: см P.S.101 в конце статьи

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

Я разобрал старую клавиатуру и добыл из нее

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

Проверка работоспособности кнопки:

Кратчайшая теория udev

Процесс udevd отслеживает подключение/отключение девайса и создает файл устройства в директории /dev/ (совсем образное объяснение, для любителей подробностей смотри ссылки в конце статьи)
Во время подключения устройств udevd проверяет список правил в директории /etc/udev/rules.d/
Правила могут жить как и в одном файле так и в нескольких.
Создадим файл и добавим правило:
pi@raspbmc:~$ cat /etc/udev/rules.d/20-usb_button.rules
ATTRS{name}=="LITEON Technology USB Multimedia Keyboard", ATTRS{phys}=="usb-bcm2708_usb-1.2/input0", ACTION=="add", RUN+="/bin/sh /home/pi/usb.sh"

в debian нет необходимсто перезапускать udev после изменения правил, все происходит автоматически.

Это правило выполняется только когда соблюдаются все условия:

ATTRS{name}==«LITEON Technology USB Multimedia Keyboard» (имя подключенного устройства совпадает)
ATTRS{phys}==«usb-bcm2708_usb-1.2/input0» (устройство подключено в конкретный USB порт. Мне это необходимо, тк использую 2 кнопки, сделанные из одинаковых клавиатур)
ACTION==«add» (правило работает только когда устройство тольок что добавлено, есть еще параметр «remove«. Если не указать Action, то скрипт будет постоянно запускаться, пока подключено устройство)
RUN+=»/bin/sh /home/pi/usb.sh» (собственно наш скрипт, который запускается по нажатию кнопки, без /bin/sh так и не запустился, также см P.S.01 ниже)

Список атрибутов можно узнать следующим образом:

pi@raspbmc:~$ udevadm info -a -p $(udevadm info -q path -n /dev/input/by-path/platform-bcm2708_usb-usb-0\:1.2\:1.0-event-kbd)

  looking at device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input107/event0':
    KERNEL=="event0"
    SUBSYSTEM=="input"
    DRIVER==""

  looking at parent device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input107':
    KERNELS=="input107"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{name}=="LITEON Technology USB Multimedia Keyboard"
    ATTRS{phys}=="usb-bcm2708_usb-1.2/input0"
    ATTRS{uniq}==""
    ATTRS{properties}=="0"
....

где /dev/input/by-path/platform-bcm2708_usb-usb-0\:1.2\:1.0-event-kbd — адрес устройства

адрес устройства в системе можно узнать в момент подключения устройства:

pi@raspbmc:~$ udevadm monitor --env |grep DEVLINKS
DEVLINKS=/dev/input/by-id/usb-LITEON_Technology_USB_Multimedia_Keyboard-event-kbd /dev/input/by-path/platform-bcm2708_usb-usb-0:1.2:1.0-event-kbd

для дебага я использовал правило:

SUBSYSTEM=="usb", ATTRS{ID_MODEL_ID}=="c312", SYMLINK+="ABC"

и проверял создался ли симлинк устройства /dev/ABC
Итог

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

стоимость:
старая клавиатура — 0р
кнопка — 10р
корпус — 0 р

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

P.S.00 про мой корпус для кнопки.
Обезьяна на пружине и если надавить на голову, то обезьяна давит хвостом кнопку, что и приводит к замыканию цепи
P.S.01 Наткнулся на интересный баг и не смог забороть: скрипт указанный в правиле запускается 2 раза. Может кто подскажет?
P.S.10 Кнопку необходимо держать около 2х секунд, так как необходимо дождаться инициализации устройства в системе
P.S.11 Если решите повторить проект с какими либо измененими, настоятельно рекомендую хотя бы пролистать список литературы
P.S.100 Скрипт на python для работы с udev github.com/bockro/misc usb_checker.py
P.S.101 Важное замечание от Blangel
Вы сделали замыкание-размыкание провода +5 В у USB, однако, Data лучше бы тоже замыкать/размыкать.
Давайте вспомним историю — зачем в USB-коннекторе сделаны удлиненными контакты +5 В и GND?
Во-первых, чтоб USB-устройство успело сделать программный сброс и быть готовым к получению и отправке данных.
Но есть и во-вторых — старые компьютеры (а особенно веселые материнки времени Pentium 4 на ICH5) грешат плохой реализацией USB-шины, в итоге есть, что комп зависнет или перезагрузится.
А еще бывают сильно дешевые глючные китайские устройства с похожим эффектом и расчетом на подключение только через USB-коннектор.
Так что оптимальнее было бы замыкать и размыкать 3 контакта — +5 В и Data ± (причем питание замыкать до данных). Сделать это можно, например, с помощью 2 советских выключателей, которые ставились в торшер, только у одного надо кнопку подпилить на 3-5 мм…
В вашем случае можно и не делать, но хотя бы упомянуть про это в статье надо, а то среди комментариев я ничего подобного не заметил.
Ссылки

Спасибо, что дочитали до конца.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *