РадиоКот :: Мышь с интеллектом.
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Примочки к ПК >

Теги статьи: Добавить тег

Мышь с интеллектом.

Автор: Kvazar
Опубликовано 19.02.2009

Приветствую всех любителей что-то мастерить, дорабатывать и настраивать собственными руками, а также собственными лапами (применительно к котам).
Как видно из названия статьи, речь сегодня пойдет о мышах, но не тех, что любят зерно и пищат, а о компьютерном манипуляторе с простым и приятном (для кошачьей души) названием - мышь.
Собственно, ни для кого не секрет, что сейчас в продаже имеется изобилие различных мышек на любой вкус и цвет, однако ничто не сравнится с тем удовольствием, когда делаешь что-то собственными руками, и потом это "что-то" работает и радует глаз.
В этот раз все было так же. Как-то зашел я в гости к одному знакомому и увидел у него одну из таких мышей. Больше всего меня заинтересовала кнопочка, при однократном нажатии на которую, мышь выдавала серию из двух "щелчков". Однако на этом удивление закончилось, ибо отсутствие каких бы то ни было настроек не есть благо.
Итак, решено было замутить универсальную мышь, заточенную специально для игр, где приходится стрелять. Сразу видны такие условия:

1. Мышь должна быть универсальной, т.е подстраиваться под любую игру и в то же время не мешать простой работе за компьютером;
2. Должен быть хотя бы примитивный сегментный дисплей, с помощью которого можно выявить, какой сейчас режим выполняется;
3. Добавление других кнопок, кроме трех существующих (для стандартной мыши), не есть хорошо (правда я добавил одну, но она не для частого применения - об этом позднее).

Итак, для начала нам потребуется сама мышь. Специально для доработки была куплена одна из самых дешевых мышей. Тут есть одно обстоятельство. В общем, когда я купил свою мышь и разобрал её, то увидел, что мне повезло - платка была очень маленькая, и было полно места для размещения "нововведений". В то же время, до этого была мышь этой же фирмы, но там плата была большая, и места было гораздо меньше. В общем насчет конкретных моделей ничего не скажу, если вам попадется мышь, где мало свободного места, придется изобретать, как бы разместить в ней все задуманное.
Далее следует разобрать мышь. Естественно, внутри вы увидите (кроме всего прочего) три кнопки - правая, левая и средняя (если мышь с колесиком, как у меня, то средняя кнопка находится под колесом и нажимается при нажатии на колесо). Обычно кнопки бывают с тремя выводами, как у меня, с двумя в мышах я не видел. Суть работы проста до безумия: один из выводов кнопок не используется, другой подключен к микросхеме, которая послеживает за нажатыми кнопками, ну а третий подключен либо к нулевому проводу, либо к +5 В.
Так вот, на этом этапе проверьте, к чему подключены кнопки. Если кнопки подключены к нулю, то все отлично, и механизм работы таков: при нажатии кнопки, соответствующий вывод микросхемы мыши "садится" на 0, что воспринимается как нажатие.
Если кнопки подключены к +5, то механизм аналогичный - при нажатии кнопки на соответствующий вывод микросхемы подается 5 вольт, что опять же воспринимается как нажатие.
Разрабатывая устройство, я ориентировался на свою мышь - у меня при нажатии кнопки, соответствующий вывод микросхемы подключался к 0, под это дело и затачивалась прошивка. Если обнаружится, что при нажатии кнопки на микросхему подается +5 В, то придется прибегнуть к переделке, о сути которой я расскажу позднее.
Итак, вы проверили мышь и выяснили, что подается на микросхему при нажатии кнопок. Теперь пришло время схемы нового узла.

Схема

Как видим, схема довольно простая, лишь несколько замечаний. Применен семисегментный индикатор с общим катодом, прошивка заточена под него.
Кнопка S1 используется для того, чтобы в случае необходимости (врятли она появится) сбросить устройство.
В схеме есть одна интересная особенность. Выводы 6, 7 и 8 микроконтроллера используются одновременно и для вывода информации на индикатор, и для опроса клавиатуры (кнопок мыши). Естественно, можно было бы поступить и по-другому, выводов МК хватило бы, однако в данном случае я поставил перед собой именно такую задачу.
Теперь о сборке устройства.
Возьмите свою мышку и перережьте... дорожки, которые идут от кнопок мышки к микросхеме. Для чего? Вы наверно уже догадались, что теперь сигнал с кнопок будет поступать не напрямую на микросхему управления, а на наше устройство, а уже наш девайс будет решать, чего, сколько и в каком случае подать - с него сигнал идет на микросхему управления. Для наглядности - вам нужно сделать следующее:

Главное не перепутайте: к тому выводу микросхемы в мышке, куда изначально была подключена левая кнопка, подключите Вых. лев. нашего устройства, куда была подключена правая - Вых. правая, куда подключалась средняя кнопка - туда Вых. средняя. Если что-то перепутать, то, например, нажатие на левую кнопку будет восприниматься как нажатие средней, смотря что перепутать :
Все это описано для того случая, если кнопки у вас висят на 0. Как быть, если кнопки на +5В? Быть очень просто.
1. Можно менять прошивку;
2. Использовать инверторы.
Как менять прошивку и почему именно так, разговор особый. Я просто опишу, как использовать инверторы. Сейчас не проблема их достать, они бывают в различном конструктивном исполнении, лучше всего брать в смд исполнении. (Тем, кто не знает - инверторы - это микросхемы логики, выполняющие функцию НЕ)
Итак, потребуется 6 инверторов. Как их подключать - дело очевидное.

В общем, ничего кардинально не меняется. Возможно, кому-то будет непонятна роль резисторов R4-R6. Специально для них напомню - выводы 6, 7 и 8 микроконтроллера работают одновременно на вход и выход. Если исключить резисторы R4-R6, то возможна ситуация, когда на выводах микроконтроллера высокий уровень (активны соответствующие сегменты), а с инвертора поступает низкий уровень (нажата кнопка). В результате возникнет конфликт. Так вот резисторы R4-R6 как раз не допустят этого.
Роль резисторов R1-R3, думаю, ясна - когда кнопки не нажаты, то входы инверторов будут висеть в воздухе, что очень не рекомендуется. Таким образом, когда кнопки не нажаты, на входе инверторов низкий уровень, что нам и требуется.
В принципе, инверторы на входе можно не ставить, если у кнопок перерезать дорожки и подавать на них 0. Тогда входные соединения нужно выполнить по исходной схеме. Однако, инверторы на выходе исключить никак нельзя - уж если микросхема в мышке срабатывает на высокий уровень, то тут никак не выкрутишься, разве что самому изготовить микросхему.
Питание для нашего девайса и для микросхемы инверторов (если они используются) берется прямо с платы мышки. Там есть колодка, куда подключается интерфейсный провод, идущий к порту компьютера, и в колодке обязательно имеется, кроме прочего, два провода - 0 и +5 вольт. Вот туда и подключайте все нововведения. Собственно, вот и все описание конструкции.

Теперь я расскажу об устройстве в целом.
Мышь имеет 2 режима работы - нормальный режим и режим с повтором. Из режима с повтором можно выйти в меню - там можно настраивать параметры режима с повтором.
Каждый раз при включении компьютера (или чего-то иного, к чему подключена данная мышь, последняя будет работать в нормальном режиме - на дисплее символ Н (как на фотографии):

В этом режиме мышь работает как любая стандартная - повторяет все за пользователем, ничего не "привнося" от себя
Если одновременно и кратковременно нажать все три кнопки, мышь перейдет в режим с повтором:

В этом режиме при однократном нажатии на левую кнопку, мышь будет выдавать серию из n импульсов длительностью t (прямо как определение по высшей математике). Число импульсов и интервал между ними задаются в меню. Этот режим можно отключить в меню.
Кроме того, в режиме с повтором может работать залипание правой кнопки - типа нажали 1 раз - кнопка будет "нажата" до тех пор, пока еще раз не нажмем. Этот режим тоже можно отключить в меню.
Если в режиме с повтором нажать и держать среднюю кнопку более 5 секунд, то мышь перейдет в режим меню.
При входе в меню, нажатие кнопок мыши не передается в компьютер, то есть дальше нашего самодельного блока не уходит. Как только мы вошли в меню, на дисплее будет приглашение настроить число импульсов:

Если нажать правую или левую кнопки, то начнется настройка - на индикаторе можно видеть число импульсов:

Например, 8 в нашем случае. Если выставить 0, то режим "выдачи импульсов" для левой кнопки вообще будет отключен, т.е. в режиме с повтором при нажатии на левую кнопку мышь будет работать в стандартном режиме.
Решив, что настроили число импульсов, жмем среднюю кнопку и опять увидим приглашение к настройке (прочерк).
Жмем среднюю кнопку и перейдем к следующему пункту меню - приглашение к настройке паузы между импульсами:

Настраивать - правой или левой кнопками. При настройке на дисплее будут цифры, можно выставить от 1 до 9 (ноль - нельзя. Импульсы с паузой 0 импульсами не являются). Следует заметить, что цифры как таковые ничего не значат (вообще в прошивке они привязаны кое-к-каким процессам, но внешне ничего не показывают) Чем больше цифра - тем больше пауза. Например, для игры Far Cry при стрельбе из пистолета оптимальная пауза 5.
Нажатие средней кнопки приведет к возврату в режим приглашения к настройке паузы.
Жмем среднюю кнопку - перейдем к пункту меню - приглашение к настройке залипания правой кнопки:

Как обычно, нажатие левой или правой кнопок приведет к настройке этого режима. При настройке всего два пункта - режим залипания разрешен:

и режим залипания запрещен:

Опять же, нажатие средней кнопки приведет к выходу из настройки в режим приглашения к настройке. Если опять нажать среднюю кнопку, вернемся к приглашению к настройке числа импульсов, т.е. "сделаем круг".
Чтобы выйти из меню (при этом мы находимся в режиме приглашения к какой-либо настройке), нужно нажать среднюю кнопку и держать её больше 5 секунд. После этого произойдет выход в режим с повтором, и установленные параметры будут работать.
Замечу, что при выключении, все параметры не нужно будет заново настраивать, - при следующем включении произойдет загрузка предыдущих значений.
При правильной сборке устройство начинает работать сразу, не требуя никаких настроек.
Фотографии готового устройства:

Датчик мыши пришлось закрыть листом бумаги, чтобы не светил прямо в объектив.
При изготовлении устройства лучше всего использовать смд компоненты, в том числе и микроконтроллер. Печатную плату для устройства нужно стараться делать как можно меньше - все-таки в мышке особо не развернешься.
В качестве индикатора можно использовать любой одноразрядный семисегментный индикатор с общим катодом, лишь бы он вам самим нравился. Модель своего указать не могу, нашел где-то в закромах с затертым наименованием.
Вот вроде бы и все. Надеюсь, что никаких проблем при сборке не возникнет, и вы сможете гордиться тем, что имеете мышь, которую нельзя купить в магазине :
Печатную плату не выкладываю, ибо она самому мне не очень понравилась, да к тому же я использовал как смд, так и обычные детали.

Файлы:
Прошивка МК.

Вопросы, как обычно, складываем тут.




Как вам эта статья?

Заработало ли это устройство у вас?

11 3 1
1 0 0