Пролог

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

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

Поместить свои мысли на страницу хабра меня заставило следующее.

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

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

Предисловие

За время работы над проектом я насмотрелся на всевозможные варианты контроллеров — перчаток различной степени готовности и качества. Штук пять перчаток, не считая своей, я видел в живую и мог испытать. Несмотря на это, я уверен, что в комментариях мне смогут показать несколько моделей, которые появились за то время, что я «выпал из темы»…

Возможно, некоторые наблюдения и выводы, которые будут здесь описаны, могут показаться очевидны. Но, в своё время, они мне такими не казались.

Точно не помню как это случилось, но идея управлять каким‑либо устройством при помощи жестов поселилась в моей голове ещё во время учёбы в школе. Не исключено, что это было влиянием какого‑либо произведения поп‑культуры, но какого именно уже не упомнить... Тогда, благодаря увлечению электроникой и программированием, я смог начать воплощать эту задумку в жизнь. Самым очевидным решением мне показалось использовать перчатку, которая бы определяла положение пальцев, анализировала их и отправляла команды управления на исполнительное устройство. Так появился проект «перчатка‑джойстик», который я продолжил развивать в течение 4-х лет во время обучения в университете.

Изначально не было цели создавать продукт. Мне просто хотелось воплотить свою задумку в жизнь. В ходе развития проекта, он неизбежно (что мне кажется логичным и правильным) начал приобретать очертания коммерческого продукта. Но стать таковым так и не смог.

Перчатка-джойстик Мк1

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

На обоих макетных платах расположены микроконтроллеры ATmega8, тактируемые от кварцевого резонатора на 8МГц. Контроллер на запястье отвечает за обработку движения пальцев, он является ведомым. Контроллер на предплечье определяет смещение кисти относительно предплечья, он является ведущим. Связь между контроллерами осуществляется через SPI. Ведущий контроллер работает с матричной клавиатурой и знакосинтезирующим дисплеем WH1602B фирмы Winstar. Для связи с объектом управления используемся радиопровод. Точной модели не помню, но несущая там 433МГц. В него напрямую заводится TX от UART ведущего контроллера, а RX… а нету, связь через модуль только односторонняя.

Поскольку первичной задачей было играть в компьютер, то необходимо было реализовать нажатие определённых клавиш на клавиатуре. На приёмной стороне радиопровода располагалось устройство, которое подключается к компьютеру через USB и имитирует клавиатуру. Сделано одно было также на базе ATmega8 и платы USB клавиатуры… Я нащупал какие контакты отвечают за какие кнопки и просто коммутировал их при помощи транзисторов. Аж вспомнить страшно! А что делать, время такое было Первые тесты — просто восторг! Оно работает, да ещё и вполне неплохо.
Можно было управлять виртуальным танком, да и после тренировок начало получаться не хуже, чем с обычной клавиатуры.

Перчатка-джойстик Мк2

Вторая версия появилась через год. Новая перчатка стала гораздо эргономичнее. За основу была взята тканевая перчатка для фитнеса. Для размещения электронного блока на предплечье был использован бандаж для фиксации растяжений.

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

Элемент питания был заменён на литиевый аккумулятор. Макетные платы с электроникой пришивались к тканевой основе.

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

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

Эта модификация очень быстро получила дальнейшее развитие. Стало очевидно, что использовать рычаги для определения положения кисти относительно предплечья — крайне неудобное решение и лучше использовать инерциальные датчики для определения ориентации руки в пространстве.

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

Блок ведущего контроллера был переработан. Установлен модуль акселерометра — гироскопа MPU6050. А для связи с объектом управления теперь использовался Bluetooth модуль HC-05. На тот момент, по моим меркам, это была передавая разработка. Управлять теперь можно было радиоуправляемой машинкой!

Примечательно что я не использовал прямое подключение машинки к перчатке по Bluetooth. Перчатка связывалась с блоком ретранслятора, а он, в свою очередь, уже связывался с машинкой по стандартному радиоканалу для моделей. Блок ретранслятора имел переключатель для принудительного разрыва связи перчатки с объектом управления. Это на случай, если что‑то пойдёт не так. Данное решение сослужило хорошую службу во многих ситуациях, когда я отдавал перчатку на тест‑драйв не самым аккуратным пользователям...

Дальше я искал различные объекты управления перчаткой: радиоуправляемая машинка, лодка, настольный манипулятор, летательные аппараты. Для последнего пункта была разработана следующая версия перчатки.

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

Если обобщить мои изыскания, то можно сделать выводы о следующих тенденциях. Думаю, что спустя пару лет они не сильно изменились.

Существует 5 основных подходов к построению таких перчаток. Речь идёт, в первую очередь, о принципах считывания положения пальцев, который определяет общие концепции в дизайне перчатки.

1. Инерциальные датчики ориентации на каждом пальце и запястье. Яркий представитель — проект Gest. Здесь в каждом колечке расположен акселерометр, гироскоп и магнетометр. Колечки подключаются к основному электронному блоку через гибкие провода. Примечательно, что колечки размещаются на средних фалангах пальцев, что позволяет сохранить работоспособность руки для «обычных» операций. Создатели проекта этого не заявляли, но мне кажется, что в перспективе в каждом колечке можно разместить вибромотор для тактильной обратной связи.

2. Концепция, которую выбрал я для своих перчаток — «рычажный считыватель». Движения пальцев передаются на датчик угла поворота через систему рычагов. Наиболее интересный представитель — перчатки Dexmo. Выглядит просто огромной! По заверениям разработчиков вес изделия 300 грамм. Рычаги крепятся к ногтевым фалангам пальцев из‑за чего длина рычагов вынужденно сделана большой. Главная особенность — система тактильной обратной связи. Маленький мотор‑редуктор на каждом пальце, который создаёт усилие, не позволяющее сжать кулак, если виртуальный палец натыкается на препятствие. Эта модель адаптирована для использования совместно с технологиями AR/VR. Хотя на старте разработчики также говорили о перчатке, как об универсальном контроллере для взаимодействия с электронными устройствами.

3. Тряпичная перчатка c гибкими датчиками. Студенческих проектов с такой конфигурацией очень много. Потому что это просто и быстро. Как правило, используются резисторы изгиба. Есть и самодельные оптические датчики. А также экзотические датчики BendLabs на не совсем понятных принципах. Как мне кажется, концепция, где используются тканевые основы не самая удачная, чуть позже объясню почему.

4. Контроллеры, которые считывают мышечную активность неинвазивным методом. Это не совсем перчатки, а скорее браслеты, которые крепятся на предплечье (ведь именно там расположены группы мышц, управляющие работой кисти и пальцев). Яркий представитель — браслет MYO компании Thalmic Labs. Здесь конечно много вопросов с расшифровкой сигналов, которые считываются миографом. Дело не простое. Распознавание жестов — да. Точное определение положения пальцев — крайне сомнительно. А что с обратной связью?

5. Положение пальцев можно считывать и при помощи компьютерного зрения. Этот вариант избавляет от всех проблем, связанных с размещением чего‑либо на руре. Главный недостаток — камера должна смотреть на руку под определённым углом, значит рука должна находится в определённой позиции перед камерой. А вопросов с тактильной обратной связью ещё больше.

Вопрос тактильной обратной связи мне кажется очень важным, особенно если речь идёт о применении для приложений AR/VR. Мы, в конце концов, привыкли нажимать на кнопки, переключать тумблеры, даже сенсорный смартфон вибрирует при наборе текста. И в этом смысле, устройства, непосредственно расположенные на пальцах предоставляют больше простора для инженерной мысли.


Перчатка‑джойстик Мк3

Эта модель специально разработана для управления летательными аппаратами.

В качестве основы снова использовалась тканевая перчатка для фитнеса. Механические элементы теперь были напечатаны на 3D принтере из ABS пластика и тщательно обработаны шкуркой и ацетоном. Пластиковые детали также прикреплялись к перчатке путём пришивания. Главное новшество — отсутствие модуля на предплечье. Аккумулятор, радиомодуль и акселерометр размещались непосредственно на перчатке.

В связи с этим электронный блок претерпел ряд изменений. Для микроконтроллера и драйверов вибромоторов была изготовлена печатная плата. Новый микроконтроллер ATmega32 с тактовой частотой 20МГц. Вот это мощь! Думал я тогда… Для обработки показаний акселерометра и гироскопа был использован комплементарный фильтр. Частота опроса датчиков составляла целых 200Гц.

В то время я увлёкся идеей сенсорного замещения. Поэтому количество вибромоторов для обратной связи было увеличено до 8 штук. Пять крепилось на каждом пальце и ещё три в разных местах перчатки. Идея была в том, чтобы передавать телеметрию от квадрокоптера на перчатку. Микроконтроллер изменял скорость вращения вибромоторов (амплитуду и частоту вибрации) в зависимости от углов наклона аппарата по различным осям. Сделано это для того чтобы можно было «почувствовать» в каком положении сейчас находится объект управления.

Наклоны руки управляли креном и тангажом, большой палец отвечал за акселератор, а указательный палец и мизинец регулировали ось рысканья. Незатейливая схема управления работала отлично!

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

Во‑первых, какой бы ни был тонкий материал, под синтетикой кожа всегда потеет. Это не приятно. И уже после нескольких сеансов работы с изделием её захочется постирать. Можете сколько угодно рассказывать про свои классные велосипедные перчатки, которые настолько тонкие, что ткань просвечивает как стекло и рука в ней не потеет, или про перчатки для фитнеса, изготовленные из натуральных материалов. Я вам не поверю!

Во‑вторых, любая ткань изнашивается. И чем чаще вы будете запихивать свою руку в перчатку, растягивая её в разных местах в процессе запихивания, тем быстрее ваша тканевая основа придёт в негодность.

В‑третьих, вы сделали перчатку, идеально сидящую на вашей руке, и захотели её продать. Но на другого человека она просто не налезает, а с хрупкой руки девушки спадает сама по себе. И что теперь? Выпускать целую линейку с разными размерами? Привет кроссовкам с автоматической шнуровкой!

Решение у этой проблемы одно — долой тканевую основу!

Перчатка-джойстик Мк4

Новая перчатка была полностью напечатана на 3D принтере из ABS пластика. А крепление рычагов к пальцам производилось при помощи эргономичных колечек с фиксацией на магнитиках. Таким образом, колечки можно легко менять, чтобы перчатка удобно сидела на руке любого размера.

Модуль для считывания положения большого пальца крепился на разъёме типа IDC10. Этот же разъём использовался для программирования перчатки. Но главное — он был размещён с левой и правой стороны, таким образом, перчатку можно было надевать на левую или правую руку! При этом, устройство могло само определить с какой стороны подключен разъём и соответственно понять на какой руке находится.

В этой модели решено было отказаться от вибромоторов обратной связи в пользу общей эргономики устройства. В следующей версии я планировал вернуть их на свои места... Микроконтроллер ATmega328P, модуль Bluetooth HC-05 и модуль акселерометра MPU6050 также были размещён на печатной плате, изготовленной по технологии ЛУТ. Эта модель обзавелась первым полноценным корпусом и уже стала похожа на какой‑никакой продукт, который можно упаковать и попробовать продать.

Перчатка-джойстик Мк4+

В следующей версии был переработан дизайн изделия а также обновлено программное обеспечение перчатки. Новый корпус из ABS пластика с прозрачной крышкой и подсветкой из голубых светодиодов… это показалось мне интересным решением!

Электронный блок не изменил состав: ATmega328, MPU6050, HC-05, печатная плата изготовленная лазерным утюгом и маленький литиевый аккумулятор. Аккумулятор, к слову, обеспечивал автономность 1,5–2 часа, а если выключить подсветку, то время удваивалось. Большой переработке подверглось программное обеспечение перчатки. Всё было переписано практически заново. Для ПК была написана утилита, которая позволяет использовать перчатку как в качестве мыши или джойстика в видеоиграх.

Заключение

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

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

С уверенностью говорю, что опыт этой разработки был для меня крайне полезен!

Эпилог

Дождь. Вечер. Копаюсь в архивах со старыми проектами. Натыкаюсь на исходники программного обеспечения перчаток. Перчатка Мк4... Тогда всё было написано в WinAVR, шилось через AVRDUDE при помощи самодельного программатора... на новом компьютере уже не установлены эти программы... да, было время... Решил открыть проект в AVR Studio... то есть, он уже много лет Microchip Studio... Как эта прошивка вообще могла работать? Пробую переписать всё на новый лад, оптимизировать, где можно. Зачем? Наверно просто ностальгия... Заливаю в перчатку. Работает! Удивительно? Работает лучше чем прежде... Теперь‑то я уж обойдусь без всяких железных костылей для подключения к ПК. Открываю Visual Studio. Консольное приложение на плюсах собранное из разных проектов. Обновлённая «перчатка — Bluetooth мышь»! Снова можно поиграть в игрушки... Сколько лет прошло? Надо бы записать всё, пока не забыл.

Комментарии (19)


  1. VRyabchevsky
    14.05.2024 09:30
    +2

    Супер проект, хорошо, что не забросил:)

    делал подобную перчатку и так же для управления ПК, правда осталось только видео на ютубе


    1. MechanikArtem Автор
      14.05.2024 09:30

      Выглядит здорово :)
      А что это за датчики на пальцах в трубочках?


      1. VRyabchevsky
        14.05.2024 09:30
        +1

        Подстроечные резисторы СП3-38. В прорезь фиксировал небольшую пластину и весь этот «датчик угла» в термоусадку. Датчик располагал между двух колец с прорезью и позиционировал соосно суставу. От резисторов вывел трехжильные провода и на АЦП подал


  1. eimrine
    14.05.2024 09:30

    Подскажите как практик: насколько реально из вашего проекта построить клавиатуру которая не будет требовать ни стола ни необходимости на нее смотреть? Всего-то нужно по 3 клавиши на каждый из палец (верх/середина/низ по принципу ортолинейной клавиатуры) но для указательных по 6 клавиш (вверх-вправо, середина-вправо, низ-вправо, верх-влево, середина-влево, низ-влево). Понравилась идея присоединяться к ногтевому суставу, но нужно как-то артикулировать разницу между "клавишами" чтобы в момент "клика" (выпад вверх от руки, выпад посредине к руке, выпад вниз к руке) точно знать где граница между срединой и вехом/низом (словно колесико мышки которое двигается неравномерно). Надеюсь, понятно сформулировал хореографию печатания.


    1. MechanikArtem Автор
      14.05.2024 09:30

      Мысль в принцепи понятна. Думаю реализовать можно. В принцепи в динамике движения пальцев тоже можно отслеживать и распознавать эти движения.


      1. eimrine
        14.05.2024 09:30

        распознавать

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

        Известны ли вам проекты перчаток на чём-то вроде галетных переключателей? В самом крайнем случае придётся где-то найти достаточное количество работающих колёсиков мышки.

        Ещё вопрос - экспериментировали ли вы с пружинами или с намеренным затруднением движения пальцев любым способом как способ обратной связи? Не знаю как в ваших задачах, а в моей задаче надо чтобы незанятые пальцы рук всегда были в положении "посредине", как джойстик.


        1. MechanikArtem Автор
          14.05.2024 09:30

          Нет, такие проекты мне не известны. Мне кажется такой "аналоговый" подход к задаче сделает устройство крайне узкоспециализированным...
          Я экспериментировал только с виброоткликом, но упомянутый в статье Dexmo как раз реализует подход с "затруднением движения пальцев".


          1. eimrine
            14.05.2024 09:30

            Ну я больше хочу в своем воображаемом программно-аппаратном комплексе такой вид затруднения движения перчатки, как у кухонного выключателя света. Получается цепочка из 2х последовательных выключателей на мизинцы, безымянные и средние; и из 3х - на указательные согласно идеи по 3 клавиши на обычные пальцы и по 6 клавиш на указательные. Большие пальцы пока не обсуждаю так как там совсем другая анатомия.

            Узкоспециализированность у меня дальше некуда - представьте себе набор текста во время прогулки. Из устройств ввода разрешено иметь клавиатуру которая не будет стеснять ходьбу. Из устройств вывода разрешено иметь только голосовой помощник. Программная часть реализована без меня во многих ОС и программах - люди с проблемами зрения подтвердят. Осталось реализовать соответствующую перчатку и тогда при желании получится быть в активном онлайне с полностью свободным визуальным каналом восприятия.


  1. pokrovskiy_199
    14.05.2024 09:30
    +1

    Уникально придумали! Молодцы. Интересно было бы опробовать такой прибор.


  1. blood_develop
    14.05.2024 09:30
    +1

    Take my money!


  1. MaFrance351
    14.05.2024 09:30
    +1

    Классный проект.

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

    Вариант с рычагами и потенциометрами нам по какой-то там причине не понравился (кажется, как раз из-за размеров), поэтому у нас была перчатка с пупырышками, на которую были наклеены те самые упомянутые в статье датчики изгиба, от которых шёл жгут из тоненького МГТФ (для предотвращения переламывания уложенный так, чтобы при движении пальцев нагрузка шла не на изгиб, а на кручение) к МК, передававшему данные на комп. Собрано всё было из грязи и палок, скетч для Arduino Micro (написанный уже без моего участия) вызвал бы слёзы даже у начинающего микроконтроллерщика, но железка вполне успешно работала и даже успела засветиться на какой-то конференции старшеклассников. И, уверен, до сих пор где-то лежит в его щедрых закромах Родины вместе с другим компьютерным хламом.

    Но там тоже были свои нюансы, например, несмотря на то, что у этих датчиков заявлен ресурс в миллион сгибаний-разгибаний, при частом изгибе малого радиуса (что и происходит при их использовании в перчатке) они довольно быстро мрут. К тому же эти датчики стоят довольно негуманных денег. Вариант с трубочками и фоторезисторами тоже пробовали, но у них свой минус в том, что промежуточные состояния, отличные от "согнут" или "разогнут" отслеживать тяжело. Ещё интереса ради попробовали вот такую конструкцию. В ходе опытов извели целую гору антистатических пакетов (благо их, как у типичного электронщика, у меня было много), выяснили, что популярные серые прозрачные не подойдут (нужны только чёрные, у которых внутренний слой проводящий, к слову говоря, подходят тоже далеко не все), равно как и розовые (те вообще не в тему - они на другом принципе работают, там сам материал очень плохо генерирует на себе статику, ничего проводящего, на чём основана данная приблуда, там нет) и ещё какие-то. Получили экземпляр, по надёжности в наших условиях сопоставимый с заводскими датчиками. А потом наступил одиннадцатый класс, я ещё глубже ударился в электронику, тогда как мой товарищ окончательно с ней завязал...


    1. MechanikArtem Автор
      14.05.2024 09:30

      Да, на счёт малого ресурса резисторов изгиба при сгибании малым радиусом это верно подмечено.


      1. MaFrance351
        14.05.2024 09:30

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

        Интересно, с чем это связано.


  1. Lagovi
    14.05.2024 09:30

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


    1. MechanikArtem Автор
      14.05.2024 09:30

      В своё время я сделал пару перчаток Мк3 на заказ для управления квадрокоптерами.
      Тогда я вообще не думал, что можно как-то продвинуться через краудфандинг. Ну а сейчас... время перчатки этой прошло :)


    1. vvzvlad
      14.05.2024 09:30

      Почему не закинуть на кикстартер?

      Шел 2024 год, а айтишники на хабре все еще верили что что-то можно “закинуть на кикстартер"


  1. Wesha
    14.05.2024 09:30

    Было такое слово,

    и слово было P5.


    1. MechanikArtem Автор
      14.05.2024 09:30

      Думаю, согласно классификации типов перчаток из статьи эта относится к 5 типу :)


  1. Solexid
    14.05.2024 09:30
    +1

    Я просто оставлю это здесь https://www.youtube.com/watch?v=2yF-SJcg3zQ