Что можно сделать из неисправных мышек. Получаем изображение с оптического сенсора комьютерной мыши с помощью Arduino

Получил название Mousebot, а основная его изюминка в том, что он способе видеть свет и затем разворачивается к нему. Все это благодаря двум светодиодам, которые улавливают свет.

Материалы и инструменты для изготовления:
- одна шариковая мышка;
- два маленьких моторчика;
- один тумблер;
- микросхема LM386;
- одно реле DPDT 5v (можно использовать и Aromat DS2YE-S-DC5V);
- транзистор PN2222 NPN (подойдет и 2N3904);
- один светодиод LED (цвет не имеет значения);
- транзистор на 1 кОм;
- резистор на 10 кОм;
- конденсатор на 100 мФ;
- магнитофонная кассета;
- дискета или диск CD;
- батарея на 9В с оснащением;
- резиновые полоски и провода.

Из инструментов понадобятся: мультиметр, крестовая отвертка, плоскогубцы, дрель, нож, паяльник, кусачки, клей или эпоксидка, горячий клей с пистолетом и ножовка.

Процесс изготовления:

Шаг первый. Разбираем мышку и вынимаем некоторые детали
Разобрав мышь, с нее нужно извлечь переключатель, а также инфракрасный излучатель, они понадобятся для изготовления робота. Ик-излучатели и переключатель нужно отпаять. Излучатель отмечен на картинках цифрами 1 и 2, выключатель обозначен цифрой 3.












Шаг второй. Подготовка корпуса робота

Чтобы получить как можно больше места в корпусе робота, с внутренней части мышки нужно вырезать все лишние выступы. Проще всего это сделать при помощи Дремеля. Если мышка маленькая, то может, придется удалить и те выступы, в которые вворачиваются соединительные винты. Для резки отлично подходит Дремель короткого цилиндрического типа. Находясь в вертикальном положении, он будет резать под прямым углом с хорошим качеством.









Шаг третий. Делаем колеса робота
Так как оси двигателей очень маленькие, для передвижения робота их нужно оснастить колесами. Как нельзя лучше для этих целей подходят ролики от кассет, бывших когда-то магнитофонов. Колеса крепят к осям при помощи суперклея. Затем берется полосочка резины и оборачивается вокруг колеса, всего нужно сделать три оборота, а на каждый полуоборот нужно добавлять клей. Теперь поверх уже приклеенной резинки приклеивается вторая, она должна быть установлена как на фото.








Шаг четвертый. Создание макета и установка реле
Лучше всего применять стандартную раскладку, при этом схема мыши будет простой, так как печатная плата занимает мало места. Нужно установить реле и припаять провода, контакты от 8 до 11 и от 6 до 9 скрещиваются соединительными штифтами. Далее нужно подключить контакты 1 и 8 и добавить многожильный провод для контактов 8 и 9.
Затем нужно взять транзистор и припаять 16-ый контакт к его коллектору. Впоследствии подключаются провода, припаянные к контакту 9.




После этого реле можно приклеить к корпусу. С провода, который соединяет 9-ый контакт с контактом излучателя нужно припаять к проводам питания. Контакт 8 соединяется с положительным полюсом.


контакты 1, 4, 6, 8, 9, 11, 13, 16;


1 – эмиттер; 2 – коллектор; 3 – основа

Шаг пятый. Установка кнопки-переключателя
Теперь нужно взять выключатель и подсоединить его так, как указано на схеме. Используемый резистор имеет номинал 10 КОм. Чтобы не произошло замыкания, контакты лучше всего изолировать при помощи термоусадочной трубки.




Шаг шестой. Подключение мозга робота
В качестве мозга для робота используется микросхема LM386. Ее нужно перевернуть вверх и затем согнуть контакты 1 и 8 таким образом, чтобы они соприкасались, затем их нужно спаять. Затем микросхема устанавливается в корпус и подключается. На контакты 2, 3 и 5 нужно добавить многожильный провод. А контакты 4 и 6 соединяются с плюсом. В итоге все должно выглядеть так, как показано на фотографиях.






Шаг седьмой. Создаем верхнюю часть робота
Нужно взять дрель и просверлить отверстия в верхней части корпуса мыши. Два отверстия нужны для подключения глаз, а одно для установки светодиода LED. В задней части мыши нужно сделать большое отверстие под тумблер. На этом же этапе включатель можно установить.







Для создания глазных стебельков нужно скрутить медную проволоку, а затем на их концы одним контактом припаять ИК-излучатели. В центральное отверстие теперь можно установить светодиод, а к положительному его контакту припаивается резистор на 1 КОм.

Шаг восьмой. Фиксирование элементов
Чтобы двигатели и переключатели держались надежно, их нужно зафиксировать при помощи горячего клея или эпоксидной смолы.

Этот очень простой робот может быть сделан из недорогих материалов, которые можно купить в обычном магазине. Основой данного устройства является старая компьютерная мышка.
Mousebot - простой бот, который использует два "глаза", которыми он видит свет и поворачивается к нему. Один большой «усик» монтируется на передней части компьютерной мыши для обнаружения столкновений. При столкновении со стеной мышь движется назад и поворачивает в другую сторону.

Данный проект является довольно дешевым, если у вас есть старая мышь в наличии, то остальные детали обойдутся вам менее чем за десять долларов.

Шаг 1. Детали и инструменты:

Материалы:

  • 1 шариковая мышка
  • 2 небольших двигатели DC
  • 1 тумблер
  • 1 DPDT 5v реле (подойдет также Aromat DS2YE-S-DC5V)
  • 1 LM386 микросхема
  • 1 2N3904 или PN2222 NPN транзистор
  • 1 LED светодиод (любой цвет)
  • 1 1 КОм резистор
  • 1 10 КОм резистор
  • 1 100мФ конденсатор
  • 1 кассета для магнитофонов (были распространены в 80-90 гг)
  • 1 CD-диск или дискета
  • 1 9V аккумуляторное оснащение
  • 1 9V батарея
  • 2 или 3 широкие резиновые полоски
  • 22 или 24 провода.
Инструменты:
  • Мультиметр
  • Крестовая отвертка
  • Дремель
  • Малые плоскогубцы
  • Кусачки
  • Острый нож
  • Паяльник
  • Любой демонтажный инструмент
  • Суперклей или эпоксидная смола
  • Горячий клей и пистолет для него
  • Ножовка.


Шаг 2. Вытащите некоторые детали из мышки:

Mousebot требует корпус с некоторыми деталями от компьютерной мыши, а также дополнительно глаза и усы.

Откройте мышь и найдите компоненты, которые нужно взять, а именно переключатель и инфракрасный излучатель.

Снимите переключатель PCB и отпаяйте его, как и ИК-излучатели.

1 - ИК-излучатель; 2 - ИК-излучатель; 3 – моментальный переключатель;

1 - крестовая отвертка сделает эту задачу проще

Шаг 3. Приготовьте корпус:

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

Теперь с помощью Дремеля сократите отверстия для переключателя в передней части мыши и двигателей по бокам.

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

1 - если этот соединительный шуруп мешает, удалите его

Шаг 4. Сделайте колеса:

Оси на этих двигателях очень маленькие, и если мы хотим, чтобы Mousebot стабильно двигался на высокой скорости, мы должны приделать ему несколько колес. Магнитофонные кассеты имеют колесики идеального размера в правом и левом углах. Возможно, вам придется перепортить много кассет, чтобы найти подходящие для ваших осей колесики. Приклейте их суперклеем к осям.

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

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

1 - добавить ещё один слой, чтоб смягчить касания колес;

1 - резинка зафиксирована

Шаг 5. Сделайте макет и установите реле:

Есть немало хороших макетов для mousebot. Лучшего всего использовать стандартную раскладку. Схема мыши будет несложной, так как печатная плата не требует много места.
Установите реле и припаяйте провода, скрестив их с соединительными штифтами от 8 до 11 и от 6 до 9.

Затем подключите контакты 1 и 8 с помощью проволоки вдоль корпуса и добавьте многожильный провод для проводов 8 и 9.

Припаяйте коллектор транзистора (правый вывод, глядя с плоской стороны) к контакту 16 и прикрепите короткий конец. Затем подключите провода, которые припаяны к контакту 9 (левый вывод, глядя с плоской стороны), оставляя немного свободы.

Теперь приклейте реле к корпусу. Здесь можно использовать обрезанные проводки в качестве положительного и отрицательного полюсов напряжения, которые позволят избавиться от неполадок в работе двигателя. Используйте острый нож, чтобы снять защиту от контактного провода, соединяющего 9 контакт и излучатель, и припаяйте его к проводкам для питания. Затем соедините контакт 8 с положительным полюсом напряжения.

1 - эта мышь не имеет достаточно места в задней части, так что установите двигатель спереди для более свободной его работы;

контакты 1, 4, 6, 8, 9, 11, 13, 16;

1 – эмиттер; 2 – коллектор; 3 – основа

1 – не обращайте внимание на этот синий провод, он вам не пригодится; 2- это похоже на неуклюжее соединение, но это освобождает вас от дополнительных проводов;

Шаг 6. Установите кнопку-переключатель:

Теперь добавьте Mousebot усик. Сделайте это с помощью припоя положительного вывода конденсатора и резистора 10 КОм до конца, который, как правило, открыт. Вы можете проверить, какая сторона является открытой частью кнопочного переключателя с помощью функции проверки непрерывности мультиметра. Не должно быть никакой связи между средним и нормально открытым контактом, пока кнопка нажата. После этого добавьте многожильный провод для заземления конденсатора и центральный контакт переключателя.

Подключите резистор на коммутаторе к основанию (центральный контакт) транзистора и провода от внешней стороны конденсатора. Затем подключите средний контакт к положительному полюсу напряжения. Для того, чтобы ваши соединения были более безопасными, нужно использовать термоусадочные трубки для изоляции соединений и согнуть конденсатор в сторону, чтобы освободить немного места.

1 – резистор 10 КОм; 2 – обычно открытый контакт; 3 – обычно закрытый контакт;

1- это соединяется с направляющим концом

Шаг 7. Постройте мозг для Mousebot:

Мозг для Mousebots – это микросхема LM386. Переверните её контактами вверх и согните контакты 1 и 8, так чтобы они касались и припаяйте.

Теперь поместите 386 в корпус и подключите вывод 4 и контакт 6 с концом + и добавьте многожильный провод на контакты 2, 3 и 5.

Мы почти готовы для подключения двигателей. Осталось припаять некоторые многожильные провода к контактам 4 и 13 реле. На данный момент ваша Mousebot должна выглядеть, как на третьей картинке к этому шагу.

1 - pin1; 2 - pin 8

Шаг 8. Постройте верхнюю половину Mousebot:

Сначала просверлите небольшие отверстия в передней части мыши, два для глаз и одно для светодиода (LED). Затем просверлите большое отверстие для тумблера на задней части мыши и установите переключатель, чтобы работала функция вкл/выкл в хвосте робота.

Чтобы создать глазные стебельки для робота, скрутите два куска проволоки вместе и припаяйте ИК-излучатель на одном конце. Установите светодиод в середине отверстия и соедините положительный конец к резистору 1 КОм.

1 – резистор 1 КОм; 2 – GND конец светодиода;

Шаг 9. Приклейте нижние элементы:

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

Шаг 10. Близимся к финишу:

Подключите контакт 13 реле к левому двигателю и контакт 4 реле к правому двигателю. Теперь подключите вывод 5 интегральной схемы к нижнему соединению и двигателям. Если вы не уверены, какая сторона является +, а какая –, подключить двигатель к батарее, и следите за направлением вращений. Правый двигатель должен крутиться по часовой стрелке, если смотреть на колесо, а левый должен вращаться против часовой стрелки.

Найдите провод, идущий от контакта 2 (зеленый) + к концу левого стебелька глаза и от контакта 3 (синий) + к концу правого стебелька глаза. Затем подключите резистор 1КОм к направлению напряжения +.

Подключите аккумулятор, припаяйте черный провод к крышке батарейного отсека к отрицательному полюсу напряжения. Подключите красный провод к крышке батарейного отсека к коммутатору, а затем подключите выключатель к напряжению +.

Закройте крышку мыши, а затем вырежьте тонкую полоску от резинового материала с помощью ножовки. Приклейте полоску с одной стороны, так что бы оказывать давление при нажатии кнопок. Если у вас есть полоска, которая «хлопает себя по спине», значит вы всё сделали.

Теперь поверните выключатель и наслаждайтесь!

  • У меня уже достаточно давно созревала идея порисовать на ПК, да побаловаться в Photoshop и illustrator.
  • Да, есть планшеты для этого, но покупать, аля, “попробовать и забыть” считаю нецелесообразным решением))

Поэтому решено было сделать из того что есть под рукой…А что у нас есть? Правильно – мышка)

А еще у нас есть маркер, в который можно попробовать засунуть ее внутренности.

  • Как оказалось, не все так просто, в мышках деталей обычно больше, чем влезает в маркер .
  • Однако если поискать – то можно найти ОДНОЧИПОВУЮ мышку , внутри обвеска – 2 электролита по 47 мкф/10В (один на питании, а второй на кнопке) + керамический конденсатор на 100нф.
  • От ПК она подключается напрямую, все кнопки тоже идут напрямую.
  • Чип этот уже в себе несет сенсор + контроллер.
  • По размеру – DIP микросхема .

1) Как работает мышка?

Это КАМЕРА, которая “фотографирует” поверхность. Информация поступает в чип, он сравнивает этот “снимок” с предыдущим и определяет перемещение.

  • Просто она снимает с высокой скоростью.
  • Для того, чтобы “камера” видела, что она снимает – ее подсвечивает светодиод (обычно красный), МОЖНО поставить любой (другого цвета/размера). И запитать от чего угодно.
  • Светодиод не синхронизирован , а изменение яркости сделано для экономии энегрии, защиты матрицы (камеры) и эстетики.
  • Важный момент – оптика . Смысл простой – нужно чтобы “картинка” поверхности была резкой (иначе не сравнить), в общем, как и в любимой мыльнице.

2) Что нам нужно для того, чтобы повторить?

  1. Мышка с одним чипом (какая – есть выше). Цена – 3 доллара. Из нее мы возьмем чип, обвеску и линзу.
  2. Маркер (также выше). Он за 50 центов))
  3. Термоклей.
  4. Светодиод 3мм (цвет любой)
  5. Кнопка без фиксации (ниже есть фото). Будет аналогом левой кнопки мыши.
  6. Что нибудь для декора (ручка дл дизайна должна быть с дизайном;))

3) Приступаем:

  • Разобрать мышку (можно даже разломать корпус, он нам не нужен). Нам подойдет такая , она дешевая и одночиповая!

  • Срисовать распиновку микросхемы (картинка ниже, это пример ). Распиновку можно срисовать с платы.

  • Срезать ненужную часть оптики и приклеить оставшееся термоклеем к сенсору:

  • Разобрать маркер. Верхняя его часть нам не понадобится.
  • Проделать дырку для кнопки

  • Протянуть провод через маркер.

Кнопки можно взять такие, например:

  • Навесной пайкой собрать МК + провода + для кнопки + обвеску. Должно поместиться в маркер.
  • Залить термоклеем (лучше сначала проверить как работает)

Получится что то такое)) Драйвера не нужны, мышка все таки:

Вы когда-нибудь задумывались, как устроены вещи, какой путь они проходят от идеи до реализации, насколько просты простые вещи? Насколько просто сделать расческу? А компьютерную мышь? А деревянную компьютерную мышь из цельного бруска красного дерева с ЖК-экранчиком, с собственной электронной начинкой и изготовленным и оплетенным специально для нее кабелем? Думаю, вам будет интересен мой путь, который я прошел за 2,5 года создания моей мышки.

Дизайн, конструирование, моделирование

Поскольку в конструировании я был полный ноль, то и к делу я подошел как полный профан. Купил пластилин и начал лепить мышь своей мечты.

Сначала я слепил мышь, которая идеально мне подходит для работы на десктопе. Она на фотографии большая темно-серая. Затем я слепил мышь, которая подошла бы мне на роль мобильной (темно-серая маленькая). А затем я отнес сворованный у детей кусок пластилина на работу, и коллеги вылепили мышь, претендующую на звание «народной». Она идеально ложилась в руку большинству мужского населения нашего коллектива (на фото разноцветная). И что же? Получились банальные и унылые формы, которые мы денно и нощно дергаем руками на все лады. Видимо, среди трех стандартных мышей любой пользователь найдет для себя удобную. Торжество идеала?

В результате за компьютером была смоделирована мышь, которая, с моей точки зрения, претендовала на роль изящной и красивой.

На тот момент она мне безумно нравилась. И, недолго думая, я разделил компьютерную модель на детали. Были продуманы элементы крепления и сопряжения с электронной начинкой. Звучит просто, а на деле были потрачены сотни часов кропотливой работы.

После этого полученные детали были выращены на 3D-станке для проверки собираемости.

Материал - полиамид. В руке сидит хорошо, как влитая. Все детали подходят друг к другу, технологическая сборка также прошла без проблем

Следующий этап - фрезерование в дереве. Приобрел, наверное, с десяток различных пород красных деревьев, но начал с дерева сапеле, остальные породы ждут своего часа.

Вживую дизайн не понравился. Вертикальные щели между кнопками и корпусом выглядели плохо и неопрятно. Видны технологические «болячки» при работе с деревом - сколы и увод дерева. Ну и главное - клавиши не гнулись, клика не было.

Долго думал над дизайном. Что-то смущало, и не было чувства удовлетворения. Потом понял - мыши не хватает солидности. Решил вернуться к первоначальному варианту мыши, который я лепил в самом начале, только на профессиональном уровне и с использованием скульптурного пластилина. В одной мыши сделано два варианта дизайна. Удобно для сравнения и принятия решения.

После получения финального варианта было сделано 3D-сканирование и перенос поверхностей в SolidWorks.

Вторая модель получилась не намного удачнее первой. Кнопки не нажимались, и исправить это в текущей модели было невозможно. Брак модели был заложен на уровне ДНК. Нужен более комплексный подход с одновременным контролем и дизайна, и технологии. Иначе ничего не получится. Будет или технологическое совершенство, или хороший дизайн, но не все сразу. Эти характеристики сидят на разных сторонах качелей. Поэтому выкидываю все в помойку и начинаю с начала. Эскиз-дизайн-лепка-тестирование-выращивание и так далее, но с технологическим контролем критических параметров с одной стороны, и дизайна с другой. Ищем золотую середину.

Третью модель делал уже в рамках классического цикла проектирования продукта. Начал с эскиза.

Нарисовались контуры.

И, наконец, утвержденный дизайн.

Пластилиновый макет.

3D-сканер, получение поверхности.

Компьютерная модель.

Затем начался процесс доводки корпуса. На станке ЧПУ выпиливался корпус, тестировался, дорабатывался, затем снова выпиливался. В итоге работоспособным получилась только десятая версия корпуса. Самой большой проблемой было сделать комфортным нажатие клавиш. В итоге в некоторых местах толщина дерева уменьшалась до 0,7 мм! На процесс доработки корпуса у меня ушел год.

Деревянными были сделаны также колесико и разъем.

На колесико я нанес лазерную гравировку с брендом Clickwood.

На подходе одиннадцатая версия корпуса, куда я внесу незначительные изменения. Также я начал разработку беспроводной версии мыши. Беспроводный модуль базируется на технологии Bluetooth, оптосенсор - лазерный. Аккумуляторы типоразмера ААА, 2 штуки, с возможностью замены. При подзарядке мышь будет продолжать работать. Все элементы расположены очень плотно, при компоновке пришлось изрядно поломать голову. В качестве контейнера для батареек служит полость, специально вырезанная в деревянном корпусе мыши.

Деревянные детали

Работа с деревом начинается с отбора древесины. Доски должны быть правильной геометрии, иметь минимум сучков и пороков, и иметь необходимую влажность.

Поначалу доски сушатся дома. Минимум полгода.

После этого доска распиливается на бруски небольшого размера, которые досушиваются несколько недель на месте их дальнейшей обработки. На всех этапах влажность контролируется специальным прибором. Если пренебречь процессом сушки, дерево теряет геометрическую стабильность, и изготовление и эксплуатация мыши становятся невозможными.

Подготовленные бруски обрабатываются на станке ЧПУ с помощью специально созданной программы.

С самого начала создания детали и до окончательной сборки мыши детали жестко фиксируются на металлической оснастке, чтобы ни на одном из этапов деталь не изменила своей формы и геометрических размеров.

