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
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
Bubloid, всё равно. Лишь бы удобный корпус. 1) ATtiny25(45,85)-20SU - SO, 8 ножек 2) ATtiny25(45,85)-20SU - DIP, 8 ножек 3) ATtiny25(45,85)V-10SU(PU) - то же, но помедленней. Но с расширенным диапазоном питания. Но задумчивее. Лучше (1) или (2).
BaCeK, компромисс и так простой : или прямо с датчика, или через корректор движения, где задержка и так минимизирована, насколько возможно. А промежуточное не нужно. Дело в том, что сглаживание бессмысленно уже само по себе. Если сам сенсор плохо борется с шумом и ошибается в движении (хреновый коврик, неравномерность матрицы, искажения картинки, алгоритмические ограничения), то пытаться преобразовать данные с него - тупик. И бороться электроникой против несовершенства рук или системы коврик-ножки тоже нет смысла. Потому что это во много раз лучше решает хорошая форма манипулятора и оптимальное скольжение. А вот ликвидировать задержку движение-результат_на_дисплее всегда стоит пробовать. Для этого контроллер, видя историю движения (данные с сенсора, которые он вынужден считать верными), хочет угадать, что должно произойти через 15-30 мс и выдать системе сразу "будущее". Когда мышка двигается, предсказывать не так сложно. Но когда движение только начинается, история - нулевая. И ошибка будет очень серьёзная. Поэтому я пока выбрал методу, в которой происходит плавный разгон в будущее. А "надо добавить весч" - чисто математические заморочки. В принципе нормально. В жестах на 9500 мышка поначалу кажется резковатой, но привыкаешь мгновенно. Для 3080 нужны другие параметры - чуть подрагивает сволочь. Как раз из-за худших свойств датчика по сравнению с 9500(6010).
Пару идей. Какая функция используется для расчета ускорения колеса? Довольно удобно, но может быть лучше было бы если ускорение применялось плавнее? т.е. если колесо сразу начинает вращаться быстро, то скорость нарастает плавно, а не начинает прокрутку с максимумом. Помимо экстраполяции, полезным может оказаться фильтр остановки, например при резком движении и быстрой остановке, происходит некоторое колебание около точки остновки (зависит от коврика, сенсы и тп).
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
kemsky Скорость вращения колеса очень трудно расчитывается. Слишком рваная и протяжённая во времени вещь. Там невозможно сделать ничего плавного. --- А какой алгоритм должен быть у фильтра останова ? Хотя бы приблизительно. Дело в том, что это как раз касается сказанного мною выше - борьба против рук. Ведь человек совершенно естесственным образом делает реверс при достаточно ощутимых ускорениях. Рефлекс. И причина тому - масса мышки.
Куратор темы Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
Walkie писал(а):
И причина тому - масса мышки.
а также масса руки даже без мышки совсем, если поставить ладонь с опорой при её основании, и сделать характерное резкое движение (выстрел на взмахе) то кисть будет делать возвратное движение, после достижения крайней точки.
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
нужно снять данные и посмотреть, что происходит, когда остановка идеальна (мышь фиксируется сразу) и когда четкой остановки не происходит, а есть быстрое замедление и некоторое движение небольшой амлитуды после него. эта штука должна включатся только если скорость превысила некоторое значение, т.е. имел место рывок, и была быстро потеряна (предполагаем остановку) опять же быстрее, чем некоторое значение. кроме того остаточные движения длятся очень короткое время (это будет время работы фильтра). Так мы определяем момент когда нужно фильтровать и продолжительность фильтра. далее надо выбрать алгоритм самого фильтра, убывающую функцию времени, например, или останавливаем движение после смены направления плюс некоторое смещение назад, тут можно поэкспериментировать.
если будут данные можно поиграться в матлабе)
еще вопрос по деталям, подойдет ли lm1117 на 3.3в в качестве стабилизатора?
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
kemsky Данных можно набузовать кучу. Мышка всегда пишет историческое окошко длиной 64 мс с частотой выборок 250Гц. Прога Whist может это вычитывать больше часа и сохранять в виде wav-файла (W3hist.wav - просто его потом очень удобно просматривать и ковырять в нормальном звуковом редакторе). --- LM1117-3.3 не пойдёт. То есть, можно, но со страшным скрипом. Да и здоровый он. Лучше какой-нибудь другой LDO-стабилизатор с током ограничения не менее 150 мА. Типа, LP2992.
Куратор темы Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
Walkie писал(а):
M1117-3.3 не пойдёт
а чо в нем не так? ток 800мА вроде позволяет...
я кстати вчера увеличил ток светодиода до 70мА, теперь ползунок Limit стоит на 85, а до этого был 220... температуру померил - градусов 45 примерно, пальцем ощущается чуть теплым. Вообще номинальный ток у этого светодиода >500мА
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
BaCeK, всё равно комплектный красный светодиод при токе 25-30 мА - самый лучший вариант. А для некоторых ковриков ещё лучше - инфракрасный при токе 10-15 мА. --- А LM1117 - это не стабилизатор с низкой разницей Uвх-Uвых. Там выходной каскад - общий эммитер. 4.6В - для него критический режим, по сути уже нерабочий. --- Замучался я с этим 3080 насчёт экстраполяции. Сопротивляется гад и побеждает. Специально для него пробую совершенно иную математику, существенно сложнее.
Куратор темы Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
Walkie писал(а):
Замучался я с этим 3080 насчёт экстраполяции
это в плане сглаживания? вообщето на обычных "виндовых" cpi, в моем случае до 2200 максимум и так все вполне гладко. особенно если учитывать то что при низкой скорости cpi =1100 а 2200 при высокой скорости, в результате при медленных движениях т.е. когда "ежики" должны наиболее сильно проявлятся их вообщемто не видно... а на высокой скорости их тем более не видно.
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
Подобрал наконец алгоритм экстраполяции-сглаживания. Выкидывает данные системе с небольшим опережением, но мышка всё равно прилично устойчива. Ща припёр домой мешок картошки, руки трясутся, но по иконкам хорошо попадаю. Короче, такое движение мне нравится. Отдохну, причешу программу и выложу. Сильно совершенстовать буду уже в 5.3, если 162-й процессор потянет.
Member
Статус: Не в сети Регистрация: 06.06.2008 Откуда: Таганрог Фото: 18
Секас и похмелье - это важные тесты, несомненно. Но начинать рекомендуется с мешка картошки. Совершенствование будет идти в сторону более продвинутой математики. Экстраполяция - очень тяжёлая штука. Если б сенсор был аналоговый... А так данные с него вначале требуется сгладить. Конечный результат сильно зависит от удачности подбора метода сглаживания. Вот сейчас обнаружил небольшой казус в "гладильной доске" v5.2. Придётся исправить и ещё раз оттестить.
Куратор темы Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
Walkie
Walkie писал(а):
Совершенствование будет идти в сторону более продвинутой математики. Экстраполяция - очень тяжёлая штука.
на мой взгляд и сейчас замечательно работает мыша в плане движения. Хотя должен сказать что на предыдущей прошивке т.е. w5 ещё которая, линии под углом 45 и на медленной скорости рисовались заметно более гладкие. А нет ли планов сделать два режима - простой где большинство настроек ставятся автоматом или выбирается из пресотов и расширеный тот который сейчас. Не открою секрет что большинство людей глядя первый раз на окно W-control испытывают шок и потом, что им не говори они всеравно считают что w-mouse это очень замороченая и безумно сложная в настройках мыша... т.е. одна только мысль что, для того чтобы W-mouse хорошо работала, надо будет разобраться с это кучей непонятных установок, моментально убивает интерес у неподготовленого узера...
Walkie писал(а):
Придётся исправить и ещё раз оттестить.
ппц... надо же так любить картошку ))
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Member
Статус: Не в сети Регистрация: 09.12.2005 Откуда: Новочеркасск
Walkie писал(а):
kemsky, очень сильно сомневаюсь. Кроме того, АТ90 отдаст не 16, а 12 кБ. Из них 3 кБ съедает DSP-SROM код. Простую мышку написать, конечно, можно. Но с такой начинкой, как хотя бы Wxx, на Си - пфф... можно даже не дёргаться.
Эх.. Вот я тут гдето и забил. Простая мышка со всем на автомате, на сях на LUFA в Mega32U4. Так и валяется всё это в столе.
Сейчас вопрос мышиный опять встал - наверно нужно не страдать фигнёй, а собрать Wmouse да и всё тут 8) Лучше мне не сделать, я так не умею 8)
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Dx!, здесь идет 'суета вокруг дивана'(с). А в действительности что? Динамический фильтр не доделан, компенсация массы (инерции) не реализована. В мышке используется высококачественная фильтрация данных смещения, но ... я еще год назад посмотрел, как 'это' используется в windows и значимость этого достижения сразу была переоценена. А если учесть возросший лаг, то возник другой вопрос - насколько это вредит. Кроме того, в работе мышки категорически игнорируются дефекты коврика. Раньше пытался что-то доказать, но потом устал. По технике - в сети ходят материалы по получению изображения с сенсора мышки, кажется встречал на 3080 (или подобное), а значит не проблема найти алгорим заливки firmware в сенсор. Что до протокола USB под мышку, у Atmel с этим не сложно. Что до размера, то мой проект контроллера блока нагрузок спокойно уместился в 8К. При том, что контроллер довольно умный и разноплановый. Из asm вставки только под работу с высокоскоростным ADC и обработчик прерывания вывода на дисплей, всё остальное С. Транслятор генерирует весьма компактный код, переход на asm никакой экономии не дает. (я использовал asm только для 100%-ного контроля за временем выполнения, time critical) Что до W-mouse - как мне кажется, многое из реализованного или не нужно или допускает сильное упрощение (с улучшением качества работы). Так что ... вполне можешь сделать лучше. p.s. Рад, что не ввязался в проект, за что хочется поблагодорить Walkie.
Member
Статус: Не в сети Регистрация: 09.12.2005 Откуда: Новочеркасск
serj писал(а):
Dx!, здесь идет 'суета вокруг дивана'(с). А в действительности что? Динамический фильтр не доделан, компенсация массы (инерции) не реализована. В мышке используется высококачественная фильтрация данных смещения, но ... я еще год назад посмотрел, как 'это' используется в windows и значимость этого достижения сразу была переоценена. А если учесть возросший лаг, то возник другой вопрос - насколько это вредит. Кроме того, в работе мышки категорически игнорируются дефекты коврика. Раньше пытался что-то доказать, но потом устал. По технике - в сети ходят материалы по получению изображения с сенсора мышки, кажется встречал на 3080 (или подобное), а значит не проблема найти алгорим заливки firmware в сенсор. Что до протокола USB под мышку, у Atmel с этим не сложно. Что до размера, то мой проект контроллера блока нагрузок спокойно уместился в 8К. При том, что контроллер довольно умный и разноплановый. Из asm вставки только под работу с высокоскоростным ADC и обработчик прерывания вывода на дисплей, всё остальное С. Транслятор генерирует весьма компактный код, переход на asm никакой экономии не дает. (я использовал asm только для 100%-ного контроля за временем выполнения, time critical) Что до W-mouse - как мне кажется, многое из реализованного или не нужно или допускает сильное упрощение (с улучшением качества работы). Так что ... вполне можешь сделать лучше.
Развернутый ответ 8) Что суета - и так ясно. Но по сути мышка есть, она работает. Попробовать и посмотреть как - не сложно. Фримвар для сенсора улучшить? Это ж где такое? Или просто найти и залить родной фримвар в сенсор? Это у меня (с помощью Walkie, да) заработало почти сразу.
Про USB, размер, Си и asm - совершенно согласен. Но это вопрос идеологии, каждый делает так как считает нужным. Тем паче что проект то бесплатный и фановый. Человек делает _для_себя_ идеальную мышь, да ещё и с людьми делится. Что она не всем подходит - так и не может что-то узко заточенное подходить всем.
Про сделать лучше - само собой. Что угодно можно сделать лучше. Но я попробовал, мне не хватило энтуазизму. Может быть потом. Сейчас хочу таки пощупать Wmouse.
PS Хотя местами да, выстебывает подход. Даже программатор свой, для себя, подходящий только для Wmouse 8) Фрагментация, изобретение велосипедов... Понедельник начинается в субботу 8)))
=========== не забываем про пункт 3.8 правил... BaCeK
сделал вчера провод из мгтф и длинного шнурка, от заводского не отличить, очень мягкий, настолько непривычно, что вернул старый. В жестком есть свои плюсы, как высянилось, он немного ограничивает движение и прицел меньше скачет) так-то.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения