Где можно использовать микроконтроллеры из мышек. Контроллер смещения на базе компьютерной мышки

Оптический сенсор ADNS-3060, по сравнению со своими «предками», обладает поистине впечатляющим набором характеристик.
Использование этой микросхемы, упакованной в корпус с 20-ю контактами, обеспечивает оптическим мышам невиданные ранее возможности.
Допустимая максимальная скорость перемещения манипулятора выросла до 40 дюймов/с (то есть почти в 3 раза!), т.е. достигла «знаковой» скорости в 1 м/с.

Это уже очень хорошо - вряд ли хоть один пользователь двигает мышь с превышающей данное ограничение скоростью столь часто, чтобы постоянно чувствовать дискомфорт от использования оптического манипулятора, в том числе это касается и игровых приложений.
Допустимое же ускорение выросло, страшно сказать, во сто раз (!), и достигло величины 15 g (почти 150 м/с²).

Теперь на разгон мыши с 0 до предельных 1 м/с пользователю отводится 7 сотых секунды - думаю, теперь очень немногие сумеют превзойти это ограничение, да и то, вероятно, в мечтах.
Программируемая скорость осуществления снимков поверхности оптическим сенсором у новой модели чипа превышает 6400 кадров/с, т.е. «бьет» предыдущий «рекорд» почти в три раза.

Причем чип ADNS-3060 может сам осуществлять подстройку частоты следования снимков для достижения наиболее оптимальных параметров работы, в зависимости от поверхности, над которой перемещается мышь.
«Разрешение» оптического сенсора по-прежнему может составлять 400 или 800 cpi.
Давайте на примере микросхемы ADNS-3060 рассмотрим общие принципы работы именно чипов оптических сенсоров.

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

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

Но вникнем чуть глубже в особенности работы сенсора.
Блок-схема чипа ADNS-3060 представлена выше.
Как видим, принципиально его структура не изменилась, по сравнению с далекими «предками».
3.3 В питание к сенсору поступает через блок Voltage Regulator And Power Control, на этот же блок возложена функции фильтрации напряжения, для чего используется подключение к внешнему конденсатору.

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

В зависимости от значения, занесенного по определенному адресу (регистру) памяти чипа, возможны следующие рабочие частоты осуществления снимков сенсором ADNS-3060.

Как нетрудно догадаться, исходя из данных в таблице, определение частоты снимков сенсора осуществляется по простой формуле:
Частота кадров = (Задающая частота генератора (24 МГц)/Значение регистра отвечающего за частоту кадров).

Осуществляемые сенсором ADNS-3060 снимки поверхности (кадры) имеют разрешение 30х30 и представляют собой все ту же матрицу пикселей, цвет каждого из которых закодирован 8-ю битами, т.е. одним байтом (соответствует 256 градациям серого для каждого пикселя).
Таким образом, каждый поступающий в DSP процессор кадр (фрейм) представляет собой последовательность из 900 байт данных.

Но «хитрый» процессор не обрабатывает эти 900 байт кадра сразу по поступлении, он ждет, пока в соответствующем буфере (памяти) накопится 1536 байт сведений о пикселях (то есть добавится информация еще о 2/3 последующего кадра).
И только после этого чип приступает к анализу информации о перемещении манипулятора, путем сравнения изменений в последовательных снимках поверхности.

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

После того как интегрированный DSP процессор обработает данные снимков, он вычисляет относительные значения смещения манипулятора вдоль осей X и Y, занося конкретные данные об этом в память микросхемы ADNS-3060.
В свою очередь микросхема внешнего контроллера (мыши) через Serial Port может «черпать» эти сведения из памяти оптического сенсора с частой примерно раз в миллисекунду.

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

