Задача: быстро сделать датчик линейного перемещения из компьютерной мышки.
В обычных мышках прячется высокочувствительный оптический датчик. Там скрывается своя маленькая «камера» и процессор обработки, который отслеживает передвижения малейших точек на поверхности. В топовых мышках разрешающая способность составляет всего 3 мкм!
С какими подмышиными камнями мы столкнулись, плюс техническая часть, расскажем дальше!
Следующее ТЗ дал заказчик: сделать как можно скорее, с любой мышкой (возможно беспроводной), выводить на 7 сегментный индикатор, обнулять по кнопке, компьютер не подходит, нужна разрешающая способность 0.01 мм, максимальное расстояние 1000 мм.
Для начала как все это делалось:
Считывание координат xy с мышки:
Реализовать считывание данных можно несколькими способами:
а) Непосредственно с микросхемы оптического сенсора
+ Можно обойтись простым контроллером
- Про универсальность можно забыть совсем
б) Подключить мышку по USB к простым контроллерам (например к ардуино)
+ Простота и дешивизна
- Надо паять
- Под рукой была только arduino, а к ней можно подключить мышки совместимые с
PS/2, а они обычно очень неточные. Можно было на stm32, но отладочные платы
сильно подорожали, самому паять не было времени. (но если интересно, то
несколько лет назад был такой похожий проект именно на stm32f4discovery)
в) Взять какой нибудь простой одно платный компьютер. Под рукой был как раз Raspberri pi.
+ Подходит для любых USB мышек
+ Хорошая производительность
- Дорого, но может избыточная мощность потребуется потом
В итоге, под нож хирурга легла Малина пи 3. Четыре 64 битных ядра A-53 по 1GHz, 512 МБ оперативки и много других космических для этой задачи циферок.
Задачка: Индикация должна быть на выданных 7-сегментных индикаторах. Получается нам необходимо по 6 цифр на одну координату, итого 12 индикаторов. Каждый индикатор имеет 7 ножек на цифры+ ножка на светодиод точки (dp), общий провод не считаем. Итого после простых расчетов получаем, что мы должны управлять 96 проводниками плюс нужна кнопка. 96 резисторов не очень хотелось тратить.
Послушайте!
Ведь, если светодиод зажигают - значит - это нужно один резистор?
Управлять сразу таким массивом ножек нету возможности. Выход есть! И даже несколько!
1) Использовать дополнительные микросхемы по типу max7219, или сдвиговые регистры, мультплексоры, и т.д.
Можно почти бесконечно наращивать количество индикаторов
- Max7219 оказалась с рабочим напряжением 5 В
- Не было под рукой ничего подходящего.
2) Можно сделать динамическую индикацию. В один момент времени зажигать только один светодиодный индикатор. Если индикаторы переключать очень быстро, то человеческий глаз не заметит подставы.
+ Нужно только 8 проводов и резисторов на один индикатор и 12 на переключение индикаторов. Плюс не забываем кнопку. Итого: всего 21 ножка против 96. Берем!
- Так как мы пытаемся управлять целым индикатором через один пин распберри, то максимальный ток у нас ограничен 50 мА. Всегда берем запас, и берем 35 мА на все 8 светодиодов (что не шибко). Еще к этому добавим быстрое переключение индикаторов. В итоге у нас каждый светит в 12 раз меньше положенного. Доработать можно 12 транзисторами, но оставил я это на потом, т.к. яркости в конечном счете хватило.
Теперь начинается софт:
На распберри пи надо поставить linux. Я поставил минимальный дистрибутив
RASPBIAN JESSIE LITE .
Далее через программу putty подключился к IP малинки, и дальше все через командную строку.
Чтобы было проще работать с GPIO(портами ввода и вывода) есть замечательная библиотека WiringPi .
Как устанавливать её и управлять портами, вы сможете найти много информации в сети, поэтому не буду подробно останавливать на этом.
Cd /home/pi
sudo mkdir mouse
cd /home/pi/mouse
Дальше открываем редактор и вставляем код с гита. ВАЖНО! Код писал на очень скорую руку!
Sudo nano
для выхода из редактора надо нажать Alt+x и сохранить файл с названием blinker.c. Дальше надо обязательно скомпилировать с указанием wiring pi:
Gcc -o mouse mouse.c -l wiringPi
Все! Теперь подключаем мышку, вставляем провода и запускаем!
Подключение проводов
// pin number declarations. We"re using the Broadcom chip pin numbers.
Const int p21pin = 2;
const int p22pin = 3;
const int p23pin = 4;
const int p24pin = 17;
const int p25pin = 27;
const int p26pin = 22;
const int p11pin = 10;
const int p12pin = 9;
const int p13pin = 11;
const int p14pin = 5;
const int p15pin = 6;
const int p16pin = 13;
const int papin = 8;
const int pbpin = 23;
const int pcpin = 12;
const int pdpin = 20;
const int pepin = 21;
const int pfpin = 24;
const int pgpin = 18;
const int pdppin = 16;
Const int butpin = 26;
sudo ./mouse
Автозапуск при загрузке:
Sudo nano /etc/rc.local
и перед exit 0 дописать две строчки
cd /home/pi/mouse
sudo ./mouse &
Работать с этой прогой очень просто. по нажатию кнопки мыши или просто кнопки на плате идет обнуление. При долгом нажатии кнопки переходим в режим регулировки DPI. Это важный параметр который задается мышкой и показывает сколько отсчетов мы получим при движении на один дюйм. Соответственно копка на плате и на мышке прибавляет и убавляет DPI. Долго нажимаем, наше значение записалось в файл и надежно хранится до следующей загрузки системы. Для чистоты эксперимента в программе, индикация, получение информации с мышки и кнопка обрабатываются а параллельных процессах.
1. Оси X и Y на моей мышке были не параллельны боковым граням, приходилось для высчитывания реального расстояния пользоваться «пифагоровыми штанами».
2. Разрешающая способность не равно погрешность!
Простым языком - разрешающая способность действительно показывает минимальное перемещение, которое увидит мышка, (отсчеты в компьютере должны быть дискретны минимальной разрешающей способности). А вот что мышка ничего не пропустит, ничем не гарантируется. Можно уменьшить эту величину используя хорошие поверхности (чтобы оптический сенсор мог отслеживать перемещения), использовать небольшие скорости. Но пропуски будут всегда! Для пользователя это означает постоянный уход нуля и непрогнозируемую погрешность измерения.
3. USB HID по которому работает мышь не гарантирует доставку информации в компьютер! То есть неизвестно пропустил ли компьютер какую нибудь информацию с мышки или нет. Вероятность пропажи информации малая, но все же есть.
4. Настройки чувствительности(разрешающей способности) иногда хранятся не в мышке, а в программе для мышки.
5. Тут я сильно зол! Дело в том, что мышку я брал самую крутую из ассортимента Logitech, это самая продвинутая была на тот день модель logitech performance mx. Но какого было мое удивление, когда мышь давала разные погрешности при движении вперед и назад. ЭТО КАК? Поясню для пользователя. Если постоянно двигать мышку назад и вперед, то курсор ощутимо так все снижается и снижается. Это на любых платформах. Приходится периодически поднимать мышку и ставить на новое место. После того, как я заметил это, моя жизнь превратилась в кошмар! #Logitech
Устройство и принцип работы оптической мыши
Сегодня оптической мышью уже никого не удивишь. Но лет десять назад, когда только появилось первое поколение оптических "грызунов", не многие могли похвастать таким диковинным манипулятором. А между тем, возможность перемещать курсор с помощью "грызуна" с красным светодиодом в "брюшке" была еще одним шагом вперед в компьютерных технологиях.
Вообще-то в первых оптических мышах было два светодиода, и один из них излучал свет в красном диапазоне, а другой - в инфракрасном. Соответственно было и два фотодиода, которые работали "в паре" с вышеозначенными светодиодами. Для такой мыши был необходим специальный коврик с поверхностью из специального светоотражающего материала, на который наносилась мелкая сетка из синих и перпендикулярных им черных линий. Синие линии поглощали свет красного светодиода, а черные - инфракрасного.
Таким образом, один фотодиод "замечал" проход над синими линиями коврика, а другой - над черными. В момент прохода над линией фотодиод генерировал соответствующий электрический импульс. Контроллер мыши, подсчитывая импульсы, определял направление и величину перемещения.
Можно сказать, что коврик выполнял функцию, аналогичную той, которую выполняет вся механическая часть в оптико-механической мышке (обычная мышь с шариком, которую многие, наверное, не раз разбирали).
К достоинствам таких мышей можно отнести отсутствие движущихся и инерционных частей, надежность в работе, точность позиционирования. А к недостаткам - коврик, который требовал постоянного ухода и чистки, ну и, как всегда (куда ж без денег), - высокую стоимость. К тому же, при утрате или повреждении коврика мышь утрачивала свою работоспособность. Но в 1999 году фирмой Agilent Technologies была разработана своя технология оптической навигации, для которой коврик и вовсе не требовался. И так как на сегодняшний момент фирмой Agilent выпущено более 75 миллионов сенсоров различных модификаций для оптических мышей, то можно предположить, что данная технология пришлась ко двору как производителям, так и пользователям. К тому же, вышеозначенная фирма выпускает не только оптические сенсоры, но еще и практически все необходимые компоненты для сбора оптической мыши (этакий наборчик "сделай сам" (см. рис.1)), что делает доступным производство оптических мышей даже для небольших (так и хочется добавить "китайских") компаний. На рис.1 показаны два варианта линзы и зажима. Но какой бы из них ни предпочел производитель, принципиально на работу оптической системы это не влияет.
Суть данной технологии заключается в следующем: оптический сенсор последовательно считывает изображения поверхности (кадры), а затем математически определяет направление и величину перемещения.
красный
светодиод
зажим для светодиода
Полная оптическая система состоит из четырех компонентов: оптического сенсора, линзы, красного светодиода и зажима для светодиода. Как она выглядит в собранном виде, можно посмотреть на рис.2.
Оптический
Оптический сенсор включает в себя три функциональных блока: систему считывания изображения (IAS); цифровой сигнальный процессор(DPS); последовательный интерфейс передачи данных.
Конструктивно же оптический сенсор представляет собой микросхему с шестнадцатью ножками (хотя есть вариант и с восемью), на нижней части которой (со стороны ножек) расположен объектив.
За объективом расположена монохромная КМОП (CMOS) камера, которая и фотографирует небольшой участок поверхности площадью около квадратного миллиметра. Кадр поверхности разбивается на маленькие участки (квадраты). Для каждого такого участка вычисляется усредненное значение яркости. Диапазон присваиваемых значений - от 0 до 63, где 0 присваивается черному участку, а 63
Белому. Таким образом, получается мозаичное изображение, состоящее из квадратов различной яркости. Вот один такой квадрат, т.е. элемент изображения, и является точкой привязки, а точнее сказать, одним отсчетом (см. рис.3). И разрешающая способность оптической мыши определяется в отсчетах на дюйм (counts per inch), т.е. cpi, а не dpi, как у обычных мышей. Фирма Agilent выпускает сенсоры с разрешением как 400, так и 800 cpi, причем модели с разрешением 800 cpi могут быть запрограммированы на работу с разрешением 400 cpi. К слову сказать, некоторые фирмы в технических характеристиках своих оптических мышей заявляют разрешение в 420 или 500 cpi. Но просматривая техническую документацию на различные сенсоры, таких характеристик я не встречал. А в то, что какая-нибудь небольшая китайская компания выпускает сенсоры собственной разработки, когда такой признанный авторитет в этой области "мышестроения", как Logitech, покупает их у Agilent, очень слабо верится. И если уж я упомянул Logitech, то хочу добавить, что большинство своих моделей, за исключением самых дешевых, она снабжает сенсорами с разрешением в 800 cpi.
Но вернемся назад к технологии. Помня о том, что сенсор фотографирует очень небольшой участок поверхности, а курсор по экрану должен двигаться плавно и без запаздывания, а для этого последовательно считываемые кадры поверхности должны накладываться друг на друга с небольшим смещением, поверхность фотографируется с очень большой скоростью - 1500 снимков в секунду. Это позволяет перемещать мышь со скоростью до 12 дюймов (30 сантиметров) в секунду. Также существуют варианты сенсоров, которые фотографируют поверхность со скоростью в 2000 или 2300 снимков в секунду и позволяют перемещать мышь со скоростью в 14 дюймов (35 см) в секунду. Причем фирма Microsoft заявляет, что в ее последних разработках находятся сенсоры со скоростью съемки в 6000 кадров в секунду. Опять же, технического описания на
такой сенсор я не видел, но думаю, что в данном случае такое вполне возможно. Все вышерассмотренное относится к системе считывания изображения. Далее отснятые кадры обрабатываются цифровым сигнальным процессором по специальному, естественно, запатентованному алгоритму. Сравнивая полученные кадры, процессор определяет величину и направление перемещения мыши (см. рис.3), после чего преобразует эти данные в координаты.
Так как кварцуются сенсоры в большинстве своем генератором с частотой 18 МГц (есть варианты на 24 МГц), то можно предположить, что мощность цифрового процессора составляет 18 миллионов операций в секунду. Затем вычисленные координаты при помощи последовательного интерфейса передаются в компьютер. Первые модели сенсоров умели "общаться" с компьютером по интерфейсу PS/2, а для работы по интерфейсу USB требовался дополнительный контроллер. Кстати, частота посылки координат по умолчанию при использовании интерфейса USB - 125 раз в секунду, PS/2 - 100 раз. Но через последовательный порт могут устанавливаться некоторые параметры самого сенсора - в частности, разрешающая способность и частота посылки координат.
Теперь рассмотрим назначение других компонентов оптической системы. Так как под мышкой темно даже днем, то поверхность, которую фотографирует сенсор, необходимо подсвечивать. Камера сенсора настроена на восприятие света в красном спектре излучения (l= 639 nm). Поэтому и используется красный светодиод, главная задача которого - даже минимальным количеством излучаемого света обеспечивать работу сенсора на всей рабочей поверхности. Чем выше яркость освещения, тем на большем количестве поверхностей будет работать сенсор.
Чтобы обеспечить равномерное освещение поверхности, свет от светодиода проходит по световоду и рассеивается линзой. Через другую линзу сенсор считывает изображение поверхности. Конструктивно две линзы и световод выполнены как одна деталь и называются один словом "линза".
Кроме функции рассеивания и фокусирования света, линза выполняет еще одну важную функцию - защиту сенсора от разряда электростатического напряжения. Понятно, что линза должна располагаться на строго определенном расстоянии от рабочей поверхности и от сенсора. Поэтому печатная плата (PCB) и опорная поверхность (base plate), на которые устанавливаются элементы оптической системы, должны иметь строго определенные параметры, в том числе и по толщине. Ну и последний элемент оптической системы - это защелка. Служит она для фиксации элементов оптической системы относительно друг друга.
На этом можно оставить оптическую систему в покое и поговорить о поверхности, на которой должна работать данная система. Так как сенсор использует микроскопические особенности поверхности, то чем больше таких особенностей, тем лучше. К таковым можно отнести поверхности с хорошей текстурой (чем обладает любая ткань) и узорчатыми особенностями. Да и на обычной белой бумаге оптические мыши работают совсем неплохо. А вот с любой отражающей поверхностью сенсор работает плохо, будь то зеркало, стекло либо просто пластиковая поверхность коврика. Также к числу "плохих" поверхностей относятся полутоновые поверхности и коврики с трехмерным изображением.
Но как бы то ни было, такие положительные моменты, как отсутствие движущихся частей, точное позиционирование, плавные и легкие движения делают оптическую мышь довольно привлекательным объектом для покупки.
И если взять мыши в ценовой категории до 20 у.е., то, скорее всего, они будут иметь один и тот же тип сенсора и, соответственно, идентичные характеристики. В этом случае стоит обратить внимание на эргономику изделия, наличие
дополнительных кнопок, качество материалов и имя производителя. К тому же, важным моментом для оптических мышей является качество сборки. И если название фирмы вы слышите в первый раз, то стоит задуматься, брать такую мышь или нет. Во всяком случае, перед покупкой совсем не помешает почитать обзоры, посвященные конкретным моделям.
Вот, пожалуй, и все. Всего хорошего.
Игорь Масловский, [email protected]
Световод приподнят над микросхемой
Линза и рассеиватель
Вид на объективную часть оптической мыши
Вид снизу на объективную часть в собранном состоянии
Если мышку двигать все быстрее и быстрее, то при некоторой скорости перемещения она начнет подвирать. Это может сопровождаться уменьшением чувствительности, увеличением нестабильности и хаотичности движения, другими "нехорошестями". Очень мне нравилась одна модель офисной мышки Logitech - при резком движении можно было оказаться смотрящем прямо в пол и при этом крутиться. Очень интересное положение в момент схватки на Flak"ах. Этот вопрос я рассмотрю на практическом тестировании реальных мышек, теоретизировать здесь особо не о чем.
Неустойчивость
Мышка, по своей природе, механическое устройство. А значит ей свойственна неустойчивость, жрожжание. Это небольшие хаотические (случайные) перемещения. Сам дефект бывает статическим и динамическим. Статический проявляется в том, что мышка оставляет неровный след при невысокой скорости перемещения. Другой дефект с той же причиной - самопроизвольное перемещение мышки. Природа дефекта в шуме картинки датчика перемещения. Способов лечения болезни много и все они в какой-то степени связаны с фильтрацией. Дефект самопроизвольного перемещения, который был свойственен мышкам ранних выпусков, вроде бы сейчас не проявляется. Это хорошо? Отнюдь.
реклама
Датчик перемещений всё равно выдает шум, а вот в контроллере мышки используют специальный алгоритм, который блокирует перемещение мышки при сверхнизкой скорости передвижения с задержкой выполнения. Задержка нужна для того, чтоб пользователь не получил остановки мыши, когда он сам начал ее двигать слишком уж медленно. Реализовать данный алгоритм можно по-разному, поэтому не удивляйтесь "странностям" новой мышки, когда не удается попасть в иконки - из-за задержки мышка начинает двигаться не с момента начала перемещения рукой. Причем, величина задержки может зависеть от скорости. В результате одновременно происходят два неприятных события разом - мышка "вдруг" скакнула и, если включена настройка в Windows "повышенная точность установки указателя", скачек будет особо резким. Дело в том, что "повышенная точность установки указателя" связана с динамическим ускорением. А если мышь "скакнула", то ей сразу ставится повышенная скорость. После "скачка" динамическое ускорение не видит изменений скорости мышки, поэтому динамическая скорость уменьшается.На практике это выглядит так - вначале ничего, потом рывок, потом нормальное перемещение. Это происходит быстро и глазом не заметно, но отчетливо замечается рукой - работать с таким "подарком судьбы" не доставляет радости. Этот дефект хорошо заметен, если сразу после такой мышки взять в руки старую-старую светодиодную мышку и попробовать поработать на ней. По счастью, не каждый заметит такой дефект. Если так, то Вам повезло. Но есть и те, кто не сможет пользоваться мышками с такими "умными" алгоритмами. Коль скоро этот дефект плох для работы, то что говорить об использовании такой мышки в играх?
Динамическая неустойчивость имеет те же корни, что и у статическая - шумы изображения. Но к ним добавляются неравномерность поверхности, по которой движется мышь. С неравномерностью борются различными способами адаптации. Обычно этого добиваются управлением тока лазера и коэффициента усиления (яркостью) сигнала с матрицы. Но тут всё запутаннее и сложнее, банальной остановкой мыши не обойдешься, как это делается для устранения статической неустойчивости. Хотя пытаются - некоторые производители внедряют "улучшайзеры". Например, есть алгоритм выравнивания движения мышки, если она перемещается по прямой линии. Ну да, на тестах это будет красиво - раз и прямая линия без какого-либо мусора и дрожания. Раз то раз, а попробуйте этим чудом поиграть? "Мы думаем за Вас". Нет, спасибо, оставьте себе.
Немного поясню о связи шума и точности. Дело в том, что датчик видит поверхность не так, как человек. Во-первых, там инфракрасная, невидимая, подсветка. Во-вторых, эта подсветка лазерная, когерентная. В-третьих, размер окна порядка 0.7 мм, что очень мало. Любое "дуновение" и картинка меняется.
Хватит теории, приведу пример.
Возьмем кольцо и заставим его двигаться.
Движение видно отчетливо. А теперь сравним два соседних кадра:
В верхней части один кадр, в нижней следующий. Один сдвинут относительно другого на 1/4 пикселя. (Чтобы не прищуриваться, я увеличил картинку в 8 раз, сохранив формат разбиения матрицы датчика)
Ну ладно, Вы отчетливо видите разницу между верхней и нижней частью? Отчетливо?
А теперь добавим реальный шум. Чтобы не симулировать "непонятно что", приведу реальные снятые картинки.
При съемке мышка была четко зафиксирована, но программа управления в данной версии не умеет снимать больше одного снимка за раз, что может вызывать "взбрыкивание" яркости. Не обращайте внимание. Хотя, дело может быть и не в программе, вопрос не исследован.
Из этого пока можно сделать вывод, что незначительные смещения между соседними снимками трудно отождествляются датчиком. Обращаю внимание - именно датчиком. Контроллер мышки не имеет доступа картинке. Причина в шуме, который свойственен любой аналоговой аппаратуре. И тут стоит упомянуть другой параметр работы датчика - скорость съемки, частота кадров в секунду.
Frame Rate.
Frame rate - это частота снимков. Из сказанного выше следует, что надо так выбирать частоту снимков, чтоб между соседними кадрами было существенное изменение положения. С другой стороны, это изменение не должно быть слишком большим, иначе датчик не сможет понять, какой из кадров является опорным. Минимальная частота кадров 2000, максимальная чуть больше 7000. Разберемся с цифрами.
При низкой скорости перемещения, менее 1 см в секунду, и минимально допустимой частоте 2000 кадров/сек, получается смещение на изображении в 0.005 мм. Матрица датчика имеет 30*30 точек. При 0.005 мм и размере видимого окна 0.5 мм это составит 1/140 окна или 1/4 точки матрицы. Это как раз примерно то, что изображено выше на анимации симуляции движения кольца. А если мышку двигать еще медленнее? А ведь так и происходит, когда нужно сделать что-то очень точно - попасть или провести линию. Тут уже на 1 точку приходится далеко не 1/4, а гораздо меньше. А это означает, что вклад шумов растет. Уменьшать Frame Rate меньше 2000 нельзя, так сказал датчик. И что? ... да ничего хорошего, мышка будет дрожать.
С другой сторны, при повышенном Frame Rate сам контроллер может опрашивать датчик чаще и считанные значения усреднять. Это существенно уменьшает шум. Теория погрешностей говорит, что при проведении N замеров и их усреднении точность повышается пропорционально корню из N. Поэтому эффективно делать не слишком много замеров на усреднение - растет время, оно прямо пропорционально N, а вот точность уже почти не улучшается.
Современные мышки работают на интерфейсе USB, поэтому их квантование ответа выбирается из ряда 125-250-500-1000 отсчетов в секунду, что задает количество отсчетов усреднения в 16-8-4-2. Т.о., мышка на 125 Гц гораздо устойчивее 1000 Гц при прочих равных условиях. Поэтому вряд ли стоит гнаться за очень высокой скоростью интерфейса, выйдет боком. Точнее, уже выходит боком - заметно. Мышь нестабильна.
реклама
Контроллер лазерных мышек A4 X7 всегда считывает датчик с частотой 1000 раз в секунду. При минимальном частоте снимков в 2000 это уже означает потерю 50% информации, которую можно было-бы направить на усреднение. Альтернативный вариант - применить умную фильтрацию шума. Усреднеие и фильтрация имеют общие корни, но разную эффективность алгоритмов. При низкой скорости степень фильтрации должна быть больше (напоминаю - вредит слишком высокий минимальный Frame Rate), а при высоких скоростях его можно снизить. Кроме того, на высоких скоростях надо фильтровать динамическую нестабильность. Но "фильтровать", а не "исправлять за меня", как это принято в "улучшайзерах". Кстати, любой фильтр вносит задержку в получение отсчетов, поэтому и фильтрацию надо бы делать умно.
В старых офисных мышкам не было никакой фильтрации и "умничанья". И как же приятно ими играть.
Переключатель DPI
В лазерных мышках, особенно игровых, стали ставить переключатель DPI (точек на дюйм). Вообще-то это термин неверный и сейчас его вытесняет CPI (count - число на дюйм). Я буду использовать термин DPI там, где он явно указан в надписях или спецификации, хоть это и не совсем правильно.
Итак, что такое CPI? Это количество отсчетов (точек), которое будет выдано в Windows при перемещении на один дюйм (25.4 мм).
реклама
Чем больше CPI, тем, вроде бы, лучше мышка? Например, у А4 в серии Х7 лазерные мышки имеют по 2400-3600dpi. И это при том, что датчик не может выдать больше 2000 cpi. Нонсенс? ... но откуда же А4 берет такие цифры? Да ровно оттуда же, откуда их берет датчик перемещений. У него, после вычисления наиболее вероятного перемещения изображения на матрице, получается какое-то абстрактное число. Давайте предположим, что это число от 0 до 1. Датчик умножает его на установленное значение cpi и выдает в контроллер. (Хотя, тут наоборот, контроллер считывает информацию из датчика.) Что мешает контроллеру тоже умножить на произвольное число? Ап, и получили "крутую" мышку. Крутую - крутую, только фиговую. Из-за шума датчик может определять смещение картинки с какой-то ограниченной точностью.Для датчика ADNS-6010 фирма Avago декларирует типичную точность 2300 cpi. Это означает, что при установке чувствительности выше 2300 ошибка датчика превысит единицу отсчета. В среднем. Для конкретно взятой мышки это число может меняться в некоторых пределах и зависеть от множества случайных факторов - состояние поверхности, четкость фиксации блока оптики, старение лазера, мутнение или запыленность оптики. Одно можно сказать более-менее достоверно - лучше 2300 cpi не будет.
Если в настройках мышки поставить маленькое разрешение, значительно меньше 2300 cpi, то мышка будет вести себя очень четко и предсказуемо, только кого порадует лазерная мышка с разрешением 600 cpi? Но и "3600" cpi приносит не больше радости.
Одна особенность настройки cpi, которой следуют мышки А4 серии Х7 - они ставят настройку датчика "от грани и выше". Т.е. для разрешений 400-799 ставится разрешение датчика 400, для 800-1599 на датчик ставится 800 и т.д. Поэтому, для избавления от ненужной экстраполяции рекомендуется ставить разрешения, свойственные аппаратным настройкам датчика - 400, 800, 1600, 2000 cpi.
На этом сегодня закончим. В следующей части материала вас ждет тестирование нескольких распространенных мышей. А завершит ее материал о сборке мыши с улучшенными характеристиками. Продолжение следует...
Так называемые "мышки" - неотъемлемая часть современного компьютера. С появлением новых, старые, еще работоспособные, но устаревшие морально, как правило, выбрасываются или пылятся без дела в кладовке. Однако им можно найти применение, практически не изменяя электронную начинку. Сделать это совсем несложно.
"КРАСНЫЙ ГЛАЗ" ВКЛЮЧАЕТ СВЕТ
Оригинальными включателями света сегодня никого не удивишь, однако представленный ниже - из оптической компьютерной мыши, на мой взгляд, необычен и удобен в городской квартире по нескольким причинам:
Во-первых, миниатюрная мышь хорошо входит в гнездо под штатный клавишный
включатель на стене;
- во-вторых, не требуется непосредственного контакта с включателем - достаточно
провести пальцем (или иным предметом) на расстоянии 1,5 см от "красного глаза"
подсветки;
- в третьих, устройство изначально обладает эффектом триггера: один раз провел
пальцем - свет загорелся, провел второй раз - выключился;
- предусмотрен и индикатор реагирования - при проводе пальцем у "подсветки", она
загорается в три раза ярче.
К оптической компьютерной мыши добавляется простейший усилитель тока на транзисторе с исполнительным реле в коллекторной цепи с тем, чтобы сигналы от мыши управляли лампой освещения мощностью до 200 Вт (ограничены параметрами реле) - об этом ниже. Поскольку практически все компьютерные оптические мыши построены по одной схеме и принципу работы, рассмотрим одну из них - Defender Optical 1330, представленную на фото 1.
Фото 1. Вид оптической мыши Defender Optical 1330 со снятой крышкой корпуса
Фото 2. Печатная плата оптической мыши Defender Optical 1330 со стороны
оптической линзы
Фото 3. Приемо-передатчик RX-9 комплекта беспроводной клавиатуры и манипулятора
оптической мыши
Фото 4. Установка беспроводной мышки для охраны сейфа
Фото 5. Сирена KPS-4519 в качестве звуковой сигнализации
Основное устройство позиционирования координат - микросборка с обозначением U2 А2051В0323, совмещенная с фотоприемником (в одном корпусе). С вывода 6 данной микросборки на светодиод красного цвета постоянно поступают импульсы с частотой около 1 кГц, поэтому даже когда оптическая мышь находится без движения на столе, видна красная, едва мерцающая "подсветка". Однако значение ее не только подсвечивать место, занимаемое мышью - для красоты. Светодиод - это передатчик, а приемником служит сама микросборка со встроенным в ее корпус электронным узлом. Когда отраженные от любой поверхности световые сигналы достигают фотоприемника, уровень напряжения на выводе 6 U2 падает до нуля, и светодиод загорается в полную силу. Именно такую реакцию мы видим у мышки на компьютерном столе при попытке ее перемещения.
Время горения светодиода в полную силу составляет 1,3 с (если нет более продолжительных воздействий на мышь). Одна из главных деталей оптической мыши, как ни странно, не электроника, а пластмассовая линза, изогнутая под определенным радиусом (см. фото 2), без нее мышка "слепнет".
Устанавливать в стенную нишу под штатный выключатель мышку нужно в собранном корпусе, который надежно фиксирует оптическую линзу со стороны основания (подложки) мыши.
Когда на фотоприемник поступает отраженный от препятствия (вашего пальца, ладони) сигнал, на выводах 15 и 16 микросборки U1 НТ82М398А (и соответственно на выводах 4 и 5 микросборки U2) изменяется уровень логического сигнала на противоположный. Причем это не инверсные выводы, а независимые друг от друга. Изменение сигнала на них происходит в зависимости от вертикального или горизонтального перемещения мыши. Управляющий сигнал для исполнительного устройства (низкий уровень сменяется на высокий, вывод 15 U1 и вывод 4 U2) подключают к исполнительному устройству, к точке А.
Открывание транзистора и включение реле происходит при высоком логическом уровне в точке А. Диод VD1 защищает обмотку реле от бросков обратного тока. Резистор R1 ограничивает ток в базе транзистора. Реле может управлять не только лампой освещения, но и любой нагрузкой с током до 3 А. Источник питания - стабилизированный, с напряжением 5 В ±20%. Транзистор можно заменить на КТ603, КТ940, КТ972 с любым буквенным индексом, а исполнительное реле К1 - на РМК-11105, TRU-5VDC-SB-SL или аналогичное на напряжение срабатывания 4-5 В.
Рис. 1. Усилитель тока с исполнительным реле, управляющим нагрузкой в сети 220 В
Рис. 2. Схема адаптера для звуковой сигнализации открывания сейфа
Четырехпроводный кабель частично отпаивают от платы в месте соединения со штатным разъемом и перепаивают два провода (зеленый и белый к выводам 15 и 16 микросборки U1 со стороны элементов (не печатного монтажа), так как иначе провода будут мешать установке платы в корпус мыши.
Изначальная распайка разъема на плате мыши: 1-й вывод - общий провод, 2-й вывод - питание "+5 В", 3-й и 4-й -выходные импульсы.
Если схема и печатная плата у вашей мыши не соответствуют представленной на примере Defender Optical 1330, достаточно взять любой осциллограф или логический пробник (индицирующий хотя бы два основных состояния - высокое и низкое) и опытным путем найти на плате точки с управляющим сигналом.
Подойдет любая оптическая мышь для ПК, поэтому нет разницы какой разъем находится в конце соединительного кабеля компьютерной мыши, его все равно придется снимать. Также можно применить и беспроводные мыши (с передачей сигнала по радиоканалу, к примеру, из комплекта А4 TECH - адаптер мыши RX-9 5 В 180 мА), в части позиционирования координат у них такой же принцип работы, как и у проводных.
МЫШЬ-СТОРОЖ
Сейчас наступает новая волна смены поколений распространенного компьютерного манипулятора: "хвостатые" (с проводами) оптические мыши уступают дорогу своим беспроводным аналогам. К примеру, актуальны беспроводные оптические манилуляторы-мышки RP-650Z в комплекте с беспроводной клавиатурой (с эргономичным расположением основных клавиш и 19-ю дополнительными перепрограммируемыми кнопками). Сенсор фирмы Agilent Technologies, использованный в мышке RP-650Z, является лидером данного сектора рынка.
Оптическое разрешение мышки равно 800 dpi - этого вполне достаточно для хорошей работы. Приемо-передатчик радиосигнала и зарядник аккумуляторов типа АА с переключателем для быстрой зарядки, размещены в одном корпусе (фото 3). Этот блок подключается к USB-порту.
Фирма A4Tech маркирует свои манипуляторы индивидуальным электронным кодом, благодаря которому на одном канале приема могут соседствовать до 256 манипуляторов или клавиатур. Подобное техническое решение сужает пропускную полосу передачи данных, но при максимальном радиусе уверенного приема в 2 метра это не критично.
Необычный вариант использования беспроводной мыши - в качестве сигнализатора открывания сейфа, работы стиральной машины и даже... холодильника представлен ниже. Все эти варианты основаны на микросмещении предмета и даже на эффекте детонации. При установке мыши на металлическую дверь получится сигнализатор ее открывания или воздействия (еще один вариант применения).
Должен заметить, что не менее эффективный сигнализатор может быть получен, если в качестве мыши установить на контролируемую поверхность автомобильный датчик удара; он также срабатывает от детонации или механического воздействия на контролируемую поверхность, а его современные модели имеют даже несколько уровней регулировки чувствительности. В компьютерной мышке этой опции нет по определению ее первого и основного назначения, но это и не важно; ведь мы рассматриваем ее необычное применение.
Я установил беспроводную мышь RP-650Z (фирмы А4Тес11) на переднюю стенку сейфа, в котором хранится охотничье оружие, хотя хранить в нем можно что угодно (фото 4).
Сейф стоит во встроенном шкафу (ниша в стене городской квартиры); благодаря беспроводной технологии нет необходимости в проводах. В пределах 2 метров расположен приемо-передатчик радиосигнала (см. фото 3), который соединен с устройством-адаптером (схема на рис. 2).
Распайка разъема для USB порта относительно выше рассмотренного варианта не отличается. В беспроводной мышке RP-650Z управляющий сигнал (при смещении мыши уровень в данной модели меняется с высокого на низкий) берут с вывода 4 единственной микросборки UM1 (обозначение на плате). Поэтому в данном случае потребуется иная схема усилителя тока (см. рис. 2). Теперь при открывании сейфа и даже любом механическом воздействии на него (смещающем на доли миллиметра датчик-мышь) сработает устройство охраны.
В качестве НА1 применен звуковой капсюль со встроенным генератором звуковой частоты, подключать его надо строго в соответствии с полярностью. Транзистор VT1 р-n-р проводимости открывается тогда, когда напряжение в точке А близко к нулю, то есть в момент смещения мыши. Можно использовать и сирену KPS-4519 (фото 5), поскольку при приложенном питании 12 В она дает достаточную громкость звука для того, чтобы услышать его в соседних помещениях (более 80 дБ). Подключать сирену надо в соответствии с полярностью (красный провод - к "+" питания).
Два слова о закреплении мыши. На нижнюю часть ее корпуса, не закрывая светодиод и линзу, приклеивается магнит (от рекламных магнитов на холодильник). Теперь мышь надежно фиксируется на любой металлической поверхности (холодильника, стиральной машины и др.). При попытке ее снять также сработает сигнализация, сообщая владельцу о несанкционированном доступе к сейфу.
Благодаря "беспроводности" пользователь имеет возможность как угодно устанавливать мышь, удаляя ее от приемника на разумное расстояние, не заботясь о соединительных проводах. Вариантов применения данной технологии может быть сколь угодно много, и они ограничиваются лишь вашей фантазией.
Читайте и пишите полезные
– в третьих, устройство изначально обладает эффектом триггера: один раз провёл пальцем – свет загорелся, провёл второй раз – выключился;
– предусмотрен и индикатор реагирования – при проводе пальцем у «подсветки», она загорается в три раза ярче.
К оптической компьютерной мыши добавляется простейший усилитель тока на транзисторе с исполнительным реле в коллекторной цепи с тем, чтобы сигналы от мыши управляли лампой освещения мощностью до 200 Вт (ограничены параметрами реле) – об этом ниже. Поскольку практически все компьютерные оптические мыши построены по одной схеме и принципу работы, рассмотрим одну из них – Defender Optical 1330, представленную на фото 1.
Основное устройство позиционирования координат – микросборка с обозначением U2 А2051В0323, совмещённая с фотоприёмником (в одном корпусе). С вывода 6 данной микросборки на светодиод красного цвета постоянно поступают импульсы с частотой около 1 кГц, поэтому даже когда оптическая мышь находится без движения на столе, видна красная, едва мерцающая «подсветка». Однако значение её не только подсвечивать место, занимаемое мышью – для красоты. Светодиод – это передатчик, а приёмником служит сама микросборка со встроенным в её корпус электронным узлом. Когда отражённые от любой поверхности световые сигналы достигают фотоприёмника, уровень напряжения на выводе 6 U2 падает до нуля, и светодиод загорается в полную силу. Именно такую реакцию мы видим у мышки на компьютерном столе при попытке её перемещения.
Время горения светодиода в полную силу составляет 1,3 с (если нет более продолжительных воздействий на мышь). Одна из главных деталей оптической мыши, как ни странно, не электроника, а пластмассовая линза, изогнутая под определённым радиусом (см. фото 2), без неё мышка «слепнет».
Устанавливать в стенную нишу под штатный выключатель мышку нужно в собранном корпусе, который надёжно фиксирует оптическую линзу со стороны основания (подложки) мыши.
Когда на фотоприёмник поступает отражённый от препятствия (вашего пальца, ладони) сигнал, на выводах 15 и 16 микросборки U1 НТ82М398А (и соответственно на выводах 4 и 5 микросборки U2) изменяется уровень логического сигнала на противоположный. Причём это не инверсные выводы, а независимые друг от друга. Изменение сигнала на них происходит в зависимости от вертикального или горизонтального перемещения мыши. Управляющий сигнал для исполнительного устройства (низкий уровень сменяется на высокий, вывод 15 U1 и вывод 4 U2) подключают к исполнительному устройству, к точке А.
Открывание транзистора и включение реле происходит при высоком логическом уровне в точке А. Диод VD1 защищает обмотку реле от бросков обратного тока. Резистор R1 ограничивает ток в базе транзистора. Реле может управлять не только лампой освещения, но и любой нагрузкой с током до 3 А. Источник питания – стабилизированный, с напряжением 5 В ±20%. Транзистор можно заменить на КТ603, КТ940, КТ972 с любым буквенным индексом, а исполнительное реле К1 – на РМК-11105, TRU-5VDC-SB-SL или аналогичное на напряжение срабатывания 4-5 В.
Четырёхпроводный кабель частично отпаивают от платы в месте соединения со штатным разъёмом и перепаивают два провода (зелёный и белый к выводам 15 и 16 микросборки U1 со стороны элементов (не печатного монтажа), так как иначе провода будут мешать установке платы в корпус мыши.
Изначальная распайка разъёма на плате мыши: 1-й вывод – общий провод, 2-й вывод – питание «+5 В», 3-й и 4-й -выходные импульсы.
Если схема и печатная плата у вашей мыши не соответствуют представленной на примере Defender Optical 1330, достаточно взять любой осциллограф или логический пробник (индицирующий хотя бы два основных состояния – высокое и низкое) и опытным путём найти на плате точки с управляющим сигналом.
Подойдёт любая оптическая мышь для ПК, поэтому нет разницы какой разъём находится в конце соединительного кабеля компьютерной мыши, его всё равно придётся снимать. Также можно применить и беспроводные мыши (с передачей сигнала по радиоканалу, к примеру, из комплекта А4 TECH – адаптер мыши RX-9 5 В 180 мА), в части позиционирования координат у них такой же принцип работы, как и у проводных.
МЫШЬ-СТОРОЖ
Сейчас наступает новая волна смены поколений распространённого компьютерного манипулятора: «хвостатые» (с проводами) оптические мыши уступают дорогу своим беспроводным аналогам. К примеру, актуальны беспроводные оптические манилуляторы-мышки RP-650Z в комплекте с беспроводной клавиатурой (с эргономичным расположением основных клавиш и 19-ю дополнительными перепрограммируемыми кнопками). Сенсор фирмы Agilent Technologies, использованный в мышке RP-650Z, является лидером данного сектора рынка.
Оптическое разрешение мышки равно 800 dpi – этого вполне достаточно для хорошей работы. Приёмо-передатчик радиосигнала и зарядник аккумуляторов типа АА с переключателем для быстрой зарядки, размещены в одном корпусе (фото 3). Этот блок подключается к USB-порту.
Фирма A4Tech маркирует свои манипуляторы индивидуальным электронным кодом, благодаря которому на одном канале приёма могут соседствовать до 256 манипуляторов или клавиатур. Подобное техническое решение сужает пропускную полосу передачи данных, но при максимальном радиусе уверенного приёма в 2 метра это не критично.
Необычный вариант использования беспроводной мыши – в качестве сигнализатора открывания сейфа, работы стиральной машины и даже… холодильника представлен ниже. Все эти варианты основаны на микросмещении предмета и даже на эффекте детонации. При установке мыши на металлическую дверь получится сигнализатор её открывания или воздействия (ещё один вариант применения).
Должен заметить, что не менее эффективный сигнализатор может быть получен, если в качестве мыши установить на контролируемую поверхность автомобильный датчик удара; он также срабатывает от детонации или механического воздействия на контролируемую поверхность, а его современные модели имеют даже несколько уровней регулировки чувствительности. В компьютерной мышке этой опции нет по определению её первого и основного назначения, но это и не важно; ведь мы рассматриваем её необычное применение.
Я установил беспроводную мышь RP-650Z (фирмы А4Тес11) на переднюю стенку сейфа, в котором хранится охотничье оружие, хотя хранить в нём можно что угодно (фото 4).
Сейф стоит во встроенном шкафу (ниша в стене городской квартиры); благодаря беспроводной технологии нет необходимости в проводах. В пределах 2 метров расположен приёмо-передатчик радиосигнала (см. фото 3), который соединён с устройством-адаптером (схема на рис. 2).
Распайка разъёма для USB порта относительно выше рассмотренного варианта не отличается. В беспроводной мышке RP-650Z управляющий сигнал (при смещении мыши уровень в данной модели меняется с высокого на низкий) берут с вывода 4 единственной микросборки UM1 (обозначение на плате). Поэтому в данном случае потребуется иная схема усилителя тока (см. рис. 2). Теперь при открывании сейфа и даже любом механическом воздействии на него (смещающем на доли миллиметра датчик-мышь) сработает устройство охраны.
В качестве НА1 применён звуковой капсюль со встроенным генератором звуковой частоты, подключать его надо строго в соответствии с полярностью. Транзистор VT1 р-n-р проводимости открывается тогда, когда напряжение в точке А близко к нулю, то есть в момент смещения мыши. Можно использовать и сирену KPS-4519 (фото 5), поскольку при приложенном питании 12 В она даёт достаточную громкость звука для того, чтобы услышать его в соседних помещениях (более 80 дБ). Подключать сирену надо в соответствии с полярностью (красный провод – к «+» питания).
Два слова о закреплении мыши. На нижнюю часть её корпуса, не закрывая светодиод и линзу, приклеивается магнит (от рекламных магнитов на холодильник). Теперь мышь надёжно фиксируется на любой металлической поверхности (холодильника, стиральной машины и др.). При попытке её снять также сработает сигнализация, сообщая владельцу о несанкционированном доступе к сейфу.
Благодаря «беспроводности» пользователь имеет возможность как угодно устанавливать мышь, удаляя её от приёмника на разумное расстояние, не заботясь о соединительных проводах. Вариантов применения данной технологии может быть сколь угодно много, и они ограничиваются лишь вашей фантазией.
А. КАШКАРОВ, г. Санкт-П етербург
Заметили ошибку? Выделите ее и нажмите Ctrl+Enter , чтобы сообщить нам.