Arduino.ru
Перчатка — мышь. Виртуальность становится реальнее.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Здравствуйте. Сегодня я хочу поделиться с вами своим, не побоюсь этого слова, достижением. Я сделал необычную мышь. Это манипулятор в виде перчатки, имеющий 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» и по технологии изготовления печатных плат в домашних условиях мы с папой вытравили эту маленькую платку дома. После чего я подключил его к МК и экспериментировал с ним.
Изготовление платы — платформы
После того, как я разобрался как работать с акселерометром, четко решил сделать задуманный девайс. В качестве перчатки выбрал спортивную велосипедную перчатку. Она доступная и вид имеет неплохой.
Итак, имея все необходимое для сборки девайса, я принялся за разработку схемы подключения всего этого к МК. Честно говоря, сложного ничего нет. Но мне приходилось не один раз перечерчивать схему. Закончив схему, я обратился к папе за помощью в изготовлении печатной платы всё по той же технологии изготовления печатных плат в домашних условиях. После того, как изготовили плату, я увидел один промах — место для акселерометра получилось не там, где планировалось, изза того, что при черчении схемы платы не учел габаритные размеры кнопок. Ну что ж, на своих ошибках учатся.
Пайка платы — платформы
Этот этап для меня был самым сложным, так как я плохо паяю. Но, после того, как папа показал как правильно это делается и помог мне, паять мне стало легче. Подробно расписывать этот этап не буду. Покажу лишь результат — плату с распаянными МК и деталями на ней.
Вот так выглядит плата в сборе.
Прошивка МК
Я опишу лишь принцип действия прошивки (программы в памяти МК). Итак, к МК подключены 5 клавиш, акселерометр и светодиод. Все, что мне нужно, это получать данные о состоянии кнопок (нажата или нет) и данные от акселерметра (в какую сторону наклонен и насколько наклонен). Все это происходит в бесконечном цикле (это принцип действия МК — выполнять программу циклично, пока он включен). Данные отсылаются по ком — порту компьютеру.
Могу сказать, что имея базовые знания языка С++ и принципов программирования, прошивку написать несложно. Этому способствует и среда разработки Arduino IDE, благодаря которой не приходится часами читать даташиты на МК и выяснять какой регистр отвечает за какую функцию МК. Но и это, конечно, тоже несложно, и это нужно знать хотя бы для себя, знать с чем имеешь дело. Но ардуино позволяет сделать «быстрый старт» не углубляясь в тонкости программировани МК, чем я и пользуюсь.
Программа «Перчатка — мышь» для приема данных от перчатки
Принцип действия: в отдельном потоке в бесконечном цикле опрашивается нужный ком — порт. Программа получает данные от перчатки (от МК) и выполняет соответствующие действия. Например, если нажата кнопка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 — «липучка»
Напоследок, видео работы этого девайса. На счет игр скажу, что работает только в тех, которые используют системный курсор.
Источник
Компьютерная мышь одевающаяся на руку
Люди, которые проводят много времени за компьютером, жалуются на то, что их мыши не удобные. Особенно геймеры, которые проводят намного больше времени за компьютером, чем обычный пользователь. Они жалуются на боль в запястье, их рукам не комфортно на мышках :winked:
Именно поэтому автор этой самоделки решил сделать мышку описанную ниже. С ней всегда комфортно, так как мышь — это только ваша рука. Есть, конечно, более сложные варианты, но там требуются знания программирования, дополнительные комплектующие, контроллер, который будет осуществлять контроль положения вашей головы. И все это дело будет управлять курсором мыши. Но это самый дешевый и низко бюджетный вариант.
Мы начнем с мертвой компьютерной мыши. Ну. не совсем мертвой, а просто старой компьютерной мыши, которую вы не используете больше. Если у вас нет мыши (что маловероятно)… Тогда вы всегда можете купить ее. Или взять на время у друга, но предупредите заранее, что Вы не собираетесь возвращать ее обратно 😉 .
Что вам понадобиться
Перчатки, которые Вы будете использовать, должны быть достаточно свободными для того чтобы вместить монтажную плату мыши. Лучше конечно, если это будут перчатки с «пальцами», а не короткие обрезанные перчатки, как у автора. Тогда вам не придется сшить отдельно «пальцы» для ваших перчаток.
Итак. Вы готовы пожертвовать одной парой перчаток?
Модификация печатной платы мыши.
Выпаяйте из платы левую и правую кнопку. Да и скроллинг, пожалуй, тоже не понадобится. Выпаяйте его тоже. Изолируйте плату со стороны токопроводящих дорожек изолентой.
Для начала надо разрезать перчатки для того, чтобы вставить во внутрь печатную плату.
Если разрезать перчатки невозможно, Вы можете наоборот, нашить кусок ткани, а еще лучше кожи.
Возьмите 4 провода равной длины. Они нужны, чтобы подсоединить кнопки. Чем провод мягче — тем лучше. Можно использовать провод от телефонной гарнитуры. Он очень гибкий и к каждому наушнику, в изоляции, подходит две жилы. Вставить эти провода в перчатку, как показано на фото. Указательный палец для левого клика, средний для правого. Итак, нам нужны только два пальца.
Припаяйте одни концы проводов к плате, туда, откуда выпаяли кнопки.
Обратите внимание, что у кнопок три вывода. Поэтому на плате припаивайте провода к тем двум контактными площадкам, от которых отходят дорожки дальше на плату (смотрите фото, Обведены красным). Правда на этом фото уже другая мышь. Моя.
Вторые концы проводов будут впоследствии припаиваться к кнопкам.
Установка платы.
Вставить плату внутрь перчатки. Надо тщательно разметить место под пластиковую призму на нижней стороне перчатки.
Аккуратно вырежьте окно по разметке. Закрепите призму. Проверьте мышь, чтобы она должным образом отреагировала на перемещения.
Так как у автора не было необрезанных перчаток, ему пришлось сшить два «пальца» отдельно.
У автора статьи в качестве подопытного совсем старая мышь. Он использовал кнопки, выпаянные из этой мыши. Если у вас кнопки ,как на фото,
то их будет неудобно использовать. Найдите кнопки, как выделенная красным,кнопка на фото, они гораздо удобнее.
Припаяйте кнопки на небольшие кусочки макетной платы. Подпаяйте провода, припаянные ранее на плату мыши, к этим кнопкам. Закрепить кнопки на «пальцах». Можно использовать термоклей для этого, а можно попробовать нашить кусок ткани на «пальцах» и так зафиксировать кнопки на перчатке. Подберите расположение кнопок так, чтобы вам было комфортно их нажимать, и кисть руки не напрягалась.
Надо подумать, как прикрепить колесо скроллинга. Можно, пожалуй, обойтись без ролика. Скроллинг страницы можно осуществлять, нажав и удерживая среднюю кнопку. Можно прикрепить среднюю кнопку на большой палец, который остался фактически без «дела». Тогда вам понадобятся еще два провода и кнопка. Вариантов много. Надо пробовать кому как будет удобно.
Источник