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




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



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4802 • Страница 2 из 241<  1  2  3  4  5 ... 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
Статус: Не в сети
Регистрация: 09.04.2006
Walkie

а ткань разная как выглядит? и это то что человеческомцу глазу кажется неоднородным- это точно плохо для сенсора?

_________________
Библиотеки Windows - Мы заставим ваши папки тормозить!


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj, фокусировка и полная балансировка для мышей A4 Х7 с датчиком ADNS-6010 делается так (см. рисунок) :
#77

1) Разбираем мышу полностью.
1) Вместо отверстия вырезаем в дне прямоугольник под всю линзу, ибо ее придется опускать.
2) Самое сложное : изготавливаем проставку 1.8 х 12 х 28 мм под вырез. Конечно, если есть текстолит толщиной ровненько 1.8мм, дело резко упрощается :).
3) Ставим дно на ровную поверхность (толстое стекло) и кладем на него небольшие грузики. Не забываем прикрепить фторпластовые глайды ! В общем, как бы стояла мыша в сборе.
4) В вырез кладем проставку, на нее - линзу. Не трогая дна, слегка прижимаем линзу и крепим ее к дну клеем. Как он там называется... молекулярный что ли... Короче, который для термопистолета.

Первый этап завершен. Вынимаем проставку, любуемся, как ловко стоит линза. Выдуваем из нее пылинки и устанавливаем все остальное.

5) Отрезаем чип 6010, чтобы из платы остались торчать только его ноги, которые эротично разгинаем в стороны.
6) Привинчиваем плату, смотрим, что это ее естественное положение в девайсе. Делаем все возможное, чтобы нажатие кнопок не приводило к перекосам платы относительно дна.
Для 730К ничего не надо - там плата становится плотно и однозначно. А вот 750 - атас. Ее плату вообще придется после привинчивания прихватить тем же клеем в нужных местах.
7) Кладем чип на линзу, едва-едва прижимаем, прихватываем пайкой угловые ножки, запаиваем остальные.
Ну, и дальнейшая сборка... Кранты... Теперь система чип-линза расположены с учетом всех погрешностей корпуса и наблюдает коврик так, как надо. Мыша превращается в девайс неизмеримо более высокого класса. Даже на относительно мягком коврике нажатие кнопок не сдвигает изображение на матрице сенсоре. Научиться пользоваться такой мышкой при разрешении 2000cpi (монитор - 1600х1200, виндовая чувствительность - ползунок ровно в середину) - дело пяти минут. Кстати, после этого мышь выдает практически точно 1600 отсчетов на дюйм, вместо прежних ~1800.
В сенсоре есть такой регистр, который показывает качество поверхности в виде числа обнаруженых признаков. После описаного выше гемора по юстировке значение этого региста очень увеличивается. Само позиционирование становится просто обалденным. На выходных попробую снять инит-протокол, как ты и предлагаешь... Если увижу, что А4 делает только то, что есть в офф-доке на 6010 - буду смеяться. Получится, что сенсор работает на реальных максимум 800cpi :lol:.


 

Hardware Nightmare
Статус: Не в сети
Регистрация: 14.09.2003
Откуда: Taipei, Taiwan
Монстры :) Ребят, а оно стоит потраченного времени? Кстати у ATMEL в аппнотах к семейству их камушков ARM7 есть пример реализации USB Mouse уже готовый, правда там курсором управление сделано через кнопки, но это не суть для инженера :wink:


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
По поводу init - я тут подумал ... можно поставить коммутатор типа CD4052 и банально забирать шину себе. А что - контроллер уже настроил сенсор, он уже не интересен. :)


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
TiN , да какие там монстры. А потраченного времени - однозначно стоит ! :) Во-первых, лично мне все равно надо по работе тщательно разобрать 6010. Во-вторых, хочется когда-нибудь воскликнуть : "Так вот ты какая ! Настоящая лазерная мышь". :lol:

serj , во... в этой ветке - оно правильнее будет, а то как-то стремно и просто неприлично в теме "мыши А4" людям бошки морочить :).
После юстировки рабочей 730К весь день не давало покоя то, что на 800cpi мышь НуНеМожет вести себя так здорово. Наверняка у меня в прогах где-то единственная досадная ошибка, а вернее опечатка.
Не стал откладывать. Прилепил интеллектуального шпиона к линиям обмена. Снял протоколы. Все до ужаса примитивно. Ни одной команды, не соответствующей документации 6010.
1) В 6010 загружается прошивка. Я гружу такую же, номер 56. (разработка 2006 года, новее нет :) ).
2) Короткий тест на правильность.
3) Лазеру задается постоянный ток, который прописан в контроллере. Ток разово прописывается в уже собраннной мышке на калибровочном стенде.
И все... понеслась. Больше никакими параметами контроллер не управляет. Все по дефолту от Avago.
Единственное, что он делает, это в начале и при нажатии кнопки "разрешение" вдувает в сенсор один из 4-х режимов (400, 800, 1600, 2000) по принципу :
Задано cpi____Режим 6010
100...400______400
450...800______800
900...1600_____1600
>1600________2000
И это нехорошо. Я думал, они всегда держат сенсор на максимальных 2000. Или хотя бы варьируют по регистру "качество поверхности". Какое там... дубовый примитив.
Отрывом также никак не управляют. Контроллер затыкается ровно тогда, когда слепнет сенсор. То бишь все решает он, просто переставая выдавать движение.
-------------
Полез в свои проги и естественно обнаружил тупую опечатку. Вместо нужного firmware подсовывал какую-то порнографию. Исправил - каэш, все поехало как по документации.
Думал, в режиме 2000cpi будет ловить "дыхание". Нифига, по хорошим коврикам ничего не дрожит +/-... любопытно... В отбалансированной мышке выдает ровненько 2000 отсчетов на 25.4 мм. Кстати, забыл добавить, что такая мышка даже с примитивом от А4 срывается на существенно больших скоростях.
-------------
В общем, все ясно. Теперь надо играться самим управлением 6010. Для этого требуется уже полностью собранный девайс, в котором свои программы. Есть два пути.
1) Поставить мост между контроллером и 6010. Для контроллера он будет имитировать 6010, а последним управлять самостоятельно.
2) Полностью свой контроллер.
Как бы это ни было противно, склоняюсь ко второму варианту :).


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Гм ...
Ну, один практический вывод уже сейчас можно сделать - лучше всего ставить DPI 400/800/1600/2000
По остальному .................. слов много, осмыслить еще сложнее. :)
Информация интересная, спасибо.

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


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
Мостик - это не так просто. Его все равно придется врезать в SPI-линии. То есть плату по-любому курочить. И место под него в мыше надо найти. И непонятно, чтоб такое вкрячить. В нем и два SPI-порта должно быть, и свободных 2кБ ROM (прошивку для 6010 надо хранить), и желательно, чтоб не жрал более 15 мА да тарахтел на 24МГц... и страшенный гемор с установкой разъемчика ин-систем-программирования для обновления версии и калибровки... и еще много-много подводных камней.

А полная замена контроллера чем хороша. Плату курочить гораздо меньше. По сути надо лишь заменить чип контроллера на другой с начальной прошивкой. И все. Девайс уже не открывается, а только программируется прямо на ходу без всяких доп-разъемов. В общем, дело софта, который будет лить как исследовательские, так и боевые прошивки, превращая мышь то в одно, то в другое по мере надобности.
Собственный драйвер мыши ? Только штатный мелкософтовский и никакой другой. Не хватало еще таким чудищем заниматься... Что же касается проги подобной Оскару - на самом деле здесь ничего такого военного нет. Поначалу в качестве нее будет выступать скромное приложение, заливающее новую прошивку контроллера. Для себя я вообще предполагаю сделать лишь вещи, которых нет ни в одной мыше :
1) Максимально точный, скоростной и адаптивный к поверхности режим сенсора.
2) Регулируемая "гнутость" характерисктики (любая кривая).
3) Безотказная обработка кнопок с минимальной латентностью (без их переназначения).
Когда нужно одному - совсем несложно. Но, если найдутся желающие, повторившие замену чипа, то ради бога :). Прошивкой/схемой я бы как раз поделился с удовольствием... Тут ведь в чем "кайф". Вот, к примеру, хотя бы ты захочешь повторить из интереса. И тебе, скажем, нужны не мои инсинуации с гнутостью, а регулировка высоты отрыва или еще что-то, о чем я даже не помышлял. Обсуждается, как сотворить половчее, мухой модифицируется "настройщик-заливщик". И постепенно эта прога становится все более универсальней, а сама мыша вытворяет все, что только в голову взбредет... в пределах разумного, конечно :). Как-то так.


 

Hardware Nightmare
Статус: Не в сети
Регистрация: 14.09.2003
Откуда: Taipei, Taiwan
Цитата:
В нем и два SPI-порта должно быть, и свободных 2кБ ROM (прошивку для 6010 надо хранить), и желательно, чтоб не жрал более 15 мА да тарахтел на 24МГц... и страшенный гемор с установкой разъемчика ин-систем-программирования для обновления версии и калибровки... и еще много-много подводных камней.


А в чем проблема? простенький MCU от ATMEL/Microshit. 2кБ ром нынче везде валом, SPI софтовое хоть десяток делай, абы ног хватило, ток - более чем достаточно, 24МГц - ну есть серийные на 20, подразогнать чуток :). Разъемчик - 6 контактов, или 4 если отбросить питание и землю. :) Я бы поставил ATMEL ATtiny45 или 85 ну или мегу8 в млф ;-) 8 ножек, SO8W корпус первая, MLF 5x5 вторая.

П.с. а полная замена контроллера - это понашему, разобраться конечно больше надо будет, но зато результат :). Можно конечно вообще из пушки по мухам, ARM7 поставить с родным усб-интерфейсом, и юзать его. USB HID уже готовые под него есть, в том числе и исходники. Все что надо - прицепить сенсор, кнопки, и написать прошиву :) кроме того есть разные вкусности помимо сугубо мышиных - например ADC (сделать тач-панельку скажем, или кнопки чувствительные к силе нажатия, аля как в перьях для граф.планшетов. Чавишь слабо - тоненькая линия, сильнее - жирная линия. А там гляди и мышку свою выпустить и поработить мир. :-D


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
TiN , софтовый SPI в данной задаче категорически исключен. На сторону 6010 (режим Master) требуется поток не менее 1.8 Mb/s, а со стороны штатного контроллера (режим Slave) нужна реакция на перепад с задержкой менее 100ns. И ног надо отнюдь не 8. Разгон вообще оставим оверклокерам, не здесь будет сказано :). Кроме того в штатном контроллере есть одно серьезнейшее ограничение, от которого надо непременно избавиться, а мостик это не решит. В общем, мост - это утопия.
Да ладно ... суть да дело - я уж почти развел полную PCB под корпус мышки А4 XL-730K. С дешевым и доступным AT90USB162(82) (мониторить супербутоны, определяющие ФИО тех, кто на них жмет, пока не будем :) ). Через пару дней отдам на изготовление. Пока сделают, наляпается кое-что из стартового ПО, чтоб запаять, завинтить и издеваться дальше. Ну, HID-дескрипторы, репорты знаем - для счастья хватит.
Правда, пока не могу сообразить, как бы сделать максимально удобно. При первом включении устройство должно стать HID, но не маусом. А после альфа-версии ПО "мышь" должно сразу становиться таковой. Например : отсутствует ПО "мышь" или девайс вонзается в USB с обеими нажатыми кнопками - сразу устанавливается режим программирования... Как такое ? Или можно гламурнее организовать ?
А мою PCB со схемами и ПО может потом любой желающий и умеющий взять да подправить для другого корпуса. Кроме того, по окончанию стартового этапа проекта "Мышь с лазарем...Ё...ххх " могу и сам наклепать PCB под другие корпуса - это приятная работа.


Последний раз редактировалось Walkie 05.10.2008 2:54, всего редактировалось 4 раз(а).

 

Hardware Nightmare
Статус: Не в сети
Регистрация: 14.09.2003
Откуда: Taipei, Taiwan
Walkie
разгонял софтовый SPI до 2.5 МБ\с, правда с DMA ;)


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
TiN, а что означает смайлик в конце ? :) И какая польза может быть от DMA ? Ну, придумаем близкий к моей задаче пример. Прошу прощения, но не поленюсь написать.

Оверский AVR глючно мечется на 24 MHz.
Режим Slave (mode 3), PINB0 - SCK, PINB1 - MOSI, старший бит первым.
Подлый мастер обладает нестабильной неизвестной частотой передачи, потому что его тоже сделали софтовым какие-то сатирики (усложним).
Вход в прерывание от \_ SS (облегчим).
Предполагаем, что внутри байта линия SS не взлетит, иначе накроемся медным тазом.
Тупо бросаем все и бегом хаваем байт от мастера, который должен будет дать нам хоть коротенький передых перед следующей серией SCK :
Код:
SS_Intr:
  in r15,SREG
  ldi r24,1
NextBit:
  lsl r24
  sbis PINB,0
  rjmp PC-1
  sbic PINB,1
  inc r24
  sbic PINB,0
  rjmp PC-1
  brcc NextBit
; И, не отходя от кассы, анализируем r24 - понять, что хочет неугомонный мастер.
  sbrc r24,7
  rjmp M_OneWr
  cpi r24,0
  brne SlowRead
; Мастер почти сразу пошел читать, не спрашивая фамилии.
; Ухитряемся написать код, который успеет подсунуть нужные данные

SlowRead:
; Мастер собирается ждать аж 75us и только потом запросит байт от нас !
; Сволочь ! Какие мы хитрые, что знаем, а то бы так и валялись тут, ожидая SCK.
  mov r23,r24; ин дер Буфер, как скажут немцы
  ldi  r25, MASTER_KOZEL; и будем мучаться с перестройкой прерывания
  out SREG, r15
  reti; и молимся, чтобы мастер не передумал...

M_OneWr:
; Нам пошел второй байт, потом будет передышка
  mov r25,r24
; копируем код "Next bit"
  mov r23,r24
  out SREG, r15
  reti; уф...успели.. пусть прога разбирается, кому куда засунуть r23

Это можно до пенсии отлаживать... А если обмен еще сложнее ?
Да, максимальная частота SPI может достигать 3 Mb/sec. Но юзабельно лишь для сдачи студентом курсового. Любопытно, как конкретно сделать простые надежные хотя бы 1.5 Mb/sec, "не для студента"...


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Глупая мысль ... а на плате уже впаян какой-то контроллер ... :oops:
При заливке настроек в мышу льются только данные или и firmware тоже? (толстый намек)

Walkie, ты немножко увлекся, как мне кажется.
1. обмен контроллер-мыша редкий и заранее известный (1mS), значит ты можешь работать с сенсором параллельно и незаметно с основным контроллером. Т.е. ничего резать не надо (нужно будет только обратить внимание на IDLE состоние сигналов типа ClkOut)
2. нафига буфферизировать данные?... особенно прошивку? Для этого существует 'прозрачный режим'. Кроме того, если подключиться 'параллельно', то этот вопрос тебя вовсе не будет волновать.

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


 

Hardware Nightmare
Статус: Не в сети
Регистрация: 14.09.2003
Откуда: Taipei, Taiwan
Я говорил не о Mб, а о MБ ;) байты которые. Хорошие примеры реализации - SD/MMC-флешки, последние из них уже работают на 30+ МБайт\с, при том что там еще обработка файловой системы есть ;). Ну и я говорил не про AVR у которого DMA и в зародыше нету, а ARM. DMA нам нужен для того, чтобы мы не грузили процессор всякой ерундой и дерганьем ножек, а спокойно работали, в то время как SPI-хост спокойно себе будет закидывать данные в\с RAM. Или ты предлагаешь поставить в мышку AVR + городить USB интерфейс для этого применяя бубен + разгонять? :spy:
По твоему коду - я асм не знаю, не оценю. :roll:


serj

