Из газеты Optron #13, Львов, 13.06.98 +====---- ¦ ¦ Kempston mouse ¦ ¦ ----====+ (C) Рашпиль, Сергей Филимонов Сидел я как-то за компом и благополучно юзал свою бесценную мышку - в "UFO 2" иг- рался. Юзал я, юзал, и вдруг осознал, ка- кой я нехороший человек (редиска) - сам тут со всеми удобствами играюсь, а бедные юзеры вынуждены клаву топтать, играя в то же "UFO". И решил я тогда подробно напи- сать в "Оптроне", как же можно заиметь се- бе такой удобнейший девайс, как мышь. Итак, начнем по порядку. --== Выбор типа интерфейса ==-- Так уже исторически сложилось, что на просторах СНГ получили распространение два типа "мышатых" интерфейсов: AY-mouse и Kemston mouse. Лично мне наиболее симпати- чен второй из них. Почему? Да потому, что AY-mouse при всей простоте подключения имеет ряд недостатков: это и слишком ма- ленькая разрядность слова координат и то, что "лепится" она непосредственно к AY'ку. Здесь уместно сказать, что во-первых, в данном случае подвергается дополнительной опасности столь дорогая микросхема, как музыкальный сопроцессор, а во-вторых, как известно, существует интерфeйс принтера, который подключается к AY, следовательно, обладатели сего девайса уже не смогут подключить себе AY-мышку. А самое главное - AY-mouse понимает слишком малое коли- чество софта. Что же касается Kempston Mo- use, то ее понимает не только отечествен- ный, но и некоторый фирменный софт (в том числе и "Art Studio" - рисовать мышкой намного удобнее чем руками ;))))))). Ну что же, тип интерфейса мы выбрали, пора и сам манипулятор прикупить. --== Выбор манипулятора ==-- Как говорится, "на вкус и цвет товарищей нет". Поэтому берите то, что на вас смот- рит. Дам только пару советов. Не покупайте дешевое барахло за 7-9 гривен. Почему? Во-первых, осмелюсь напомнить поговорку "скупой платит дважды". Во-вторых, я по своему опыту знаю, что такую мышку очень сложно, а скорее всего невозможно "приру- чить". И в-третьих: "Это же не эстетично!" Хотя... см. выше. Наиболее приемлемый ва- риант - мышка Genius. Мышка обязательно должна иметь три кнопки: есть очень вред- ные программы, которые любят юзать среднюю кнопку. Купив мышку, обязательно проверьте ее (на PC). Если что-то будет не так, то мышку, купленную в приличной фирме, можно обменять в течение недели (естественно, если вы сохраните чек). Если вас не очень беспокоит внешний вид манипулятора и очень беспокоит состояние вашего кошелька, то можете "отодрать" мышь от какого-нибудь "Корвета" (это компьютер такой :)) - это будет стоить вам копейки. Так. Мышка есть. Можно отложить ее в сторону и заняться интерфейсом. --== Схема интерфейса ==-- Представленная ниже схема является моей переработкой трех других схем интерфейса - от каждой схемы были взяты достоинства и отброшены недостатки. Кое-какие новшества были введены по совету Тараса Николайчука. Перед тем, как представлять схему, сде- лаю одну оговорку: если вы сами не в сос- тоянии собрать такую довольно сложную схе- му (не умеете паять, лень, некогда и т.п.), то можете немного подождать и через неделю-две сможете купить совершенно новый интерфейс кемпстон мышки у Сергея Филимо- нова. А вот собственно и схема:
DD1-DD4 - 561ИЕ11 DD5,DD6 - 555КП11 DD7 - 555ИД7 DD8 - 555ЛП8 DD9 - 561ТМ2 R - 1кОм Дешифрация портов мышки собрана на ИД7 и одном свободном элементе ЛП8, в данной схеме выполняющем роль логического сложе- ния. Для подсчета координат используются ре- версивные четырехразрядные счетчики, объе- диненные попарно для увеличения разряднос- ти до восьми для каждой координаты. Для простоты рассмотрим участок схемы, отвеча- ющий за подсчет координаты "X" (обработка координаты "Y" осуществляется аналогично). На тактовый вход C счетчиков DD1 и DD2 по- ступают импульсы с оптопары мышки после формирователя. На выводы 10 (направление счета) необходимо подать либо логический "0" при движении мышки в одну сторону, ли- бо "1" при движении обратно. Идея Тараса Николайчука была в том, чтобы поставить элемент микросхемы 561ТМ2, который и будет выдавать уровень "0" или "1" соответствен- но (с выходов мышки Xa и Xb, как известно, идут прямоугольные импульсы с опозданием в четверть периода друг от друга). В преды- дущих схемах мышки на счетчиках на 561ИЕ11 подобная идея мне (С.Ф.) не встреталась. Импульсы, идущие на вход направления дви- жения мышки не сосвсем удачно гасились различнымы емкостями, что во-первых, влек- ло за собой подергивание курсора при дви- жении, а во-вторых, возникала инерцион- ность при изменении направления движения по соотвествующей координате. Основное достоинство кемпсон мышки - это независимость ее работы от процессора. Счетчики координат инкрементируются (дек- рементируются) при перемещении девайса, а информация из них считывается при помощи KП11 в любое удобное для программы время (не обязательно по прерываниям, можно и реже, главное, чтоб частота обращения к мышке была больше частоты переполнения счетчиков). Здесь, кстати, видно явное преимущество перед AY-mouse. Поскольку последняя - четырехразрядная, то счетчики ее переполняются в 16 (2 в четвертой сте- пени) раз чаще, следовательно, процессору надо к AY-мышке в 16 раз чаще обращаться! Информация о состоянии трех кнопок мышки выдается процессору через элементы ЛП8 с третьим состоянием. --== Переделка мышки ==-- Если вы купили мышку за свои кровные, то вам необходимо смириться с одним фактом - мышке предстоит хирургическое вмеша- тельство. Открываем мышку, предварительно выныв шарик, и что мы видим?.. Кучу не совсем полезных для нас деталек. Первым делом вы- кидываем все ненужное - процессор (не удивляйтесь, есть процессоры и с 18-ю нож- ками, а иногда и с 8-ю ;))) ), кварц, кон- денсаторы, транзисторы. Диоды и резисторы лучше не трогать. После такого вмеша- тельства в мышке должны остаться: два дис- ка с прорезями с прикрепленными к ним ро- ликам, две оптопары, три "микрика" под кнопки и несколько резисторов. Для начала самое простое - кнопки. Для каждой кнопки делаем следующую "доработку":
Дальше - больше, нам надо преобразовать аналоговые сигналы, идущие с оптопар, в сигналы прямоугольной формы, чтобы их можно было обрабатывать счетчи- ками. Правильнее всего было бы для этой цели использовать триггер Шмитта, но есть одно "НО": нам нужна микросхема 561ТЛ1 (ТТЛ-овские элементы в данном случае ис- пользовать нежелательно), а ее в нашем ре- гионе сложно найти, а больше КМОП-вских триггеров Шмитта нет. Поэтому я делаю так:
В качестве инверторов используются 561ЛН2, резистор сопротивлением по- рядка 47-51 кОм. В результате сигнал приобретает прямоугольную форму, что, собственно, и показано на рисунке. Вот и все. --== Заключение ==-- Если вы все сделали правильно, то могу вас поздравить - вы стали обладателем са- мой настоящей Кемпстон Мышки! Если же вдруг возникли проблемы, то звоните: чем смогу - помогу. Телефон во Львове: 67-60-45, спросить Владимира. В следующий раз я расскажу, чем же явля- ется мышка для программиста и как с нею совладать. А пока для затравки дам только порты интерфейса: #FADF - кнопки, разряды 0-2; #FBDF - координата X; #FFDF - координата Y. --== Post Scriptum ==-- Если в вашем компьютере есть интерфейс кемпстон джойстика (наличие самого манипу- лятора не обязательно), то могут возник- нуть конфликты между мышкой и джойстиком. Для их устранения я могу посоветовать за- менить A5 в дешифрации джойстика на A6. Для "Львовского варианта" это будет 9-я нога D65 (ЛЕ1): аккуратно окусываем ножку кусачками у самой платы, отгибаем и соеди- няем с 36-й ножкой процессора. Как реали- зовать подобную вещь в таком патологе, как Miko-Best я уже рассказывал в 8-м "Оптро- не".