Ну, а блок Led Control, которым оборудован сенсор, ответственен за управление диодом подсветки - путем изменения значения бита 6 (LED_MODE) по адресу 0x0a микропроцессор оптосенсора может переводить светодиод в два режима работы: логический «0» соответствует состоянию «диод всегда включен», логическая «1» переводит диод в режим «включен только при необходимости».
Это важно, скажем, при работе беспроводных мышей, так как позволяет экономить заряд их автономных источников питания.
Кроме того, сам диод может иметь несколько режимов яркости свечения.

На этом, собственно, все с базовыми принципами работы оптического сенсора.
Что еще можно добавить?
Рекомендуемая рабочая температура микросхемы ADNS-3060, впрочем, как и всех остальных чипов этого рода, - от 0 °C до +40 °C.
Хотя сохранение рабочих свойств своих чипов Agilent Technologies гарантирует в диапазоне температур от -40 °C до +85 °C.

Драйвер AMD Radeon Software Adrenalin Edition 19.9.2 Optional

Новая версия драйвера AMD Radeon Software Adrenalin Edition 19.9.2 Optional повышает производительность в игре «Borderlands 3» и добавляет поддержку технологии коррекции изображения Radeon Image Sharpening.

Таких устройств два – для позиционирования мышки по горизонтали и вертикали. Когда мышью управляют диагонально, задействованы оба координатора положений. Импульсы с двух ИК-приемников (трехвыводные корпусы ИК-транзисторов) поступают на микросхему (находится с обратной стороны печатной платы), залитую компаундом. Ее тип обозначен SS-1HBA-1. С выхода данной микросхемы через сглаживающие пульсации дроссели управляющий сигнал поступает на разъем с обозначением J1 и далее на ПК – по проводам.

Распайка разъема J1 такова:

1 и 4 контакты (черный и желтый проводники соединительного кабеля с ПК) – общий провод;

5 – «+ 5 В» (красный);

2 и 3 (зеленый и белый)

тветственно) – высокочастотная последовательность импульсов с амплитудой 4,5 В. По последним двум проводникам на ПК передается информация о смене позиции мышки. Однако эти сигналы без специального декодирующего устройства использовать трудно. Поэтому есть более простой способ получить от мышки (при ее перемещении) простые управляющие сигналы. Так, ИК-транзистор Q1 (напротив его установлен ИК-све-тодиод IR1) «отвечает» за поперечное перемещение мышки (влево, вправо), a Q2 и соответственно IR2 – за продольное (прямо, вперед, назад). Опытным путем удалось установить, что при отсутствии препятствия между ИК-передатчиком и приемником на выводах Q1 и Q2 (кроме среднего вывода – там постоянно +5 В) присутствует высокий уровень напряжения, и он меняется на низкий, как только ИК-приемник перестает принимать сигнал передатчика.

Рис. 3.22. Механическая компьютерная мышка со снятым корпусом, вид на печатную плату и механизм позиционирования координат

То есть тогда, когда мышь сдвигается, шарик воздействует на зубчатую шестерню, зубья которой находятся между передатчиком и приемником ИК-сигнала. Тот же управляющий сигнал (с высокого на низкий уровень) можно «взять» с контактов перемычек, обозначенных на печатной плате JPD2 и JPD3 (выделены на рис. 1). Зная, куда на плате компьютерной мыши подключать исполнительное устройство (к примеру, сигнализатор о смещении предмета), остается только позаботиться об электронном адаптере, который преобразует изменение логического уровня в звуковой сигнал. На рис. 3.23 представлена мышь, закрепленная между венцами деревенского дома и пристроенной к нему конюшни. При оседании дома, миллиметровом изменении расстояния между бревнами, «мышка» незамедлительно выдает сигнал, а устройство сигнализатора «поднимает тревогу».

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

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

Рис. 3.23. Метод установки компьютерной мыши в качестве датчика оседания дома

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

Рис. 3 24. Вариант схемы звукового сигнализатора для подключения к датчику смещения предмета в виде компьютерной мыши

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

Оптические мыши лишены подвижных механических частей, они более долговечны, а принцип работы, основанный на отражении сигнала от поверхности стола, позволяет создать на основе оптической мыши оригинальный бесконтактный включатель света с подсветкой. На примере компьютерной оптической мыши Defender Optical 1330 (разрешение 400 dpi) устройство управления освещением рассмотрим ниже.

