Среда, 18 января 2012 23:32

Взрослые игрушки Featured

Written by Андрей Винокуров
Rate this item
(0 votes)

Люди любят играть. Причем делают это, начиная с самого раннего детства и до глубокой старости. Городки, шахматы-шашки, домино, футбол-волейбол – да мало ли есть способов отвлечься от жизненного однообразия, реализовать природный инстинкт соперничества и почувствовать вкус победы.
С появлением и широким распространением компьютеров, а, особенно, Интернета – люди с головой погрузились в мир компьютерных игр.

 

 

 

 

Бродилки-стрелялки, «стратегии», онлайновые ролевые игры – несть им числа. Миллионы геймеров, от зеленых юнцов до седеющих отцов семейств, увлеченно живут нарисованной жизнью Linage 2, наверное, самой раскрученной в Рунете игрухи, да и, чего греха таить – действительно увлекательной и разнообразной. Одни, сильно заболевшие, проводят десятки часов в неделю за клавиатурой, непрерывно совершенствуя своего персонажа. Другие, «сильно умные», придумывают бот-программы, чтобы не тратить очень много времени на разные рутинные игровые операции.

С другой стороны, администрация игровых серверов также не спит, последовательно совершенствует своё ПО, блокируя возможности использования бот-программ и достигает в этом деле определенных успехов.

Прошу прощения за столь пространное лирическое отступление – просто хотелось объяснить, откуда появилась мысль создать столь специфическое устройство, описанное в этой статье. Так как лично я не являюсь заядлым игроманом, то для меня эта разработка явилась просто прикладной возможностью реализовать на практике и проверить в железе следующие аспекты:
1. Работа с ЖК индикатором на основе HD44780 по 4-х проводному интерфейсу
2. Работа с внутренней EEPROM МК.
3. Прием и распознавание скан-кодов компьютерной клавиатуры в МК.
4. Передача на компьютер клавиатурных скан-кодов, сформированных в МК (эмулирование нажатий клавиш).

 

Если отвлечься от конкретного применения устройства, то техническое задание выглядело так: устройство должно (эмулируя нажатия клавиш стандартной клавиатуры) передавать на компьютер определенную, заранее запрограммированную последовательность нажатий определенных клавиш с промежутками времени между ними (также заранее запрограммированными).

Устройство выполнено на PIC16F84A. Выбор этого МК обусловлен его наличием в единственном экземпляре и стремлением куда-нибудь его, наконец, пристроить. Поскольку PIC16F84A имеет 64 ячейки EEPROM, то устройство может поддерживать 32 предварительно записанные команды (1 ячейка – скан-код нажатой клавиши + вторая ячейка – промежуток времени в сек. до следующего нажатия).

Устройство имеет 2 режима работы: режим программирования и рабочий режим. В режиме программирования подключается компьютерная клавиатура и, с ее помощью, в EEPROM записывается нужная информация. В данном случае – это последовательность нажатий клавиш F1-F9, но, при изменении прошивки, можно, конечно, определить и другие клавиши. При включении питания устройство переходит в режим программирования (Рис.1)

 

Рис.1 Режим программирования

 

 

 По нажатию кнопки, устройство переходит в рабочий режим и начинает передавать на компьютер кольцевую последовательность нажатий клавиш, запрограммированную в EEPROM.
Как и процесс программирования, процесс работы отображается на ЖК индикаторе (рис.2)

 

Рис. 2 Устройство в рабочем режиме

 

 

Устройство не требует отдельного блока питания и запитывается от клавиатурного входа ПК.

Возвращаясь к игровой теме, хочу добавить, что подпрограммы,  использованные в этом проекте можно использовать при изготовлении программируемых игровых манипуляторов (джойстиков), так как любая игра предусматривает использование «горячих клавиш», а то и вовсе поддерживает управление только с помощью клавиатуры.
Исходник, прошивку, проект в Протеусе можно взять

Ссылка для скачивания доступна только авторизованным пользователям сайта !

Обсудить и задать вопросы можно на форуме

(Примечание: Второй МК в Протеусе использовался как тестовый передатчик  скан-кодов стандартной клавиатуры, и в готовом устройстве, естественно, отсутствует)

Автор выражает благодарность камрадам Alberto, Alex  и MAZ, предоставивших соответствующие материалы и наработки, а также - Кириллу и Мефодию, за любезно предоставленные буквы. smiley

Read 8401 times Last modified on Понедельник, 01 сентября 2014 16:31

Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru