A A A A Автор Тема: Про енкодер  (Прочитано 10209 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Про енкодер
« : 29 Мар 2005 [09:57:36] »
Тут вот мысля оформилась. Вот есть оптическая мышь, в смысле чисто оптическая, а не оптомеханическая. То есть там стоит небольшая видеокамера которая снимает текстурированную поверхность, а DSP сигналы обрабатывает и т.д.

Возникла идея применить в качестве энкодеров для новомодных Цифровых Координатных Кругов типа Orion Intelliscope. У мыши выход PS/2 в принципе можно соорудить конвертер на однокристалке, который преобразовывал протокол PS/2 в сигналы PULSE/DIR или что-то в этом роде. Хотелось бы посоветоваться вот в каком вопросе, может в курсе кто по поводу разрешающей способности такой мыши? А то зачитал недавно, что кто-то с помощью такого мыша сделал датчик положения для микрометрического стола для микроскопа и микронные отсчеты делает. Заманчиво, блин.



Оффлайн Александр Л.

  • *****
  • Сообщений: 3 712
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Про енкодер
« Ответ #1 : 29 Мар 2005 [10:23:27] »
    Денис, основой оптических мышей является микросхема ADNS2051 - http://bdml.stanford.edu/twiki/pub/Main/OpticalDisplacementSensor/ADNS2051.pdf . Микросхема представляет собой DSP процессор со встроенной КМОП матрицей 16х16 пикселей. Размеры матрицы 1х1 мм. Процессор имеет возможность связи с внешним миром посредством последовательного интерфейса SPI. Система команд последовательной шины подразумевает адресный доступ к набору регистров. Доступно несколько регистров. Среди этих регистров есть такие, которые содержат перемещение по осям матрицы. Есть возможность считывать изображение с матрицы, АЦП 6-бит. Такой энкодер уже сделан чехами. Было подробное обсуждение пару лет назад на STARLABE. Тема по моему называлась – “Оптическая мышь как датчик положения”. Не был выяснен вопрос о том, как разработчики энкодера обходят накопление ошибки при измерениях. Подобного рода ошибки возникают при измерении короткой линейкой больших расстояний. В теме есть ссылки на готовую конструкцию. Проект открытый.

Разрешающая способность 200 dpi и 400 dpi (экстаполяционная), т.е. 1мм/16
И 1 мм/16/2.


 Была у меня кстати бредовая мысля приспособить мышь под автогид.

« Последнее редактирование: 29 Мар 2005 [10:26:30] от Александр Л. »

Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Про енкодер
« Ответ #2 : 29 Мар 2005 [12:10:32] »

Александр, спасибо за ссылку. Я так и думал что уже сделали и причем давно. :) Просто google мне ничего путного не дал по сабжу.

Глянул pdf бегло, похоже у этой микросхемы есть готовые квадратурные выходы, то есть все даже проще, никакого конвертера не нужно! По моему так.

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

Все ушел гуглить по чешскому проекту. Еще раз мегаспасибо.


Оффлайн Александр Л.

  • *****
  • Сообщений: 3 712
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Про енкодер
« Ответ #3 : 29 Мар 2005 [12:35:58] »
          Сохранилась информация на винте. Сссылка на энкодер - http://web.iol.cz/elektro-metal/index_a01.htm .
Тему на старлабе найти не смог, Поищите Денис, вопрос о накоплении ошибок достаточно тонкий и лучше об этом прочитать.

Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Про енкодер
« Ответ #4 : 29 Мар 2005 [13:22:12] »
Александр, я что-то не пойму, может вы знаете....в микросхеме ADNS2051 регистры нужно каждый при включении питания программить или данные в них сохраняются?

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 712
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Про енкодер
« Ответ #5 : 29 Мар 2005 [13:49:06] »
   Таких подробностей, Денис, я не помню, давно было.

Оффлайн Pavel_Boboshkin

  • ****
  • Сообщений: 267
  • Благодарностей: 9
  • Мне нравится этот форум!
    • Сообщения от Pavel_Boboshkin
    • Киевский клуб телескопостроения -"Максутов-клуб"
