Mouse Track — виртуальность становится реальнее



Статья №2
Статья №3

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

Проект «Arduino»

Все началось с того, что я узнал о проекте «Arduino». «Arduino» — это аппаратная вычислительная платформа, основными компонентами которой являются простая плата ввода/вывода и среда разработки на языке Processing/Wiring. Arduino может использоваться как для создания автономных интерактивных объектов, так и подключаться к программному обеспечению, выполняемому на компьютере (например,Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider). — говорит нам википедия. Немного объясню. По сути, Arduino — это отладочная плата на базе микроконтроллеров фирмы Atmel. Конечно, купить платку ардуино намного дороже, чем купить микроконтроллер (далее МК) и сделать отладочную плату самому. Но, в этом проекте есть один большой плюс (думаю, за этот плюс стоить заплатить) для больших новичков в программировании, который упрощает процесс написание программ и прошивки МК — это среда разработки Arduino IDE, которая включает в себя основные библиотеки для работы с периферийными устройствами МК. Язык разработки Wiring — это тот же С++, только с библиотеками и функциями для работы с МК (стандартные функции языка, конечно же, доступны).

Итак, мне стало интересно и я заказал себе отладочную плату на базе МК Atmega 1280. А позже и две маленькие платки на базе МК Atmega 328. Но сейчас не об этом. Попробовав свои силы в небольших «проектах», я решил сделать что-то действительно интересное. А интересно было сделать мышь — перчатку.

Акселерометр и идея перчатки

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

Идея такова: на перчатке расположено устройство с 5ю кнопками и акселерометром. Данные передаются МК-ом в компьютер по компорту (моя плата ардуино подключается по mini-usb, то есть ком порт реализован на шине usb при помощи микросхемы-конвертера FTDI, поэтому компьютер видит ардуино как ком порт), программа на компьютере обрабатывает принятые данные и действует в зависимости от них. Перемещение курсора я решил реализовать при помощи веб-камеры и светодиода на перчатке, так как с акселерометром не получилось бы. Свободно распространяемая программа FreeTrack позволяет это реализовать. Вкратце, это свободно распорстраняемая программа, которая обрабатывает видео с веб-камеры и получает данные о расположении светодиода (или нескольких светодиодов) в пространстве. Программа предназначена для трэкинга в -авиа, -авто симуляторах, шутерах и так далее. Имеет функцию «эмулировать мышь», которой я и воспользовался.

Посетив местный магазин радиотоваров я купил 5 микропереключателей («микрики» в народе) от мышек и принялся разрабатывать плату (платформу, которую позже помещу на перчатку), на которой должны быть расположены:
1) плата микроконтроллера;
2) 5 «микриков»;
3) светодиод инфракрасный;
4) акселерометр.

Акселерометр нужно было «посадить» на собственную платку (его размеры составляют 6х6 мм), что я с папой и сделал. По мануалу к акселерометру я вычертил плату в программе «Sprint Layout» и по технологии изготовления печатных плат в домашних условиях (при помощи лазерного принтера и утюга) мы с папой вытравили эту маленькую платку дома. После чего я подключил его к МК и экспериментировал с ним.

Arduino nano: описание

Микроконтроллер
ATmega328
Рабочее напряжение (логическая уровень)
5 В
Входное напряжение (рекомендуемое)
7-12 В
Входное напряжение (предельное)
6-20 В
Аналоговый ввод
8 линий. АЦП 10-ти битный
Цифровые Входы/Выходы
14 (6 из которых могут использоваться как выходы ШИМ)
Постоянный ток через вход/выход
40 мА
Флеш-память
32 Кб (ATmega328) при этом 2 Кб используются для загрузчика
ОЗУ
2 Кб
EEPROM
1 Кб
Тактовая частота
16 МГц
Размеры
1.85 см x 4.2 см



Изготовление платы — платформы

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

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

Пайка платы — платформы

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

Прошивка МК

