roboforum.ru

Технический форум по робототехнике.

Двухкоординатный энкодер из фотоузла компутерной мыши

Двухкоординатный энкодер из фотоузла компутерной мыши

Spy4ik » 03 ноя 2016, 19:25

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

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

Myp » 03 ноя 2016, 22:14

ну берёшь и делаешь
выпаиваешь сенсор из мышки и подключаешь к ардуине, примеры в гугле.

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

Spy4ik » 03 ноя 2016, 23:51

ну... хорошо хоть не RTFM....

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

linvinus » 04 ноя 2016, 00:14

учтите что камера в мышке очень низкого разрешения, 900пикселей максимум
но ардуина в любом случае не вариант, ARM 72 - 168Mhz или что то этого уровня
гуглить opencv optical flow, если нужна одометрия то лучше сразу искать optical odometry
чем готовый сенсор не устроил?
самый простой способ это получать картинку с сенсора мыши по spi и дальше её обрабатывать как вам угодно, обычная видео камера слишком высокого разрешения и относително медленная

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

Spy4ik » 04 ноя 2016, 13:37

все, что выдал гугл и ютуб по запросу arduino read optical mouse sensor - доказывает что можно получать ХУ координаты, но нужно садиться на ноги мышьей мелкосхемы по протоколу PS/2. Есть библиотеки. Дальше не копал пока. Про юсб вообще ничего не сказано - видимо слишком просто. Есть шилды юсб-хосты. Насколько просто выдрать координаты из юсб-протокола пока не копал.
Еще нашел готовые оптические модули в виде kit-ов для разработчиков мышей (оптика с подсветкой и камерой плюс процессор).
Еще вспомнилось про мыши в формы карандаша-ручки. Это если по габаритам лучше не на сканируемой площади расположить а вертикально вытянуть.
Вобщем, для разрешения 2*2мм впринципе можно использовать. В компанию к гиро и акселю и жпсу. Не дрифтит, не требует интегрирования.

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

linvinus » 04 ноя 2016, 14:28

никакой Usb или ps/2 для подключения сенсора к ардуино не нужен, у сенсора интерфейс spi а usb это уже после адаптера.

вы далеко не первый кто с мышами хочет экспериментировать, и на форуме не раз тема поднималась и в инете полно примеров
например http://www.wildcircuits.com/2013/03/opt ... cking.html

ищите adns mouse sensor arduino (avr)

В компанию к гиро и акселю и жпсу.

не получится. если расстояния десятки - сотни метров то gps дас точный курс, он вне конкуренции, автопилоты на ЛА так и работают, аксель и гиро для тангажа и крена а gps для точного курса.

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

вы бы сразу задачу обрисовали, было бы проще

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

Myp » 04 ноя 2016, 17:57

ну неужели так трудно просто погуглить? http://www.instructables.com/id/Arduino ... /?ALLSTEPS
там всё примитивно, просто считываешь с сенсора готовые данные о перемещении в двух координатах.

Добавлено спустя 26 секунд:
linvinus писал(а):самый простой способ это получать картинку с сенсора мыши по spi и дальше её обрабатывать

это вот как раз самый сложный способ

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

Dmitry__ » 04 ноя 2016, 19:40

Ну так датчик касания же. Скомпили с опцией "debug_type = 5 Данные перемещения мышки."

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

Spy4ik » 07 ноя 2016, 00:26

хм... открыл для себя optical flow sensors.
Ээээххх сколько можно было бы полезных в народном хозяйстве усовершенствований придумать... сколько мульенов человекочасов сэкономить в промышленности.... Не. Нельзя работягам столько нормачасов отрезать. Нехай имеют кусок хлеба.

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

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

linvinus » 07 ноя 2016, 14:39

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

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

что то типа этого https://hackaday.com/2016/10/25/a-glimp ... m-cleaner/
полагаю, на opencv за пару дней такое решается

Re: Двухкоординатный энкодер из фотоузла компутерной мыши

Spy4ik » 07 ноя 2016, 20:40

За фактуру - если понадобится то надо будет пробовать.
Хромированные полированные валы отпадают, а вот ржавые трубы возможно неплохи.


Rambler\'s Top100 Mail.ru counter