Кафедра АППиЭ

КОНФЕРЕНЦИИ => Дни науки АмГУ 2016 Секция Автоматика, управление и моделирование => Тема начата: Ko_Dee от Среда, марта 30, 2016, 07:33:24

Название: 3. Кожемяко. Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: Ko_Dee от Среда, марта 30, 2016, 07:33:24
Доклад - исследование на тему:

КАК ИЗ ОПТИЧЕСКОЙ КОМПЬЮТЕРНОЙ МЫШИ СДЕЛАТЬ ДАТЧИК ПЕРЕМЕЩЕНИЯ?

автор: Кожемяко Дмитрий Геннадьевич, группа 341.
Научный руководитель: доцент Рыбалев А.Н.

(http://s020.radikal.ru/i714/1603/1b/c6ce9d54797a.png) (http://radikal.ru/big/b8b1a03e58584682bd0c0ef7032a5ed7)

Тема интересная, и вполне реализуема так сказать на коленке, главное желание, время и материалы. А пока раскидаем теорию.

Поехали!

1. Немного про грызунов. (!!!НЕ ЗАБЫВАЕМ, ЧТО РЕЧЬ ИДЕТ ИМЕННО ОБ ОПТИЧЕСКИХ!!!)

(http://s017.radikal.ru/i408/1603/48/f409e3e149b6.jpg) (http://radikal.ru/big/5204165f5b8347cd9e283ea06e0c1d34)

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

(http://s019.radikal.ru/i640/1603/d6/48b4a795f1a8.jpg) (http://radikal.ru/big/e3ccac83d0094a6e91cdb0c700eb9f0b)

Говоря кAлхозным языком, камера быстро и часто фотКАЕТ поверхность стола(или где вы там юзаете мышь), и сравнивает фотки, смотрит куда сместилось изображение и по этим смещениям определяет положение курсора.

(http://s020.radikal.ru/i704/1603/81/5de650e8b791.png) (http://radikal.ru/big/c04807ed007d4c8b8221f8095c9d7d09)

Кстати  не каждый знает почему в оптических мышах используется именно красный светодиод, а все дело в том что кремниевые фотоприемники(которые используются чаще всего)  более чувствительны именно к красному свету. Но встречаются и мыши с синим светодиодом, более того, люди от скуки своей сами перепаивают красный на синий и наоборот, и судя по среднему арифметическому из отзывов такого мода, ничего страшного не происходит, мышь как работала-так и работает.  Вот что нашел в одной из статей посвященным грызунам:
""В сентябре 2008 года компания Microsoft представила первые серийные модели мышей, оснащенные оптическим сенсором BlueTrack. Как и в оптическом датчике традиционной конструкции, источником света служит светодиод. Правда, не привычный красный, а модный синий (отсюда, собственно, и название BlueTrack). Теоретически это позволяет получить определенное преимущество, поскольку длина волны синего света примерно в полтора раза короче по сравнению с красным (и почти вдвое -- по сравнению с инфракрасными источниками). Таким образом, синее освещение позволяет камере зафиксировать более мелкие детали микрорельефа рабочей поверхности. Однако стоит учитывать, что в данном случае речь идет о деталях размером в десятые доли микрона, и сложно утверждать наверняка, позволяют ли параметры оптического тракта и светочувствительного сенсора реализовать это преимущество на практике.
Есть немало скептиков, полагающих, что на использовании именно синего светодиода настояли вовсе не инженеры, а маркетологи. Ведь отличить цвет свечения под «брюшком» мыши сможет даже технически неграмотный пользователь (разумеется, если он не дальтоник). Остается лишь придумать и запустить в массы красивый миф о преимуществах синей подсветки над красной -- благо с решением подобных задач опытные маркетологи справляются без труда."" (http://compress.ru/article.aspx?id=22578)
Получается что дело темное с этими красными и синими, лучше не заморачиваться.

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

2. Немного про датчики перемещения.


Датчик перемещения -- это прибор, предназначенный для определения величины линейного или углового механического перемещения какого-либо объекта. Разумеется, подобные приборы имеют колоссальное количество практических применений в самых разнообразных областях, поэтому существует множество классов датчиков перемещения, которые различаются по принципу действия, точности, цене и прочим параметрам. Следует сразу отметить, что все датчики перемещения можно разделить на две основных категории -- датчики линейного перемещения и датчики углового перемещения (энкодеры).
Вдаваться в подробности мы не будем, и рассмотрим только ОПТИЧЕСКИЕ датчики перемещения, так как тема нашего доклада направлена именно на них, да и функционал и принцип действия оптических мышей ограничивает нас этим.

(http://s016.radikal.ru/i334/1603/41/036eec20fae3.jpg) (http://radikal.ru/big/a36b362fd5b346a1a9eb93449e94a46b)

Существует множество вариаций схем датчиков перемещения, основанных на различных оптических эффектах. Пожалуй, наиболее популярной является схема оптической триангуляции -- датчик положения является, по сути, дальномером, который определяет расстояние до интересующего объекта, фиксируя рассеянное поверхностью объекта излучение и определяя угол отражения, что даёт возможность определить длину d -- расстояние до объекта(см. рисунок). Важным достоинством большинства оптических датчиков является возможность производить бесконтактные измерения, кроме того такие датчики обычно довольно точны и имеют высокое быстродействие.
(http://s020.radikal.ru/i703/1603/75/8a15ab7f2107.png) (http://radikal.ru/big/5d8450f7e6924a89ab9fb1974d156493)
Оптический датчик перемещения на основе схему оптической триангуляции.

В другой реализации оптического датчика, предназначенной для регистрации и определения параметров малых перемещений и вибраций, используется двойная решётчатая конструкция, а также источник света и фотодетектор (см. рисунок). Одна решётка неподвижна, вторая подвижна и может быть механически закреплена на интересующем объекте или каким-либо способом передавать датчику его движение. Малое смещение подвижной решётки приводит к изменению интенсивности света, регистрируемой фотодетектором, причём с уменьшением периода решётки точность датчика возрастает, однако сужается его динамический диапазон.
(http://s018.radikal.ru/i511/1603/e0/edd066423c1a.png) (http://radikal.ru/big/68f29f0b6d9941de89d8671030ba9a62)
Оптический датчик перемещения на основе дифракционных решеток.

Основной вышеизложеный материал по датчикам отсюда - http://www.devicesearch.ru/article/3648

3. Непосредственно к теме.

Проанализировав теорию по датчикам, возникли некоторые сомнения, потому как аппаратура хоть и оптическая, но построена совсем на других законах оптики. Насколько мне известно, датчиков в которых применяется процедура фотографирования и дальнейшего сравнения сделанных кадров, дабы найти разницу по смещению - не существует(активная часть аудитории кинет в меня камень, если я не прав). И как оказалось так думаю не я один.
На форумах иногда активно "курится" эта тема. Видимо, вечная Руссссская смекалка и голь перекатная не отпускает головы русских разумников, и они ищут замены фабричным устройствам и применение вышедшим из строя гаджетам.
Копипастить все что было разжовано и не разжовано на форумах я не буду, просто не вижу смысла, все и так можно улицезреть, вот маленько ссылок на данную тему....
http://www.sci-lib.net/index.php?showtopic=6640
http://www.chipmaker.ru/topic/22680/
http://www.starlab.ru/showthread.php?t=979
http://myrobot.ru/forum/topic.php?forum=4&topic=300

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

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

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

(http://s015.radikal.ru/i330/1604/f9/28631713984c.png) (http://radikal.ru/big/ea56e75ce170468880c8090144e912a2)

Нам нужно знать позицию штока цилиндра, относительно его крайних положений, не важно в каких единицах(у.е, мм, % и т.д.), то есть на первый взгляд наш датчик должен позиционироваться примерно так.....
(http://s015.radikal.ru/i331/1604/b1/b26da1d3b85e.png) (http://radikal.ru/big/1a0547a4dae747a58599cd4e025b57c0)
Вот так.

В результате исследования вывод получился такой: получить необходимые характеристики датчика основанного на принципе действия сенсора перемещения мыши - проблематично(а с необходимой точностью, думаю почти невозможно).
НО. Ведь можно использовать и другие части умершей мыши, мне показалось довольно интересной идея использования механизма колесика, или говоря по научному - скролл. Там все намного проще чем с сенсором перемещения, весь механизм построен на фоточувствительных элементах и отверстиях в колесе, тоже оптика, но проще(НО ТАК НЕ НА ВСЕХ МЫШКАХ!!! СУЩЕСТВУЮТ И ДРУГИЕ ВАРИАНТЫ, которые рассматривать не будем).
(http://s019.radikal.ru/i624/1604/71/a63bf8cf301e.jpg) (http://radikal.ru/big/ba5ecfc8ce874403a38062e2aa7eec1e)
Такую вещь реализовать проще, единственная особенность ее использования состоит в том что необходим контакт колеса с поверхностью движущейся детали, в нашем случае шток цилиндра.
Выглядело бы примерно так...
(http://s020.radikal.ru/i713/1604/7b/d9123e12c2bb.png) (http://radikal.ru/big/b470d7d483004a50a7a7fca873fe7f32)

Так же, неплохим вариантом мне показалось использование энкодера из обычного струйного принтера, принцип тот же что и у описанного выше колесика мыши, только гораздо точные измерения. Для тех кто не знает как работает энкодер, или энкодерная лента вкратце поясню. Принцип действия заключается в том, что на позиционирующей ленте на небольшом расстоянии друг от друга нанесены полоски, а на каретке принтера находится оптопара (датчик который "видит" данные полоски). Все что необходимо это установить на механизм эту самую ленту, и распознающий датчик. Такая конструкция применяется во многих промышленных датчиках линейного перемещения, например на токарных станках с ЧПУ
(http://s020.radikal.ru/i718/1604/bc/41ebfac219d9.jpg) (http://radikal.ru/big/086e1d4cb4d84ad4b02b6b43b98f074e)

Так же существуют такие вещи как цифровые курвиметры и электронные штангенциркули которые всю процедуру измерения выполнят за нас, а нам остается лишь организовать "симбиоз" этой аппаратуры с нашим управляющим прибором, будь то контроллер или ПК.
(http://s020.radikal.ru/i710/1604/a5/236e0d73f100.jpg) (http://radikal.ru/big/f8c8adf0dfbe4c3198fec97634e1aae3)
(http://s48.radikal.ru/i119/1604/24/15d621940be6.jpg) (http://radikal.ru/big/1c528f3a8ef14f24bb797a5c758325c8)


 

(http://s50.radikal.ru/i130/1604/cc/26708d91c88e.jpg) (http://radikal.ru/big/c393aef2ca5c484f987f83d988d7ea5a)


Название: Re: Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: ran от Четверг, марта 31, 2016, 02:08:47
CoDee,
1) Добавьте, пожалуйста, к докладу заголовок с указанием автора на русском языке (ФИО), а то мне придется сделать это самому, а я могу и ошибиться.
2) Не во всех мышах используется красный светодиод, в некоторых, кажется, голубой. Если, можно, "просветите".
Название: Re: Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: KudakIG от Четверг, марта 31, 2016, 18:51:04
Добрый день, всем.

Ko_Dee,
По датчикам перемещения распишите побольше, чем они отличаются, основные тех. характеристики и т.д.
И либо дополните еще датчиков перемещения(допустим ультразвуковые), либо укажите что рассматриваете только оптические.
Касательно цвета светодиода, мне встречались мышки и с ИК подсветкой поверхности(не светятся).
Название: Re: Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: Ko_Dee от Четверг, марта 31, 2016, 19:37:08
KudakIG, читаем второй абзац второго пункта(по датчикам как раз). А по поводу ИК подсветки грызунов это уже к теме о лазерных, а их мы не рассматриваем.
Название: Re: Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: KudakIG от Четверг, марта 31, 2016, 21:55:37
Ko_Dee
Лазеры не относятся к оптике?
Ваш первый пример "Оптический датчик перемещения на основе схему оптической триангуляции." основан как раз таки на лазере.
Если взялись расписывать теорию, так пишите кратко но полно. (http://zadocs.ru/fizika/8556/index.html?page=3)
Название: Re: Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: knoppix от Суббота, апреля 02, 2016, 01:22:55
А у меня у мышки вообще вообще ничего снизу не светится (мышка logitech), значит не видать мне датчика? Ну и собственно вопрос, что по факту дешевле, расковырять мышку, или просто купить датчик?
Название: Re: Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: ran от Понедельник, апреля 04, 2016, 19:39:18
Так датчик еще надо купить, а мышек дохлых или полудохлых полно.
Чтобы продать что-нибудь ненужное, нужно сначала купить что-нибудь ненужное, а у нас денег нет!
Название: Re: Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: Ko_Dee от Вторник, апреля 12, 2016, 06:23:03
knoppix, хотелось бы сказать что паламаласяяяя :'(  Ваша мышь, но нет. Раз уж попался в эту мышеловку то включим в обсуждения и лазерные гаджеты, владельцем которго Вы являетесь(если конечно не шариковой) ;D  ;D  ;D

Название: Re: Как из оптической компьютерной мыши сделать датчик перемещения?
Отправлено: RVL от Вторник, апреля 12, 2016, 18:30:50
Дмитрий! Укажите руководителя в начале статьи!