Я опишу лишь принцип действия прошивки (программы в памяти МК). Итак, к МК подключены 5 клавиш, акселерометр и светодиод. Все, что мне нужно, это получать данные о состоянии кнопок (нажата или нет) и данные от акселерметра (в какую сторону наклонен и насколько наклонен). Все это происходит в бесконечном цикле (это принцип действия МК — выполнять программу циклично, пока он включен). Данные отсылаются по ком — порту компьютеру.

Могу сказать, что имея базовые знания языка С++ и принципов программирования, прошивку написать несложно. Этому способствует и среда разработки Arduino IDE, благодаря которой не приходится часами читать даташиты на МК и выяснять какой регистр отвечает за какую функцию МК. Но и это, конечно, тоже несложно, и это нужно знать хотя бы для себя, знать с чем имеешь дело. Но ардуино позволяет сделать «быстрый старт» не углубляясь в тонкости программировани МК, чем я и пользуюсь.

Программа «Mouse Track» для приема данных от перчатки

Принцип действия: в отдельном потоке в бесконечном цикле опрашивается нужный ком — порт. Программа получает данные от перчатки (от МК) и выполняет соответствующие действия. Например, если нажата кнопка1, то это сообщается по ком-порту программе и она осуществляет действие «кнопка1 нажата». Если кнопка1 отпущена — сообщается «кнопка1 отпущена». Программу я написал на Delphi 7. Реализовал следущее — на каждый палец можно присвоить одно из 5ти действий мыши (ЛКМ, СКМ, ПКМ, ролик вверх, ролик вних) либо одно из 4х действий с окном (закрыть, свернуть, переместить, максимизировать/восстановить). С акселерометром та же ситуация — на наклоны вправо, влево, вперед, назад можно назначить те же функции. Также регулируется «мертвая зона» акселерометра. Наклон акселерометра я измеряю от 0% до 100%. Так вот, порог срабатывания команды акселерометра по наклону можно регулировать. Например, команда будет выполняться, если порог будет выставлен 50%, то есть если акселерометр наклонится наполовину. И так для каждой оси. Кстати о осях. В акселерометре, что я использовал, их 3 — это x, y, z. Но я задействовал только x и y.



Во вкладках «эмуляция мыши» такие функции: ЛКМ, СКМ, ПКМ, прокрутить ролик вверх/вниз. Во вкладках «Действие с окном» такие функции: переместить окно, закрыть окно, свернуть окно, максимизировать/восстановить окно.



Также можно использовать «Горячие клавиши» перчатки. То есть сочетания некоторых клавиш для вызова присвоенной программы.



Конструкция и внешний вид

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

1 — плата Arduino nano на базе МК Atmega328; 2 — кнопка; 3 — инфракрасный светодиод; 4 — акселерометр MMA7260QR2; 5 — направляющая (из велосипедного тормозного троса); 6 — «липучка»



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


UPD
Облегчил внешний вид и отказался от перчатки (неудобно печатать на клавиатуре, потому что плотная ткань и не чувствуется касания)


