Своими руками

ДЖОЙСТИК С КЛАВИАТУРОЙ?

04.08.2015
ДЖОЙСТИК С КЛАВИАТУРОЙ?Чем проще клавиатура компьютера, тем большее количество клавишей (кнопок) необходимо нажать поочередно или одновременно, чтобы ввести тот или иной символ. Например, для ввода в персональный компьютер (ПК) типа ZX-SPECTRUM русской прописной буквы со штатной клавиатуры необходимо воспользоваться вначале кнопкой, определяющей, что вводится буквенный символ, а не команда. Далее нажимается вторая кнопка. Ею пользователь сообщает компьютеру о своем выборе шрифта кириллицы вместо латиницы. Потом наступает черед третьей кнопки. Определяющей, что будет вводиться прописная, а не строчная буква.
 
Существенно повысить оперативность ввода разнообразной символьной (особенно — текстовой) информации путем уменьшения потребного количества регистров (одновременно нажимаемых кнопок) позволяет так называемая расширенная клавиатура. Однако у нее свой недостаток: крупные габариты вследствие большого количества кнопок. Для любителей компьютерных игр, в которых, как правило, в работе находится лишь несколько нажимных элементов, это создает дополнительные неудобства. Таким пользователям нужно компактное устройство ввода информации в ПК, которое, размещаясь «на ладони» и удачно дополняя джойстик, состояло бы всего-навсего из нескольких кнопок.
 
Разумеется, использование миниклавиатуры в компьютерных играх влечет за собой неизбежное повышение степени комбинационности (увеличение количества одновременно нажимаемых кнопок). Но ведь и истребуемое число символов (букв и цифр) здесь далеко не безгранично, к тому же часто употребляемые комбинации легко запоминаются в процессе самой игры. Зато появляется реальная возможность объединения джойстика и дополняющей его мини-клавиатуры в удобный компактный пульт.
 
В частности, такой пульт неплохо бы иметь для компьютерных игр на ZX-SPECTRUM. Здесь наиболее популярны джойстики в виде пяти кнопок, работающих на замыкание. По признанию многих пользователей, эти устройства удобнее рычажных. Но программы самих игр зачастую не ограничиваются возможностями 5-кнопочного джойстика, настоятельно требуя еще и неоднократного обращения к штатной клавиатуре ПК. А при смене игры без нее вообще не обойтись: ведь нужно нажать на кнопку начальной установки (НУ), для чего приходится встать с любимого кресла или дивана и подойти к компьютеру, который обычно расположен в отдалении От джойстика. К тому же встречаются игры, рассчитанные лишь на использование клавиатуры ПК.
 
Короче, возникает настоятельная необходимость в передаче джойстику не свойственных ему прежде «клавиатурных» функций (тем более, что имеющиеся пять кнопок позволяют использовать немало дополнительных, не востребованных ранее комбинаций). Для этого нужно реализовать схемное решение ряда сложных логических преобразований, каждое из которых, в свою очередь, невозможно без соответствующей элементной базы.
 
Преодоление комплекса возникающих здесь проблем существенно облегчают программируемые логические матрицы (ПЛМ)— микросхемы 556РТ1, имеющие выходы с общим коллектором. Достаточно даже одной такой МС, чтобы не только успешно реализовывать все возможные комбинации 5-кнопочного джойстика (см. принципиальную электрическую схему), но и обладать «запасом электронной памяти», позволяющим исправлять ошибки программирования и даже менять «задействованные» буквы и цифры на другие, прежде не использовавшиеся в собранной, конкретной конструкции.
 
Требуемые логические функции в микросхеме ПЛМ составляются заранее — пережиганием перемычек, которыми располагает ее кристалл, с помощью программатора. Для самодельной джойстик-комбинационной клавиатуры это выполняется в соответствии с прилагаемой ниже таблицей.
 
Кнопки джойстика S1 — S5, обозначенные в таблице и на принципиальной электрической схеме стрелками «→», «←», «↑», «↓» (направление совпадает с изображением на кнопках и вызываемым ими движением объекта игры на экране), а также буквой С (стрельба), подключаются через инверторы к порту джойстика (шины DV0 — DV4) и через программируемые логические матрицы (МС типа 556РТ1) — к порту клавиатуры (шины KL0 — KL4).
 
Указанные шины подведены к микросхемам, которые в ZX-SPECTRUM ленинградского исполнения условно обозначены как D37 и D38. Требуемое подключение — по варианту, хорошо зарекомендовавшему себя на практике. В частности, выход В6 программируемых логических матриц (вывод под номером 12) надо соединить с шиной НУ компьютера, а входы ПЛМ — с адресными шинами А8 — А15 процессора и выходами S1 — S5 джойстика.
 
В кодах, приведенных в таблице, прожигаемая перемычка обозначается как лог.»1”. Ее разряд для матриц «И» соответствует разряду адресных, а для матриц «ИЛИ» — разряду выходных шин. При соблюдении такой адресовки легко ориентироваться, да и ошибки программирования практически исключаются. То есть если, например, в табличной графе о прожигаемых инверсных перемычках «И» стоит FFFE, значит, сохранена инверсная перемычка самого младшего адресного разряда, а все инверсные перемычки остальных адресных разрядов прожжены.
 
Аналогичен подход и к адресовке прямых (неинверсных) перемычек при их прожиге. Скажем, если необходимо сохранение целостности перемычки самого старшего адреса, то был бы указан код FFF7. Соответственно: на необходимость оставить неповрежденной при программировании перемычку «ИЛИ», относящуюся к старшему выходу, будет указывать код F7. Ну а участь всех перемычек матрицы «НЕ» — непременное прожжение.
 
48 логических линеек, имеющихся в ПЛМ, позволяют, в общем случае, создавать столько же независимых логических функций. Но для реализации джойстик-комбинационной клавиатуры вполне хватает 31 линейки; остальные же можно использовать в качестве запасных. К последним, в частности, обращаются При возникновении ситуации, требующей замены какой-нибудь буквы. Тогда в соответствующем логическом элементе «ИЛИ» прожигаются все перемычки, то есть записывается FF. В результате — определенная линейка отсоединяется от выхода, а вместо нее программируется новая, строго «увязанная» с уже другой буквой.
 
Нелишне подчеркнуть: для каждой запрограммированной логической линейки оставлены такие перемычки, которые при заданной комбинации кнопок джойстика обеспечивают поступление сигнала, соответствующего указанной букве, на нужный выход ПЛМ. Причем — с адресной шины процессора! Следует также отметить, что для составления требуемой «прошивочной» таблицы достаточно иметь (или помнить) хотя бы функциональную схему ПЛМ, не отличающуюся, кстати, особой сложностью.
 
Принципиальная электрическая схема доработки джойстика (придания ему функций дополнительной мини-клавиатуры)
 
Принципиальная электрическая схема доработки джойстика (придания ему функций дополнительной мини-клавиатуры)
 
Действительно: все 16 входов ПЛМ рассчитаны в самом общем случае на подключение (через существующие перемычки) к прямым и инверсным входам 48 логических элементов типа «И». Выход всякого «И» заранее соединен здесь (через перемычку и 48-входовый элемент «ИЛИ») с каждым выходом ПЛМ. Нельзя также не подчеркнуть, что выходы ПЛМ имеют инверторы, подключаемые при прожигании их перемычек.
 
Поскольку активному состоянию выхода клавиатуры присущ логически низкий уровень, а кнопки джойстика при нажатии соединяются с нулевой шиной, то входную функцию «И» между нажатыми клавишами джойстика и требуемым адресным сигналом для выбранного вводимого знака нужно реализовывать по лог.«0». При этом логические элементы «И» проинвертируют сигнал.
 
Однако для обеспечения работоспособности всего устройства необходимо, чтобы выходной сигнал не оказывался инверсным и в состоянии, когда не нажата ни одна кнопка, на всех выходах ПЛМ была логическая единица (высокий импеданс, так как сам выход — с открытым коллектором). Вот и приходится инвертировать UВЫХ еще раз, что невозможно без предварительного прожигания перемычек матрицы «НЕ».
 
Теперь об инверсных перемычках матрицы «И». Целыми при программировании оставляются для каждого вводимого знака лишь те из них, которые относятся к входам ПЛМ, подключенным к нажимаемым кнопкам джойстика и к адресному разряду процессора, соответствующему вводимому знаку.
 
Достаточно жесткий подход и к судьбе неинверсных (прямых) перемычек матрицы «И». В числе действующих здесь остаются при программировании только экземпляры, соответствующие входам ПЛМ, подключенным к ненажимаемым кнопкам джойстика с сигналом лог.»1". Да и в отношении перемычек матрицы «ИЛИ» соблюдается не менее суровое правило. Не пережигаются лишь те, что соответствуют выходам ПЛМ, на которые должен быть подан сигнал.
 
Например, буква «а», согласно таблице, вводится при одновременном нажатии трех кнопок джойстика с выгравированными на них стрелками — условными обозначениями «вверх», «вправо» и «влево». При этом на выход В1 микросхемы ПЛМ (самый младший разряд, подключаемый к шине KL0 порта клавиатуры) должно обеспечиваться поступление сигнала с адресной шины процессора А9.
 
Значит, входе программирования МС нужно оставлять целыми инверсные перемычки, соответствующие входам ПЛМ, подключенным к А9, и нажимаемым (создающим лог.»0") кнопкам «вверх», «вправо» и «влево». Это — перемычки входов А7, А4, А2, А1, которым присваивается лог.»0". Все остальные перемычки данного элемента «И» требуется прожечь: им будет присваиваться лог.»1".
 
То есть для буквы «а» кодом прожига инверсных перемычек матрицы «И» является FFB4 (с учетом того, что вход ПЛМ А16 — старший разряд в коде прожига, а вход А1 — младший разряд). Из числа прямых перемычек здесь нужно оставить только те, которые соответствуют входам А5, АЗ, подключенным к ненажимаемым кнопкам джойстика, на которых при вводе буквы «а» будет лог.»1". Остальные перемычки данной матрицы требуется прожечь.
 
Код прожига прямых перемычек для буквы «а» будет FFFB. В матрице «ИЛИ», относящейся к букве «а», нужно оставить лишь перемычку выхода В1, подключаемому ко входу KL0 порта клавиатуры ПК с приходом на него сигнала А9. Остальные имеющиеся здесь перемычки необходимо прожечь. Ну а кодом прожига матрицы «ИЛИ» для буквы «а» будет FE (при действительном соответствии выхода В8 старшему разряду кода и выхода В1 — младшему).
 
Помимо того, что джойстик подсоединяется к ПЛМ, он остается подключенным еще и к «своему» порту ПК (шины DV0 — DV4) через инверторы микросхемы D1 — в качестве устройства выдачи инверсных сигналов. То есть при передаче программой функций управления компьютером джойстику тот будет работать типичным образом, выполняя свои функции, а сигналы с ПЛМ и клавиатуры игнорируются компьютером. При передаче же управления клавиатуре последняя работает как обычно, а джойстик — как параллельно включенная другая клавиатура, которую можно отключить подачей лог.»1" на вход 19 выбора кристалла CS микросхемы ПЛМ. Для этого можно предусмотреть выключатель.
 
В микросхеме ПЛМ существует паразитная проводимость между входами. Проявляется ее наличие в том, что если какой-либо вход находится в состоянии лог.»0", то увеличивается потребление тока ближайшими соседними входами. Именно поэтому оставлен свободным вход А6, расположенный между входами, к которым подсоединен джойстик, и входами, к которым подключены адресные шины А Процессора.
 
Использовать рассмотренную выше схему целесообразно, если в компьютере «умощнены» шины адреса (чтобы не перегружать процессор). Такое улучшение обычно делается с помощью микросхем КР580ВА86, К555ЛН1 или других МС при подключении накопителя на гибких магнитных дисках. Однако и без умощнения схема вполне работоспособна.
 
Таблица прожигания перемычек программируемых логических матриц 556РТ1 для джойстик-комбинационной клавиатуры
 
Таблица прожигания перемычек программируемых логических матриц 556РТ1 для джойстик-комбинационной клавиатуры
 
Оказывается, что создателями ZX-SPECTRUM преднамеренно соединены входы порта клавиатуры (шины KL0 — KL4) с шиной питания 5 В через слишком большие сопротивления 15 кОм, дабы не увеличивать нагрузку на адресные шины процессора. В результате на входах вышеназванного порта происхо-дитчрезМерная затяжка фронта с лог.»0" в лог.»1" (из-за паразитной емкости порта и жгутов клавиатуры, а также вследствие работы диодов, включенных последовательно клавиатуре). Независимо от того, используется рассмотренная схема или нет, упомянутую затяжку фронтов рекомендуется снижать путем уменьшения номиналов указанных резисторов до 1 кОм: ведь попадаются игры, которые без этого «не слушаются» клавиатуры.
 
Например, на моем компьютере в карточной игре В.С.Медноногова «Подкидной» при нажатии любой кнопки происходило движение стрелки в случайном направлении выбора карты и выбора действия. Чтобы при уменьшении номинала резисторов не увеличивалась нагрузка на процессор, пришлось подавать сигналы на клавиатуру (точнее — на диоды, включенные с ней последовательно) через микросхему шинного формирователя КР580ВА86, соединив ее управляющие входы 9 и 11 с нулевым проводом.
 
В результате предпринятых мер микросхема стала работать с передачей сигналов без инверсии, усиливая их (с выводов 19, 18, 17, 16, 15, 14, 13, 12, подключенных к шинам процессора А8 — А15, соответственно — на выводы 1, 2, 3, 4, 5, 6, 7, 8, подключенные к диодам клавиатуры). И теперь уже никаких нареканий, связанных с былой «строптивостью» карточной компьютерной игры, у меня не возникало.
 
Еще несколько советов, выверенных практикой. Входы ПЛМ А7 — А14 рассмотренной выше схемы целесообразно подключить к выводам 1—8 шинного формирователя. В итоге удается достигнуть того, что со стороны ПЛМ никакой дополнительной нагрузки на процессор никогда не будет.
 
Каждую из дополнительно встраиваемых в ПК микросхем можно установить над уже имеющимися МС на двух отрезках жесткого провода, припаиваемых к выводам электропитания. При этом во избежание «сюрпризов» типа короткого замыкания в той или иной цепи, а также для уменьшения занимаемого «нововводимой электроникой» пространства по высоте «ножки» микросхем (разумеется, кроме выводов питания) укорачивают и выгибают горизонтально печатной плате. Монтаж навесных участков осуществляют с использованием отрезков гибкого многожильного провода в виниловой изоляции.
 
При установке ПЛМ 556РТ1 с планарными выводами рекомендуется (В целях повышения жесткости и надежности соединений) припаивать к выводам питания (точнее — параллельно им, по всей их длине до корпуса) облуженные медные провода. Можно использовать ПЛМ и в другом корпусном исполнении, например КР556РТ1. При этом следует учитывать: рабочая частота у подобных MC, как правило, ниже. Не исключено, что среди таких микросхем могут даже попасться отдельные экземпляры, которые вообще «не потянут» нужную частоту.
 
Удобно размещать новые узлы и радиодетали, а также вести их монтаж на специальном поле платы компьютера, обычно предусматриваемом для доработок изготовителями ПК. Можно даже запрограммировать ПЛМ на работу с джойстиком, работающим на размыкание.
 
Некоторые из самодельщиков могут добавить в стандартный джойстик еще одну кнопку. В результате такой доработки возрастет общее число возможных комбинаций, позволяющих «задействовать» еще немало букв для действительно полного использования ПЛМ. А самые предприимчивые пользователи могут попытаться идти еще дальше, подключая к ПК (опять-таки с помощью программируемых логических матриц) не только комбинационные, но и расширенные клавиатуры, которые по внутренней разводке отличаются от стандартных схем. В частности, используя клавиатуру «Электроника МС 7007» в компьютерных играх на ZX-SPECTRUM, заимствовать и развивать интересные идеи программирования ПЛМ, построения функциональных, а также принципиальных электрических схем программаторов в специальной литературе.
 
В. СОЛОНИН, г. Конотоп, Украина




Рекомендуем почитать
  • ЕСЛИ В КВАРТИРЕ ТЕСНО

    ЕСЛИ В КВАРТИРЕ ТЕСНО

    Они бывают большие и маленькие, складные и «монолитные», настольные и напольные - самых разных конструкций, но... с одним общим недостатком: требуют места для хранения. Речь идёт о гладильных досках. Действительно, столь необходимый каждой семье предмет домашнего обихода -и такой архаичный, «неуклюжий»: куда его убрать, когда всё бельё приведено в порядок? Правда, появились на свет и модерновые гладильные устройства, идущие, так сказать, в ногу с веком научно-технического прогресса: электрические агрегаты, в которых вместо утюга нагревающаяся панель, а роль доски выполняет цилиндрический валик. 

Добавить комментарий

Защитный код
Обновить

ПОДПИСЫВАЙТЕСЬ VK FB


Нашли ошибку? Выделите слово и нажмите Ctrl+Enter.