Модификация мыши: хвостатой, оптической, вибрирующей

29 марта 2004, понедельник 01:10
для раздела Лаборатория

Эта работа была прислана на наш "бессрочный" конкурс статей. От предложенного приза (материнской платы под Р4) автор с негодованием отказался, поэтому пришлось специально искать подходящие призы. В итоге сошлись на том, что автору вручается сразу несколько наград:

  • Видеокарта ATI Radeon 9500 64 MB – 1 шт. (неисправная, с выпаянными деталями)
  • Процессоры AMD Athlon XP – 3 шт. (все нерабочие)
  • Процессор AMD Duron – 1 шт. (дохлый).

Автор и редакция сайта полностью удовлетворены достигнутым соглашением. Идея награждать за статьи неисправными, некондиционными, сломанными, сгоревшими или новыми, но изначально неработоспособными призами, редакции понравилась. В будущем планируем расширить эту практику, если случайно попадётся работающий экземпляр – сломаем и подарим.


Мышку считают расходным материалом и не удостаивают вниманием. И очень даже напрасно – настоящие игроки тщательно выбирают и очень аккуратно обращаются с грызуном. Увы, фантазии пользователей хватает только на боевую раскраску мышки, но ведь можно и привнести нечто большее в функционирование устройства. Хорошая мышка доставит удовольствие, а плохая... плохая не только способна испортить настроение, но даже отрицательно повлиять на здоровье – заболевание рук не такая уж и редкая болезнь нашего компьютерного века. Моя доработка делается на обычной оптической мышке, что облегчает повторяемость конструкции.

1. Повышение скорости работы сенсора.

Схема оптической и опто-механической mouse одинакова, за одним исключением – оптико-механический узел перемещения заменен сенсором. Такое построение позволяет легко перейти индустрии устройств ввода (mouse) с механики на оптическую технологию. Вся хитрость сосредоточена в сенсоре, который "фотографирует" видимую поверхность, по последовательным кадрам считает перемещение и выдает соответствующее количество импульсов, эмулируя обычный оптико-механический узел.

Из этого построения следует, что скорость (и частота) работы сенсора не влияет на функционирование мыши в целом. Т.е., частота работы сенсора может быть изменена. Если бы сенсор и контроллер мыши были в одной микросхеме, то подобные "вольности" были крайне затруднены. Интересно, что некоторые оптические сенсоры могут выполнять функции контроллеров, но все равно переконфигурируются в режим простого сенсора – как правило, такие контроллеры не поддерживают уже стандартные функции третьей кнопки и колесо скроллинга.





Оптических сенсоров бывает множество, например Agilent Technologies и ее классическая H2000. Скорость работы этого сенсора задается внешним кварцем в 12MHz и не может быть изменена программно, как на некоторых других моделях. Печально, остается только метод грубой силы – увеличение частоты. Мышка прекрасно работает на 40MHz, дальнейшее повышение частоты до 50MHz не нарушает работоспособность, но наблюдается снижение разрешения. В сенсоре изображение формируется на матрице ПЗС (прибор с переносом заряда) и информация считывается подачей попеременных уровней напряжения на фотоячейки, что вызывает перенос заряда, который формируется от засветки в микроячейках светочувствительной матрицы. Проблема в том, что при повышении частоты коммутации не весь заряд успевает переместиться в соседнюю ячейку и соседние точки немного смешиваются. Если еще больше повысить частоту работы сенсора, то произойдет смазывание изображения и процессор сенсора не сможет отслеживать перемещение.

Частота в 40MHz и так в 3 раза больше первоначальной и как-то мало смысла повышать ее еще больше в ущерб стабильности. Интересный момент – если просто заменить кварц с 12MHz на 40MHz, то ровным счетом ничего не произойдет, время засветки светодиода после движения останется прежним. Дело в том, что кварцы на частоту выше 25MHz изготавливаются на третью гармонику и без специальных средств возбуждаются только на первой гармонике. Вот и выходит 40/3=13MHz, что практически равно старому кварцу в 12MHz. Для перевода его на третью гармонику надо поставить LC цепочку:

Индуктивность в 3uH можно получить из резистора 0.125W с большим сопротивлением (>47KOm), намотав 50 витков тонким проводом диаметром 0.08–0.12mm. Таким способом было переделано три мышки разных производителей – Logitech, Arowana, A4Tech. Увы, везде стоял сенсор на H2000. Точнее сказать, я пересмотрел больше десятка разных оптических мышек и уже отчаялся увидеть что-либо отличное от H2000. Никаких отрицательных моментов за два года эксплуатации не возникало. Доработана мышка или нет, я замечал только по времени горения светодиода подсветки. Однако, как мне кажется, в доработанных мышках исчезли срывы и повысилась плавность при резких движениях. На Arowana иногда наблюдался очень неприятный дефект – при очень резком перемещении вдруг оказываешься смотрящим в пол. Очень неприятно, сильно дезориентирует. После доработки этот дефект пропал.

У предложенного метода разгона есть недостаток – в 3 раза сдвигается порог динамического ускорения. Динамическое ускорение в мышке означает удвоение (или утроение) количества импульсов при превышении некоторой скорости перемещения выше пороговой. Т.е., при медленном перемещении идет 1х, а при большей скорости – 2х. С другой стороны, этот порог удвоения выбирается для обычной работы, что совсем не пригодно для динамичных игр. Так что выходит, что эта доработка, скорее благо, чем зло.

2. Механическая обратная связь.

В терминологии Logitech это iFeel – выдача вибрации различной амплитуды и ритма. Как–то, начитавшись обзоров, купил Logitech iFeel MouseMan и попробовал играть – бОльшего разочарования трудно представить. Мышь тяжелая, неудобная, iFeel невыразительный. Через полчаса заболела кисть, чего никогда не случалось. Это было давно и я благополучно забыл этот страшный сон. Подробнее о технологиях "Feedback" можно почитать на сайте Immersion. Недавно мне попался на глаза виброзвонок от какого–то сотового телефона и появилась мысль – получить аналогичный эффект, но без жутких драйверов Immersion. Сделал схему, фильтрующую НЧ составляющие и отправляющую их на виброзвонок.

Схема состоит из двух частей – фильтр низких частот (ФНЧ) на первой половине LM358 и усилителя-выпрямителя на второй половине LM358. ФНЧ выполнен на C3, R3, C4, R4; цепь R1, R2, C1 задает смещение 1/2 питания для нормальной работы фильтра. Резистором R9 регулируется уровень сигнала. Конденсатор C2 снимает постоянную составляющую и на вход выпрямителя приходит переменное напряжение с нулем на земле. Это весьма удобно, т.к. надо получить на выходе не переменный, а выпрямленный сигнал. Выпрямитель берет обратную связь с выхода, что уменьшает вредоносное влияние виброзвонка. У меня применен виброзвонок с внутренним сопротивлением по постоянному току 30 Om, рабочее напряжение 3V. Выпрямленное напряжение не сглаживается конденсаторами и это сделано специально – так меньше инерционность и как–то сказывается ритм, форма и частота на характер вибрации.

Конденсаторы и резисторы могут быть любыми, только C3 должен быть с малым током утечки, т.е. не электролитический. Транзистор Q1 любой npn, Q2 любой pnp но с "средним" током коллектора (0.3–2A). Совсем слаботочный на Q2 лучше не ставить, ведь он обеспечивает ток виброзвонка. Сам виброзвонок на 3–5V с не очень большим током, ведь мощность USB не беспредельна. У меня вся схема размещена в самой мышке, регулятор уровня внизу слева и не мешает игре, что удобно для регулировки во время игры. Виброзвонок приклеен к внутренней стороне верхней крышки mouse, там же и схема. Прижим виброзвонка может не дать надежного механического соединения, ведь уровень вибрации весьма значителен. При добавлении схемы общий вес мышки практически не изменился.





Когда-то давно я удлинил кабель мышки плетеным поводом, теперь один из этих поводков использован под передачу audio-сигнала. Плетеный провод я делал потому, что так провод мягче и почти не заметен при игре. Для подключения к звуковой плате придется сделать переходник-удлинитель и с него снять сигнал в мышку. Можно взять с левого или правого канала, а можно с их полусумм – я поставил по резистору в 10K в каждый выход (левый и правый), а среднюю точку подключил к mouse. Провод от звуковой карты к мышке лучше вести экранированным кабелем, его экран заземлить на стороне звуковой карты и ни в коем случае не соединять с землей мышки! Если это не выполнить, то можно получить большой уровень шумов и помех в звуковой карте.

У приведенного способа масса недостатков:

  • большое время до начала вибрации (механическая инерция виброзвонка)
  • еще большее время послезвучания по окончанию звука.
  • маленький диапазон уровней громкости вибрации.
  • при включении питания издает вибрацию на 1–2 секунды. Можно устранить некоторым усложнением схемы.

Некоторые достоинства:

  • очень легкая конструкция, практически не утяжеляет мышь
  • достаточно простая схема
  • отсутствие драйверов, patch'ей и прочего.

Есть игры, в которых эффект вибрации лучше, а есть те, где "неудачно". К первым я бы отнес UT и UT2003, остальные "по–разному". Рекомендация – делайте уровень громкости музыки в 2 раза тише эффектов, тогда музыка не будет вызывать вибрации. Кстати, попутно получился интересный эффект – когда в Хром'е я зашел в машинный зал с постоянно лязгающими агрегатами, то мышка начала вибрировать. Схема собрана несколько дней назад и когда у меня ее брали посмотреть, то явственно почувствовал, как "чего–то не хватает". Такой пустяк, а уже привык. Для дальнейшего развития надо попробовать заменить виброзвонок на вибродинамик. Это линеаризует уровни вибрации и сами вибрации станут "правильнее", но вызывает тревогу возможный вес конструкции.

По техническим вопросам прошу обращаться в эту тему конференции, а комментарии к статье прошу оставлять в этой теме.

Serj

Страницы материала
Страница 1 из 0
Оценитe материал

Теги

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают