После одного из стримов мне в личку постучался подписчик с весьма необычной просьбой. Из-за ДЦП он не может пользоваться классическими средствами ввода для компьютера. С клавиатурой, к слову, вопрос он решил. Продвигает проект специальной клавиатуры, которая позволяет нажимать клавиши поштучно. Подробнее с проектом можно ознакомится по ссылке: http://www.newkeyboard.ru/. А вот с управлением курсором все сложнее. В операционных системах давно уже встроены различные надстройки, упрощающие работу за компьютером людям с ограниченными возможностями, однако их нужно ещё суметь включить. А на этапе установки системы они вообще недоступны. Просьба заключалась в следующем: переделать пульт от моторизированного инвалидного кресла в компьютерную мышь. Пульт этот свою основную функцию (управление движением) выполнял плохо и был заменен. Поэтому вопроса сохранения оригинальной функции не стояло. Можно заниматься вандализмом без угрызений совести.
Пульт состоит из джойстика да 10 кнопок. Внешне вполне стандартная штука и от пульта для какого-нибудь погрузчика или же башенного крана отличается только надписями. Нашел документацию на стик, подключил его и кнопки к STM32, за вечер накидал прошивку. Изначально меня просили сделать функции нажатия на левую кнопку мыши, правую кнопку и удержание левой для перетаскивания файлов или же выделения текста. От себя добавил ещё клик колесиком и прокрутку. Собрал все в корпус, проверил, отправил владельцу. Сейчас он пользуется устройством, доволен.
Подробно останавливаться на переделке не буду, так как повторить будет проблематично. А вот продолжение этой истории уже можно расписать…
Ещё до получения посылки с пультом возник вопрос относительно изготовления подобных устройств с нуля. Первым делом пошел искать заводские варианты. Сама идея управлением курсором джойстиком не нова. Такие решения уже давно существуют на рынке, но стоят… Очень много. Неоправданно много. Вот пара примеров.
SimplyWorks Joystick. Подключается по USB. Стоит 25 тысяч рублей. Можно за смешные 5 тысяч рублей купить USB приемник и использовать контроллер, как беспроводной.
Компьютерный «Роллер», немного отличается принцип управления. Это трекболл. По сути, перевернутая шариковая мышь. Стоит 13 тысяч рублей.
Обратился в «Комплексный центр социального обслуживания населения» с вопросом о подобных устройствах. Мне было интересно пощупать существующие решения. Как выяснилось, щупать просто нечего. Что и не удивительно, если посмотреть на цены. А за что тут платить не особо понятно.
Я уже давно думал над сборкой аркадного джойстика для игр. Все комплектующие давно лежали в корзине Aliexpress. И они отлично подходят под задачу. Стоят не дорого, выглядят неплохо и по прочностным характеристикам подходят, так как должны выдерживать удары разочарованных геймеров после проигрыша раунда в Mortal Kombat.
Все необходимое было заказано с Китая за вполне адекватные деньги.
- Аркадный стик — 550 руб.
- Комплект кнопок — 175 руб.
- Отладочная плата с STM32F103C8T6 — 175 руб.
- Провода, разъемы — 100 рублей.
Открытыми оставались вопросы относительно корпуса: дизайн и материалы. Форма пульта от кресла показалась вполне подходящей. Это вертикально расположенный стик и наклонная плоскость с кнопками.
Думал использовать фанеру. Даже собрался сделать чертежи, но слишком уж сложный процесс изготовления получался в голове. Да и само устройство будет выглядеть монструозным. А вот 3D печать на начальных этапах отбрасывал. Всегда немного страшно печатать большие детали. Этот страх остался от первого принтера и его капризов.
Накидал в Tinkercad модельку, распечатал, примерил. Получилось неплохо. На скриншоте представлена вторая версия. И, думаю, не последняя.
Конфигурация кнопок весьма странная. К сожалению, не симметричная, что может быть проблемой для левшей. Но это вопрос вполне решаемый на этапе печати. Для удобства сборки устройства часть с кнопками выполнена отдельно. Перед печатью её достаточно отзеркалить.
Основная кнопка мыши для пользователя — левая. Она нажимается чаще всего. Игроков в Dota2 не берем в расчет. Так что есть смысл сделать её больше остальных. И, так уж совпало в моем случае, менее жесткой. Правая и средняя кнопки находятся рядом. Внизу же расположены кнопки прокрутки (поворот колесика).
Теперь поговорим об управлении курсором. Аркадный стик является цифровым. Это значит, что нельзя узнать насколько сильно его отклонили от центрального положения. Можно узнать только в какое из 8 направлений. Так что управление будет практически таким же, как с клавиатуры, когда скорость курсора постепенно увеличивается. Чем дольше — тем быстрее.
Не знаю в плюсы это записывать или же в минусы, но стик издает характерные щелчки при срабатывании. Для пользователя это скорее всего плюс, а вот для окружающих… Не такой уж он и громкий, на самом деле.
На данном этапе развития это все, что имеется. Устройство работает в любой операционной системе без какой либо настройки. Просто подключить, подождать несколько секунд и работать. В том числе и на планшете с Android.
Теперь поговорим о планах. Есть два пути для развития. По первому могу идти сам. Это предоставление пользователю возможности настраивать устройство. А вот для второго пути нужна обратная связь с пользователями. Тест-драйв прототипа с подробным отзывом об удобстве дизайна, желаемых функциях и обнаруженных проблемах.
Жду от читателей конструктивной критики проекта и идей. Разумеется, он будет открытым. Все исходные тексты, модели, список компонентов и прочее будут опубликованы для возможности повторения конструкции.
Здравствуйте. Я, тот самый подписчик ДЦПешка, от всего сердца благодарю автора стать за то, что он согласился переделать джойстик от электроколяски в мышь. Честно говоря, только после получения этого девайса, я полезь смотреть если что-то подобное (ну так вышло) и просто упал в осадок от цен! Слов приличных не было! Самый приличный вопрос, который крутился в голове – «За что?».
Мышка из джойстика, которой я пользуюсь, в разы получилась функциональней. Я очень рад, что автор статьи не остановился на этом придумал, как развить эту идею, для меня это стало приятным сюрпризом. Здравствуйте. Я от всего сердца благодарю автора стать за то, что он согласился переделать джойстик от электроколяски в мышь. Честно говоря, только после получения этого девайса, я полезь смотреть если что-то подобное (ну так вышло) и просто упал в осадок от цен! Слов приличных не было! Самый приличный вопрос, который крутился в голове – «За что?».
Мышка из джойстика, которой я пользуюсь, в разы получилась функциональней. Я очень рад, что автор статьи не остановился на этом придумал, как развить эту идею, для меня это стало приятным сюрпризом. от всего сердца благодарю автора статьи за то, что он согласился переделать джойстик от электроколяски в мышь. Честно говоря, только после получения этого девайса, я полезь смотреть если что-то подобное (ну так вышло) и просто упал в осадок от цен! Слов приличных не было! Самый приличный вопрос, который крутился в голове – «За что?».
Мышка из джойстика, которой я пользуюсь, в разы получилась функциональней. Я очень рад, что автор статьи не остановился на этом придумал, как развить эту идею, для меня это стало приятным сюрпризом.
P.S. искренне верю, что этот проект будет развиваться и поможешь многим людям легче пользоваться компьютерами. Даже название придумал: МУВ — Мышка Уникальных Возможностей!
Управление с джойстика. Лучше подходит для аркад, файтингов, игр от 3-го лица, но не так удобно для шутеров. Хотя последнее поколение геймеров играет с джойстика не хуже, чем с клавиатуры и мыши. Ограниченное количество конфигураций устройств. Например, если разработка ведётся под Xbox One или PS4, то нужно знать особенности только этих устройств, а значит и тестировать будет проще. В отличии от различных конфигураций ПК или целого «зоопарка» устройств на Android.
Речь тут совсем о другом. Это не для игр устройство. А для взаимодействия с компьютером.
Я вам на хабре ответил относительно Custom hid, здесь продублирую.Я могу помочь в решении проблемы с custom hid (если она ещё есть). Поскольку проект открытый — бесплатно.
Добрый день! Проблема не сколько в Custom HID, сколько в композитном девайсе. У меня устройство корректно видится в диспетчере, мышиный функционал работает корректно (но он и однонаправленный так то), а вот обмен с Custom HID не работает. Только чтение идет. А запись падает с ошибкой.
Дескриптор можете кинуть и обработку нулевой конечной точки?Если устройство составное — надо разбирать, к какому интерфейсу идёт обращение. Включите отладку для USB, особенно, чтобы видеть отклонённые (STALL) setup-пакеты.Напишите мне на почту, указанную в сообщении, я скину исходник на эту тему.
Продолжая относительно компьютерных манипуляторов для людей с ограниченными физическими возможностями, я для другого проекта делал устройство HID+CDC на основе VL53L0x и VL53L1x (оптодатчики расстояния) — на малых расстояниях — менее полуметра, они измеряют расстояние с точностью полсантиметра или лучше. По аналогии, ими можно реализовывать перемещение мышиного курсора без кисти руки, любой частью тела, которая может двигаться в двух направлениях (покачиванием головы, предплечья)…
Уведомление: Мышь для людей с ограниченными возможностями. Настройка под пользователя. — Блог айтишника