А проприетарный контроллер ты будешь как программировать\настраивать? Без среды и SDK?


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Ну, во-первых, не A4 разработала этот микропроцессор. SDK/IDE/source брать там-же.
Во-вторых, есть API по заливке. Если там заливается и firmware, э это отследить легко, то вообще 'халява'. (Расшифровываю - уже есть firmware для дизассемблера и способ его заливки).
Вряд-ли там полноценный JTag, так что - и с этой стороны проблем нет.


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj , я немного смутно понимаю твое предложение прицепить к SPI-каналу master1 (далее "M1") - 6010(slave) собственный контроллер (далее -"М2"). Давай оконкретизируем.
Для начала еще раз подробнее расскажу, как работает существующая система.
1) Подается питание, и М1 проверяет, подключен ли 6010, читая из него ИД.
2) М1 передает в 6010 так называемый теневой код, проще говоря, прошивку. Для справки скажу, 6010 и без такой загрузки представляет из себя вполне функциональное устройство. Умеет работать на 400 и 800 cpi и выполнять абсолютно все команды. Но в "настоящий" превратится только после получения "тени". В общем, М1 всегда держит у себя в ROM 1986 байт некого DSP-кода и льет его в 6010.
3) М1 проверяет правильность загрузки. Делает это, кстати, неверно. Не проверяется, пошел ли на самом деле теневой код.
4) М1 подает команды настройки лазера с верификацией (излишняя педантичность).
5) М1 устанавливает 6010 в cpi-режим, о котором помнит с последнего нажатия кнопки "разрешение".
Усё... Далее начинается простой цикл. Назовем его WORK. Каждую 1 мсек М1 делает :
1) Читает ИД. Видимо, контрольная штука. Сдох\не сдох 6010.
2) М1 дает команду "че там у нас с движением". И читает из 6010 до 1 до 8 байт. Зависит от состояния 1-го байта, в котором есть флажок про то, было ли движение. В первых строках этого "письма" содержатся приращения координат, далее идет специфическая, но очень полезная инфа. М1, впрочем. ее не использует.
3) При нажатии кнопки "разрешение" М1 вставляет в цикл команды настройки cpi-режима.
Время транзакций в WORK у А4 может составлять почему-то аж до 600 мксек, хотя 180 хватило бы с головой.

Теперь, когда все знаем досконально, можно обсудить, что даст параллельное подключение М2.
В шпионском режиме Slave М2 может отловить цикл WORK, после чего у него будет 400 мксек, чтобы перестроиться в Master и самолично растерзать ADNS. За это время можно :
1) Узнавать специфику поверхности и ее освещенности.
2) Отключать 2 автоматических режима 6010 : выдержка (установить конкретную поменьше) и частота снимков, косвенно увязанная с первым (поставить как можно быстрее).
Пожалуй, все.
Разумеется, все можно сделать одной левой, не трогая плату, припаяв ATtiny. Однако, надо знать, какую цель мы преследуем. Сделать маленькую высоту отрыва ? Ну, базовый алгоритм написать - легко. Но TiN совершенно справедливо указывает : а как корректировать ПО М2 по месту ? Получается - на разъем, и работать с полуразобранной мышью.
Просто мне в первую очередь хотелось исправить кардинальные ограничения, которые решаются только на уровне М1.
Что же касается патча, то вот :
#77
Пожалуйста, можно собирать. Полный вариант, боле ничего не нужно. Наверное, с 6-и контактным разъемчиком - выдергивать и переставлять в самопальный адаптер программатора.
Дело в том, что все это я и так ранее ощупал, правда, в другом виде, и самого простой патч не устраивает. Мне ведь не только мышь нужна. Буду менять М1. Однако, serj, ты прав : патч - весьма полезная штучка. Надо что-то конкретное и в таком виде сотворить, только я не знаю, что именно. Поэтому не помешали бы предложения, что перестроить в 6010 и, главное, с какой целью. И прошива будет моментом. Подходящий "стендик" есть.


 

Hardware Nightmare
Статус: Не в сети
Регистрация: 14.09.2003
Откуда: Taipei, Taiwan
шальная мысль: Прицепить в качестве М2 какой-нибудь MК с встроенным радио, для конфигурирования и настройки, например Cygnal. Соответсвенно рядом с мышью ставим программатор-конфигуратор, с таким же радио - и настраиваем что душе угодно :)


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Walkie, а надо ли настраивать?
Ну ладно, давай по полочкам, что может делать такой device...
(к сожелению, я нифига не понимаю в вопросе, потому часто буду говорить глупости, sorry)
1. мы можем смотреть качество поверхности и динамически подстраивать сенсор. Т.е. сделать более умную автоматику адаптации.
2. при неподходящем рельефе поверхности умышленно уменьшать освещенность. Поясню...
Для автокорреляционной функции самый лучший вариант - одная яркая точка. Такую ни с чем не перепутать и ее смещение будет отлавливаться однозначно. Если взять обычные коврики а-ля Nova, то там периодический рисунок. Есть и более гадкие варианты, когда ячейки маленькие.
Если уменьшить яркость, то из сетки останутся только полосочки.
3. высокая частота опроса - наверняка зло. При повышении скорости работы ПЗС падает ее четкость.
Т.о., можно опрашивать смещение и если оно велико, то увеличивать частоту снимков.
Если в сенсоре есть какие-то разновидности быстрой-медленной обработки, то тоже, адаптивно от скорости.
4. по отрыву ... а что его настраивать? Сделать как в LED. Главное, запретить сенсору выдавать смещение при некачественной картинке, т.е. при поднятой мыше.
5. ... есть смутные мысли по адаптации по переменному рельефу, надо доки смотреть.

Что настраивать то? ;)

Где-нибудь есть нормальное описание на 6010?
Если не затруднит, кинь ссылку.


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
serj.
Крутого описания не попадалось :). А пдф-ы Avago на их сенсорную мутоту здесь. Ничего особенного в этом 6010, полистаешь.
Сегодня в конце рабочего дня собрал вышеупомянутый патчик на ATtiny45, влепил пока в неиспользуемую мышку 750МК, заставил для начала шпионить за циклом и индицировать движение личным светодиодом. Вечером попробую кусочки из алгоритма настройки на конкретный коврик. Ну, как сам это представляю... Такая простенькая задача :
1) включили мышь, стоящую на родном ковре.
2) М2 кое-то посчитал, затем вырубил автоматы в ADNS, установил ему расчитаные фиксированные значения и больше никого не трогает.


TiN , вах :shock:... не, для меня такой вариант - переборчик.:)


Последний раз редактировалось Walkie 11.10.2008 0:31, всего редактировалось 1 раз.

 

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


 

Member
Статус: Не в сети
Регистрация: 06.06.2008
Откуда: Таганрог
Фото: 18
У :)... это не есть быть возможно. Картинка в этих датчиках - тестовая штука. Как только подается команда на запрос содержимого матрицы, навигация останавливается. Затем сенсору нужно : резет, прошиву и т.д. В общем, он с нуля начинает. Да и саму матрицу просто забрать - это ж целых 9 мсек.
И потом... что значит корр- не так сложна ? Ничего себе... Ни с AVR, ни с ARM при таком объеме обработки даже и близко не подходи. (Кстати, почему авто-... просто коррелятор - понятно, что база там такая). А алгоритм ? Разработать живой настоящий и положить на какой-то конкретный DSP можно, конечно, но это надо костьми лечь.

Поделюсь кое-какими результатами юзания патчика. serj, спасибо за наводку на такой вариант - очень удобная штука для проб поведения device "мышь" в разных режимах сенсора.
Вывел на корпус маленький разъем для подключения М2, все завинтил и попробовал вот что.
Мышь включается, лежа на однотонной поверхности и далее будет работать только на ней.
Если подключить М2 (можно воткнуть прямо в работающую мышку), то происходит следующее :
1) М2 производит накопление инфы о фотовыдержке, если мышка двигается и видит "хорошую" поверхность.
2) Когда инфа станет достаточно весомой (5 секунд сумарного движения), расчитывается : SHUTTER_MAX = среднее значение выдержки +25%.
3) ADNS устанавливается в режим фиксированного фрейм-рейта с почти максимальной частотой (7кГц).
4) Режим затвора остается автоматическим, но ограничивается не огромной дефолтной величиной, а SHUTTER_MAX.
5) М2 -> HALT, и его можно вынуть из разъема (а можно оставить - не мешает).

Был удивлен великолепной динамике. Особенно на тканевом черном ковре Everglide. Малые перемещения отрабатываются гораздо лучше. И вообще ощущение абсолютного соответствия рука-дисплей. Даже немного непривычно поначалу. На мониторе 1600х1200 (при передаче виндой 1:1) 1600cpi - удобнейшая чувствительность. Высота отрыва, разумеется, уменьшилась и, хоть не столь существенно, но зато сам характер отрыва-возврата стал очень хорошо контролируемым.
Снял графики. Высокая плавность при 500Гц поллинга. В режиме сенсора 1600 уверено держит скорость 2 м/с. Погонял для теста в старый добрый Q3 - получил большое удовольствие. Ни одна LED так здорово себя не ведет. В общем, покопошусь еще в этом направлении.


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

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


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

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


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

Перейти:  

Лаборатория














Новости

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