Литература: Кашкаров А. П. Электронные устройства для уюта и комфорта.

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

Барахлит сенсор мыши

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

Засорение чаще всего бывает внешним. В отсек, где свет диода отражается от стола, попадает пыль или волосы. Чтобы избавиться от такого засорения не нужно даже разбирать мышку. Достаточно перевернуть её и продуть. В крайнем разе, воспользоваться небольшой кисточкой, чтобы удалить прилипший мусор.

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

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

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

Прокручивается колёсико мышки

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

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

Если у Вас именно такая проблема, то она решается за счёт уплотнения края оси колеса скотчем или изолентой в небольших количествах. Если же с движением колёсика всё нормально, то поломка произошла внутри энкодера (датчика прокрутки). От длительного использования он мог разболтаться и его следует немного уплотнить:

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

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

Что самое интересное, данная манипуляция помогла! Мне осталось только обрезать лишнюю длину полоски и собрать мышь:)

Не работают кнопки мыши

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

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

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

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

Последняя проблема с которой Вы можете столкнуться - кнопка мыши делает двойной клик при нажатии на неё. Решить это дело можно перепайкой микропереключателя или... программно! В любом случае перед тем как браться за паяльник проверьте правильность настроек мышки в Панели управления Windows:

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

Выводы

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

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

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

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

Anatoly Besplemennov

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

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

Для примера рассмотрим простой и дешевый сенсор OM2. Это устройство измеряет позицию, основываясь на полученных кадрах изображения поверхности, и путем математической обработки определяет направление перемещения и его величину. Разработанный для использования со светодиодом повышенной яркости датчик помещен в полистирольный оптический корпус. Датчик не имеет подвижных частей, не требует точной оптической подстройки и позволяет создать законченную, компактную следящую систему. OM02 вырабатывает квадратурный выходной сигнал для обоих направлений перемещения (X и Y). Разрешающая способность составляет примерно 0.06 мм, а скорость перемещения может достигать 0.4 м/с.

Микросхема датчика формирует квадратурный сигнал по направлению X, эмулирующий выход обычного энкодера. Для двухмерной системы могут быть использованы обе координаты X и Y. X1 и X2 генерируются с максимальной частотой около 25 кГц. Диаграммы на Рисунке 1 иллюстрируют временные характеристики для оси координат X (направление движения — вправо). При необходимости квадратурный выходной сигнал может быть использован для непосредственного управления шаговым мотором.

Подключив выходы X1 и X2 к входу логического элемента исключающее «ИЛИ», можно удвоить выходную частоту данных, при этом потеряв информацию о направлении перемещения.

Физическая реализация

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

Конструкция, показанная на Рисунке 4, успешно использовалась для обеспечения синхронного движения в составе технологических линий, транспортеров, этикетировочного оборудования и печати на движущихся объектах. Было изготовлено более 100 экземпляров, все они работают спустя несколько лет.

Принципиальные схемы для интерфейса SPI

Доступны также и другие микросхемы оптических сенсоров, различающихся используемыми типами источников света, интерфейсами, скоростями и так далее. Например, в оптическом КМОП датчике мыши (Рисунок 5) используется последовательный интерфейс SPI, а оптический навигационный КМОП датчик (Рисунок 6) имеет оба типа выходов, как SPI, так и квадратурный.

Датчики с интерфейсами SPI (или USB при использовании дополнительной микросхемы) не позволяют отслеживать каждый отдельный импульс, поскольку передают данные пакетами. Для приложений, работающих в жестком реальном времени, предпочтительнее датчики с квадратурным выходом.

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

Для решения одной из задач мне потребовалось программно получать и обрабатывать изображения небольшого участка поверхности бумаги с очень близкого расстояния. Не получив достойного качества при использовании обычной 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 + пару дней на написание кода).

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