В данной статье речь пойдет о проектировании оборудования, упрощающего работу за компьютером.
Предыстория моего небольшого проекта связана, совершенно неожиданно, со Спектрумами, Apple 2 и другой ретрокомпьютерной техникой.
Есть такое хобби - ковыряться во всяких старых вещах.
Плюс сделайте это в прямом эфире на YouTube. Коллективный разум помогает исправить ситуацию.
После одного из стримов подписчик обратился с очень необычной просьбой.
Его зовут Александр и у него ДЦП.
Соответственно, ему сложно работать на компьютере.
И есть желание работать, что не может не радовать.
Проблему работы с клавиатурой он решил самостоятельно довольно давно и в данный момент пытается разработать ваш собственный небольшой проект .
Если в двух словах, то это накладка на клавиатуру, которая не позволяет одновременно нажимать несколько клавиш.
Решение простое, но очень эффективное.
Вернемся к запросу.
Она была довольно странной.
Нам нужно попробовать переделать сломанный пульт для моторизованного кресла, чтобы он управлял курсором.
Внешний вид пульта до модификации (хотя после он выглядит так же) Пока доставляли посылку, я бегло изучил рынок.
Цены на такие устройства несколько завышены.
И это несмотря на внешнюю примитивность решений.
Джойстик SimplyWorks Я видел их всего два: палку (25к руб.
) и трекбол (13к руб.
).
Трекбол – вообще стандартная вещь.
Разница лишь в форме корпуса, где вместо дизайна сделали упор на прочность.
Вариант с палкой мне при первом просмотре тоже показался крайне примитивным, но, как оказалось позже, были использованы некоторые решения для упрощения взаимодействия.
А именно, кнопки были утоплены и имели форму конуса.
В этом случае человек касается пальцем относительно большой площади и по этому конусу «скатывается» к самой кнопке.
Я попыталась обратиться в центр социальной поддержки, чтобы опробовать такие устройства, но, увы, мне отказали.
В наших краях их просто нет. Тут и появились первые мысли о разработке своей версии мышки.
Но пока поговорим об улучшениях.
Пульт дистанционного управления моторизованным креслом очень похож на пульт дистанционного управления небольшим вилочным погрузчиком.
Десяток кнопок, лампочки и джойстик.
Стик оказался аналоговым, позволяющим узнать угол отклонения от центрального положения.
Довольно полезная функция, но дорогая.
Ради совместимости с корпусом пришлось оставить оригинальную плату, но все кнопки пришлось «оторвать» от схемы.
Что скрыто от глаз Всякие ардуино-костыли с последовательным портом и софтом для преобразования команд в движение — не вариант. Нам нужно сделать это правильно, USB HID. Это позволит использовать устройство без предварительной настройки в операционной системе, используя стандартный драйвер.
В том числе и на планшете Android. Да даже в UEFI запустится.
Справедливости ради, этот вариант можно сделать и на Ардуино, но с аппаратными доработками (три резистора, два стабилитрона).
Никто не мешает вам общаться через USB, что вполне успешно делают те же usbasp (программатор AVR) и digispark (отладочная плата).
Но есть более интересный вариант: микроконтроллер STM32F103C8T6. А на макетной плате уже есть все необходимое.
Это были те времена, когда их было легко достать и недорого.
За полные 15 минут (из них 10 я скачал и установил среду разработки) был кликнут проект, который уже правильно определился компьютером.
Но пока ничего полезного я не сделал.
Процесс отладки на макетной плате В этой статье я не буду вдаваться в технические подробности с примерами кода.
Как нибудь в другой раз.
Поэтому мы пропускаем процесс отладки кода.
Скажу только, что в первую очередь я отладил работу загрузчика (через USB), чтобы в случае обнаружения владельцем устройства ошибки, можно было бы исправить ее удаленно.
Ну и вход в загрузчик осуществлялся не нажатием аккорда кнопок при подключении USB-кабеля, а простым длительным нажатием одной из кнопок (10 секунд).
Теперь расскажу, как в моей голове сформировалась картина развития проекта.
Вам нужен дешевый, прочный и, в идеале, ремонтопригодный продукт, изготовленный из доступных комплектующих.
Подходящие комплектующие были найдены очень быстро.
Здесь нам помогают производители комплектующих для игровых автоматов.
Все видели в магазинах автоматы с игрушками? Именно поэтому эти устройства могут выдерживать удары.
(один или два.
) обиделись игроки, когда коготь снова все уронил.
Эти джойстики и кнопки — идеальное решение! Подходит по всем критериям.
Останется только заказать пару комплектов деталей и, пока он в пути, придумать кузов.
Джойстики от игровых автоматов представляют собой 4 микропереключателя, которые нажимаются при отклонении стика.
У нас максимум 8 направлений.
Я предложил «заказчику» опробовать такое дискретное управление на своем устройстве (я переключал режимы).
Если в аналоговом режиме скорость движения курсора зависела от угла отклонения от центрального положения, то в дискретном режиме она зависела от времени.
Отзывы были положительными.
Не знаю, отнести это к плюсу или к минусу, но стик при активации издает характерные щелчки.
Для пользователя это, скорее всего, плюс, но для окружающих.
Не так уж и громко, на самом деле.
Тело, на самом деле, по-прежнему является проблемой.
И я не говорю о дизайне.
Из чего это сделано? Были мысли о фанере для прототипов и гибке металла для «серийного» образца.
Но это уже похоже на «Создание себе трудностей и героическая борьба с ними».
У меня просто был страх перед 3D-печатью больших объектов.
В начале пути DIY я ударился головой о стену принтером ANET A8. Сейчас всё уже отлажено, особенности знаем.
И появился принтер посерьёзнее.
В общем, я начал проектировать корпус в Tinkercad. Создан по образцу пульта для моторизованного кресла: вертикально расположенный джойстик и кнопки на наклонной поверхности.
Процесс печати Мне вообще не понравилось расположение кнопок на пульте от кресла.
Если на основном месте работы они использовались относительно редко, то мышь следует нажимать постоянно.
Какова основная функция мыши, кроме перемещения курсора? Щелчок левой кнопкой мыши.
Это означает, что мы делаем это больше, чем другие.
Сколько кнопок вам нужно? Левое, правое, колесо.
Кстати, заводские устройства имеют три кнопки.
Но есть и колесо прокрутки.
Представляете, сколько времени нужно, чтобы подвести курсор к полосе прокрутки, нажать на переместить и вернуть курсор обратно? Много.
Итак делаем еще две дополнительные кнопки.
Это не сильно увеличит конечную стоимость устройства, но вполне может повысить комфорт.
Тело разделено на две части.
Основная причина, конечно.
установка комплектующих и техническое обслуживание.
Должен быть свободный доступ к начинке.
Но разделение было выбрано таким образом, чтобы при минимуме времени и ресурсов можно было экспериментировать с расположением кнопок.
Вполне вероятно, что мое представление об удобстве будет отличаться от тех, для кого ведется разработка.
Окончательный вид прототипа выглядит следующим образом.
Схемы и печатной платы пока нет. Все упирается в МГТФ.
Да и стыдно код показывать, но ссылка на репозиторий Я все равно оставлю это.
Есть момент внезапности почти рекламная интеграция .
На конференции «Свободное программное обеспечение в высшей школе», которая проходила в июне 2021 года в городе Переславле-Залесском (ИПС им.
А.
К.
Айламазяна РАН), я нашел заинтересованных людей, которым один из экземпляров устройства достался на тестирование.
.
Посещать конференции чрезвычайно полезно.
Новые знакомства и вообще непонятно, в каком направлении пойдет дискуссия в перерывах между докладами.
Запись моего доклада на этой конференции (и не только моего, и не только этой конференции) можно посмотреть по адресу http://0x1.tv/ .
Разумеется, необходимо озвучить примерную стоимость устройства.
- Аркадный джойстик - 600 руб.
- Набор пуговиц - 200 руб.
- Макетная плата с STM32F103C8T6 - Я даже не хочу смотреть на текущую цену.
2021, хватит.
- Провода, разъемы – 200 руб.
- 20 часов печати на принтере
Прототип работает, но все настройки на данный момент строго определены.
И это необходимо исправить.
И, на самом деле, настроек не так уж и мало.
От изменения функций клавиш до тонкой настройки скорости курсора (ограничение максимальной скорости, сброс скорости при смене направления, ускорение.
).
Все это нужно прописать в приложении на компьютере и сохранить в самом устройстве.
Соответственно, мышь должна вырасти в составное USB-устройство, состоящее как минимум из двух: мыши и Custom HID для управления.
Возможно, стоит добавить режим джойстика.
Форма вполне подходящая, и развлечься иногда хочется каждому.
Конечно, идеи и конструктивная критика в комментариях приветствуются.
Теги: #Программирование микроконтроллеров #Компьютерная техника #здоровье #stm32 #3D принтеры #Гаджеты #usb #инвалиды #спрятали #мышь.
манипулятор