Страница: 1 | 2 |
Вопрос: Помогите в работе с мышью
Добавлено: 13.01.06 00:14
Автор вопроса: DDF
Ответы
Всего ответов: 18
Номер ответа: 16
Автор ответа:
DDF
Вопросов: 2
Ответов: 14
Профиль | | #16
Добавлено: 13.01.06 23:59
Мышина исследована. Она дает один сигнал при перекрытии луча с передатчика на приемник, и один при открытии. Учитывая, что в моем Джениусе в диске 40 отв и 40 перегородок, за одно полное вращение вала, должно быть 80 импульсов. При диаметре шара~ 21 и диаметре вала с диском ~ 3, передаточное отношение~ 7. Следовательно, при одном полном обороте шара, т.е. при пути_по_столу = 3,14*21=65,95 мм, результатом работы программы должно быть ~ число 80 умноженное на передаточное число 7, ИТОГО: 560.
Это была теория, на практике: при равномерном перемещении мыши, число более 360 не получается, а среднее число оборотов по результатам 10 опытов: ~ 308 )), следовательно КПД в трущихся элементах в результате потерь на трение и проскальзывание составило: КПД= 308/560=0.55 или 55% .
Ну вот и все, на последок скажу, что используя Do … While и массив можно получить более точные измерения и строить сразу график в PicherBox’e изменения скорости.
Номер ответа: 17
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #17
Добавлено: 14.01.06 16:24
Может это по тому, что не каждому перекрытию всегда соответствует импульс? Может мышь может передавать информацию о нескольких перекрытиях за один раз?
Номер ответа: 18
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #18
Добавлено: 15.01.06 02:47
Можно засекать пробег мыши по экрану. Для этого можно по таймеру считывать ее смещение от центра и ставить ее обратно в центр.
Чтобы получить пробег, где один пиксель соответствует одной щелке, прошедшей щерез оптический детектор, надо:
-поставить чувствительность мыши на 10
-убрать ускорение мыши, установив два пороговых значения на нули
Все это можно сделать с помошью функции API SystemParametersInfo с аргументами SPI_GETMOUSE, SPI_GETMOUSESPEED, (их SET_ эквиваленты).
Вот так уже более реально узнать о том, сколько там движения теряется.
Кстати. В теоретических расчетах знать радиус шарика вовсе не обязательно. А не зная, меньше вероятность сделать ошибку.