Как заставить мышку мерять перемещение и разграничить 2 мышки на 1 компе

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Я программистом себя не считаю. Просто для научной работы надо написать прогу.

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

Буду признателен за любые предложения. Реально надо. Вопросы получается такие: может ли мышка передавать сигнал о перемещении меньше, чем на 0, 08 мм? И как разграничить устройство на ее базе с обычным манипулятором?

Заранее благодарен.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

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

Все сказать, увы, не могу. Речь идет об измерении плотности. Для этого нужно мерять перемещение. В принципе любым способом. Мышь выбрана научным руководителем из-за просоты (уже готовая плата, которая передает инфу о перемещении) и стоит не дорого (можно и б\у взять и полурабочую)., но вот возникли такие ньюансы.)) Изначально вообще была шариковая мышь. вроде есть датчики, измещяющие перемещение с большой точностью. Но я их видел лишь на сайтах (тут особо не поэкспериментируешь)

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

Я еще не экспериментировал, но вроде как дрова с cpnmouse.sourceforge.net позволяют прятать курсор. Вопрос лишь в том, если я спрячу курсор, но при этом буду использовать мышь со скрытым курсором для измерения перемещения через пиксели по форме — перемещение самой формы по экрану ведь будет приводить к искажению результатов? Поэтому от греха подальше я и ищу способы перехвата импульсов о перемещении мыши (направление движения важно!) не через форму, а непосредственно. Т.к. програмист я не аховый, то буду признателен, если кто-то поможет примером.

Задача интересная, но без программирования навряд ли получится обойтись.
Можно разбить на подзадачи:
1) Подобрать существующее устройство или собрать новое.
Для этого нужно определиться с требованиями к устройству, вытекающие из требований Вашей работы.
Посмотрите www.ixbt.com/...ce-sensor.shtml и www.logitech.com/...echbrief-04.pdf
Если придется собирать свое устройство нужен хороший опыт в работе с паяльником или хотя бы друзья с таким опытом, иначе придется платить за сборку.
2) Подобрать существующий софт или написать свой.
Если современные лазерные мышки с высоким DPI подходят то осталось только решить вопрос как ими управляться отдельно от стандартной мыши. Если найдете подходящий софт, то хорошо, иначе опять таки нужен опыт в программировании. Вот может еще пригодиться в дополнение к предыдущим советам cutemouse.sourceforge.net
Если найдете подходящий софт для разделения мышей можно попробовать прятать курсор вашего устройства и написать софт для измерений уже отдельно.
В общем попробуйте выбрать самый легкий из подходящих вариантов и оценить свое время, опыт и силы.

Удачи!

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

Если все равно разбираете мышь, то нужно перепрошить EEPROM, и перепрошить USB device class code на что-нибудь другое, отличное от HID, либо HID usage на Undefined/Consumer, чтобы устройство не цеплялось стандартными драйверами, ту же задачу можно решить фильтрами/драйверами в Windows и перехватывать конкретные события с необходимого устройства не пуская их дальше, задача, в принципе, проста, либо взять готовый драйвер для этих целей по той ссылке, что я дал. Реально посоветовать что-то полезное Вам в этой ситуации довольно таки тяжело, необходим хотя бы минимальный бэкграунд в этой области. Для решения ряда задач автоматизации можно всё упростить на порядок и отказаться от оптических сенсоров для измерения скорости движения и пройдённого пути, всё зависит от постановки задачи. Какая была исходная задача?


#
COMPositor 4 час. назад

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

На базе обычной оптической мыши вы микроны не поймаете. Так как чувствительная матрица мыши вроде бы 16×16 или 32×32. Здесь нужно нечто на базе лазера с короткой длиной волны, как у лазера используемого для чтения DVD и матрицу в 1−4 мегапиксела.

Так что здесь всё упирается не в программу, а в физику. А устройсва нужно вам точности может и есть рынке, но стоят многие килобаксы. Попробуйте реализовать сами (думаю, можно уложится в бюджет в 500−700$ на материалы и инструменты), но руки должны быть прямые.

cpnmouse.sourceforge.net

Вы переоценили мое знание английского)).

Другое дело — это скорость выдачи сообщений. PS/2 выдаст максимум 200 событий в секунду и не на каждой мышке, USB 1.0/Full в районе 1000 в секунду из-за задержек при bulk передаче данных. Т.е. при скорости > 2 см/секунду та же G5 уже будет выдавать больше одного микки в пакете.

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

А вообще лучше не страдать фигнёй и собрать специализированное устройство с подключением через USB. На материалы и инструменты придётся затратить до 300$, но опыт получит колоссальный, если сможете реализовать.

Да я и не против. Только вот вопрос в принципе действия этого устройства. Мышь — это лишь эллемент. А выбрана потому, что это уже готовая плата и надо лишь как-то (пока не представляю как) перехватить данные о перемещении.

Если кто-то разбирается — подскажите каким образом можно передавать в комп информацию о перемещении.


COMPositor 9 час. назад
Я программистом себя не считаю. Просто для научной работы надо написать прогу.

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

На самом деле в драйвере ничего страшного нет. Покупаете ил скачиваете из инета CHM данной книги bookzone.com.ua/catalog.php bid=12263 и полное руководство по написанию драйвера для программистов среднего уровня. Если писать legacy — драйвер (не WDM) то для драйвера устройства там вообще шара.

А вообще лучше не страдать фигнёй и собрать специализированное устройство с подключением через USB. На материалы и инструменты придётся затратить до 300$, но опыт получит колоссальный, если сможете реализовать.

Вопросы получается такие: может ли мышка передавать сигнал о перемещении меньше, чем на 0, 08 мм?

Logitech G5 Laser Mouse выдаст 0.02 мм Другое дело — это скорость выдачи сообщений. PS/2 выдаст максимум 200 событий в секунду и не на каждой мышке, USB 1.0/Full в районе 1000 в секунду из-за задержек при bulk передаче данных. Т.е. при скорости > 2 см/секунду та же G5 уже будет выдавать больше одного микки в пакете.

Підписатись на коментарі