Обработку верхней детали мыши приходится делать с ювелирной точностью, поскольку профиль ее разработан для мягкого клика и в некоторых местах очень тонок. Усилие нажатия я контролирую граммометром. В обычных мышах оно колеблется от 50 до 75 ГС. Я стараюсь добиться 50 ГС.

С деревом в моем проекте связаны самые большие трудности. Мало того, что это самая существенная часть себестоимости, так и доля брака тут весьма высока. Дерево - анизотропный материал. Его может и повести, могут попасться пороки, возникнуть сколы, да и просто ошибка в технологии финишного покрытия может привести к тому, что корпус мышки отправляется в помойку. Признаюсь, что технологию обработки я до сих пор совершенствую, и до конца не уверен, что нашел правильную. Для статистики: в первой партии из десяти корпусов до готового продукта дошло только три. Поэтому часть технологической цепочки, связанной с деревом, критически важна для себестоимости и качества готового продукта. Над ней идет постоянная работа.

В дальнейшем планирую поработать с костью. В частности, уже занимаюсь созданием колесика из кости.

Электронная часть

Первую схему мыши я разработал самостоятельно. В качестве сенсора взял топовый оптический датчик ADNS-3090 фирмы Avago, мозгами стал контроллер фирмы Atmel, остальные комплектующие брендовых компаний типа Murata, Yageo, Geyer, Omron и Molex.

Особое внимание уделил качественному питанию мыши, тут, по-моему, своим перфекционизмом достиг абсолюта

Первая работающая макетка.

В черном исполнении, финальная.

Также были эксперименты с различными кнопками. Я всегда пытался среди прочих подобрать себе тихую мышь. Ну а раз я ее делаю сам, то решил провести эксперимент и сделать такую мышь и опробовать ее в работе. Для этого щелкавшие левый и правый «микрики» заменил на мягкие и тихие, использовавшиеся для центральной кнопки (замечали, что центральная кнопка всегда щелкает тише?). Была создана специальная версия платы, куда и были смонтированы все три одинаковых «микрика».

Подобрал и купил для мыши партию позолоченных разъемов. Как обычно, в Китае. Не знаю как насчет «лучшего контакта», но с деревом гармонируют отлично.

Экранчик, прошивка

Увлекшись идеей разместить в мышке дисплей, начал его поиски среди сотен поставщиков. Требования были простые: жесткие габаритные ограничения и возможность хотя бы символьного отображения минимум восьми знакомест. Пока подбирал, узнал о дисплеях практически все. Они различаются по типам: символьные и графические, по технологии: TAB, COG, TFT, OLED, LCD, E-Paper и другие. Каждый тип или технология имеет еще массу разновидностей, размеров, цветов, подсветки, и пр. В общем, было в чем покопаться.

Перерыв половину интернета, выяснил, что нужный мне размер изготавливает всего одна фирма на всем белом свете. Все остальные варианты однозначно больше по габаритам. И даже найденный мной дисплей еле-еле помещался внутрь мыши. Как вариант рассматривался кастомный дисплей, который мне могли изготовить по моим требованиям, но это очень дорогой вариант для меня (около ста тысяч рублей). Для первой модели вполне подойдет графический дисплей с разрешением 128 на 64 пикселей, который я и выбрал.

Для того, чтобы разобраться в том, как реально выглядит и сочетается с моей мышью дисплей, мне пришлось заказать у производителей все разновидности этого дисплея. Что означают эти разновидности? Имя модели состоит из цифро-буквенных непроизносимых сочетаний типа FP12P629AU12. Все они компонуются из различных блоков и четко расшифровываются в спецификации. Например, приведенный пример может быть собран из блоков FP.12.P.629A.U12, где зашифрован тип, размер, вольтаж, контроллер, диапазон рабочих температур и прочая информация о модели. А последний блок самый хитрый. Он может иметь несколько десятков значений, каждое из которых означает ту или иную комбинацию из таких характеристик, как наличие и цвет подсветки, цвет фона, цвет символов, диапазон градусов, с которого четко читается информация. Вот как раз эти параметры мне были интересны.

В результате «для пробы» я заказал 18 различных модификаций. Производитель согласился, но сообщил, что минимальный заказ - 5 дисплеев для каждой модификации. Деваться было некуда, и мне пришлось согласиться, зная, что 90% уйдет в помойное ведро. И вот в один из пасмурных дней служба экспресс-доставки привезла мне домой огромную коробку, в которой можно жить бомжу средней комплекции. В коробе было 18 коробок поменьше, в каждой из которой вольготно размещались 5 дисплейчиков, надежно зафиксированных для дальней поездки в холодную Россию. Сопутствующей упаковки было столько, что теще хватило укрыть несколько грядок на зиму.

В итоге, после тщательных тестов на специально собранном стенде, годными для серии оказались два дисплея. Отличаются они только фоном: серый и желто-зеленый. Именно их я и буду предлагать для комплектации мыши. По умолчанию планирую ставить желто-зеленый, но будут доступны еще два варианта: дисплей с серым фоном и мышь совсем без дисплея.

Но главная интрига заключалась в том, какую информацию можно показывать на экранчике? Мне предлагали разные идеи: температуру окружающего воздуха, индикацию прихода писем, что-то еще не очень оригинальное.

