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




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



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4802 • Страница 4 из 241<  1  2  3  4  5  6  7 ... 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
serj , попробовал : HL2 дальше 5-й кнопки не хочет, а квака и вообще всю жизнь только 3 знала. Но это не беда. В мышке очень легко задать несколько интерфейсов с HID-начинкой. Например, добавить канал джойстика. Уж в нем-то любая игрушка кучу кнопок видит. Вот обрати взгляд на диспетчере устройств : оскар там выглядит в виде мыши и клавы. Кстати, именно поэтому он как из ружья реагирует на ScrollLock и без всяких других драйверов переключает профили. Можно не джойстик, а клаву или ки-пад, или все сразу. Вобщем, подходящий для игрушек интерфейс.
Что же касается корпуса. Ноги VFQP-32 можно через одну загнуть на брюхо корпуса. Остальные аккуратно распрямить пинцетом. Для пайки навесом я так часто делаю - удобно даже при шаге 0.65.
PS Взялся на этих выходных поплотнее поковыряться с новой мышкой да погряз в проблеме конфигураций. Думал, много знаю про USB, оказалось : элементарные вещи, которые ни разу не делал, не так уж и просты... Пыхтю вот, документы листаю ... Дьявольщина какая-то. Идеологов HID надо повесить. :)


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Walkie, сам понимаешь, значит придется делать эмуляцию клавиатуры. Эх. :(
Для эксплуатации мыши это скорее плюс, а вот возни с 'деланьем' наверняка будет много, сочуствую.

По монтажу - загибать ноги не выход, выводы очень тонкие и провод их 'вытянет'. Когда выводов два, конструкция жесче.
Мне как-то пришлось подключать корпус QNF с шагом 0.5 на проводах, вот это был секс ... но даже я не возьмусь припаивать провода к TQFP-0.65 к одному выводу без 'обезвески' на печатную плату. Конечно, выводов не много, можно поднять лишние ноги, а оставшиеся припаять на маленькую PCB ... но очень бы не хотелось. Идеальный вариант - припаять провода, залить герметиком и в мышу. Ну, с проводами под программатор, естественно.
Ты какой чип используешь, все тот-же AT90USB162 или что посерьезнее в TQFP-48/64?


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj , какой такой эмуляций-шемуляций ? К мышке все равно будут прилагаться две маленькие по объему, но очень серьезные управляющие программки (не путать с драйвером).
С помощью первой можно будет :
1) Смотреть в динамике разнообразные данные (о качестве поверхности, затворной выдержке, световых пиках, уровне средней освещенности и т.п.)
2) Регулировать ток лазера.
3) Регулировать ограничитель затворной выдержки (важнейший параметр, определяющий как высоту отрыва, так и всю динамику на высоких скоростях)
4) Устанавливать порог блокировки сенсора (регулировка высоты отрыва).
5) Задавать нужную (произвольную) нелинейность движения.
6) Делать захват кадра поверхности (Че там вообще видно, и нет ли битых элементов матрицы)
7) Все эти HW-установки сохранять в мышке... и многие другие вещи, которые потребуются в процессе модификаций.
Добавить проге функции назначения кнопок - вопрос, даже не заслуживающий внимания жынтыльмена :).

Вторая проста и предназначена для обновления прошивок. Над ней воюю в первую очередь. Собственно, уже и пользуюсь, по надо модифицировать поприятней. Никакого разъема программирования, прямо по шине. Сам чип - да, AT90USB162. По ресурсам - достаточно. Его надо будет паять уже прошитым начальной версией. И вообще-то ноги у VFQP-32... Ну, не знаю... Жмутся в дну корпуса через одну, тонкий МГТФ к нужным, потом все термоклейком - отлично... Про QFN - сочувствую, наверное, ты был просто прижат к стенке. :lol:. Однако, зачем все это ? Я ведь всю готовую плату под 750 дам. Снять со старой кнопки, сенсор, инкодер да собрать новую в сто раз проще и приятней, чем долбаться с навесом. А нужные тебе новые кнопочки уже проводками подведешь (разъем ставить не буду, просто пины забью).
Что-то серьезнее с 64 ногами (скажем, AT90USB647) уже и стоит как мышь, и просто громоздок. Хотя под те же AT90USB646(7) или (1286(7)) ПО идет почти без изменений. И на них уже не мышь но сущий монстр можно смастерить.

Сейчас работы много, устаю... не получается все быстро сделать. Но никаких затяжек. Оно вроде и звучит полусолидно, а делается совсем несложно. Главное - добить и устаканить нуднятину с наращиваемыми протоколами обмена. Самому жутко интересно, что получится в готовом виде. Даже, если и ничего выдающегося - все равно любопытно. :)


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Давай так - если хочешь, я могу собрать этот device. Проблема в AT90USB162 - он мало где есть. Постараюсь подпихнуть в очередной заказ, чтоб самому не мотаться по Москве.
Когда дойдешь до стадии тестирования и мышь хотя-бы будет работать как мышь (даже небольшое время и с глюками), скажи. :)


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj , работает как мышь и без глюков. И, ты знаешь, меня удивило, что на 2000 cpi без всякого корректора движений. Видимо, он в 6010 уже смонтирован. Но я запорол pcb 750. Мне их уже давно сделали. Смотрю, а инкодер неправильно стоит... прошляпил... слишком быстро развел и отдал, не отлежалась денек-другой, как говориться... Поэтому без колесика спаяна :). Ну, то есть, я его навесом проверил, а потом отпаял.
Сейчас довожу загрузчик прошивок. В общем, продвигается. Плату переразведу - конечно отпишусь.
Хм... а мне AT90USB162-AU показалась как раз очень доступной и на редкость дешевой. По efind-у, помниться, глянул - куча контор. Даже в "Платан"-е есть. Заказал у первых приглянувшихся сразу сотню (буду юзать в разработках и рыбах). Мухой приперли.


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj , напишу небольшой отчет по проекту W-Laser Mouse (нагловатое название).
Отдал новую откорректированную плату в изготовление. Пока PCB вживую не будет опробована, выкладывать - наглость. А эти демоны поуходили в отпуска. Ждать не хватило терпения. Неделю назад на работе выдался шланговый день. Раскурочил одну 750 и прямо навесом собрал в ней все до копейки... Емае, оказалось, занимает всего полдня не спеша. Причем, даже с аккуратной зачисткой лишнего и опусканием датчика на положенные 1.8 мм до коврика.

Уже дня 3-4 пользуюсь новой мышкой, у которой обалденные мгновенные кнопки и регулируемая динамика движения. Отпадно ездит. Прогу-настройщик пока ненадолго отложил, потому что все удобно пробовать, не разбирая мышку и просто меняя прошивку. Выглядит :
1) Правим исходник, компилируем, имеем привычный hex-файл.
2) Перетыкаемся с нажатым колесиком, в результате чего дивайс представляется уже не мышью, а неким HID-устройством с названием W-Loader.
3) Запускаем прогу-заливщик (отлажена), 2 секунды, готово.
4) Перетыкаемся (автомат после заливки делать не хочу, чтобы полностью исключить всякие некорректности), имеем новую мышь.

Сенсор опрашивается на частоте 5кГц и держится постоянно на максимальной разрешающей способности. Перевод в нужную чувствительность делает контроллер, сохраняя полную точность (операции с дробями). Чувствительность при этом может задаваться от 0 до 2048 с шагом 1 cpi.
Встроен измеритель реальной текущей скорости с пересчетом в мм/сек.

Сейчас сделал просто 3 профиля, которые сменяются по нажатию кнопки "CPI" и индицируются : зеленый, красный, желтый (типа : "Винда", "Игра-1", "Игра-2"). По-моему, достаточно, хотя добавить парочку - пожалуйста.
Параметры профилей пока меняю прямо в исходнике, потом вынесу в интерфес. Сейчас в каждом профиле может быть задано :
1) Динамика. В общем, закон сенсы от скорости, где задаются 4 значения : Vmin, Vmax, Smin, Smax. Получается три участка :
1.1 - до скоростей Vmin держится постоянной сенса Smin. Линейное движение.
1.2 - от Vmin до Vmax сенса линейно нарастает от Smin до Smax. Равноускоренное движение.
1.3 - выше Vmax постоянная сенса Smax. Вновь линейное движение.
Несмотря на простоту, получается очень гибкая и прогнозируемая настройка с некислыми возможностями.
Пробовал делать нечто многоточечное кусочно-линейное - на мой взгляд избыточное фуфло... Кроме запарок по настройке ничего не дает.

2) Назначение кнопок. Кроме ЛК. Можно выдать вместо кнопки любую клавишу. В том числе и на вращение колеса.
3) Вязка нажатий кнопок с переключением динамики. Прикольно получается : какое-то ружжо боковой кнопкой выбрал - динамика под него измениласть.
4...N ) Всякие спец-режимы. Например, по нажатию ЛК на 16-20 мс приращения координат удерживаются нулевыми.

Собственно, потому не хочется все это в настроечный интерфес выносить, что неясно, насколько юзабельно то или иное. Не устаканено... А так - за 2 секунды сразу мышь с личными настройками. Поправить нужное по тексту исходника - ничего знать не надо, там почти везде или физические величины, или флажки "Да", "Нэт".

Эх... если б ты тож такую собрал, а то покуда плата... В одиночку трудно вкусности придумывать, их тестировать приходится, поделиться "хуже-лучше-нафик-не-так" не с кем... и все такое... А мыша лихая вроде, я уже другими и пользоваться не могу :).
На выходных все-таки сделаю нормальную калибровочную часть главного интерфейса... (регулировка тока лазера, ограничителей затвора, установка параметров блокировки движения). По исходнику это общие настройки и крутить их "текстом" негламурно.


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Walkie писал(а):
пользуюсь новой мышкой, у которой обалденные мгновенные кнопки и регулируемая динамика
Сам себя не похвалишь - никто не похвалит! :)
Не, верю.
Цитата:
Сенсор опрашивается на частоте 5кГц и держится постоянно на максимальной разрешающей способности.
Не затруднит проверить - если ставить 400, устойчивость лучше или так-же? У меня выходило, что лучше ... а для мыши 'устойчивость' - самое главное. Попробуй, пожалуйста.
Я понимаю, что проще держать фиксированный dpi (cpi), а потом умножать на N(переменную) и сдвигать (не делить же).

По кнопке DPI - честно говоря, я на нее тоже позарился. Может ее добавить к основным, т.е. 'играбельным'?
Честно говоря, я не вижу смысла делать переключение dpi. Если мыша 'динамическая', то dpi ты выбираешь сам скоростью движения. Если мыша прошита с фиксированным dpi, то зачем его переключать??
Понимаешь, 'легкость переключения' это как кнопка Win на клавиатуре - попса. Сенсу выставил и пользуешься. Даже плохо, что dpi переключается --- если играешь в несколько игр, то переключение dpi срывает настройки в других.
Так что ... пожалуйста, добать еще одну кнопку. ;)
Переключать dpi можно длительным нажатием на эту кнопку (если очень хочется). Думаю, порог в 2 секунды будет корректным.
Извини, склероз ... ты вроде-бы говорил, что мышь может прикидываться клавиатурой? Давай профили хранить в клавиатуре - приход команды 'включить LED' на клавиатуре поставим как признак выбора режима мыши. (один LED - dpi, второй - пресет). Ты NumLock используешь? .... а вот ScrollLock точно 'вряд-ли'.
Это, естественно, усложнит ПО. Извини!

Цитата:
3) Вязка нажатий кнопок с переключением динамики.
Это ты сильно придумал! (не стеб)
Тогда придется настройки динамики делать для каждой кнопки - снайперку ставят на любую кнопку.
Кстати, лично я очень часто ставлю zoom на правую кнопку .... т.е. ты прав. Интересно, а переключение режимов можно как-нибудь синхронизировать с нажатием кнопки? Обычно - нажал = zoom Up, нажал = zoom down. (и соответстующий режим или фиксированный dpi)
Тут какой-то reset нужен для синхронизации.

Цитата:
по нажатию ЛК на 16-20 мс приращения координат удерживаются нулевыми.
Ага, именно поэтому используют клавиатуру на 'выстрел' вместо ЛК. Очень полезное добавление! Только очень опциональное - когда прыгаешь в UT с чем-то тяжелым в узком корридоре, а рядом такой-же подарок, то и 20ms задержки означают твою смерть. Просто рвется предсказуемость движения.
Ты еще влезаешь в 162'ой процессор?

С подвеской оптики на 1.8мм я особо не мудрил - просто откусил от пластика оптики бордюр. Зачем портить эстетику? :)
Она и так замечательно центрируется по чипу, там выемища.


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Скрупулезно проверял я насчет режимов ниже 2000. В скоростном отношении абсолютно никаких изменений. Чтобы добиться максимальных показателей, сенсору надо задать режим затвора, прокалиброванный для конкретного коврика. Пока не буду описывать как, но метода проста и довольно эффективна.

Ты немножко не понял насчет кнопки DPI и профилей. Теперь кнопка называется PROFILE и переключает не dpi, а целый профиль. Профиль - это полный набор личных настроек на задачу.
Вот примеры с условными обозначениями, которые похожи на мои нужды. В проге-настройщике, конечно, будет выглядеть гораздо понятней.
Включили комп. На мышке зажегся зеленый индикатор и установился профиль 1. Я его настроил как "Windows Desktop":
Код:
- Кнопки, колесо : стандарт
- cpi\динамика : Vmin=4 мм/с,  Vmax=56 мм/с,  Smin=512cpi,  Smax=1536cpi.
- изменения Vmin, Vmax, Smin, Smax при нажатии кнопок : отсутствуют.
- фичи : NONE.

Тут короткая низкосенсовая линейная зона для точных низкоскоростных манипуляций, затем шустрое ускорение аж до сенсы 1536cpi, мне так очень удобно.
А тебе, например, для повседневной работы привычна простая линейная мышка с 800cpi, но зато с ЛК и ПК-локами 20мс. Так и настраиваешь профиль 1 : Vmin=(неважно), Vmax=(неважно), Smin=800cpi, Smax =800cpi, Feature=LB_LOCK+RB_LOCK.

Теперь я хочу поиграться в КУ3. Запускаю игрушку и нажимаю кнопку PROFILE. Зажигается красный индикатор и мышь становится вот такой :
Код:
- Колесо от себя : клавиша "2" (пулемет),  Dynamic = NEW with : Vmin=0 мм/с,  Vmax=250 мм/с,  Smin=724cpi,  Smax =1448cpi, Features = NONE
- Колесо на себя : клавиша "5" (ракетница), Dynamic = NEW with : Vmin=0 мм/с,  Vmax=180 мм/с,  Smin=724cpi,  Smax=1448cpi, Features = NONE
- Колесо кнопка : клавиша "7" (рельса),  Dynamic = NEW with : Vmin=...,  Vmax=...,  Smin=600cpi,  Smax=600cpi,, Features = LB_LOCK
- ... и т.д. по всем кнопкам

Заметь, для ракетницы чуть возростает ускорение, а для рельсы мышка становится полностью линейной c немного уменьшенной сенсой и ЛК-локом 20мс.

Надоел КУ3. Хочу BF2. Игра тупая, с очень плохим обработчиком мыши, поэтому 3-й профиль был настроен как линейный манипулятор с 400 cpi. С единственной фичей LB_LOCK. Ну, еще на 3xFire повешена PgUp. Иду в игрушку, кнопкой PROFILE, нащелкиваю желтый цвет, и чувствую себя там как рыба в воде. Перестану играться в BF2 - вообще перенастрою 3-й профиль на какой-нибудь УТ или вовсе на специальный чертежный.

Таким образом отдельного изменения сенса/динамика вне рамок профиля нет. Остается забота хорошо настроить каждый профиль на что-то конкретное. Правда, должен признать, что сделать больше 4-х профилей по ресурсам весьма затруднительно.
Что касается дополнительных кнопок. PROFILE - особняком. Остальных 8.
Задействовано 6 : ЛК, ПК, Колесо, Бок1, Бок2, 3Х. Обработка оставшихся 2-х входов ведется, даже инфа прет в систему как кнопки 7 и 8 (а вдруг какая-то игрушка понимает дальше 5-й), но у меня туда просто ничего не припаяно. Если юзабельно расположишь на корпусе - будут работать и так же назначаться клавишами.

А AT90USB162 с его 16 кБ я еще даже и на половину не использовал. Пишу ведь на асм - код очень скоростной и компактный. А умножения-деления... дык, вычислительные процедуры - разве проблема... Например, для расчета текущих скоростей Vx, Vy там в скользящем окошке интеграл по Симпсону берется и ничего :).


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Детально - позже, sorry.
Walkie, я не хочу переключатель DPI, я не хочу переключатель ПРОФИЛя. Я хочу седьмую кнопку.


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Walkie писал(а):
Сенсор опрашивается на частоте 5кГц
- а зачем этот секс? :)
Ты все одно не сможешь отправить это в USB.
бОльшее количество данных вовсе не означает лучше. При низкой скорости движения (по осям!) у тебя могут теряться отсчеты. Честно говоря, не помню реализацию в сенсоре, да и информации мало. Если опрашивать чаще разумного, то у тебя могут уменьшаться цифры на '1'. Когда там сотни-тысячи - это пустяк, а когда точное позиционирование в Windows?Полезет 'дерганность'. В теме по А4 встречал упоминание о том, что снижение 'USB' с 1KHz на 250Hz сказывается на стабильности. У А4 сенсор опрашивается 1КHz, значит существует временно'е усреднение.
И вообще, откуда взялась цифра 5KHz? Это что, частота, не_синхронная к частоте USB??? ... а вот это уже серьезная ошибка. У тебя будут 'слипы' - пропуск или повторение данных. Не в смысле повреждения данных как таковых, а разрушение синхронности. Я бы тебе рекомендовал сесть на прерывание USB.

Два момента на обсудить/подумать и все основаны на том, что мыша механическое устройство, т.е. подвержена инерционности:
1. к тебе идут координаты с датчика, но мыша не может резко сменить скорость и направление. Отсюда можно сделать логичный вывод о фильтрации смещений во времени.
Ты можешь получить две вещи:
- частично исправлять шум сенсора и 'восстанавливать' истинные данные.
- знать уровень (динамической) устойчивости мыши по этой поверхности. И дальше это использовать или для статистики и сообщению юзеру - смени ковер, или для срыва как порог или вместе с другими признаками, или для адаптации к поверхности, в том числе и следящей.
2. у человека единственный способ управления - напряжение мышц. Перемещение мыши есть вторично. При большой энергетики в игре мыша весит тонну, образно выражаясь. У каждого человека есть предел, быстрее которого он не может двинуть мышь. Речь не о линейном движении, а о цикле старт-стоп-старт. Для низкой частоты это меандр, для предельной это уже синус. Если привести в электронику, то - для псевдо-коррекции можно поднять самую высокую частоту сигнала в 1.5-2 раза, это приведет псевдо-синус в псевдо-меандр. Объяснять долго, думаю ты понял.
Конкретно в мыше - для самой-самой-самой большой степени ускорения (как ускорения, так и замедления) повышать dpi в, положим, 2 раза. Для меньшей - соответственно меньше. Этим как-бы компенсируется вес мыши и кисти.
Сея фенька крайне полезна в очень энергичных играх. Например, в том-же UT, особенно в дуэльнике - минуту бежишь, потом следует бой в течении 0.5-1 секунды. Если пытаться потом анализировать, сколько нажал кнопок и как двигалась мыша - бошку снесет окончательно. Динамический корректор нужен как раз для такого случая (я не про снос бошки :) ).
Естественно, опциональный режим .... хотя, при нормальном использовании мыши этот 'экстрарежим' вряд-ли будет влиять.


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
200 мкс (5 кГц) опроса сенсора не связаны с USB-обменом. Чем быстрее опрашивается, тем лучше. Смысл быстрее пропадает лишь после 7080 Гц (частота сканирования 6010). При этом гораздо аккуратней и легче вычисляются текующие координатные скорости. А4 они не убились, и 1кГц им вполне хватает, чтобы не захлебнуться от потока данных сенсора при скоростях манипуляций до 1.48 м/с, а мне - первейшая необходимость. Без этого о регулируемой динамике можно даже не заикаться. Сами же выходные отсчеты никуда не пропадают и не усекаются. Они накапливаются в сумматорах USB-репорта. При очередном запросе сколько накопилось уходит хосту, а сумматоры очищаются. Там не нужна синхронность. Сейчас вообще установлено 180 мкс опроса 6010.
-> (1). Я вот тут долбался с возможностью коррекции сбоя 6010 на высоких скоростях. Максимум для него = 30дискрет/(2200/25.4)*7080Гц = 2.5 м/с. Далее - классический "лазерный" срыв, не зависящий от режимов. Такое уж ПО в DSP 6010. Пока что обломал зубы, но чувствую, что реализуемо. Хотя при регулируемой динамике так махать рукой просто не нужно, но сама задача чет не дает покоя... Никак не сочиню хоть сколько-нибудь толковый алгоритм.
-> (2). Коррекция динамики манипулятора к желаемой в огромной степени зависит от силовой системы "нелинейное трение о ковер + стиль использования". Самая значительная составляющая - это как раз стиль вождения. Тут математика практически не хиляет. Чтобы для какой-то задачи (особенно игра) коррекция оказалась очень полезным подспорьем, ее по сути нужно лично подбирать и тестировать. И вот тут моя сегодняшняя упрощенная реализация Sens = F(Vx, Vy) может оказаться недостаточной.

Очень хочется, чтобы ты собрал девайс на 750-й. Сделай навесом, а ? Один день сборки ведь. Какие надо картинки-схемы приготовлю, чтобы облегчить процесс. Будет отличная мышка, которую вдвоем гораздо интереснее обсуждать и модифицировать. Ты бы сразу увидел и попробовал на практике, что уже есть. А также увидел бы, как легко меняется то или иное по требованию :).
Или все-таки надо плату ? А то не очень хочется вначале еще раз переделывать 750-ю на новую плату, а затем заниматься с более подходящей мне 730-й (хочу уже сразу 730).
Кроме того хорошо бы для самоуспокоения добавить аппаратное уничтожение дребезга хотя бы кнопок ЛК, ПК, пропустив их через RS-триггеры. Кнопки-то перекидные. И снять модуль обработки этого хозяйства в контроллере. Дело в том, что реакция на нажатие идет с задержкой всего 1мс, а вот отжатие фильтруется тщательно и задерживается минимум на 16мс. По жизни оно так и надо, но хочется иметь "обоюдоострый меч". И тогда уж все кнопки, а не только ЛК и ПК. Но вводить все в контроллер - удваивается число входов... плохо реализуемо. А что-то дешевейшее внешнее - ставить еще 1-2 корпуса простой логики тоже как-то стремно. Я потому и отложил этот вопрос.
Кстати, несмотря ни на какие надписи "Omron", дребезг у кнопок самый обычный - те же 10-15мс.


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Аппаратный подавитель дребезга - это конденсатор параллельно кнопке. :D
Пишется весьма простой алгоритм с 'таймером' и дребезга никогда не будет:
Var1 = текущее состояние, равное мажораторноу элементу по N отсчетам (короче, среднее по 10mS)
Var2 = принятое состояние кнопки.
Обработка по прерыванию или опрос по таймеру
1. если считано значение <> Var2 и Var1=Var2, то Var2=NEW
2. если считано значение <> Var2 и Var1<>Var2, то skip
Коррекция алгоритма под реальное железо - ввести привалирующее значение 1 (замкнуто) над 0 (разомкнуто).
Аргумент - если кнопку отпустить, то она ОБЯЗАТЕЛЬНО разомкнет цепь (токи мизерные, приваривания не будет). А вот замыкание может быть неустойчивым и неполным. В том числе и с дребезгом .... который может увеличиваться от износа.
Кроме того, время отпускания мало влияет на играбельность.
Т.е. 0 считать только тогда, когда 1 небыло очень давно (ни одного 1). Время настраивается, положим 50mS.
Т.о., в'умный алгоритм можно упростить до - при любой 1 считать замкнуто на это время. Или, только все_нули в течении этого времени могут перевести состояние кнопки в 0, иначе считается 1.

Я предложил рассмотреть автокоррекцию динамики для 'обезвешивания' мыши - аргументы не понял, извини.

Цитата:
Сами же выходные отсчеты никуда не пропадают и не усекаются.
При низкой скорости будут приходить данные вида 0-0-1-2-0-1 ? ;) Т.е. в каждом отсчете будешь терять 0.5. Я ошибаюсь?
Цитата:
Там не нужна синхронность.
Не работал с 'высокоскоростными' передачами? Беда в синхронизации. Я наступал на эти грабли.
В один раз ты считал 5 отсчетов на один тик USB, в другой раз 6. Уже имеем ошибку при передаче данных в USB.


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Так об том и речь. Подавление дребезга у меня практически так и сделано.
Каждая кнопка опрашивается раз в 1 мс и загоняется в 16-разрядный сдвиговый регистр. То бишь "историю" выборок. А далее 16 выходов регистра собраны по ИЛИ. То есть, по нажатию контроллер имеет латентность 1 мс, а по отжатию - минимум 16 мс. Отпускание дожно быть тщательно профильтровано. Это важно для всех приложений. А вот нажатие - с максимально быстрой реакцией. Более того, далее у меня установлен дискриминатор длительности. То есть отпущенное состояние длится не менее 12 мс.
Просто я хотел использовать имеющуюся двухпозиционность кнопок и посмотреть, будет ли полезный эффект от того, что контроллер реагирует как на нажатие, так и на отжатие симметрично и максимально быстро. То есть по сути в момент касания контактов. А заодно освободить его от задачи антидребезга. Ну, да ладно... так тоже почти идентично.
Кстати, сравнивая с другими мышами - разница очень здорово заметна. Кнопки какие-то резкие, точные. Забавно, что это даже не в игрушках лучше чувствуется, а в обычных оконных приложениях.

Про обезвешивание я тебя хорошо понял. И непременно это попробую. Там задача в том, чтобы помимо скорости измерлось еще и ускорение. Ну, или хотя бы его существенные значения. И дополнительно ввести его в контур динамического управления сенсой. Сейчас там крутится только текущая скорость и в качестве управляющего сигнала она подается на модуляторы сенс (Sx, Sy) как в раздельном виде Vx, Vx, так в совмещенном векторном SQRT(Vx^2+Vy^2). Если добавить еще и ускорение - конечно, можно получить более интересные режимы. Вплоть до прикольных колебательных :).

Цитата:
Т.е. в каждом отсчете будешь терять 0.5. Я ошибаюсь?
Да. Ошибаешься.
Такая потеря может иметь место лишь при неверно реализованном масштабировании. У меня же постоянно вычисляется не только целая часть, которую надо отправить в сумматор (далее его заберет и обнулит хост), но и точный знаковый остаток от деления. Этот остаток добавляется при масштабировании следующей выборки и т.д. Т.е. хост всегда получает абсолютно верные текущие целые тики при любой скорости и любом заданном cpi. А какую именно целую порцию он заберет в каждом опросе не имеет значения. Лишь бы положение мыши на ковре в точности соответствовало курсору на экране.
Более того, опционально может включаться (лучше сказать выключаться) так называемый антилюфтовый режим. Ибо мышь - это все-таки манипулятор, а не отображение коврика на экран. В этом режиме, если мышь входит в состояние покоя, остатки сматываются до нуля, и манипулятор как бы привязывается к своему новому положению на ковре. Режим очень хорош при низких чувствительностях для движений типа : чуть вперед -> пауза -> назад в ту же точку. За счет автопривязки получается легкий и послушный реверс движений.
Есть другая более суровая проблема... На низких скоростях при высокой частоте сканирования в 6010 дублируются соседние кадры и он, разумеется, хреново чувствует движение. Конечно, есть режим автоматического фреймрейта, но, судя по тому, что я считываею, он как-то непонятно сделан. Мышь стоит на месте, а этот гад на максимуме 7080Гц чешет. Надо попробовать аккуратно вручную поуправлять...


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Во субботу, чтоб не скучать, повторил все в корпусе 730. Странное дело... Такой потрясающей отзывчивости кнопок, как в корпусе 750 не наблюдается. И вообще 750 как-то лучше и приятней во всех отношениях. Отвык что ли...
Платы сделали. Надо будет еще одну 750 смастерить уже "по-взрослому".
Заодно в первом приближении соорудил автоматическое управление частотой сканирования поверхности. Высокая частота фотографирования врубается только тогда, когда она действительно нужна. Впечатление, что слежение на низких скоростях стало лучше. Вдобавок при этом 6010 совсем мало кушает.


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Сделал обработку кнопок вот по такой схеме (это, разумеется, немного упрощенная логика в контроллере, а не внешняя аппаратура) :
#77
На нажатие или отжатие взлетает таймер, который держит изловленное состояние устойчивым в течение заданного времени. Можно от 1 до 127 мс и разные для "press" и "release". Минимум определяется временем дребезга, максимум - по сути скорострельностью 600 выстрелов в минуту :lol:. Наилучшие практические значения - в районе 30 мс.
Надо сказать, очень ловко работает. Полностью симметричная и быстрейшая реакция. Единственная опасность - помеховый взвод, что конечно определяется резистивностью входных цепей. Но эта опасность аналогична предыдущей реализации.
К слову сказать, проэкспериментировал на Q3, который славен тупой реализацией обработки мыши (у него какая-то привязка то ли к фреймам, то ли еще к чему). Ни хрена... редко, но все равно наблюдаются пропуски выстрелов. Если только ставить 60-80 мс. Тогда в пылу сражения иной раз наблюдается эффект : жахнул рельсой, та не отреагировала, ну, думаешь, и хрен с ней... уже успел развернуться на 90 (а противника ведь обычно стараешься держать на мушке, и как только все это успеваешь за 100мс - не понимаю...), и тут : Н-НА лучом в жбан новой жертве :shock:. Очень весело и эффективно :D.


 

Прошу прощения, но кто нибудь может доступно разъяснить как уменьшить высоту отрыва у 730, хотя бы до пределов 750.
Схема с инструкцией от Walkie (на стр 2) имеет это ввиду? И ещё: сколько и где на 730 надо открутить винтиков?!
Зарание благодарю.
С уважением Fox909.
Добавлено спустя 57 минут, 1 секунду
и ещё уточнить по фокусировке: схема и описание от Walkie очень подробная только хотелось бы узнать (что наверное всем понятно) что технически было целью? То есть как я понял сместить датчик в мышке изменив расстояние до поверхности считывани? На сколько в итоге (в мимлиметрах) оно должно изменится (уменньшиться как я понял)?
оветте пожалуйста, мне очень это очень важно. Мышь мне понравилась а 4-5 милиметров отрыва - бракуют её напрочь... Играю на старой XL-750BF..
Добавлено спустя 14 минут, 47 секунд
Вот, ещё: почему растояние отрвыа разное у мышек XL-730K и XL-750BF если датчики в них одинаковые? А если я ошибаюсь то нельзя ли их поменять между собой?


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Fox909 , фокусировка делается не с целью уменьшения высоты отрыва. Просто после описаной процедуры мышка становится хорошо отбалансированой : очень точно позиционируется, послушна при высоких разрешениях, нажатие кнопок перестает влиять на непроизвольные смещения даже на тканевых ковриках и многое другое. То есть начинает обладать настоящей "лазерной" точностью.
А высота отрыва - это параметр, который так просто не поддается регулировке. Зависит от режима работы сенсора и поверхности. А4 использует режим с настройкой на непритязательность к поверхностям. Ну... для широкого круга потребителей, и, конечно, высота при этом получается практически максимальной.
Единственный способ хоть как-то уменьшить высоту, не залезая в мышиные дебри - это выбор коврика. Он должен быть однотонным, черным (серым), тканевым с плохо отражающей ниткой. В этом случае при подъеме сенсор наиболее быстро теряет признаки движения и блокируется. Из существующих хороших ковриков с человеческой ценой по таким требованиям лучше всех - Everglide Titan.
Кроме того, если у Вас 730 обладает большей высотой отрыва, чем ранее юзаная 750, то причин тому есть несколько. Из тех, на которые можно лично повлиять - калибровка тока лазера. Ток выставлен очень большим. Махнуть местами сенсоры 730<->750 нельзя, потому что величина тока хранится не в них. Ток можно отрегулировать самостоятельно, но это уже разборка и незначительная модификации мышки. Если надо, дам рекомендации, как это сделать наименее геморно.
У 730 три винта под глайдами.


 

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


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj, чота я сейчас бездельничаю на работе, пробую вставку ускорения. Честно говоря, ничего толкового с ним не придумывается. Ты выдвигал идею обезвешивания, но никак не могу ее полезно оконкретизировать. Как-то все получается, что равноускоренное движение, которое и так реализовано, уже само по себе хорошо работает. Оно ведь не скачком как в винде, а какое угодно пропорциональное во всем диапазоне скоростей.
Добудутся контроллеры - скажешь. Чет не ожидал трудностей. Мелкосхемы-то есть даже во всяких "Чипах-Дипах".


 

2 Walkie
Привет :) Одобряю идею сделать максимально-настраиваемую мышу,давно пора...подкину несколько эмм "пожеланий" или что хотелось бы:
1).Гибко (!) изменять и прописывать в память акселерацию (и если возможно,анти-акселерацию...)
2).Неплоха идея динамической акселерации, но думаю надо дать возможность юзеру не только гибко настраивать пороги наступления разных акселей и сами аксели,но и иметь парочку готовых профилей (а лучше десяточек)
3).Увеличить скорость наступления срыва, ибо перепрыгнуть 2 м/с для рядового геймера не составит особого труда(а лоусенсовики так машут мышами по своим гигантским коврам что мама не горюй).
---------------------и парочка практически нереализуемых идеек про запас----------------------
4).Очень понравилась сама идея, заложенная в девайс "г9" со сменой корпусов. Но реализация получилось..эмм..не очень чтобы ах. Неплохо было бы иметь полностью сменные корпуса, например:маленький(как ноутбучная мыша),под средний пальцевый хват,под средний кистевой хват и под лапу Майкла Джордана. А ну и сменные ножки, чтоб тож были хотяб с 2 коэф. трения (средний и низкий)
5).И совсем нереальная идея - сменные микрики =))) Например, мои любимые - маленькие друхкантактные из майкрософт 1.1а, но такая лёхкость и скорость клика не всем нравится..кому то в самый раз упругие 3х-кантактные "омроны". А комуто вообще безшумные подавай...
Хех, вот и всё что нужно идеальной мыше, разве много для полного счастья ? ;-) хехехе...


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

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


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

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


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

Перейти:  

Лаборатория














Новости

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