![image](https://habrastorage.org/webt/t9/qb/b8/t9qbb8nv3awoavsxk6zgme7u3u4.jpeg)
WX-Mouse — это создание, в каком либо корпусе, мышки с уникальным функционалом и отличным качеством работы сенсора. В этой заметке я расскажу как сделать WX-Mouse в необычном корпусе — Nova Slider 600.
У мыши Nova Slider 600 необычный корпус. Мало того что сам корпус как будто слепок с чьей то руки, так еще и провод USB находится с правого боку.
![image](https://habrastorage.org/webt/po/8x/9b/po8x9be1jobh1f2zayhn2h3e5u0.jpeg)
![image](https://habrastorage.org/webt/fr/ww/2o/frww2ongy4sdkm4clse-qien4dc.jpeg)
Особенно удивляет боковой ввод USB кабеля. Сначала я отнесся к этому скептически, но попробовав мышку в игре, согласился — такой вариант имеет право на жизнь — кабель, даже такой дубовый как у этой мыши, практически не ощущался.
«Вернемся к нашим баранам» — для тех кто не знает о проекте W-Mouse, несколько слов о нём, чтобы было понятно зачем вообще переделывать работающую мышь.
Подробнее о проекте W-Mouse
Проект W-Mouse и его развитие WX-Mouse, осуществлен Walkie.
Основные достоинства и возможности WХ-Mouse:
Все это делает WХ-Mouse уникальной мышью.
WХ-Mouse делается следующим образом — берется корпус серийной мыши, который удовлетворяет требованиям эргономики и имеет нужное количество кнопок. В этом корпусе оставляются кнопки и оптический сенсор (если он подходит), а также подсветка и прочие рюшечки. Все остальное — родной контроллер, мелкие детали и ненужная часть основной платы выкидываются. Далее в корпус вставляется плата WХ-Mouse (плата WХ и сенсор могут быть объединены, а также есть варианты, когда полностью заменяется родная плата мыши). После этого выполняются соединения от сенсора, кнопок и подсветки с платой WХ, вдувается прошивка WX-Mouse в контроллер и WX-Mouse готова.
Мыши W-Mouse отличаются от других мышей уникальной функциональностью и высоким качеством работы. Как иллюстрация этого утверждения предлагаю комментарий человека, который не так давно стал счастливым обладателем WX-Mouse — ссылка на комментарий.
W-Mouse использует линейку «игровых» сенсоров, фирмы Avago — ADNS 6010, 6090, 3080, 3090, 9500, 9800
WX-Mouse используется топовые сенсоры PMW-3360 и PMW-3389.
Для наглядного представления о возможностях WX-Mouse, предлагаю взглянуть на окно программы её настройки:
![image](https://habrastorage.org/r/w780q1/webt/p8/nc/vy/p8ncvykpuzougfgptf5bi04ocqs.jpeg)
Как пример — мышью можно писать как ручкой.
![image](https://habrastorage.org/r/w780q1/webt/ra/hn/am/rahnamul1ngktwymrsqwzzug1v8.jpeg)
картинка нарисована в паинте, при масштабе 100%, размер букв на экране составлял 4-5мм.
Проект обсуждается в конференции в теме Лазерный оптический сенсор — проект W-Mouse
Основные достоинства и возможности WХ-Mouse:
- Точность работы сенсора — сенсор при сборке, выставляется на высоту наилучшей фокусировки.
- Настройка динамики движения — зависимость чувствительности от скорости. Доступны довольно широкие настройки. Например можно задать параметры dpi и скорости, таким образом, чтобы на низких скоростях движение было попиксельно точным, а на широких движениях (резкие развороты) не нужно было махать мышью на полстола. Получается сочетание высокой и низкой сенсы…
- Возможность использования фильтрации, а также функция настраиваемой угловой притяжки — повышают удобство работы в программах проектирования.
- Выводить видео-картинку работы сенсора, что например, позволяет контролировать фокусировку сенсора.
- Ускорение прокрутки колеса (удобно листать большие страницы).
- Хранение всех настроек (8 профилей) в памяти мыши.
- 8 профилей, индикация каждого, настраиваемой RGB подсветкой.
- Режим работы кнопок Buss-keeper — увеличивает надежность определения состояния кнопки.
Все это делает WХ-Mouse уникальной мышью.
WХ-Mouse делается следующим образом — берется корпус серийной мыши, который удовлетворяет требованиям эргономики и имеет нужное количество кнопок. В этом корпусе оставляются кнопки и оптический сенсор (если он подходит), а также подсветка и прочие рюшечки. Все остальное — родной контроллер, мелкие детали и ненужная часть основной платы выкидываются. Далее в корпус вставляется плата WХ-Mouse (плата WХ и сенсор могут быть объединены, а также есть варианты, когда полностью заменяется родная плата мыши). После этого выполняются соединения от сенсора, кнопок и подсветки с платой WХ, вдувается прошивка WX-Mouse в контроллер и WX-Mouse готова.
Мыши W-Mouse отличаются от других мышей уникальной функциональностью и высоким качеством работы. Как иллюстрация этого утверждения предлагаю комментарий человека, который не так давно стал счастливым обладателем WX-Mouse — ссылка на комментарий.
W-Mouse использует линейку «игровых» сенсоров, фирмы Avago — ADNS 6010, 6090, 3080, 3090, 9500, 9800
WX-Mouse используется топовые сенсоры PMW-3360 и PMW-3389.
Для наглядного представления о возможностях WX-Mouse, предлагаю взглянуть на окно программы её настройки:
![image](https://habrastorage.org/webt/p8/nc/vy/p8ncvykpuzougfgptf5bi04ocqs.jpeg)
Как пример — мышью можно писать как ручкой.
![image](https://habrastorage.org/webt/ra/hn/am/rahnamul1ngktwymrsqwzzug1v8.jpeg)
картинка нарисована в паинте, при масштабе 100%, размер букв на экране составлял 4-5мм.
Проект обсуждается в конференции в теме Лазерный оптический сенсор — проект W-Mouse
План действий по переделке Nova Slider 600 в WX-Mouse
- Сборка платы WX с контроллером atxmega32a4u и сенсором, прошивка контроллера.
- Анализ корпуса мыши-пациента, чтобы решить как, что и в каком порядке переделывать.
- Доработка дна мыши для установки линзы сенсора PWM-3360
- Установка платы WX на стойки.
- Контроль высоты установки сенсора.
- Переделка основной платы мыши. Замена кнопок на omron D2FC-F-K(50M)
- Переделка боковой платы мыши. Замена кнопок на omron D2FC-F-K(50M)
- Согласование RGB подсветки.
- Распайка разъемов.
- Окончательная сборка.
1. Сборка платы WX осуществляется в следующем порядке:
— Первым делом запаиваются 3 стабилизатора напряжения. После этого плата подключается к +5В и тестером проверяем, что все три стаба работают нормально.
— Запаивается контроллер — atxmega32a4u
![image](https://habrastorage.org/webt/jj/6u/i_/jj6ui_d1z1rg3zgbdz_i2horhmm.jpeg)
— Прошиваем контроллер программатором, питание берем с платы программатора.
— Подключаем плату WX к компьютеру по USB и прошиваем в контроллер прошивку WX-Mouse. Это делается уже штатным прошивальщиком.
— Запаиваем сенсор. Во время пайки надо проконтролировать плотную посадку сенсора на плату и отсутствие перекоса в горизонтальной плоскости.
![image](https://habrastorage.org/webt/jo/ku/-t/joku-tbxticimbxnn_qeerokygc.jpeg)
— Ставим линзу, подключаем к компьютеру и убеждаемся в работоспособности собранной платы WX, уже как собственно мыши, т.е. подносим плату к поверхности и смотрим на движение курсора.
2. Вот так внутри выглядит наш пациент
![image](https://habrastorage.org/webt/ul/c_/g7/ulc_g7pumbin5bwdtvn546-v0pw.jpeg)
![image](https://habrastorage.org/webt/xn/_w/8m/xn_w8m3idwetqgjmdq3unl2k1q0.jpeg)
Как видим, конструкция «двухэтажная», но нас интересует только основная плата, т.к. как на ней расположены все основные кнопки и енкодер колеса.
![image](https://habrastorage.org/webt/cj/hd/hf/cjhdhfdumwe6krsee51soalueha.jpeg)
Так как большая часть основной платы не будет использоваться и расположена эта часть на том месте, где будет стоять WX плата, то эту ненужную часть основной платы безжалостно отрезаем и выкидываем. При этом от основной платы останется небольшой обрезок, на котором расположены три основные кнопки, а также дополнительная кнопка, толкатель которой выведен на спину мыши.
Видно, что расстояние от отверстия в дне сенсора до дополнительной кнопки на спине мыши небольшое и если использовать это штатное отверстие, то плата WX тупо не влезает — мешает дополнительная кнопка. Так как заказчик настаивал на использовании штатного отверстия, то решено было сдвинуть эту кнопку ближе к колесу.
3. В большинстве современных мышей производители ставят сенсоры на одинаковую высоту. Эта высота определяется расстоянием от рабочей поверхности (коврик) до нижней поверхности линзы и составляет 2.4мм.
![image](https://habrastorage.org/webt/qa/gu/i4/qagui45xf8pyqzhil9jiszv7khq.jpeg)
![image](https://habrastorage.org/webt/ew/ep/bx/ewepbxyemzgjpb3u24jzuzo-sh4.jpeg)
Линза сенсора PWM-3360 имеет форму, контур которой на картинке отмечен карандашной линией.
Расширение ложа для линзы сделано с помощью дремеля, используя насадку с боковыми режущими кромками и плоским торцом.
Примерка линзы:
![image](https://habrastorage.org/webt/gj/-m/gi/gj-mgihyculqtlvr4mc9jz5bmtg.jpeg)
4. Дно этой мыши имеет необычную конструкцию.
![image](https://habrastorage.org/webt/sr/f_/y6/srf_y60st11ahw9qu_tubljjyx8.jpeg)
Боковые вставки из молочно-матовой пластмассы крепятся на специальных стойках. Расположение этих стоек приходится на то место, куда ставится плата WX.
Если срезать эти стойки, то придется как-то крепить боковые вставки, например термоклеем. По надежности и чисто эстетически, этот вариант мне не нравился.
При примерке платы WX, оказалось, что отверстия в стойках дна располагаются недалеко от крепежных отверстий платы WX, и как раз в зоне, где нет дорожек. Поэтому было решено использовать имеющиеся стойки, только уменьшить их высоту. Для этого в плате WX были сделаны дополнительные отверстия для винтиков.
В результате и овцы сыты и волки целы :)
![image](https://habrastorage.org/webt/yu/dc/2e/yudc2ep1a5q7rjrlxlcdqtrlmxk.jpeg)
C противоположной стороны стойки сделал из дюралюминия, их высота выбрана такой, чтобы линза плотно прижималась WX платой к поверхности дна.
![image](https://habrastorage.org/webt/qm/_p/zv/qm_pzvj51a8ybymoqznxgrureoa.jpeg)
Вид со стороны дна
![image](https://habrastorage.org/webt/qg/ik/ir/qgikiraionxqiqbdimwounqxzuy.jpeg)
тут видно, что форма отверстия была изменена — она сделана такой, как указывает в даташите производитель сенсора.
5. На этом этапе было проконтролировано с помощью видео-картинки, считываемой с сенсора, что высота установки линзы обеспечивает хорошую фокусировку.
6. Основная плата была обрезана так, чтобы можно было разместить плату WX.
![image](https://habrastorage.org/webt/s2/zo/yn/s2zoynixsrpjywb0zgowb5uckgy.jpeg)
Видно, что линия обрезки основной платы пришлась на отверстия для выводов доп-кнопки.
Далее эта плата была проанализирована на возможность подключения кнопок, енкодера и светодиодов подсветки к стоящему на ней разъему, с максимальным использованием уже существующих дорожек. Для этого была «переснята» на бумагу схема дорожек на этой плате.
![image](https://habrastorage.org/webt/gj/-l/px/gj-lpxl-zepuqwrtmatfzv8yg-4.jpeg)
На картинке проводники каждого из каналов RGB нарисованы своим цветом.
Оказалось, что есть возможность использовать почти все существующие дорожки. Дорожки, которые надо добавить, нарисованы пунктиром. Очень повезло, что RGB подсветка заведена на разъем.
Для монтажа дополнительной кнопки были просверлены отверстия, смещенные на 3мм в сторону колеса.
![image](https://habrastorage.org/webt/9j/23/zm/9j23zmr6k1st2mdtqclksb3h7zy.jpeg)
Далее были установлены кнопки D2FC-F-K(50M) (заказчик решил заменить на них вообще все кнопки в мыше), заменен RGB светодиод на такой же, но с более длинными выводами, чтобы можно было подсвечивать матовую вставку вокруг колеса. Выполнена разводка кнопок на разъем.
![image](https://habrastorage.org/webt/-6/jx/tq/-6jxtqjttxmfuina0is6iugzrzi.jpeg)
При использования режима Buss-Keeper, общий контакт или по другому полюс должен переключаться между двумя направлениями — это земля и +3.3В.
В микропереключателях, которые ставят в мыши, общий контакт или по другому полюс располагается с краю под штоком кнопки. Этот контакт переключается между центральным выводом и дальним (от штока) выводом. В ненажатом состоянии полюс замкнут на дальний контакт, в нажатом соединяется с центральным выводом.
Большинство производителей мышей используют только два вывода, причем с шиной земли соединять почему-то предпочитают крайний вывод, а не центральный. В результате для использования режима Buss-Keeper, при переделке в WX-Mouse, приходится менять разводку кнопки, так чтобы к земле был припаян центральный вывод.
Очень повезло, что кнопки производителем, были подключены средним контактом на землю. Это позволило реализовать режим Buss-keeper с минимальными доработками.
Также удалось по максимуму использовать существующие дорожки и дополнительных соединений почти не делать.
![image](https://habrastorage.org/webt/53/ax/9_/53ax9_4rrko_dzfwfjkieraqfb0.jpeg)
7. На боковой плате производитель использовал не RGB светодиоды, а одноцветные. Поэтому пришлось делать дополнительную маленькую платку на два RGB светодиода.
Платка примитивна, поэтому дорожки просто прорезал скальпелем. На картинке эта плата просвечивается снизу, чтобы хорошо видно было дорожки.
![image](https://habrastorage.org/webt/o0/b9/hh/o0b9hha6zitpwja4_nlakmz2jow.jpeg)
Боковая плата также была проанализирована на предмет использования существующих дорожек для подключения кнопок и RGB светодиодов на два разъема.
После этого на боковую плату были поставлены два разъема, а также маленькая платка RGB подсветки и выполнен монтаж соединений.
Разъем А — подсветка, разъем В — кнопки и земля.
![image](https://habrastorage.org/webt/ag/lk/_l/aglk_lhxt5ojom_6txeachag3rm.jpeg)
![image](https://habrastorage.org/webt/rb/ez/cn/rbezcn-ybtp1ln6udb-8zbondle.jpeg)
8. Согласование подсветки выполняется для того, чтобы все её части, подсвечиваемые разными светодиодами, давали одинаковый цвет.
Для этого подбираются резисторы в каждом из RGB каналов.
Проще всего это сделать, подав на все три канала максимальный уровень ( +3.3В). При этом в результате смешения трех каналов должен получаться белый цвет свечения, но так как разные цвета не согласованы, то цвет свечения имеет какой-либо оттенок. После этого переменными резисторами меняется яркость каждого из каналов RGB, так чтобы получился таки белый цвет.
![image](https://habrastorage.org/webt/o3/ys/dc/o3ysdcuqfs6rmx4amh17bcwhfp8.jpeg)
9. Для основного разъема, ввиду его плотности решено было использовать отрезок IDE ATA шлейфа (80 жил).
![image](https://habrastorage.org/webt/uz/nj/kv/uznjkvvxgxdg6-xvrm6p6xysfg8.jpeg)
После этого была выполнена распайка всех разъемов на плату WX. Все платы поставлены на свои места и соединены шлейфами.
![image](https://habrastorage.org/webt/gq/lh/xh/gqlhxhnjur7a_buho9f-8sxil_m.jpeg)
10. Произведена окончательная сборка. Мышь была протестирована в течение двух дней в играх и отправлена заказчику.
![image](https://habrastorage.org/webt/41/la/g5/41lag5gik9d-chtxc_7bcnakel0.jpeg)
![image](https://habrastorage.org/webt/ut/6c/ti/ut6ctiuipqvawbuwpgswdhiz01m.jpeg)
Для самостоятельного изготовления WX-Mouse, все материалы (схема, инструкция етс) есть в теме проекта в конференции — Лазерный оптический сенсор — проект W-Mouse.
Там же идет обсуждение участниками проекта, а также выкладываются свежие прошивки автором W-Mouse — Walkie.
Еще раз огромное спасибо автору проекта Walkie!