Указывающие устройства
В графическом пользовательском интерфейсе (Graphical User Interface -GUI) одной из
важнейших операций является выбор (указание) конкретного объекта окна для того, чтобы последующие
действия пользователя относились именно к выбранному объекту. Функцию выбора объекта выполняют
так называемые указывающие устройства (pointing devices), наибольшее распространение среди которых получил манипулятор
типа мыши, или, короче, мышь (mouse).
Мышь
В начале 80-х годов прошлого века РС оснащались только одним традиционным устройством ввода - клавиатурой. Однако к концу десятилетия в связи с широким внедрением графического пользовательского интерфейса (Graphical User Interface - GUI) и графических операционных система практически во всех РС стало применяться новое указывающее устройство (pointing device) - мышь (mouse, mice). В нашей литературе это устройство часто называют "мышкой" и даже "манипулятором типа мышь".
Наибольшее распространение получила наиболее простая и дешевая механическая мышь (mechanical
mouse). Внизу корпуса этой мыши имеется выступающий стальной шарик, который обрезинен для лучшего
сцепления с ковриком (mouse pad). При перемещении мыши шарик поворачивается и вращает
два ролика - по координатам X и Y. Третий подпружиненный ролик удерживает шарик на месте
относительно первых двух.
На ролики насажены диски, которые имеют радиальные щели. Каждый диск вращается между ячейкой фотодетектора и каждая ячейка содержит два смещенных светоизлучающих диода (Light-Emitting Diode - LED) и фототранзистор. При вращении диска два датчика воспринимают изменяющийся световой поток и смещение между двумя датчиками показывает направление перемещения корпуса мыши.
Внутри мыши находится переключатель для каждой кнопки и микроконтроллер, который интерпретирует сигналы от датчиков и кнопок. С помощью "зашитой" в него программы контроллер учитывает текущее состояние мыши и когда информация от датчиков изменяется, формирует пакет данных, который по кабелю передается в РС. В последовательной мыши (serial mouse), которая подключается кабелем к COM-порту, используются напряжение +12 В и протокол асинхронной последовательной передачи. В РС передаются трехбайтовые пакеты, сообщающие перемещения по осям X и Y и состояния кнопок. В мыши PS/2 (PS/2 mouse), которая подключается к разъему DIN на материнской плате, используются напряжение +5 В и разработанные компанией IBM коммуникационный протокол и интерфейс.
Драйвер мыши (mouse driver) в составе операционной системы получает пакет данных и декодирует содержащуюся в нем информацию. Обычно драйвер поддерживает информацию о текущем состоянии мыши (позиция) и состояние кнопок) и по запросу сообщает ее приложению или операционной системе. Обычно драйвер мыши вызывает процедуры перемещения курсора, когда мышь перемещается, и посылает сообщения программе, когда нажимаются кнопки.
В современном РС драйвер мыши соотносит перемещение курсора с движением корпуса мыши нелинейно. Может показаться несколько странным, но было обнаружено, что имеются лучшие способы преобразовывать движение мыши в перемещение курсора, чем просто соотносить один шаг мыши с перемещением курсора на один пиксел. Разработку мыши и графического пользовательского интерфейса (Graphical User Interface - GUI) начала компания Xerox в начале 80-х годов прошлого века. Дальнейшие исследования в этом направлении выполнила компания Apple Computer. В результате этих исследований оказалось, что нет такого конкретного соотношения между движением мыши и перемещением курсора, которое наилучшим образом подходит для всех задач.
Было открыто, что имеются два основных вида движения, характерные при использовании
указывающих устройств: переместить курсор в нужную область, а затем точно "навести" на требуемый
объект. К этим видам движения предъявляются противоречивые требования, поэтому инженеры компании
Apple решили проблему, контролируя движения мыши и изменяя число отсчетов на дюйм
(Counts Per Inch - CPI). Когда мышь движется медленно, значение CPI устанавливается на 100,
а при быстром движении значение CPI составляет 400. Этот метод коррекции CPI с учетом использования
мыши принят по умолчанию в драйвере мыши операционных систем Windows 95/98/2000 и сейчас
является наиболее распространенным способом преобразования движения мыши в перемещение курсора
на экране.
Детекторы движения мыши
Напомним, что внутри мыши есть два ролика с насаженными на них пластиковыми дисками, имеющими щелевые вырезы. На рисунке показаны 6 вырезов, расположенные через 60°, но на самом деле их гораздо больше. Через вырезы проходит свет от двух светодиодов, показанных черными точками. Свет от каждого светодиода через щель попадает на соответствующий фототранзистор. Фототранзисторы расположены так, что когда один фототранзистор "видит" свой светодиод через центр выреза, второй светодиод оказывается на краю и соответствующий фототранзистор переключается. На рисунке светодиоды смещены на угол 105°. Выходное напряжение фототранзистора преобразуется в двоичные сигналы: высокий уровень, когда транзистор не освещен, и низкий уровень, когда фототранзистор освещен. На приведенном рисунке один фототранзистор полностью освещен, а второй переключается. Отметим, что правый фототранзистор может переключиться от "света" к "темноте" или наоборот в зависимости от направления вращения.
Теперь рассмотрим следующий рисунок. Здесь диск показан в четырех различных состояниях и
каждое повернуто на 15° от предыдущего. Позиция Е эквивалента позиции А, так как
поворот равен 60°. При повороте по часовой стрелке состояния сменяются в порядке A-B-C-D-E
слева направо, но, если рассматривать состояния справа налево, получится последовательность
E-D-C-B-A, что соответствует повороту против часовой стрелки.
Отметим, что правый фототранзистор 2 изменяет состояние "свет"-"темнота" в позиции А при
повороте по часовой стрелке и в позиции С при повороте против часовой стрелки. Зафиксируем
состояние верхнего фоторанзистора 1, когда фототранзистор 2 переходит от "света" к "темноте".
Если фототранзистор 1 освещен, то поворот происходит по часовой стрелке, а если он не освещен,
происходит поворот против часовой стрелки. Контроллер мыши использует этот факт для регистрации
направления: когда фототранзистор 2 изменяет состояние "свет"-"темнота", для определения направления
опрашивается состояние фототранзистора 1. Для измерения расстояния используется число переходов.
Конечно, фототранзисторы взаимозаменяемы и не играет роли, какой из них используется для
регистрации шага, а какой для определения направления. Если изменить подключение двух сигналов,
курсор просто будет двигаться слева направо вместо того, чтобы двигаться справа налево.
На следующем рисунке показаны соответствующие электрические сигналы переключений через
15°.
Интерфейс мыши PS/2
В современных РС наибольшее распространение получила мышь типа PS/2, которая стала стандартной при переходе материнских плат на форм-фактор АТХ, имеющий интегрированный разъем для мыши. Мышь PS/2 подключается к материнской плате с помощью круглого 6-контактного разъема mini-DIN, аналогичного разъему клавиатуры. Данные передаются с использованием последовательного асинхронного протокола, аналогичного протоколу клавиатуры. Поступившие в РС данные обрабатывает контроллер клавиатуры.
В стандартной мыши PS/2 компании Logitech по умолчанию принята разрешающая способность
160 отсчетов на дюйм (Counts Per Inch - CPI), но допускает программную настройку на разрешение
40, 80, 160 или 320 CPI. Драйвер мыши операционной системы Windows 95 по умолчанию принимает
160 CPI. Максимальная скорость слежения (tracking rate) для мыши PS/2 составляет
40 сообщений/секунда * 255 отсчетов/сообщение = 10 200 отсчетов в секунду. При разрешающей
способности 100 CPI получается максимальная скорость слежения 102 дюйма в секунду, а для
400 CPI - только 25.2 дюймов в секунду.
Разводка контактов разъема
Контакт Название сигнала 1 DATA 2 Зарезервирован 3 Земля 4 Питание +5 В 5 CLK 6 Зарезервирован Экран Шасси |
Контакты разъема: 6 5 4 3 2 1 |
Двунаправленная передача данных производится по линиям CLK и DATA. Обеими линиями управляют схемы с открытым коллектором, поэтому РС или мышь могут устанавливать уровень сигнала на "0". Когда данные не передаются, сигнал CLK соответствует "1", а сигнал DATA может быть "0" или "1". Компьютер может запретить передачу данных от мыши, форсируя CLK на "0". Если компьютер запрещает мышь в процессе передачи, байт необходимо передавать повторно (если состояние запрещения возникло перед 11-м тактом синхронизации).
Алгоритмы приема и передачи данных довольно простые:
Прием данных: Проверить сигнал CLK. Если он неактивен, на линии DATA имеется бит данных. Каждая единица передачи состоит из одного стартового бита, восьми битов данных, бита нечетного паритета и одного стопового бита. Стартовый бит имеет низкий уровень, а стоповый бит - высокий уровень. Продолжительность активного и неактивного состояния сигнала CLK составляет от 30 до 50 мкс.
Передача данных: Проверить, что сигналы CLK и DATA имеют высокий уровень. Необходимо
установить низкий уровень на линии DATA для стартового бита и начать синхронизацию.
Коммуникационный протокол двухкнопочной мыши (Microsoft Mouse)
Эта мышь на каждое событие (движение мыши или нажатие кнопки) передает три байта. Первый байт
сообщает направление движения и состояние кнопок. Второй и третий байты содержат значения
движения по осям X и Y.
В следующей таблице приведено описание байтов.
Байт | Бит | Назначение |
---|---|---|
1 | 0 - 1 | Направление X (00 - вправо, 11 - влево) |
2 - 3 | Направление Y (00 - вниз, 11 - вверх) | |
4 | Правая кнопка (0 - ВЫКЛ, 1 - ВКЛ) | |
5 | Левая кнопка (0 - ВЫКЛ, 1 - ВКЛ) | |
6 - 7 | Всегда 11 | |
2 | 0 - 5 | Разность по направлению X (-32 - 31) |
6 | Всегда 0 | |
7 | Всегда 1 | |
3 | 0 - 5 | Разность по направлению Y (-32 - 31) |
6 | Всегда 0 | |
7 | Всегда 1 |
Коммуникационный протокол трехкнопочной мыши
В некоторых РС применяются трехкнопочные мыши компании Mouse System. В этом случае пакет
передаваемых данных состоит из пяти байтов. Первый байт сообщает состояние кнопок. Второй т
третий байты показывают значение движения по осям X и Y. Четвертый и пятый байты сообщают
значение скорости движения по осям X и Y.
В следующей таблице приведено описание байтов пакета:
Байт | Бит | Назначение |
---|---|---|
1 | 0 | Правая кнопка (1 - ВЫКЛ, 0 - ВКЛ) |
1 | Средняя кнопка (1 - ВЫКЛ, 0 - ВКЛ) | |
2 | Левая кнопка (1 - ВЫКЛ, 0 - ВКЛ) | |
3 - 6 | Всегда 0 | |
7 | Всегда 1 | |
2 | 0 - 7 | Разность по направлению X (-128 - 127) |
3 | 0 - 7 | Разность по направлению Y (-128 - 127) |
4 | 0 - 7 | Разность скорости по направлению X (-128 - 127) |
5 | 0 - 7 | Разность скорости по направлению Y (-128 - 127) |
Новые конструкции мыши
Мышь WheelMouse
В этой конструкции мыши между кнопками появилось колесико, которое позволяет удобно и просто выполнять некоторые функции, не расходуя времени на перемещение мыши.
Достоинства WheelMouse:
- Простой скроллинг документа: Для скроллинга документа вперед или назад достаточно вращать колесико в том или ином направлении (в Windows-приложениях), вместо щелчков в полоске скроллинга или буксировки бегунка.
- Быстрое масштабирование: Для масштабирования объекта необходимо удерживать нажатой клавишу Ctrl и вращать колесико в том или ином направлении (в совместимых приложениях).
- Комфортная работа с мышью: Корпус мыши удобно располагается в ладони руки независимо от размера ладони и его легко удерживать при работе правой или левой рукой. Такая мышь идеально подходит для РС, на которых работает несколько человек.
- Гарантия: Гарантийный срок аппаратных средств мыши составляет два года.
Мышь IntelliMouse
IntelliMouse объединяет колесико скроллинга с эргономической конструкцией. Значительно ускоряя такие навигационные задачи, как скроллинг Web-страниц и документов, IntelliMouse устанавливает новый стандарт для указывающих устройств.
Достоинства IntelliMouse:
- Простой скроллинг документа: Для скроллинга документа вперед или назад достаточно вращать колесико в том или ином направлении (в Windows-приложениях), вместо щелчков в полоске скроллинга или буксировки бегунка.
- Быстрое масштабирование: Для масштабирования объекта необходимо удерживать нажатой клавишу Ctrl и вращать колесико в том или ином направлении (в совместимых приложениях), не привлекая меню или панели инструментов.
- Автоматический скроллинг (Auto-Scroll): Необходимо нажать колесико, установить скорость скроллинга и наблюдать автоматический скроллинг документа.
- Комфортная работа с мышью: Корпус мыши удобно располагается в ладони руки, а боковые стороны изогнуты, что позволяет легко удерживать мышь при работе правой или левой рукой.
- Гарантия: Гарантийный срок аппаратных средств мыши составляет три года.
Бесшнуровая мышь
В бесшнуровой (cordless mouse) мыши компании Microsoft применяется
усовершенствованная двухканальная цифровая радио-технология. Благодаря этому мышь работает
даже в том случае, когда РС находится под столом или невидим. Расстояние мыши от приемника
не должно превышать примерно 1.5 м. Основная конструкция мыши напоминает WheelMouse и сохраняет
все ее достоинства.
Оптическая мышь IntelliMouse
В этой мыши традиционный шарик заменен на специальный инфракрасный оптический датчик IntelliEye, который отслеживает движение, производя восприятие 1500 изображений в секунду. Изображения сравнивает цифровой сигнальный процессор и изменения изображений преобразуются в плавное и точное перемещение курсора мыши на экране. В этом способе корреляционной обработки изображений (image correlation processing) цифровой сигнальный процессор выполняет 18 млн операций в секунду. Датчик герметизирован для предотвращения попадания пыли и грязи, которые вызывают хаотичное перемещение курсора.
Достоинства оптической мыши IntelliMouse:
- Простой скроллинг документа: Для скроллинга документа вперед или назад достаточно вращать колесико в том или ином направлении (в Windows-приложениях), вместо щелчков в полоске скроллинга или буксировки бегунка.
- Простая навигация в Web: Две боковые кнопки обеспечивают переходы по Web-страницам назад и вперед, не пользуясь клавиатурой или панелью инструментов броузера. Эти кнопки можно запрограммировать на выполнение часто требующихся задач.
- Не требуется коврик для мыши: Точный оптический датчик фиксирует движение практически на любой поверхности (за исключением сильно отражающих и не имеющих текстуры, например зеркало и стекло) и специальный коврик для мыши не требуется.
- Эргономическая конструкция: Независимо от главной руки и размера ладони можно комфортно держать мышь.
- Гарантия: Гарантийный срок аппаратных средств мыши составляет пять лет.
Мышь-телефон
Мышь и телефон с гарнитурой и спикерфоном (speakerphone) объединены в одном устройстве. Оно работает как тоновый телефон, и может с успехом заменять простые телефоны, подключенные к офисной мини-АТС. С правой стороны мыши-телефона находится спикерфон, с левой - микрофон. Между клавишами кнопка включения/выключения спикерфона и маленький индикатор, который загорается при занятой телефонной линии. Желтая клавиша с изображением телефона предназначена для доступа в общую телефонную сеть. Устройство имеет три выхода: телефонный разъем, выход под гарнитуру и выход для подключения к компьютеру (PS/2). При работе с мышью клавиши набора телефонного номера не мешают.
Биометрическая мышь
В стандартную двухкнопочную мышь встроена видеосистема, которая позволяет распознавать отпечаток пальца владельца и не разрешает работать с мышью другим людям. Размер файла отпечатка пальца составляет 500 байтов, время сканирования 0.13 с, а время распознавания - 0.2 с. Такая мышь обеспечивает очень высокую степень защиты. Выпускается компанией IBS (http://www.ibs-elec.com/).
"Безрукая" мышь
Компания http://www.nohandsmouse.com/ предлагает так называемую "безрукую" мышь (NoHandsMouse), т.е. устройство, которое практически устраняет необходимость пользоваться рукой для управления мышью и курсором. Устройство имеет две ножные педали. Одна педаль предоставляет пользователю возможность управлять скоростью и направлением движения курсора. Вторая ножная педаль позволяет производить щелчки и осуществлять буксировку (dragging), или "перетаскивание" объектов. Устройство допускает одновременное применение и обычной мыши.
Другие конструкции указывающих устройств
"Головная" мышь
Для многих людей пользоваться обычной "ручной" мышью неудобно. Если важно иметь интенсивное
взаимодействие с монитором, если руки пользователя заняты чем-то еще или устали, можно воспользоваться
для управления курсором так называемую "головную мышь" (head mouse). Такие устройства
под разными названиями выпускают несколько компаний, например Mousamatic (http://www.mousamatic.com/).
Устройство, предназначенное для настольных и портативных компьютеров, располагается на голове
с помощью регулируемого ремня и не мешает обычной работе на компьютере. Питание устройства
осуществляется от сети или от внутренних батарей. Для коммуникации с компьютером используется
инфракрасное излучение. Сигнал воспринимается при любом удалении от монитора и под любым углом к
нему. Устройство эмулирует двухкнопочную мышь компании Microsoft и может использовать в качестве
кнопок разнообразные переключатели. Разрешающая способность устройства составляет 0.03".
Интересно отметить, что при наличии этого устройства сохраняются функции обычной мыши, подключенной
к последовательному порту.
Трэкболл
Традиционная мышь неудобна тем, что для перемещения курсора по экрану небходимо физически двигать мышь,
что не всегда возможно при работе на портативном компьютере. Для устранения этого недостатка
было разработано указывающее устройство, называемое трэкболом (trackball), или роллерболом
(roller ball). Это устройство фактически представляет собой перевернутую мышь, шарик которой
находится вверху и пользователь вращает его для перемещения курсора мыши по экрану в нужном
направлении.
Сам же корпус трэкбола остается неподвижным. На корпусе трэкбола имеются кнопки, эквивалентные кнопкам мыши. На рынке предлагается много конструкций трэкбола, хотя основный принцип действия остается одним и тем же. Часто в портативных компьютерах трэкбол встраивается непосредственно в клавиатуру, а его кнопки располагаются внизу клавиатуры под клавишей пробела. В любом случае интерфейс трэкбола практически не отличается от интерфейса стандартной мыши.
В некоторых трэкболах реализована технология Plug and Play, т.е. они готовы к работе сразу
после подключения к компьютеру, а другие требуют инсталлирования специального драйвера.
Обычно драйвер предусматривает настройку чувствительности трэкбола и назначения различных
функций его кнопкам.
Джойстик
Для компьютерных игр в качестве указывающих устройств разработано множество игровых
контроллеров, но наиболее популярным из них является джойстик (joystick). Он
представляет собой ручку, которую можно поворачивать в любом направлении, и в
зависимости от направления поворота ручки перемещается курсор на экране. В конструкции
джойстика предусмотрены также кнопки, действие которых напоминает операции кнопок
мыши. В настоящее время освоен выпуск как аналоговых, так и цифровых джойстиков.
В аналоговых джойстиках регистрирующими движение элементами являтся потенциометры, а в
цифровых - кнопки UP (вверх), DOWN (вниз), LEFT (влево) и RIGHT (вправо). Аналоговые
джойстики обеспечивают более точное позиционирование курсора на экране.
Для "фанатов" компьютерных игр, которым требуется управлять курсором на экране, не
пользуясь руками, за рубежом выпускаются джойстики, управляемые, как это ни странно звучит,
ртом. Пользователь держит в руке трубочку, напоминающую соломинку для питья жидкостей,
и двигая ее губами в определенном направлении, заставляет курсор на экране перемещаться
в соответствующем направлении. Щелчки имитируются вдыханием и выдыханием воздуха чере
трубочку.
Мышь и джойстик с выносными переключателями
Для того, чтобы в играх предоставить возможность управлять мышью или трэкболом нескольким игрокам,
разработаны мыши и трэкболы (они называются Switch Adapted Mouse и Switch Adapted
Trackball), к которым можно подсоединять внешие переключатели. Эти
переключатели действуют как дополнительные кнопки мыши, а обычные кнопки могут
функционировать или нет.
Указывающее устройство со слежением за движением глаз
Для того, чтобы освободить руки пользователя, разработано устройство, в котором перемещение курсора осуществляется системой, следящей за движением глаз пользователя. На мониторе компьютера смонтирована видеокамера, которая фокусируется на глаз пользователя и следит за его взглядом. На экране отображаются управляющие клавиши, переводя взгляд на которые пользователь может синтезировать речь, вводить символьные данные ("печатать"), запускать программы и т.д.