Часовой пояс: UTC + 3 часа




Куратор(ы):   iG0Lka   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4802 • Страница 5 из 241<  1  2  3  4  5  6  7  8 ... 241  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Мышка называется W-Mouse и WX-Mouse

Варианты
WX-Mouse
сенсор Pixar PMW-3360, PMW-3389, контролер ATXMEGA32A4U-AU

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

W-Mouse
Комплект ПО версия 6.6. для всех вариантов W-mouse (пароль к архиву: W-Mouse)
История изменений версий W-Mouse начиная с 5.2
Принципиальные схемы всех вариантов W-mouse
Инструкция Walkie по сборке и оживлению W-Mouse.
Последняя версия инструкции Walkie по сборке и оживлению W-mouse.
Программатор V1183 для заливки Wloader (W-Mouse), прошивка ATtiny
Универсальная печатная плата для W-Mouse контролер ATMEGA32U4. Разработка Dx!.
Wloader-ы для обоих контролеров (162 и U4)

Общее для W-Mouse и WX-Mouse
Описание настроек Wcontrol - иногда редактируется при смене кардинальных изменениях.

Программа автопереключения профилейи Тема по oбсуждению автопереключения профилей в зависимости от запущеного приложения

Преобразователь оптомехнического кодера колеса мышек Logitech в механический EC10



По вопросу приобретения универсальных плата W-Mouse и плата WX-Mouse пишите в ЛС iG0Lka


Программа тестирования нажатий кнопок мыши (проверка двойного клика) MBTester V2.0 описание внутри


Последний раз редактировалось iG0Lka 21.07.2020 11:23, всего редактировалось 159 раз(а).
edit



Партнер
 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
ЗНАЮЩИЙ_ , привет. Да я пока воюю в корпусе от А4 750(730) с лазерным датчиком. Получились уже довольно ловкие мышки. Пользуюсь только ими и, когда беру "фабричные" - испытываю серьезный дискомфорт :). (1) и (2) по сути реализовано. А вот (3)... Полная устойчивость до 2.4 м/с. Лазерный гад 6010 имеет очень хорошую точность, но не дает сделать бессрывность без разбивания мозгов на части и заплетения извилин. Прошива у него уж такая. Или старенький 3080 применять. Отложил вопрос на сладкое, но убью обязательно - будет ВААПЧЕ несрываемое девизе. Хотя при регулируемой динамике это нужно в огромной степени меньше, чем для обычных линейных мышек.
(4) и (5) - это, конечно, из разряда конструктора :). Здорово, но малоподвластно.


 

Ток можно отрегулировать самостоятельно, но это уже разборка и незначительная модификации мышки. Если надо, дам рекомендации, как это сделать наименее геморно.
У 730 три винта под глайдами.[/quote]
Да. конечно! Если можно. Очень выручите если подскажите. Я в принципе не такой уж нуб в электронике. С цифровой конечно похуже но паяльник и "цешка" (мультиметр) мне доступны. И если непридётся что то искать (у нас с этим туго) то справлюсь :) А коврик у меня гениусовский. В наших краях и его дастать то проблема. Но обе мышки 750 и 730 на нём работают (он толстый и не сильно большой но очень скользючий). Но разница в отрыве в разы!!!
Добавлено спустя 2 минуты, 45 секунд
Fox909 писал(а):
Ток можно отрегулировать самостоятельно, но это уже разборка и незначительная модификации мышки. Если надо, дам рекомендации, как это сделать наименее геморно.
У 730 три винта под глайдами.

Walkie - Да. конечно! Если можно. Очень выручите если подскажите. Я в принципе не такой уж нуб в электронике. С цифровой конечно похуже но паяльник и "цешка" (мультиметр) мне доступны. И если непридётся что то искать (у нас с этим туго) то справлюсь :) А коврик у меня гениусовский. В наших краях и его дастать то проблема. Но обе мышки 750 и 730 на нём работают (он толстый и не сильно большой но очень скользючий). Но разница в отрыве в разы!!![/quote]
Добавлено спустя 9 минут, 6 секунд
serj писал(а):
Срыв основан на эффекте уходя светового пятна из рабочей зоны сенсора. Т.е. надо наклонять лазер.
Высота срыва уменьшится, но, как следствие, уменьшится и устойчивость - без нормального коврика уже не поиграешь.

А если источник светового пятна наклонять (а не датчик), уменьшить или затемнить его какуюто часть? Сработает?
Если одолею высоту отрыва, то манипуляция по фокусировке не составит труда. Думаю там можно на фрезерном шоркнуть. Ножки тем более есть.. Но высота отрыва (играю на низкой чувствительности) делает мышь не играбельной (для меня). Играю на старой 750..


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Fox909, о, если электричество близко, то проще.
Вот часть схемы, чтоб было понятно, куда включен лазер.
#77
Теоретически можно отрегулировать ток лазера заменой токозадающего резистора R1 на номинал побольше (нам же надо уменьшить ток). Это мелкий чип, который стоит внизу платы. Отпаять и пробовать свои номиналы : 47->43->39->36->33->30->27->24->22->20->18->15 кОм.
Но можно сделать так.
1) Выпаять провода лазера из точек L+ L-
2) На это место установить какой-нибудь светодиод. Лучше желтого или оранжевого свечения. На них падает около 2В. Хотя можно и красный, и зеленый. Это будет эквивалент лазера. Без него сенсор откажется работать.
3) Включить мышку. Убедиться, что светодиод в правильной полярности и светится. Выключить.
3) Красный провод лазера (+) припаять к +3.3 В.
4) Черный провод - последовательно через постоянный (120 Ом) и переменный резистор (330 Ом) на общий. Постоянный ограничит ток лазера на 12мА (максимум !), чтобы случайно не спалить. Переменным будем регулировать. 330 Ом - удобное значение, можно от 220 до 680 Ом.
5) Ставим минимальный ток, включаем мышку.
6) Начинаем двигать ею по ковру, потихоньку прибавляя ток, пока курсор не начнет двигаться. Когда он двигается глючно, с пропусками, это и есть минимальное значение тока, при котором лазер "отпирается".
7) К этому значению надо добавить 1.0-1.2 мА - получится наилучший режим.
Я не знаю... можно переменник оставить внутри после регулировки. Можно заменить все на один постоянный. Можно вообще без переменника обойтись, подбирая резистор от 330 до 120 Ом. Короче говоря, нужно погонять ток лазера от 4 (обычный минимум) до 10 мА. Смотрите сами, как сподручнее.
Скажу сразу. Чего-то сверхестественного, дающего уменьшение высоты отрыва не получится. Прям бяда с этой высотой. serj было вообще изгалился и установил выключатель на дно мышки :).Но процедура очень полезна по-любому. И, конечно, нужен нормальный коврик. Заказали б почтой Razer Goliathus Speed. Он 400-600 рублей стоит, очень хорошая штука для лазерной мышки.


 

Walkie Спасибо за отзывчивость! В понедельник с работы "цэшку" заберу попробую. Отпишусь о результатах.
А коврик.. Дело даже не в деньгах.. Я просто в Казахстане живу, в городке Павлодар. :) Да как нибудь привезут мне с Новосибирска. Там кстати тоже неахи выбор.. В прошлый раз не нашли.. Кстати мне 730 из Омска притаранили через Никс.
Ещё раз спасибо за исчерпывающий ответ.


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Walkie, мои мысли.
Условные обозначения:
X(i) - смещение с сенсора, координата X или Y
A(i) - модуль смещения, см. ниже.
S(i) - 'мгновенный' уровень шума с сенсора
K - поправка на динамичекое ускорение
L - поправка на компенсацию 'веса' мыши. Аналогично К, но работает на очень высоких ускорениях.

Момент раз, как брать A(i).
Есть два варианта, как считать активность/подвижность мыши - или по каждой оси независимо или активность вообще. Я за второе - как-то трудно представить себе человека, который четко может разделить движение вверх/вниз на фоне движения вправо/влево. Т.е. A(i) следует брать как, скажем, среднее квадратичное между смещениями по оси Х и Y.
Т.о., A(i)=sqrt(X(i)^2+Y(i)^2). Но ... т.к. нам откровенно не нужна высокая точность, то A(i) можно считать как [X(i)+ Y(i)]/2.

Момент два - S.
Я бы предложил считать уровень шума как S(i)=[A(i-1)+A(i+1)+A(i)*2]/4 - этим компенсируется постоянное, монотонное ускорение/замедление.
Уровень шума будет использоваться для адаптации сенсора к поверхности(надеюсь) и срыва, для статистики и для подстройки коэф-тов усреднения расчета K и L.

Момент три - K.
Ну, с этим просто, К(i)=A(i)
Но, из-за шума K(i) нельзя использовать. Потому ее надо фильтровать, например K=[K*n+K(i)]/(n+1), где n=1,3,7,15...

Момент четыре - L.
L(i) есть производная по изменению скорости координат, т.е. L(i)=A(i)-A(i-1) {без модуля!}
Эта переменная еще больше подвержена шуму, поэтому ее _обязательно_ фильтровать!
L=[L*m+L(i)]/(m+1), где m=1,3,7,15...

В результате, координаты с сенсора X(i) умножаются на некоторый коэф-т, зависящий от характера движения мыши.
Например, как-то так: X(i)=X(i)*F(K)*L, где F(K) - формула по выбору зависимости динамического ускорения от скорости движения мышы (аппроксимация вида мин.скорость-мин.cpi----макс.скорость-макс.cpi ).
Компонента L должна выбираться так, чтоб работала только на самой высокой скорости старт-стопного режима
и степень ускорения была порядка х2-х3. Т.е. "L" должна быть в диапозоне от +/-1 до +/-3. (преобразование L на +/-1 сделай сам, туплю)
(не призываю вести вычисления в FPU, просто надо все умножить на константу, а потом поделить на нее)

Момент пять - снова S.
В зависимости от S степень фильтрации должна меняться - грязь на коврике не должна сбивать мышу. С другой стороны, S явно возрастает от скорости движения мыши и просто смотреть на величину S и менять n,m будет неправильно. Надо подумать, наверно стоит учитывать не абсолютный уровень шума, а относительный - S/A(i)


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj , с Новым Годом.
На каникулах наконец-то по-настоящему позанимался корректором движения. Без него невозможно реализовать ничего толкового, в частности и то, что ты предлагаешь.
Причина проста : очень грубая дискретизация перемещений в самом сенсоре. Казалось бы 2200 отсчетов на дюйм (это реальная для 6010) - классная точность. Однако, к примеру, "плотный" dX=1 при поллинге 1кГц и чувствительности 1000 cpi мы получим, двигая мышь аж со скоростью 25 мм/с. Для юзера перемещение манипулятора с такой скоростью означает то, что он тащит указатель, уже давно наплевав на всякую точность, лишь бы грубо добраться до цели. А в самом сенсоре поллинг и вовсе 7080Гц. То есть, на скоростях, где манипулятор используется подавляюще, с сенсора по сути прут скромные одинокие импульсюшки с 2-3-кратными выбросами.
Поэтому пока занимась внутренней "растяжкой" данных. Основа, как сам понимаешь - специализированные цифровые фильтры.
Результаты неплохие. Уже с этой версией корректора при 1200cpi можно очень легко спозиционировать курсор в любой пиксел дисплея 1600х1200. Ну, разумеется, на нормальном коврике. В конце скорее всего повыбрасываю всю жуткую математику и оставлю аналог оптимального ФНЧ. В общем, отстрою алгоритм корректора - займусь и скоростными режимами.


 

Member
Статус: Не в сети
Регистрация: 24.01.2007
блин. почитал...
вспомнил радик и ртф))
благо закончил недавно.
ну вы прям фанаты своего дела
респект "как говорит молодеж")


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Agent_Orange , сочувствую :). Ну, может и не фанаты, однако, на фоне порнографии от производителей надо ж наконец свою мышку-то сделать.

serj , что там с AT90USB162 ? Хошь, я тебе парочку уже прошитых пришлю ? Только вот живых запасных плат нету. А что... соберешь, вы-со-ту от-ры-ыва настроишь :). Отрыв четкий, с гистерезисом. А то мне одному мал стимул.
Последнее, что выяснилось, когда борол корректор движения : фильтры хороши для неспешной работы и совершенно пагубны для игрушек. Задержки, которые они неизбежно вносят, чувствуются на уровне подсознания и вырубают послушность прицела. И дело не в привычке. Я думаю, это как раз то, что слышал от некоторых геймеров : "непонятная ватность движений". Да, все вроде классно, плавно, но от хорошего противника получаешь трындюлей и ничего не можешь поделать.
В конце-концов смастерил простой довольно неплохой универсальный фильтр. Теперь бы его еще и адаптивным сделать. Короче, вечерками ковыряюсь с мышкой... интересно.


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Вылезаем из ЛС.

Версия 2.9, сглаживание работает. Точнее не влияет.
Каким образом я могу увидеть ее действие? У меня на стенде включенность сглаживания не влияет на джиттер. В обоих случаях эквивалентная dpi по Y скачет как 12-13 при пезультирующей 800 по X. (на Y идет небольшое нескомпенсированное положение мыши на стенде). Вопрос не по "12", а почему оно скачет в интервале 12-13 с квантом в секунду? (у меня числа идут в 10 раз больше, т.е. 12,0-13,0)

И bug.
Если отключен ag, то лимит не соответствует установленному. Крайне серьезная ошибка.
#77
Описание последовательности:
1. выключть ag
2. поставить лимит 120-200
3. применить, сохранить, выйти. (ДРУГИХ кнопок не нажимать)
4. вынуть мышь
5. вставить
6. зайти в Wcontrol и посмотреть лимит установленный и реальный.

Это не "декорации", я вижу на стенде, что лимит действительно не соответствует установленному. Мышь откровенно валится.

Тема для подписчиков на мышь W-Mouse. Автор проекта - Walkie. Если желаете присоединиться - добро пожаловать. Есть схемы, прошивки и описание модернизации.
Всех остальных просил бы не флудить в теме.


 

Junior
Статус: Не в сети
Регистрация: 09.08.2007
Откуда: Шахты
Как попасть в тему? :beer:


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Для того, чтоб изготовить подобный device надо приобрести AT90USB162 (TSOP), примерно 80 рублей, кварц на 16MHz, немного резисторов и мышку типа A4 X7 750-740-730 или других вариантов на лазерном датчике 6010 или 6090. Последний лучше.
Время на пайку - 2 вечера.
Пайка tsop требует хорошей аккуратности.
Если не смущает (а это не трудно сделать, честно), обращайтесь к Walkie.
Оно стоит того.


 

Junior
Статус: Не в сети
Регистрация: 09.08.2007
Откуда: Шахты
serj писал(а):
чтоб изготовить подобный device надо приобрести AT90USB162 (TSOP), примерно 80 рублей

Хочу!
Я имел в виду, где подписаться на мышь W-mouse? Или есть спец-закрытая тема для желающих?
ПисАть в личку Walkie?


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Можно писать ЛС, можно немного подождать, он обещался подойти. :)


 

Junior
Статус: Не в сети
Регистрация: 09.08.2007
Откуда: Шахты
serj, а где взять документацию (чертеж платы, прошивку) на эту мышУ? Денех надо давать? Я бы и не против! :beer:


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj
Сглаживание.
Увидеть нельзя, можно почувствовать. Собственно говоря, при включённом Smooth скорости Vx, Vy перед формированием из
них приращений dX, dY дополнительно пропускаются через ФНЧ с частотой среза 20 Гц.
----
Баг. ненене, никакого бага нет.
1) В режиме AG, управление выдержкой затвора (Shutter) берет на себя сенсор. И злобничает по одному ему известному алгоритму.
Единственное, на что там можно повлиять - это ограничить значение выдержки, чтобы при подъёме над ковром сенсор не задирал её выше нужной.
Это косвенное уменьшение высоты отрыва. Слайдер в этом случает действует как Lim.
2) AG можно выключить и отдать управление контроллеру. И тот будет злобничать по одному мне известному алгоритму :) .
Слайдер в этом режиме является "Center". В данной версии контроллер работает как (почти) классический пи-регулятор. Он пытается держать
среднее значение MaxPixel около 52, но не выводя завтвор за рамки +-25% от желаемого Center.
На картинке видно, что это ему просто-напросто не удаётся - слишком велика отражательная способность коврика. MaxPixel торчит на максимуме.
В таком случае надо уменьшить ток лазера до тех пор, пока при возюкании по ковру затвор не начнёт колыхаться вокруг Center.
Не для всякого ковра годится этот режим. На Nova-х с кучей зеркал (и других с огромным контрастом) управление лучше отдать сенсору.
Само значение (как Center, так и Lim для обоих режимов) имеет оптимальный диапазон от 96 до 160 (128).
---
Из :
" 1. выключть ag
2. поставить лимит 120-200
3. применить, сохранить, выйти. (ДРУГИХ кнопок не нажимать)
4. вынуть мышь
5. вставить
6. зайти в Wcontrol и посмотреть лимит установленный и реальный."
пункты 4-6 - зачем ? :) . И сохранять не обязательно, если оно было надо только побаловаться до первого отключения.
===
Но, честно говоря, на это можно сейчас положить. Потому что завтра будет версия 3.0, где управление затвором, мне наконец-то
удалось вывести на новый уровень качества.
===
SteveKey, чуть подробней рассказываем, чего хочим :) . Можно в личку.


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Затем, что установленный лимит сохранится.
Не хочешь испрвлять - твое дело. Но сделай хотя-бы простую вещь - при инициализии сенсора ты включаешь ему AG, если разрешено и не включаешь, если не разрешено.

Disable AGC. Shutter will be set to the value in the Shutter_Maximum_Bound
registers.
0 = no, AGC is active
1 = yes, AGC is disabled

Сделай вот что:
- установи frame rate
- установить Shutter_Maximum_Bound = нужное
- включить AGC (def = включен, но все равно)
- delay, если можно. На время 1-2 frame
- вЫключи AGC, если в настройках AGC отключен.
(вариант - повторить цикл вкл-выкл пару раз)
Результаты тестирования обсудим.


Кстати, перестань называть его AG, оно официально завется AGC, причем в большенстве аппаратуры с автоматическим регулятором усиления.


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Это не лимит. Это постоянное задание, вокруг которого надо крутить Shutter_Maximum_Bound.
Ты предлагаешь мне сейчас вещь, которую я давным-давно прошёл.
Сенсор в "1 = yes, AGC is disabled" при жёстко установленном Shutter_Maximum_Bound практически неработоспособен.
Shutter_Maximum_Bound надо постоянно подстраивать по очень многим причинам. Хотя бы в небольших пределах, но подручивать.

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


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Нее, только вкл-выкл AGC.
Похоже, у нас какая-то путаница в терминологии.
Что делает кнопка AG в Wcontrol? Только меняет сей бит или что-то еще?
(хотя, версию с фиксированным ограничителем на 120 я бы попробовал с БОЛЬШИМ удовольствием)


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Ну, вот с фиксированным заданием.
http://cp.people.overclockers.ru/cgi-bi ... se_V24.hex
(Только не забудь жы ш переименовать её в просто Wmouse.hex перед прошивой)
---
Флажок AG в Wcontrol не только меняет бит AGC в сенсоре. Я описал выше,
как контроллер сам крутит Shutter_Maximum_Bound, если в сенсоре устанавливается 1 = yes, AGC is disabled.
А сам флажок в проге как бы... инверсный по отношению к тому же флажку AGС сенсора.


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Вообще-то
Walkie писал(а):
Я описал выше,как контроллер сам крутит Shutter_Maximum_Bound,
заключается в
Walkie писал(а):
Shutter_Maximum_Bound надо постоянно подстраивать по очень многим причинам.
... что очень осмысленное описание. ;)
Впрочем, шутки в сторону. Режим AG=on не годится ('почему' я пока не буду останавливаться, считай что так есть), а вот AG=off надо переделывать. И не из-за того, что он сделан плохо, скорее наоборот. Но его надо делать лучше.

(Ответ по файлу завтра.)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4802 • Страница 5 из 241<  1  2  3  4  5  6  7  8 ... 241  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

Лаборатория














Новости

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan