Мыши: W-Mouse (страница 2)
Этап 3
Программное обеспечение в W-Mouse обновляется через интерфейс USB. Но вот беда, для обновления в микроконтроллере должна быть хотя бы простейшая программа, а на данный момент в микросхеме ничего нет. Придется прошивать, как это ни печально. Можно воспользоваться CodeVisionAVR и прописать загрузчик. Самым простым будет воспользоваться интерфейсом LPT, для чего паяется такая схема:
Не забудьте соединить корпус разъема с GND (выводами 18-24), это уменьшит вероятность сгорания LPT при подключении/отоединении разъема.
Замечание - у меня был случай, когда этот вариант подключения не работал. Я потратил некоторое время, пока не понял, что резисторы R1-R4 слишком большого номинала. Замена их на 100 Ом решила проблему. Напряжение +5V можно взять с кабеля USB. В отличии от 5 В с компьютерного блока питания, напряжение USB имеет внутреннюю защиту от короткого замыкания и 'если что' не приведет к особо неприятным последствиям. Еще один момент, теперь уже по программе - CodeVisionAVR в DEMO режиме записывает только файлы очень маленькой длины. Загрузчик имеет бОльшую длину и DEMO вариант не пройдет.
После запуска программы откроется ее окно. Идете в настройку аппаратуры и выставляете режим работы - LPT.
реклама
Если у Вас LPT имеет другой адрес, то его можно/нужно поменять.
Если все хорошо, то можете втыкать разъем в LPT порт компьютера и подавать напряжение питания 5 вольт. Подключать надо строго в такой последовательность - вначале разъем LPT, а уж затем питание. Отключение делать в обратной последовательности - вначале отключать питание, а уж затем вынимать разъем LPT.
После подключения можно запустить программу и попробовать достучаться до микросхемы. Для чего открываете в CodeVisionAVR раздел программатора. Кстати, та версия программы, что применял я, не работала на Windows версии x64. Итак, первое, что надо сделать, это прочитать сигнатуру. Должно быть такое окно:
Если в верхнем ряду цифры 0FFh, 0FFh, 0FFh, то вы не подали питание 5 вольт. Проверяйте, бывает.
Но может выскочить такое сообщение:
реклама
Проверьте питание 5 вольт. Если не в нем дело, то - может Вы забыли включить устройство LPT в BIOS?
Идем в BIOS, смотрим настройки аппаратуры. Если LPT выключен, а по умолчанию он включен, то включаем его. Для улучшения работы и повышения надежности крайне рекомендую переключить режим работы с SPP на EPP. По всем параметрам он полностью совместим с SPP, но увеличивает ток буферных каскадов, что резко снижает шанс убить LPT. Фактически, у меня на моем тестовом оборудовании не сгорел ни один порт LPT в режиме EPP, а вот с режимом SPP случаи бывали и не один. И дело не в криворукости, кабель может вылететь сам по себе в самый подходящий момент. (и не всегда его затягиваешь, коммутация часто делается 'на пару минут'). Положим, этот шаг пройден удачно и переходим к следующему.
При прошивке не должно быть никаких ошибок и предупреждений.
После этого надо отключить питание и отсоединить разъем LPT. Отпаивайте провода к LPT и резисторы R1-R4, они больше не потребуются.
Этап 4
Теперь надо собирать всю схему. Часть деталей стоит расположить прямо на платке, а часть, особенно крупных, удобнее вынести и закрепить на плате мышки. Это относится к кварцевому резонатору. Полная схема прилагается в файле прошивки, здесь я приведу и буду говорить об упрощенной схеме, в которой убрано всё то, чего не надо переделывать.
В начале доработки Вы должны отсоединить трассы от элементов, которые будут подключены к новому контроллеру. Это касается всех кнопок, переключателя скролла, двух выводов светодиода (от них отходят трассы к резисторам, достаточно удалить эти резисторы) и два сигнальных вывода USB (они выходят через резисторы, их можно просто снять). Обращаю внимание, выводы земли и 5В должны остаться подключенными - через них запитается стабилизатор 3.3В на печатной плате. По микросхеме датчика - от него надо отключить все трассы, которые подходят к выводам 1,2,3,6,7. Будьте внимательны, кроме датчика к этим трассам подключена микросхема памяти в корпусе SO8. Я случайно оставил подключенной одну из цепей и мышка работала весьма странно.
После отключения компонентов от трассировки, необходимо произвести коммутацию под новый контроллер. Для этого вначале подключите выводы кнопок на землю, это уменьшит нахлесты проводов. По переключателю скроллинга - в нём не понятно, где первый вывод и где третий. Это просто, третий вывод, который соединяется с цепью GND, находится ближе к центру платы.
Резистор R11 лучше припаять прямо на контактные площадки или на выводы датчика, а вывод 7 соединить проводом с выводом 18 датчика. Немного о компонентах.
Блокировочные конденсаторы можно поставить любые, любого размера и емкости. Если есть 'убитое' устройство с SMD монтажом, то оттуда берутся самые большие конденсаторы и ставятся на место С1 и С2. Можно поставить несколько конденсаторов. Конденсаторы С3 и С4 обеспечивают устойчивое возбуждение кварцевого генератора. Их номинал должен бы выбираться из конкретной модели кварцевого резонатора .... но если есть проблемы с приобретением, то попробуйте их пока вообще не ставить. Думаю, и так будет работать нормально.
Резисторы R1 и R2 можно использовать те, что были ранее сняты с этих цепей платы мышки. Номинал может несколько отличаться, но это не особо существенно. Резисторы R3 и R4 задают яркость свечения светодиода. Если слишком ярко, то их сопротивление надо увеличить. Если тускло, но уменьшить. Для моделей мышек, в которых светодиод подсвечивает прозрачное колесико скроллинга, необходимо устанавить бОльшую яркость, поэтому номинал резисторов R3 и R4 нужно уменьшить до 330 ом. Для этого можно использовать резисторы, уже присутствующие на плате мышки.
реклама
Резисторы R5, R7, R9 и R6, R8, R10 задают делитель для согласования уровней микроконтроллера (5 вольт) и датчика (3.3 вольта). Их ставить обязательно, иначе датчик сгорит (по опыту автора проекта). Номинал не столь существенен, но взаимное отношение верхних резисторов к нижним должно сохраниться, хотя бы примерно. Резистор R11 может быть весьма произвольной величины. По расположению кнопок.
Этап 5
После сборки надо проверить правильность монтажа, отсутствие замыканий и измерить сопротивление цепи 5 вольт на землю, замыкания быть не должно. Если все в порядке, то можно подключить разъем USB к компьютеру и посмотреть результат. Windows должен найти новое устройство и не выдать предупреждения, что устройство работает неправильно. Если Вы все же получили такое сообщение, то поменяйте местами провода подключения USB2 и USB3. При включении мышка должна поморгать красным-зеленым, что говорит о работе мышки в режиме загрузчика. Затем надо запустить программу обновления программного обеспечения Wfirm. В одном каталоге с программой должен лежать файл прошивки Wmouse.hex. После записи программы надо вынуть и вставить кабель USB, программа запустится в режиме "мышка". Если нужно перевести мышку в режим "загрузка", то при подключении разъема USB надо удерживать нажатым колесико скроллинга. Мышка загрузится, моргнув несколько раз зеленым. Все, дальше ею можно пользоваться. Для настройки параметров мышки служит программа Wcontrol.
Программа настройки W-Control
У меня для модели 750 это выглядит так:
Current - ток лазера. Обычное значение чуть меньше 8 мА. Как правило, оптимальные значения находятся в диапазоне 9-10 мА. В данном случае установлено 12 мА, что вызвано проблемами с оптикой. Не рекомендуется просто так 'задирать' ток, лазер может помереть. Хотя, при 12 мА это вряд-ли случится. Shutter - настройка блока управления матрицей.
Center - та величина, вокруг которой будет меняться параметры приемной матрицы для поддержания высокого качества картинки. В лично моей версии, которая и прикладывается к статье, параметр "Center" работает иначе, он просто устанавливает фиксированное значение без какой-либо авто настройки.
AG - авто настройку параметров делает сам датчик ADNS-6010, параметр "Center" игнорируется.
Value - текущее значение "Center"
Max Pixel - количество пикселей с максимумом. Чем больше, тем контрастнее картинка, тем лучше работает датчик на этой поверхности.
Surface - качество поверхности.
Lock, UnLock - пороги триггера на включение и выключение движения мышки от величины Surface (качество поверхности). Если качество падает слишком низко, что обычно случается при подъеме мышки, то срабатывает триггер и останавливает движение. Это один из приемов, которые позволяют W-Mouse уменьшать высоту отрыва.
Profile - раздел по настройке нескольких профилей. Сами профили переключаются по кнопке DPI на верху мышки. Лично в моей версии прошивки с этой кнопки снята функция переключения профилей и эта кнопка работает в обычном виде, как и все другие. Профиль можно переключать или 'руками' через программу Wcontrol или путем создания профилей запуска приложений и добавления в параметры запуск программы Wcontrol с числом нужного профиля. Тогда при запуске приложения автоматически будет ставится тот профиль, который нужен именно для этой программы. Т.о., кнопка переключения профиля на мышке не обязательна, а вот рабочих кнопок всегда не хватает.
Curve - вид кривой динамического ускорителя. 0 соответствует линейной зависимости.
Smooth - дополнительный фильтр с частотой среза 30 Герц, повышает устойчивость мышки с минимальным вредом.
S min, S max - порог минимальной и максимальной чувствительности мышки
V min, V max - порог минимальной и максимальной скорости
V - текущая скорость перемещения мышки. За результирующее значение берется модуль вектора по обоим осям без фильтрации шума, поэтому значения могут быть несколько больше действительного перемещения. Например, я получал устойчивое число 2100 мм/сек на переделанной мышке 750, при этом мышка находилась на стенде и 'перемещалась' со скоростью 1700 мм/сек. Хотя, при этом было небольшое перемещение по оси Y, порядка 200 единиц.
Whell - раздел по настройке скроллинга.
Reverse - колесико можно инвертировать, если Вы случайно перепутали выводы переключателя или просто привычнее прокручивать колесико в противоположном направлении.
Accel - степень ускорения колесика. Идея та же, что и у динамического ускорителя движения мышки - чем энергичнее Вы крутите колесико, тем быстрее оно крутится. Вряд ли это пригодится в играх, ну только если сделать 'пулемет' из пистолета, а вот при просмотре страниц в интернете может оказаться полезным. Верхний правый угол - при нажатии на окошко делается снимок поверхности. Для того, чтобы на картинке сразу были заметны насыщения, эти места выделяются цветом. Верхний нижний угол - на кнопки мышки можно назначить действие по 'нажатию' кнопок на клавиатуре.
Крайне рекомендуется хоть раз нажать кнопку "Unbind ALL", иначе могут быть фантомные глюки с переключателями. Не забывайте нажимать кнопки TEST и SAVE.
Выражаю благодарность Walkie за интересный проект.
Комплект документации по проекту W-Mouse.
Проект W-Mouse обсуждается в теме 'Лазерный оптический сенсор'.
Страницы материала
Теги
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.


Комментарии Правила