Мой ход мыслей шел по другому пути. Начнем с того, что есть два существенных ограничения на показ оперативной информации: наличие перед пользователем огромного и качественного источника любой информации (монитор) и необходимость переворачивать мышь для получения информации. Кроме того, экранчик маленький, разрешение небольшое, светодиод мешает нормальному чтению. Поэтому вывод у меня получился один: информация должна носить только развлекательный характер, прикладная ценность которой стремится к нулю, но при этом WOW!-эффект должен быть убойным.

Какая же информация может обладать такими свойствами у заурядного по сложности устройства? Ее немного: пробег, время пользования, скорость перемещения, количество кликов и прокрутки колесика. От последнего параметра я решил отказаться, так как мне он показался неинтересным. Остальные все параметры имеют привязку к сессии (последнее время использования мыши от момента подачи на нее питания, т.е. подключения к компьютеру или включения самого компьютера) и ко всему времени существования мыши. Например, пользователь может в любой момент мыши узнать сколько раз он нажал левую кнопку мыши или сколько его мышка пробежала в метрах за сегодня или со времени ее покупки. Информация абсолютно бесполезная, зато особо любопытным поможет понять, как сильно он терзает мышь. Если появятся другие интересные идеи, то их можно будет реализовать новой прошивкой.

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

Чтобы поместить такой объем информации, мне пришлось все разбить на экраны. На каждом экране отображается один тип информации, и показываются значения параметров за сессию и за все время. Всего получилось шесть экранов, которые меняются колесиком мыши.

Первый вариант был реализован в чисто текстовом ключе, для чего даже были разработаны несколько вариантов шрифтов.

Сделал прошивку, чтобы оценить как выглядит текст с использованием созданного шрифта на экранчике мышки. Ужасно выглядит, что сказать.

Теперь стало очевидным, что на экранчике нужна графика, а не набор символьной информации. Поэтому я привлек к работе дизайнера, и мы вместе подготовили три варианта графического исполнения, в итоге самым удачным был признан второй вариант.

Конечно, такой дизайн требовал большего разрешения, поэтому его пришлось адаптировать.

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

Все это было очень подозрительно. И точно, как в воду глядел. Переделали плату под модифицированный экранчик, спаяли, и тут выяснилось, что экранчик совсем тусклый. Как будто у устройства сели батарейки. И выяснилось это после долгой и кропотливой работы по поиску и отбору экранчиков, закупке пробной партии всех модификаций и их испытаний. Время, деньги, и так далее.

Но история оказалась с хорошим концом. После переписки с китайцами выяснилось, что экранчик теперь может регулировать свою контрастность прямо из прошивки. Подлечили прошивку, и все стало показывать просто замечательно!

Все показывается, как и планировалось: пробег, скорость, количество кликов и прочее.

В дальнейшем прошивка также неоднократно менялась: появилась настройка для смены языка. Два языка на одном экране это плохо - ухудшается читаемость, англоязычного пользователя кириллическая абракадабра будет только раздражать, да и в будущем может понадобится поддержка других языков. Трудности начались, когда я пытался отъюстировать пробег мыши. Кажется, что там сложного: оптический сенсор передает приращение по двум координатам, которые нужно привести к системе мер и прибавлять по модулю к текущему значению. Вот и весь пробег.

Но, как оказалось, не все так просто. Двое людей с мышами, где установлен один и тот же сенсор могут получать кардинально различающиеся результаты! Все дело в том, что разрешающая способность сенсора (чувствительность) весьма сильно зависит от поверхности, по которой катается мышь. Лучший результат получается, когда мышь катается по белой бумаге. Чуть хуже по дереву и ткани. По ламинату и пленке совсем плохо. Заявленная паспортная чувствительность достигается только на идеальных, с точки зрения сенсора, поверхностях.

Для конечного пользователя это не имеет никакого значения. Он подключает мышь и методом проб и ошибок выставляет в операционной системе комфортную скорость движения курсора. Система запоминает этот коэффициент и использует его для увеличения или уменьшения значений приращения координат передвижения.

Но совсем другое дело, если вы задумали считывать эти параметры непосредственно с мыши. Мышь на одной поверхности покажет результат пробега один метр, на другой - полтора. Скорость также будет «врать». И с этим надо что-то делать.

Для решений этой задачи пришлось вводить параметр «Дискретность (Sensitivity)», который позволяет индивидуально подобрать коэффициент для каждой поверхности. По-умолчанию он равен единице, что соответствует поверхности белой бумаги. Его можно в настройках как увеличивать, так и уменьшать. Его можно вообще не трогать, все будет прекрасно работать и так. Но для истинных перфекционистов в прилагаемой к мышке листовке будет дана таблица, из которой можно подобрать коэффициент к имеющейся поверхности и инструкция, как можно самостоятельно настроить мышь для показа точного пробега.

При разработке прошивки обнаружился еще один побочный эффект работы сенсора. Если взять мышку и просто помахать ею в воздухе, то показания пробега также будут изменяться. Это связано с тем, что сенсор определяет окружающее пространство как некую поверхность и также пытается получать значения смещения мыши. Поэтому можно наблюдать такой эффект: вы переворачиваете мышь, смотрите на параметры пробега и удивляетесь тому, что они прямо у вас на глазах меняются в большую сторону. Конечно, можно установить в мыши датчик угла наклона, отключающего сенсор на время ее переворота, но делать это только для описанной ситуации неразумно. Возможно, в следующей версии он и появится, но не сейчас. Ведь мышь поднимают только чтобы посмотреть на показатели, а 99,9% процентов времени она находится на поверхности и получает правильную информацию.

Кабель

Кабель решил делать максимально гибким, чтобы он не мешал движению мышки и был «невидимым» для кинематики. Ну не нравится лично мне «пружинный» кабель.

Порой кажется, что при создании изделия кабель - самая несущественная часть изделия. Чего проще - купить в магазине нужное количество кабеля и распаять его. Плевое дело. Но, увы, не у нас в России. Порой кажется, что у нас промышленность уже не приспособлена делать ничего сложнее чугунных утюгов. Попытки найти кабель вылились в трехнедельные поиски и перетряхивание ассортимента абсолютно всех производителей российской кабельной продукции. Выяснилось: наши стандарты не описывают кабель, подходящий к современным электронным устройствам. Например, микрофонный четырехжильный кабель с оплеткой КММ 4х0.12 мм2 имеет наружный диаметр 5 мм. Это очень много. Старые мыши и клавиатуры имеют кажущимся толстый кабель, внешний диаметр которого составляет всего 3,5 мм. Ближайший аналог в продаже был кабель немецкой фирмы Lapp Kabel, но и у него внешний диаметр как раз и составлял 3,5 мм. А теперь представьте еще и оплетку на таком кабеле. Представили? Я вам скажу, что подобный кабель я видел на сетевых шнурах для утюгов

Итак, выяснилось: в России такой кабель не купить. Точка. Ну что же, мы не привыкли отступать. Иду в производство и пробую заказать, благо в России еще кабель делают. А для этого определимся с моими требованиями. Итак, что мне нужно:
Жилы - медные, из плетеных проволок (для гибкости).
Количество жил - 4.
Экран - да.
Гибкость - максимальная.
Внешний диаметр кабеля - строго не более 3 мм.
Цвет - Pantone 4625 C.
Итог: пытался списаться, наверное, с десятком возможных производителей кабельной продукции, никому не интересно возиться с моим заказом. Даже не спрашивали, какой километраж мне нужен. Итог: в России такой кабель не купить и не произвести. Грустно. Но мы не привыкли отступать.

Иду на Alibaba.com. Нахожу первого попавшегося китайского производителя, пишу письмо и буквально через несколько часов получаю ответ: сделаем для вас любой кабель! Я в шоке. Кидаю ему спецификацию, денег на доставку, и через неделю получаю образец. Вот это да! А я почти три месяца потерял, пытаюсь патриотично разместить заказ в России. Оказалось, что китайцы совершенно спокойно могут сделать мне кабель с внешним диаметром 2,5 мм.

В итоге: я заказал в Китае 4 различных сэмпла. Сначала не устроила царапаемость и матовость внешней оболочки, затем не устроила гибкость кабеля, затем опять не устроила гибкость, и в конце концов остановился на последнем присланном семпле, который готов был заказать. Гибче они не могут. Кабель имеет память. В итоге случайно получил кабель с памятью, хотя хотел максимально гибкий как веревка

Заказал километр, через две недели кабель был у меня. Общее потраченное время: шесть месяцев.

Оплел свой километр кабеля. Получилось два варианта.

Примерно 10% кабеля ушло на отбраковку. Это начало бухт, где оплетка расплетается и станок еще не вошел в рабочий режим. И некоторые места, где по какой-то причине образовались петли и узлы нитей оплетки.

Если конец кабеля не заделать термоусадкой, то он в момент распушится, нити-то синтетические! Поэтому монтаж кабельной сборки затрудняется превентивной насадкой термоусадки.

Внешний диаметр кабеля с оплеткой получился 3,2 мм, т.е. оплетка прибавила к диаметру кабеля 0,7 мм. Кажется немного, но у обычной мыши кабель идет в основном с диаметром 3,5 мм, и он в эпоху беспроводных мышей кажется толстым и тяжелым. В последнее время не бюджетные мыши начали комплектоваться кабелями диаметром 3 мм, и они уже не так мешают при работе, их практически незаметно. А вот кабель клавиатуры может быть с внешним диаметром 4 мм. И даже больше. Но для клавиатуры это не важно.

Пластиковые детали

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

Поэтому пришлось заказывать у китайцев пресс-форму.

После каждой тестовой отливки китайцы присылали мне десяток сэмплов, которые я тестировал на моей мышке.

В итоге я трижды дорабатывал пресс-форму, до тех пор, пока качество не стало меня удовлетворять. Проблемы были разные. Например, после сборки я получил проблему пыли, которая образуется между дисплеем и защитным стеклом. Выглядит это неопрятно. Тем более мышь будет скрести по поверхности, и пыль там будет постепенно скапливаться. Пришлось преобразовывать стеклышко в контейнер с бортиками, куда будет вкладываться дисплей, после чего контур будет герметизироваться.

Получилась вот такая деталька.

Доработка пресс-формы - совсем непростая задача, и изменения могут делаться только в сторону увеличения детали. Поэтому любая неточность или ошибка могут испортить всю работу. Для справки: каждая доработка - это полтора месяца ожидания новых семплов. А само изменение могло быть микроскопическим, но необходимым.

Не буду останавливаться на пластиковых деталях, эта технология сейчас лидирует, и ничего нового и интересного я здесь рассказать вам не смогу. Скажу лишь о ножках, для которых я долго подбирал материал с пониженным трением, после чего проводил испытания и «забеги» мышей с целью определения победителя с минимальным трением.

Обработка и покрытие

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

Передо мной стояла сложная задача. Нужно было стабилизировать дерево, чтобы геометрия мышки не менялась в зависимости от влажности, и защитить дерево от работы в агрессивной среде (пот и жир от руки).

С самого начала отказался от лака. Лак - это поверхностная пленка, которая со временем трескается, разрушается, и дерево оказывается оголенным. Пот и жир проникают в поры, дерево темнеет, и начинается необратимый процесс его деградации. Поэтому было решено использовать масло в качестве пропитки и защиты, а воск для придания коммерческого вида.

Чтобы было понятно: дерево насквозь пропитано порами, в которых содержится либо воздух, либо масло самого дерева (если дерево каучуконос). Наша задача - насколько возможно заполнить поры своим маслом, которое потом должно полимеризоваться и защитить дерево.

Чтобы не растягивать повествование, скажу что испробовал множество масел: льняное, тиковое, тунговое, вазелиновое, датское. Каждое масло имеет свой характер. Например, на тиковое масло очень плохо наносится воск, а льняное масло очень долго полимеризуется. Поэтому приходится в него вводить катализатор - сиккатив.

В итоге я разработал две технологии. Первая - технология вакуумной пропитки дерева. Работает она так: создаю в среде с маслом и деревом вакуум. Из пор начинает выходить воздух. После снятия вакуума поры заполняются маслом. Как плюс - дерево хорошо стабилизируется. Как минус - оно сильно темнеет. Смотрится хорошо, но на любителя.

Вторая технология - это поверхностное покрытие маслом. Масло наносится 1-2 или больше раз нетканой салфеткой.

Наносим карнаубский воск.

И растираем муслиновым кругом.

Затем с помощью монтажного фена «растворяю» сухие остатки воска в узких и сложных местах. В случае «нерастворимого» мусора беру в руки зубную щетку с жесткой щетиной, удаляю мусор и потом опять локально повторяю процедуру нанесения воска.

Если оценивать трудозатраты обработки, то ручного труда на одну мышь получается около четырех часов.

Сборка

Дальше идет операция монтажа, но перед ней нужно еще удалить следы обработки из технологических отверстий. Затем с помощью специальной ленты 3М юстирую и наклеиваю ножки (корпус может повести на доли миллиметра, и это сразу будет заметно: он будет шататься как хромоногая табуретка). Затем прокладываю кабель, монтирую плату, саппорт, устанавливаю колесико и также, при необходимости, юстирую кнопки (не должно быть дребезга) и силу нажатия. Эта операция также может занимать до четырех часов.

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

Подготовка и немного теории

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

Погуглив информацию по этой теме и разобрав старую PS/2 мышку Logitech, я увидел знакомую по статьям из интернета картину.

Не очень сложная схема «мышей первого поколения», оптический сенсор по центру и чип интерфейса PS/2 чуть выше. Попавшийся мне оптический сенсор является аналогом «популярных» моделей ADNS2610/ADNS2620/PAN3101. Я думаю, они и их аналоги были массово произведены на одном и том же китайском заводе, получив на выходе разную маркировку. Документация на него нашлась очень легко, даже вместе с различными примерами кода.

Документация гласит, что этот сенсор до 1500 раз в секунду получает изображение поверхности размером 18x18 точек (разрешение 400cpi), запоминает его и с помощью алгоритмов сравнения изображений вычисляет смещение по координатам Х и Y, относительно предыдущей позиции.

Реализация

Для «общения с сенсором» я использовал популярную вычислительную платформу Arduino, а припаяться решил прямо к ножкам чипа.

Подключаем 5V и GND к соответствующим выходам Arduino, а ножки сенсора SDIO и SCLK к цифровым пинам 8 и 9.

Для получения смещения по координатам нужно прочитать значение регистра чипа по адресу 0x02 (X) и 0x03 (Y), а для дампа картинки нужно, сначала записать значение 0x2A по адресу 0x08, а потом 18x18 раз его прочитать оттуда же. Это и будет последнее «запомненное» значение матрицы яркости изображения с оптического сенсора.

Как я реализовал это на Arduino можно посмотреть тут: http://pastebin.com/YpRGbzAS (всего ~100 строк кода).

А для получения и отображения картинки была написана программа на Processing.

Результат

После небольшого «допиливания» программы для своего проекта, я смог получать картинку прямо с оптического сенсора и производить над ней все необходимые вычисления.

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

Если начать приподнимать мышку над поверхностью даже на пару миллиметров, четкость сразу пропадает.

Если вы вдруг захотите повторить это дома, для нахождения мышки с аналогичным сенсором рекомендую искать старые девайсы с интерфейсом PS/2.

Заключение

Хотя получаемое изображение и не очень большое, этого вполне хватило для решения моей задачи (сканнер штрих кода). Получилось очень даже экономично и быстро (мышка за ~100р + Arduino + пару дней на написание кода).

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