Статья №2
Статья №3
Поделиться публикацией
Похожие публикации
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 126
    0
    Пользуетесь?
      +1
      «Играюсь» ей.
        +3
        Удаётся повторить действия героя в исполнении Киану Ривза из «Джонни Мнемоника»?
          +1
          давно смотрел, не помню что там за действия. посмотрите видео, может быть там есть чтото похожее.
            0
            Например, Джонни в буквальном смысле слова разворачивал предметы (пирамиды).
              +1
              А, такого рода действия. В винде вроде бы 3-д интерфейса нету. а писать «песочницу» ради того, чтобы в ней «брать» предметы и только в ней, нет смысла. но ради интереса можно. только не программировал графику в делфи. не сталкивался
          0
          посмотрите на the airmouse, там чуток по другому реализовано. Думаю будет интересно.
            0
            Кстати, рука в ней не устает? Все-таки с мышкой рука опирается на поверхность, а так она в воздухе…
              0
              я ведь отвечал уже в комментариях. устает рука, согласен, что постоянно на весу. это минус.
          +4
          К сожалению, современные интерфейсы совершенно не предназначены для работы с подобными девайсами.
            +3
            Это лишь мышь в виде перчатки. А что Вы имеете в виду под «современными интерфейсами»?
              0
              Имеется в виду плоскость. Ее явно не хватает для реализации всех возможностей. Перчатка предполагает возможность двигаться в любом направлении виртуального пространства, причем неограниченно.
                +3
                Согласен на счет плоскости. была даже мысль положить монитор на стол и попробовать поуправлять так курсором. чтобы ощущения сохранились — рука вперед — курсор вперед и тд.

                На счет бесконечности движения не согласен. Движение курсора ограничивается размером экрана и углом обзора веб-камеры.
                  +1
                  Для управления перчаткой лучше подошел бы вариант когда камера стоит на месте, а рабочее пространство движется вокруг него, а чувствительность каждый настроит по своему вкусу.
                    +1
                    Не совсем Вас понял. Камера и так стоит на месте. Светодиод находится на перчатке. Двигается светодиод, а не камера.
                      +1
                      Конечно же имелась в виду камера виртуальная :)
            +2
            Видео впечатляет. А рука не устает ли?
              +2
              Устает, на весу постоянно. Предплечье постоянно напряжено. Но привыкнуть можно. На крайний случай ложу руку на стол и вожу как обычной мышей.
                0
                Плохо, что напряжено. Не нужно бы привыкать.
                Вы когда не снимаете для видео, держите руку ниже стола, на уровне коленей. Так должно быть легче, мне кажется.
                  +2
                  Собственно а почему выбран метод именно «на весу»? Помоему очень удобно развалится на кресле, и рукой в перчатке по столу водить, или по чему-нибудь еще твердому, «подергивая» пальцами когда это нужно :)
                    0
                    Тем более, как вариант, можно было бы движения по плоскости отсматривать на модуль веб-камеры, например, а оси пустить уже как 3д движения. Только ИК-подсветку для камеры сделать, чтобы в темноте работала.
                      +1
                      ИК-подсветка не нужна, в перчатке есть светодиод. А если поставить три светодиода, можно и ориентацию перчатки камерой отслеживать. И по диоду на каждый палец… Что-то меня занесло, сейчас motion capture изобрету :)
                        +1
                        все изобретено до Вас — FreeTrack.
                          +1
                          До 6 степеней свободы отслеживает. Если использовать ИК-подсветку и световозвращающие метки, можно сделать полностью пассивную перчатку без проводов и источников питания.
                            +1
                            но будет только перемещение курсора. без возможности нажатия клавиш мыши и других действий.
                              0
                              Теоретически, можно разместить на каждом пальце метку, но софт придется дорабатывать, FreeTrack этого не позволяет. И еще FreeTrack предназаначен для отслеживания головы. Рука гораздо подвижнее, и чтобы полноценно махать клешнёй, наверное, придется ставить несколько камер.
                              Другой путь — наоборот, избавиться от оптического распознавания и делать что-то вроде Nintendo Wii — 3-осевой акселерометр, 3-осевой гироскоп + компас. Такая система, в принципе, может автономно отслеживать все перемещения.
                +1
                Находил лет 7 назад реализацию такой перчатки в докладе какого-то американского института.
                Только там они использовали ее как замену клавиатуре.
                  0
                  Отлично! можно развить идею и сделать пресеты для эмуляции движения руля или джойстика. а чтобы рука была не на весу сделать просто подвижный макет того же руля или штурвала.
                    +1
                    Интересно. Кстати, когда я экспериментировал с акселерометром (делал перемещение курсора с его помощью), то как раз и получалось что-то вроде джойстика. Курсор передвигался в сторону наклона акселерометра. Собственно, изза этого и решил для перемещения использовать не акселерометр, а FreeTrack. нужно было именно перемещение перчатки, а не наклон.
                    +1
                    Для эффектности нужна плазма вместо монитора. Положить плазму на стол и водить руками над ней.
                      +1
                      Все больше хочется положить на стол свой 22 дюймовый асер и попробовать
                      –2
                      image
                        +2
                        К сожалению, это видео не доступно в вашем регионе.
                        Вставили в ролик защищённую копирайтом музыку?
                          +1
                          «Ваше видео заблокировано в следующих странах: Germany»
                          ютуб пишет, что использовал музыкальное сопровождение, принадлежащее такимто таким лицам.
                          • НЛО прилетело и опубликовало эту надпись здесь
                          0
                          а еще как идея сделать беспроводной интерфейс (что вобщем несложно с помощью радиоканала для rs232) и тогда получится шикарная вещь для управления курсором например двигая им по ноге или подлокотнику кресла :)
                            +1
                            Если можно подробней о радиоканале для rs232. Думал для ардуины приобрести модуль блютуз или вай фай. но дороговато чтото.
                              0
                              easyelectronics.ru/radiomodul-hoperf-hm-tr433.html
                              Например вот, от нашего горячо любимого DIHALT
                                0
                                easyelectronics.ru/transiver-drf7020d27.html и еще по этой же теме
                                  0
                                  Этот модуль громоздкий для такого дела и потребляет нехило.
                                    0
                                    от DRF есть и куда более компактные модули, меньшей мощности.
                                      0
                                      Это ты мне будешь рассказывать?)
                                        0
                                        А чего ты людей почем зря пугаешь? Предложил бы им альтернативу.
                                          0
                                          видел недорогие модули приема и передачи HM-R433 и HM-T433. Читал в Вашем ЖЖ, кажется, про опыт работы с ними. Кучу багов нашли. Вобщем, стоит ли попробовать?
                                            0
                                            T и R433 это не самый простой для юзания модуль. Это скорей сырой канал которому не помешал бы протокол передачи навертеть сверху.

                                            TR433 получше, но у него крайне глючная и кривая прошивка. Из всех с которыми работал самые клевые, надежные и удобные это RC1240 от Radiocrafts но они дорогие (по 2тыщи за модуль). Еще DRF от Dorj тоже приятные и не глючили. Правда с их софтиной для конфигурации я их подружить так и не смог, работал на дефолтных настройках.
                                  0
                                  У вас ведь данные передаются только в одну сторону? Берем пару радиомодулей 433 МГц или 2,4 ГГц (самые дешевые — TR-24a). Один из них — передатчик — в перчатке, второй — приемник. Сигнал с приемника через преобразователь уровней MAX232 можно посылать в COM-порт.
                                  Один минус, RS232 есть далеко не везде.
                                    0
                                    Преобразователи есть на USB с виртуальным ком-портом в системе. Раньше на пролифике были, — тот же PL-2303.
                                      +1
                                      Ocelot, так мой девайс подключается по usb. у ардуино стоит микросхема FTDI usb-com.
                                        0
                                        Так вообще замечательно. Такую микросхему нужно поставить в приемник, чтобы по воздуху перебрасывать не USB, а RS232 (точнее, UART)
                                          +1
                                          то есть, получается тот же UART по радио? ну это вобще прелесть. спасибо за подсказки!
                                            0
                                            Да, все упомянутые выше модули (и 90% остальных) в качестве интерфейса имеют UART, уровни напряжения — TTL (5 или 3,3 В)
                                              0
                                              Вот ещё: www.lockdog.ru/?p=46 =)
                                        +1
                                        Данные передаются не в одну сторону. То есть от перчатки идут данные о положении акселерометра и нажатия клавишь. А с компьютера программой можно выключить/включить кнопки, акселерометр и светодиод.
                                          0
                                          Можно и в одну сторону. Включить/выключить кнопки = просто программно учитывать/не учитывать их состояние. А светодиод пусть горит все время, когда девайс включен…
                                            +1
                                            лучше сделать вкл\выкл на стороне микроконтроллера, потому что не нужно засарять буфер ненужной информацией, если кнопки, акселерометр, светодиод выключен.

                                            Светодиод тоже нужно выключать. потому что иногда неудобно — пока оденешь перчатку, а курсор уже бегает по экрану, потому что фри трэк уже включен. вобщем, я подумал, что лучше контролировать все самому из программы.
                                              0
                                              В-общем-то, логично. Тогда придется хорошенько продумать протокол обмена данными, т.к. UART — дуплексный канал, а радиомодули работают попеременно на прием или передачу. Есть полудуплексные модули, которые сами управляют потоком, но они дорогие, дешевле тогда уж будет bluetooth использовать.
                                                +1
                                                Я понимаю. То есть ситуации, когда одновременно со стороны контроллера и со стороны компьютера идет передача данных, возникать не должно.
                                            0
                                            Те же беспроводные мыши все (за редким исключением) используют односторонний канал.
                                        +6
                                        Перезалейте картинки на другой хостинг т.к. «интесивность запросов изображения превысила лимит»
                                        Как варианты: habrastorage, rghost, imageshack.
                                          0
                                          Первого вполне достаточно.
                                            +1
                                            сейчас перезалью.
                                          +3
                                          Никто ещё не упоминал?

                                          Если кто не знает, то фильм называется «Особое мнение».
                                            +3
                                            И Джонни Мнемоника умудрились позабыть.
                                              +3
                                              Первое, что пришло в голову при виде этих перчаток.
                                                +1
                                                «Газонокосильщик 2» вспомнился
                                              0
                                              Руки быстро устают? :)
                                                +1
                                                Рука. да. хватает собрать пару пазлов в игре количеством 60 штук )
                                                  0
                                                  Это же хайтек-тренажёр. Теперь не будет повода говорить о малоподвижной работе.
                                                  Делайте «ногу». :)
                                                    0
                                                    Гантельку на пол-кило или даже на три подвесить и начать с одного подхода по 10 пазлов. Постепенно увеличивать и за недельку банки на руках раскачаешь так, что потом по экрану будешь двигать как в невесомости.
                                                  0
                                                  Ещё бы к этой штуке DIY-Kit — я бы заказал…
                                                  + api под разные платформы.

                                                  Этот девайс как вспомогательный хорошо подошёл бы, в дополнение к мышке в некоторых случаях. В Google Earth на видео — обалденно!
                                                    +1
                                                    Собственно, идея возникла благодаря Google Earth)
                                                    0
                                                    На Sun Tech Days была одной из самых популярных игрушек — перчатка + SunSpot.
                                                    Управлять непривычно и немного глючно (особенно убивало то, что движения вверх и вниз были перепутаны /* по крайней мере мне всегда хотелось наоборот двинуть */).
                                                      0
                                                      Ей бы фидбек — чтобы при «хватании» обьекта перчатка не давала сдвинуть пальцы больше, чем на толщину этого обьекта. Классно было бы.
                                                        0
                                                        Хотя бы не фидбек, а для начала аналоговые датчики сгибания палицев вместо дискретных кнопок.
                                                          0
                                                          *пальцев :)
                                                            +1
                                                            Была идея использовать «датчики изгиба» или мелкие ползунковые резисторы. но не того ни того в местом магазине радиотоваров не было.
                                                              +1
                                                              *местном
                                                                +1
                                                                Можно посмотреть в сторону дифференциальных трансформаторов. Их довольно просто изготовить самостоятельно, в т.ч. миниатюрные (мотайте на стержне от шариковой ручки). К помехам не чувствителен, точность — отличная.
                                                                Из обвязки понадобится генератор синусоиды (нес-ко килогерц), усилители, ФНЧ (это все на операционниках можно сделать), АЦП.
                                                                Хотя, можно несущую генерировать контроллером, и АЦП там встроенный должен быть.
                                                                  +1
                                                                  АЦП встроенный 10-ти битный присутствует. забыл указать в описании платки. поправлю.
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                            0
                                                            Картинки по 1Мб размером 2500×1900 — смысл? Уменьшите их, пожалуйста.
                                                              +1
                                                              исправил. максимальный вес 143 кб.
                                                                0
                                                                А как печатать? Одной рукой???
                                                                  +1
                                                                  Если Вы посмотрите на скриншоты программы внимательно, то там есть функция «выключить клавиши». Выключив клавиши можно спокойно печатать двумя руками, после чего опять включить клавиши перчатки. Так же можно вызвать экранну клавиатуру, которая стандартная, и имеется в любой виндовс системе.
                                                                  0
                                                                  круто!
                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                      +1
                                                                      Arduino nano — 150 грн + 20грн доставка
                                                                      Акселерометр — 38 грн + 20грн доставка
                                                                      5 микропереключателей — 15 грн
                                                                      Перчатки — 50 грн
                                                                      Ткань «липучка» — я взял полметра тонкой и толстой — 9грн
                                                                      ИК — светодиод — не знаю цену, был у меня.
                                                                      Проводники, резисторы, конденцаторы, фольгированный текстолит — не знаю сколько, все это было в наличии.

                                                                      итого 302 грн
                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                        0
                                                                        В конце статьи есть ссылка. Пропустили.
                                                                        +15

                                                                        Простите, не удержался.
                                                                          +12
                                                                          Ваша фраза про «не удержался» звучит особенно двусмысленно =)
                                                                            +1
                                                                            ви не поняли. это таки его перчатки
                                                                          –1
                                                                          Рука устает, опускаете руку ниже облокачиваясь локтем на колено, и манипулируете вверх-вниз, и тут заходит мама…
                                                                            0
                                                                            Выглядит клево, но думаю, что стоит двигаться в сторону оптического распознания жестов(Kinect).
                                                                              0
                                                                              Классно. Как обошли багу руки когда «кликаешь» мизинцем, безымянный тоже сгинается?
                                                                                +1
                                                                                Посмотрите на фото перчатки. Там регулируется «порог срабатывания» клавиши. Это достигается путем приклеивания провода-тяги дальше/ближе по длине пальца. На мизинце и безымянном пальцах чуть «отпустил» провод-тягу. Вобщем, это регулируется, это учтено )
                                                                                +15
                                                                                … мы с папой вытравили эту маленькую платку дома. После чего я подключил его к МК и экспериментировал с ним.
                                                                                Я думал, эксперименты над людьми запрещены (:
                                                                                  +2
                                                                                  папа мягкий, он простит
                                                                                  +1
                                                                                  Много лет назад меня посещала идея использовать подобные перчатки в качестве составной части тренажёра печати на клавиатуре. Цель же тренажёра заключается в том, чтобы нужными пальцами нажимать на нужные клавиши. Но программно это же никак не отследишь. А с помощью подобных перчаток понятно, каким пальцем произведено нажатие. Всё, теперь программная часть может как-то реагировать, на то, что пользователь нажал клавишу не тем пальцем.
                                                                                    0
                                                                                    Работает офигенно! Вы молодец!
                                                                                    0
                                                                                    Отличная работа! Поздравляю!
                                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                                        0
                                                                                        Промахнулся. ответ ниже)
                                                                                        +1
                                                                                        Для того, что Вы говорите, можно использовать и один 3х осевой акселерометр. НО, в моей перчатке передвижение отрабатывает не акселерометр, а веб-камера и программа FreeTrack.

                                                                                        Проблема с акселерометрами: это датчики ускорения. то есть как бы Вы решили, например удерживание нажатой левой клавиши мыши? клик — запросто. но удерживание? ведь Вы провели руку в сторону монитора, ускорение произошло, но тут же исчезло. это клик. удерживание не получится. (получится, но опять же, только при наклоне. так он физически устроен)

                                                                                        Управляющие жесты: в моей программе они присутствуют. Но минимальные. Т.е. наклоны вправо, влево, вперед и назад. На скриншотах и на видео видно, как я назначаю действия на клавиши и на действия акселерометра. При чем действия эти связаны с окном. Так как это упрощает, на мой взгляд, работу с окнами вобщем. То есть не нужно передвигать курсор на «крестик», «свернуть», «максимизировать». На мой взгляд это удобно.
                                                                                          +1
                                                                                          Чтобы ускорение (которе измеряет акселерометр) преобразовать в координаты, нужно дважды проинтегрировать. Но тут проблема в том, что из-за погрешностей координаты будут «плыть»: акселерометр неподвижен, а система думает, что он медленно куда-то едет.
                                                                                          Если интегрировать один раз, получим скорость. С ней уже проще, ошибки не так сильно накапливаются, но все равно накапливаются.
                                                                                          Наклоны хорошо обрабатываются акселерометром, но только когда перчатка неподвижна. Если мы хотим измерять угловое ускорение, нужен гироскоп (три — по трем осям). Но у гироскопа та же проблема: данные с него нужно интегрировать, а значит углы наклона тоже будут «плыть». Для контроля неподвижности по осям крена и тангажа достаточно использовать акселерометр (куда смотрит вектор g, там низ). А вот для задания нуля по оси рыскания это не поможет, и обычно используют магнитный компас (и пусть он показывает не на север, а на ближайшую батарею, главное, что все время в одну и ту же сторону).
                                                                                          Если хотите все это реализовать, ищите материалы по ключевым словам «фильтр Калмана», на хабре тоже полно статей на эту тему.
                                                                                          0
                                                                                          «Фи, в него руками играть надо. Старьё какое» (с) Назад в Будущее.
                                                                                          Здорово, конечно, особенно для DIY. Но будущее, ИМХО, за нейроинтерфесом.
                                                                                            +1
                                                                                            ждем от вас похожего топика про нейроинтерфейс на коленке. разрешаю использовать arm
                                                                                            0
                                                                                            Это просто офигительно!
                                                                                            Уже в домашних условиях стали делать такие крутые девайсы. Не знаю как вы, но у меня почему то складывается ощещение, что будущее стремительно приближается.
                                                                                              0
                                                                                              меня стошнило от платы. извините, я не специально. все остальное отлично
                                                                                                0
                                                                                                Автор, а возможности Вашего устройства позволяют его использовать при 3d-проектровании? Как, например, продукция конторы CyberGlove Systems. Это вполне себе отрасль. Допилите свою штуку и на рынок
                                                                                                  0
                                                                                                  Сегодня пробовал крутить модели в ArchiCad и «строить» стены. Довольно неплохо.
                                                                                                    0
                                                                                                    Карты в руки! Изучите вопрос с позиции бизнеса
                                                                                                  +1
                                                                                                  Если доработать интерфейс, точность позиционирования и поднять чувствительность. То можно изготовлять такие перчатки — носки(на ноги) для людей инвалидов.
                                                                                                    +3
                                                                                                    При существующих интерфейсах ее область работа на ноутах не за столом и работа с трехмерными объектами (google earth впечатлило). Конечно довести реализацию до тонкого непромокаемого варианта, плюс использовать перчатки с обрезанными пальцами (тогда ее хоть постоянно носи) и вполне бизнес решение, покупать на ура будут, сначала гики, а когда будет разработано достаточно библиотек под нужные программы то и обычные и профессиональные пользователи. Правда функцию отключения перчатки (перчаток) и переход в режим виртуальной клавиатуры нужно очень хорошо продумать, это должно делаться очень просто и быстро, иначе даже затылок не почесать :) (просто руки контролировать постоянно сложно, они постоянно делаю множество неосознанных действий, жестов), поэтому действие включение перчатки должно быть не сложнее чем руку на мышь положить.

                                                                                                    Ну а когда появятся действительно трехмерные экраны и интерфейсы то решение точно найдет применение. С помощью рук можно отдать на много больше команд чем мышью и это гораздо естественнее.
                                                                                                      0
                                                                                                      По-моему, самая большая проблема подобных девайсов в сложности переключения состояния активен — не активен. С мышью просто — лежит на столе — курсор не движется, клавиши не нажимаются. Необходимо придумать концепцию простой и быстрой активации-деактиващии таких девайсов. Чтобы — вот печатаем, — щёлк, — уже управляем мышью, щёлк (и при этом курсор НЕ СДВИНУЛСЯ относительно последнего положения), опять печатаем (или пьём чай).

                                                                                                      Есть идеи?
                                                                                                      Мои:
                                                                                                      1. Педаль для ноги (недостатки — дополнительные провода, ноги у меня в процессе работы как только не складываются и тд. чтобы оценить недостаток можно попробовать пошить что-нибудь на бытовой швейной машинке с педалькой).
                                                                                                      2. Двойное моргание глазами :). Из достоинств — дополнительная польза для зрения :).
                                                                                                        0
                                                                                                        на данном этапе можно выключить кнопки перчатки поставив галочку в меню программы. включить уже только мышью.
                                                                                                        –1
                                                                                                        > Сегодня я хочу поделиться с вами своим, не побоюсь этого слова, достижением. Я сделал необычную мышь. Это манипулятор в виде перчатки, имеющий 5 клавиш и акселерометр.

                                                                                                        … не побоюсь этого слова — БАЯН! Погуглите

                                                                                                        Помню у нас на кафедре уже где-то в 2007 проект дипломный копипастили на эту тему. В чем Ноу-Хау?
                                                                                                          –1
                                                                                                          Как ассист в тренеровке боксеров мышка с акселерометрами может прокатить: измерение силы удара. А для комфортной работы без дрожаний и с нормальным быстродействием — наврядли на дешевых ширпотребовских датчиках выйдет.
                                                                                                            0
                                                                                                            прочтите статью от начала и до конца. это не мышка с акселерометром. акселерометр выполняет совсем другую функцию. а перемещение за счет веб-камеры и светодиода инфракрасного. все это написано в статье.
                                                                                                              0
                                                                                                              и посмотрите видео, ссылка на которое тоже присутствует. там четко видно, что курсор перемещается от перемещения кисти руки, а не от ее наклонов. нет никаких дрожаний. у меня, правда, руки трясутся, но это чисто физический аспект. у большинства руки не дрожат на весу. на счет быстродействия скажу так — 30 кадров в секунду распознавания веб-камерой положения светодиода с головой хватает для комфортной работы перчаткой как мышью.
                                                                                                                0
                                                                                                                > заменит ролик мыши
                                                                                                                Точно… Извините. Был неправ. Надо переставать делать категоричные выводы на ночь глядя.
                                                                                                                Не дороговато ли вместо ролика аксель использовать? Где-то 220+ руб.
                                                                                                                  0
                                                                                                                  Я считаю, что это удачное решение и оно того стоит.
                                                                                                                    0
                                                                                                                    Смотря в каком плане «удачное». Дорогое решение будет продаваться покупаться либо если будет обладать очень востребованным и уникальным функционалом, либо хорошо разпиаренное.
                                                                                                                      0
                                                                                                                      «Во вкладках «эмуляция мыши» такие функции: ЛКМ, СКМ, ПКМ, прокрутить ролик вверх/вниз. Во вкладках «Действие с окном» такие функции: переместить окно, закрыть окно, свернуть окно, максимизировать/восстановить окно.» — опять же написано в статье.

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

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

                                                                                                          Самое читаемое