Re: Про енкодер
« Ответ #6 : 29 Мар 2005 [13:54:06] »
А есть ли возможность читать отдельные пиксели? Если есть, то, по мому, можно избавиться от накопления ошибки.
« Последнее редактирование: 29 Мар 2005 [13:55:49] от Pavel_Boboshkin »

Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Про енкодер
« Ответ #7 : 29 Мар 2005 [14:32:49] »
Александр, может вспомните хотя бы, кто поднял вопрос об ошибке - наши в процессе дискусии, или об этом у чехов написано было.
Ветку на Старлабе я тоже не нашел. Почитал чешский pdf, там сказано, что все ништяк, отическая мышь работает также как оптомех. инкрементный энкодер.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 712
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Про енкодер
« Ответ #8 : 29 Мар 2005 [15:19:45] »
   Денис, в обсуждении учавствовал я, Павел Бахтинов, Анатолий Волчков, а еще не помню. По моему я еще не был зарегистрирован, тему по своим сообщениям не нашел. Возможно имеет смысл поискать по сообщениям Павла Бахтинова в районе весны-лета 2002 года. По поиску не получается.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 712
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Про енкодер
« Ответ #9 : 29 Мар 2005 [16:06:09] »
   Тему нашел, но она похоже полностью не сохранилась - http://www.starlab.ru/forum/viewtopic.php?p=12571&highlight=#12571

Оффлайн Павел Бахтинов

  • Модератор
  • *****
  • Сообщений: 2 495
  • Благодарностей: 99
    • Сообщения от Павел Бахтинов
    • Искусство астрофотографии
Re: Про енкодер
« Ответ #10 : 29 Мар 2005 [17:59:40] »
Тему нашел, но она похоже полностью не сохранилась
Действительно, почему-то пропали сообщения некоторых авторов (в том числе, и Анатолия  ???).
Для полноты картины выкладываю тексты из своего личного архива:

Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Про енкодер
« Ответ #11 : 30 Мар 2005 [09:31:52] »
Вот я проелозил раз двести мышью от дного конца экрана до другого. Где ошибка? :) Работает так же как и механическая мышь. Странно.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 712
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Про енкодер
« Ответ #12 : 30 Мар 2005 [17:10:21] »
Денис, все очень просто. Из курса метрологии известно, что в шкальных приборах погрешность измерения составляет половину цены деления шкалы.  Теперь представьте себе, что Вы измеряете брусок длинной примерно метр при помощи линейки длинной 10 см. Для начала Вы должны выставить 0 мм линейки на начало бруска – имеем ошибку 0.5мм, затем Вы отмеряете 10 см и ставите например штрих карандашом – имеем еще 0.5 мм ошибку и т.д. Каждый раз при перекладывании линейки Вы будете получать дополнительную погрешность в 0.5 мм. за счет перекладывания линейки, поскольку точность её установки на штрих составляет половину деления шкалы. Оптическая мышка, двигаясь по столу делает тоже самое – она измеряет пройденное расстояние линейкой длинной в 1мм. и эта линейка имеет 16 или 32 штриха в зависимости от того работает мышка в оптическом или экстраполяционном разрешении. Погрешности измерения соответственно составляют половину цены деления шкалы, т.е. 1/32 или 1/64 мм. Почему я предположил, что в разработке энкодера было повышено разрешение мышки, да потому, что во первых точность недостаточна, а во вторых потому, что в противном случае непонятно чем занимается в контроллере AT90S1200. При наличии доступных регистров, содержащих в прямом виде перемещение мышки по осям, вполне бы хватило одной AT90S2051 для  поддержки какого-либо протокола. Система, по всей видимости работоспособна, нет никаких оснований не доверять разработчикам, но она содержит, некую методическую погрешность, которая возрастает по мере роста позиционирований на объекты.
 

Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Про енкодер
« Ответ #13 : 30 Мар 2005 [18:45:17] »
Александр, я не совсем понял аналогию с маленькой линейкой. Мне видится так. Возьмем метровою линейку, наложим на нее лист бумаги с отверстием, скажем диаметром 1 мм. Наложим этот лист на шкалу линейки, так что бы отверстие совпало с нулевым отсчетом. Далее будем перемещать лист бумаги вдоль шкалы, считая штрихи проходящие в отверстии. Когда мы дойдем до конца, мы насчитаем ровно 1000 штрихов. Равно как если взглянем на линейку как на единое целое. То есть оба метода идентичны.  ::) Хм....хотя может я и не прав.


Оффлайн Павел Бахтинов

  • Модератор
  • *****
  • Сообщений: 2 495
  • Благодарностей: 99
    • Сообщения от Павел Бахтинов
    • Искусство астрофотографии
Re: Про енкодер
« Ответ #14 : 31 Мар 2005 [18:24:22] »
Вот я проелозил раз двести мышью от дного конца экрана до другого. Где ошибка? :)
Денис, а ты как ее (ошибку) смотрел?
Я тут тоже с оптической мышкой поэкспериментировал: положил на стол тяжелый металлический угольник и стал двигать мышкой, каждый раз возвращая ее в угол до упора. При движении слегка прижимал мышку одним боком (на ее корпусе есть прямолинейный участок) к вертикальной планке угольника, чтобы не было "вращения поля". Результат оказался гораздо хуже, чем я ожидал - погрешность от единиц до десятков процентов от длины "пробега" на каждое (!) движение. Только если двигать мышку очень медленно, и в свойствах устройства установить минимальную скорость курсора, получается получше - порядка процента.

Возьмем метровою линейку, наложим на нее лист бумаги с отверстием, скажем диаметром 1 мм. Наложим этот лист на шкалу линейки, так что бы отверстие совпало с нулевым отсчетом. Далее будем перемещать лист бумаги вдоль шкалы, считая штрихи проходящие в отверстии.
Все это так, но только в мышке некому считать штрихи :)
Она ведь обычно работает на поверхности с хаотической фактурой, и было бы странно думать, что разработчики заложили туда еще и счетчик штрихов специально в помощь самодельщикам-телескопостроителям ;) . Конечно, если переписать микропрограмму контроллера (или поставить дополнительный контроллер со своей микропрограммой), такой алгоритм можно реализовать (собственно, об этом писалось еще в старой теме).
« Последнее редактирование: 31 Мар 2005 [18:33:06] от Павел Бахтинов »

Оффлайн Filjka

  • ****
  • Сообщений: 456
  • Благодарностей: 2
    • Сообщения от Filjka
Re: Про енкодер
« Ответ #15 : 31 Мар 2005 [19:51:50] »
А почему-бы не использовать систему оптомеханической мыши? Там конечно точность меньше,но зато ошибок не должно быть..

Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Про енкодер
« Ответ #16 : 31 Мар 2005 [21:45:31] »
Цитата
Денис, а ты как ее (ошибку) смотрел? Я тут тоже с оптической мышкой поэкспериментировал: положил на стол тяжелый металлический угольник и стал двигать
Паша, я примерно так и смотрел, только ограничил перемещение мыши тремя коробками от компакт дисков. Так как ты описАл и с оптомеханической мышью будет тоже самое. Упор должен быть с двух сторон!
Цитата
Все это так, но только в мышке некому считать штрихи 
Она ведь обычно работает на поверхности с хаотической фактурой, и было бы странно думать, что разработчики заложили туда еще и счетчик штрихов специально в помощь самодельщикам-телескопостроителям  . Конечно, если переписать микропрограмму контроллера (или поставить дополнительный контроллер со своей микропрограммой), такой алгоритм можно реализовать (собственно, об этом писалось еще в старой теме).
Паша, посмотри в руководстве на микросхему фотографии поля зрения матрицы. Каждый ряд/колонка пикселей - уникальна. Чем каждая колонка/ряд не штрих? Только если "тупому" фототранзистору нужны штрихи логические (прозрачный/непрозрачный), то для DSP в оптической мыши штрихи могут быть и посложнее.  :)Надо подробней разобраться с алгоритмом обработки изображений.


Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Про енкодер
« Ответ #17 : 31 Мар 2005 [21:48:53] »
Цитата
А почему-бы не использовать систему оптомеханической мыши? Там конечно точность меньше,но зато ошибок не должно быть..
Оптомеханическая мышь - это не интересно, это начало третьей четверти прошлого века. Старьё. ;D

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 712
  • Благодарностей: 48
  • Мне нравится этот форум!
    • Сообщения от Александр Л.
Re: Про енкодер
« Ответ #18 : 01 Апр 2005 [09:27:48] »
    Ответы на все вопросы с большой степенью вероятности находяться в микропрограмме AT90S1200, всего то байт 200  ;).

Оффлайн Денис НикитинАвтор темы

  • *****
  • Сообщений: 3 770
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Про енкодер
« Ответ #19 : 01 Апр 2005 [12:26:03] »
Обратной инженерией стараемся не заниматься, по возможности. Хотя и не без греха. :)

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

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