www.cqham.ru

\главная\р.л. конструкции\трансиверы\...

Валкодер из оптической мышки.

Вначале была неисправная мышка с неработающим контроллером интерфейса и исправной микросхемой оптического позиционера ADNS-2610. После ознакомления с Data Sheet фирмы Agilent http://cp.literature.agilent.com/litweb/pdf/5988-9774EN.pdf, стало понятно, как сделать простой валкодер с очень мелким шагом и с укрупнением шага при увеличении скорости вращения валкодера. Эта микросхема применяется совместно с линзой HDNS-2100 и светодиодным осветителем.

.

Не мудрствуя лукаво, я просто обрезал печатку мышки, оставив все необходимое. Питание (VDD) +5 вольт а SDIO и SCK к контроллеру синтезатора. Для исключения коллизий, между SDIO и контроллером можно включить резистор около 1 ком. На диск валкодера наклеил серую бумагу и расположил платку, с небольшим зазором, линзой напротив диска.


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

Тактовые импульсы SCK всегда генерируются контроллером синтезатора, а линия данных SDIO двунаправленная и направление передачи данных по ней, после передачи адреса, определяется старшим битом адреса (передаваемым первым). Если “0”, то следующий байт будем считывать.

Вначале передаем адрес регистра из которого будем считывать информацию (Y-00000010, X-00000011), а затем считываем байт данных, при этом считываемый регистр обнуляется.

Период SCK должен быть не менее 500 наносекунд. Считываются и записываются данные по фронту SCK (перепад из низкого в высокий уровень). Пауза между последним битом первого передаваемого байта и первым битом второго считываемого байта должна быть не менее 100 микросекунд (время необходимое для обработки информации внутренним DSP позиционера).


Считанный байт имеет следующий формат:

Число (от +127 до –128 (минус в дополнительном коде)) показывает на сколько переместился диск валкодера относительно последнего считывания. Направление перемещения определяется старшим байтом. Дальнейшее зависит от фантазии программиста. Точность перемещения 400 отсчетов на дюйм а максимальная скорость движения 12 дюймов в секунду.

На фото диск валкодера диаметром 4 см расположен между индикатором и обрезанной платой мышки. У меня шаг перестройки при очень медленном вращении валкодера равен 1гц и плавно нарастает до 1 Кгц при увеличении скорости вращения валкодера.

Эта статейка не есть реклама а информация к размышлению если это кому-нибудь интересно.

Александр UR5FJZ



Глас народа
01.01.2010 19:50 Интересно, а существует ли готовая библиотечка на C для работы AV...  --  Алексей
14.11.2009 21:47 Делал подобную конструкцию, есть небольшие глюки с этим датчиком....  --  RW4LAQ
25.06.2009 10:54 Хотелось-бы увидеть схему контроллера и HEX для него....  --  Сергей
23.12.2007 23:19 Есть ссылочка на "качественного" китайского производителя - его о...  --  Андрей
10.03.2006 14:39 Вчера спепциально купил новую мышу. У нас самая дешевая стоит 20 ...  --  ut1wpr
09.03.2006 09:11 У меня проблемы с выходом в Интернет, оперативно поддерживать свя...  --  UR5FJZ
08.03.2006 19:53 Что-то не получил я письма от автора. Жалб. Есть вопросы. В чатсн...  --  ut1wpr
08.03.2006 19:39 Откуда колупать ? Новая оптическая мышка с PS/2 стоит от $5...6 в...  --  VB
06.03.2006 19:50 Очень хотелось бы в личной переписке пообщаться. Возражения есть?...  --  ut1wpr
05.03.2006 19:21 Интересно мне как любителю, да и многие промэлектронщики-разрабо...  --  DRUID_3

Возврат