W-Mouse Wab где, a - это контролер 1- AT90USB162 2- ATMEGA32U4 b - это тип сенсора и вариант оптики 1-adns6010, adns6090 2-adns3080, 3090 3-adns6090 + оптика от 3080 4-adns9500, 9800 старые обозначения W3- контролер AT90USB162, сенсоры adns6010, adns6090 или adns3080 W4- контролер AT90USB162, сенсор adns9500 W5- контролер ATMEGA32U4, сенсоры 60x0, 3080, 9500
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Вовсе нет, это легко делается. Суть метода - сделать эквивалент "улучшенного позиционирования" в Windows, только с приложением мозгов. А именно, динамически менять dpi от скорости перемещения мыши. Низкая скорость - низкий dpi, высокая скорость - высокий dpi. Для игр такой алгоритм спорен, надо пробовать (думаю, должно быть здорово удобнее), а как рабочая мыша - точно лучше. Алгоритм: 1. снять смещение мыши (там не обнуляется по чтению?) и выбрать наибольшее абс. смещение Х или Y. Вариант - посчитать SQRT(Xmax^2+Ymax^2)... но, думаю, это лишнее. 2. поделить на _считанный_текущий_ dpi. Получится смещение в абстрактных единицах. 3. установить свой dpi (400-800-1600-2000). Для очень-очень низких скоростей 400, для самых-самых быстрых 2000. Т.к. диапозон скоростей много больше устанавливаемого dpi, то зависимость скорость-dpi не 'однозначно-линейная', а явно нелинейная-растянутая. Лучше вычислять по формуле типа dpi=корень(скорость) Количество вариантов установки dpi не велико и шаг грубоват (впрочем, и так это не будет заметно), но сие легко лечится. Если юзер захочет, этот 'автоматический' режим можно отключить.
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
Не получится. Вместе с приращениями по координатам М1 считывает и коды текущего разрешения. Но на всякий случай попробую сейчас. Любопытно... Я и говорю, в такой вариант имеет массу ограничений. Ну, приобрел уже AT90USB162... и платы на днях сделают - там уже гораздо круче прибамбасы слепятся.
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Пускай считываются, пускай даже переустанавливаются! Нам то - пофиг, через 0.1mS эти значения перепишутся на наши. Мысли ширее. Я практически уверен, что считанный dpi не используется.
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
Ну, сегодня выбрал время и сделал, сопстна... Действительно, М1 плевать хотел на код разрешения. Если хорошо настроить пороги, то работает прикольно. Плавненько все... Правда, при этом кнопка "CPI" уже не мявкает, конечно.
Между прочим, в кваке про-сто а-бал-ден-но . Хорошенько отстроил специальный режим с маленькими порогами. То есть основные движения линейны и идут на 1600cpi. На привыкание ушло 10 секунд. При точных выстрелах прицел буквально вцепляется во вражину .
Кстати, мне вообще кажется, что DSP 6010-го все всегда вычисляет с максимально доступной ему точностью (условно, на 2000), а режимы 400, 800, 1600 - просто масштабирование результатов для хоста. Ибо режим 400 "наощупь" какой-то уж очень точный.
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Walkie, я приводил измеренные параметры мыши 750 от dpi - они меняются.
Подразумевалось, что 2000 будет на самом-самом быстром движении. Для обычной (быстрой) скорости должно быть порядка 1600 (прыжки, уклонение БЕЗ прицеливания), 800 для быстрого прицеливания и 400 для снайперского режима.
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
Получил три разновидности PCB. Временно ушел в подполье, собирая и разрабатывая девайс на М1(AT90usb162) + ADNS-6010 для корпуса 730К (750К, 740К)... М2 закрыт. serj, большое спасибо. Будет легко, потому что приобрел огромный опыт, юзая разнообразные заготовки ПО на основе контроллера-шпиона М2. Стану информировать о ходе... Тут дело простое. На фоне моей основной работы, где должен примениться 6010, собственная мышка, собранная на нем - первейший стенд, вариантов нет. Скорее всего соберу первоначально в корпусе 750.
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
Трудно сказать. Там еще дело в том, что без модификации платы все равно не обойтись. 6010 подключен к М1 напрямую. Поэтому в линии SCLK, MOSI и NCS нужно вставлять последовательные резисторы, и лишь после этого цеплять М2 "к ногам" ADNS.
А сам патч наиболее эффективен только для принудительной установки режима затвора 6010 по конкретной однотонной поверхности (резко возрастает устойчивость к срыву и т.д.). Другие задачи ему уже не по плечу, так как требуют по меньшей мере имитации 6010 для М1. Внимательнее исследовав времянку М1, обнаружил неприятную вещь. Изредка цикл опроса выбивается из регулярного 1 мс и превращается в произвольный. Зависимости не просматриваются. Влияют даже быстрое вращение колесика и нажате кнопок. Если М2 часто берет на грудь управление (хотя бы просто что-то почитать), то неизбежно возникает конфликт. И обойти это дело практически невозможно... Только машинка времени с возвращением в прошлое .
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
slivau, ссылка была на предыдущей странице.
Walkie, к вопросу о высоте срыва - я увеличил угол луча лазера (от вертикали), где-то порядка 1.8 раза с соответствующим сдвигом. Как следставие, высота срыва уменьшилась. Не измерял, 1 CD работает корректно, чуть больше поднять и остановка. В принципе, это регулируется сдвигом луча по высоте.
В данном варианте мышой уже не помахаешь над ковриком.
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
serj , ну, да... собственно, высота отрыва в этих мышах определяется жестко : когда 6010 видит меньше 32 условных признаков поверхности (нормально - выше 64), он понижает частоту сканирования до минимума, ставит затвор на полную катушку и ждет, когда под линзой хоть что-то появится. К сожалению без всякого гистерезиса. Правда, еще раньше он взводит один недокументированый битик, что изображение резко ухудшилось, но А4 его разумеется не пользуют. Конечно, можно варьировать и искусственным ухудшением, но это весьма не айс. Блин, вот ведь увязался я с этим контроллером AT90USB162 под мышку. Сволочь... пакеты setup видит, а, чувствуется, хосту вместо дескрипторов какую-то парашу отдает. Не хочет конфигурироваться хоть тресни. И EndPoint0 слетает без видимых на то причин, и вообще USB-часть ведет себя несколько загадочно. Разберусь, конечно, но как-то неприятно вместо понятных вещей заниматься недокументированной магией... Наверное, уже не я один на эти atmel-грабли наступил.
Народ, поскажите пожалста, если у 6010 макс. чувств. лежит в диапазоне 550-650нм почему при попытке впаять HDLP-650-A (650нм, 5мВт, 2,3В, 25мА) даже с отдельным ключем транзисторным без контроля Laser Fault - т.е. лазер инфракрасный стоит в схеме там где и стоял, но паралельно на 20й ноге еще один ключ, управляющий красным лазером - мышь конечно работала, но только на зеркальных или серебристых поверхностях. В чем проблемма?
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
dimoncheck , так и будет. Дело в том, что сама матрица на кристалле ADNS-6010 покрыта тонким инфракрасным фильтровым слоем. Я могу ошибаться, но визуально уж очень на то похоже. Она какая-то темненькая по сравнению с другими областями кристалла. Честно говоря, это довольно разумное решение. Пусть чувствительность элементов матрицы в 1-м диапазоне инфракрасняка и упадет вдвое, но зато общая помехоустойчивость будет очень высока.
serj, мля... разобрался я с этим козлячим контроллером usb162. Хоть конфигурироваться начал. Правда, пришлось позорно опуститься до уровня прочтения дизассемлированого кода одного из штатных атмеловских аппнотов... А на форумы по подобным вопросам я никогда не захожу - это бесполезно .
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
Мышка "M1@ADNS-6010" потихоньку продвигается. Пока смонтирована в корпусе 750. Представляется HID-совместимой 8-кнопочной. Ходит на дефолте от Avago при 1 кГц поллинга, послушно щелкает кнопками. Надо сказать, все довольно ловко. Осталось заточить прог-ы и pcb-ы. После чего смогу выложить уже настоящий манипулятор для желающих повторить.
По работе от 6010 пришлось отказаться. Зеленый цвет почти не видит. Пока придется юзать его только факультативно : для мышек .
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Walkie, нет ли проблемы ползающего курсора? (мыша лежит, а курсор ползет) Или это пришлось 'лечить' программно? (и тут могут быть большие проблемы)
Кнопки ... я все ленюсь почитать спецификацию - сколько кнопок нативно может возвращать мышь? У А4 есть 5 кнопок, у остальных(?) только 3 кнопки.
И небольшая просьба, если можно... я понимаю, что это трудно, но всеж - нельзя ли запихать в однокристалку с DIP корпусом? TQFP32-48 конечно маленький, но припаять его без спец. PCB 'представляет некоторые трудности'.
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
serj , с координатами абсолютно никаких проблем даже в режиме 2000cpi.
Кнопки... для HID-устройств это определяется репортами. По-моему нативности нету. Как декларируешь, то и будет. Упрощенно :
1) 16 бит - dX
2) 16 бит - dY
3) 8 бит - dZ (колесико)
4) 32 бит - кнопки (да хоть больше)
5) 8 бит - температура внутри корпуса
6) 8 бит - время, оставшееся до самоликвидации
7) 8 бит - настроение юзера Serj
8) ... и т.д.
Система все получит, но приложения выгребут только то, чему обучены. То есть многие игрушки не станут смотреть больше 5-и первых кнопок, силу удара мышки апстену и т.п.
Насчет DIP-корпуса. Со встроенным USB-контроллером таких вообще нет. Есть SOIC-28. Но не AVR, а, например, на основе 51. Геморройней и дороже. Я ведь такие вещи только на ассемблере пишу и от 51 уже давно отказался. AT90USB162 - VFQP-32 с шагом 0.8мм. Вообще-то можно и навесом. Не сложнее, чем SOIC с 1.27мм.
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Возможно, смотря как ты ноги разведешь.
Если использовать порты 'через один' и задействовать такие выводы, чтоб замыкание на соседний вывод не давало проблем, то можно и TQFP-*-0.8
Т.е. хорошо бы получить вариант с припайкой всех выводом к паре контактов чипа, тогда эквивалентный шаг составит 1.6мм, что уже не так противно.
По кнопкам .... если не силно напрягу, не посмотришь? Некоторые игры понимают дополнительные кнопки без специального драйвера. Кажется, HL2 и игры на его движке это умеют. В чем просьба - сделать в мыше кнопок больше, чем 5 и посмотреть, будут ли отождествляться в игре. (сами кнопки можно и не ставить просто боковые посчитать как 6-7 ... это же времянка)
Понимаешь, лично мне не хватает кнопок в мыше. В играх много чего настраиваемого, а активных кнопок всего две - 4 и 5 (стандартные в расчет не берем). Если мышь будет способна высылать коды бОльшего кол-ва кнопок и современные игры это будут понимать, то ... я пойду за однокристалкой и распотрашу X-750.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения