ProPlay.ru
  ГЛАВНАЯ    НОВОСТИ    СТАТЬИ    КОМАНДЫ    ДЕМКИ    VOD'ы    СТАВКИ    ТУРНИРЫ    КЛУБЫ    ФОРУМЫ    ГАЛЕРЕИ    РЕКЛАМА    САЙТ   
English Китайский
Забыли пароль?
Регистрация

     Расписание ProPlayTV
Мы ищем стримеров по League of Legends и DOTA2!
    Самые богатые
 ggtt 2664
 Hvostyn 2400
 GopaveC 2000
 rmn1x 2000
 Akon 1958
 razdavalochka 994
 CoolMast 700
 Devostatortk 606
 modify2h 600
 Boevik 400
    События ProPlay.ru

Сезон ставок The International 2015

    Голосование

The Internaitonal 2015 был
Лучше предыдуших
Хуже предыдущих
Такой же



    Counter-Strike: Global Offensive
Counter-Strike: Global Offensive #1
csgo.proplay.ru:27016 0/
Counter-Strike: Global Offensive #2
csgo.proplay.ru:27215 0/
    Репортажи
SLTV StarSeries 6: Репортаж
SLTV StarSeries V: CS Global Offensive
Рейтинг ProPlay.ru: Январь 2013
Fnatic FragOut CS:GO League
SLTV StarSeries #4 CS:GO
SLTV Star Series #3: Репортаж
GosuLeague #3: Репортаж
SLTV Star Series #2: Репортаж
The Premier League Season 2: Репортаж
36ON.RU BATTLE CITY: Плей-офф
Fantasy Football - Евро 2012: Лига ProPlay.ru
Rising Stars Challenge
36ON.RU BATTLE CITY: Групповой этап
FnaticRC CS League: Групповой этап
It's Gosu's Monthly Madness: 2 сезон
36ON.RU BATTLE CITY: 2й квалификационный тур
The Premier League: 2 cезон
Fantasy Football - UEFA Champions League лига ProPlay.ru
36ON.RU BATTLE CITY: 1й квалификационный тур
36ON.RU BATTLE CITY: Составы команд





    #1   Верный Последователь Петяна @ 02.09.09 22:52 [пожаловаться]   
http://radiokot.ru/konkurs/24/

Вот видео работы устройства !!! Вот видео работы устройства !!!
Как известно, одной из отличительных черт правильного падонка является способность много и быстро "срать в каментах". С другой стороны, как установили бретанские учоные, словарный запас падонков относительно не велик и сопоставим по размерам со словарным запасом Эллочки-людоедки из известного произведения Ильфа-Пертова. Фразы, используемые в речи падонка, достаточно просты и типизированы. Мысль выражается путем комбинирования в различных вариантах относительно небольшого количества слов или фраз. В виду всего вышесказанного, было решено создать дополнительную клавиатуру, которая помогала бы падонку быстро и без ошибок вводить текст в компьютер путем одномоментного ввода всей фразы целиком, а не по отдельным буквам в случае обычной клавиатуры. В результате была разработана и испытана дополнительная клавиатура, состоящая из 40 кнопок и подключаемая между компьютером и "настоящей" клавиатурой. 39 клавиш дополнительной клавиатуры используются непосредственно для вывода фраз, а одна клавиша для изменения режима выводимых букв (все маленькие; первая буква большая, остальные маленькие; все буквы большие).

Структурная схема разработанной дополнительной клавиатуры (в дальнейшем девайс) представлена на рисунке 1. Алгоритм работы достаточно прост и понятен из блок-схемы. "Настоящая" клавиатура соединена с компьютером через аналоговые ключи девайса. Питание идет от компьютера. Всё основное время ключи переключены в положение "настоящая" клавиатура-компьютер. Контроллер (МК) девайса постоянно опрашивает свою локальную клавиатуру, состоящую из 40 кнопок и организованную в 8 строк по 5 столбцов, и как только зафиксирован факт нажатия кнопки (с учетом дребезга контактов), происходит вывод фразы. Вначале МК, не разрывая цепи компьютер-клавиатура, подключает на чтение линии clk и data для проверки на них наличия "1" в течение чуть больше 1 периода clk, что является признаком свободной линии (нет передачи данных). Если линия свободна, размыкаются ключи клавиатура-компьютер, выводы МК переключаются на вывод и замыкаются ключи МК-компьютер. После этого происходит передача фразы, соответствующей нажатой кнопке. По окончании передачи восстанавливается исходное положение ключей клавиатура-компьютер. Если же линия клавиатура-компьютер занята и не освобождается в течение некоторого времени, передача фразы не происходит и после аудиовизуального сообщения об ошибке путем мигания красно-зеленым светодиодом и генерации звукового сигнала на пьезодинамик, МК возвращается к опросу своей клавиатуры. Питание "настоящей" клавиатуры во время отключения линий данных не прерывается, что позволяет сохранить переданные в неё данные от компьютера (состояние индикаторов, длительность автоповтора и др.).


Подробное описание протокола обмена данными клавиатуры с компьютером можно найти на сайте http://www.beyondlogic.org/keyboard/keybrd.htm. В нашем случае нужен только вариант передачи от клавиатуры к компьютеру. Для обмена данными служат две линии – Data и Clk. При передаче данных клавиатура выставляет очередной разряд данных на линию Data и подтверждает передачу задним фронтом ("1" в "0") на линии Clk. Передача одного байта состоит из 11-ти бит. Один стартовый бит (всегда "0"), 8 бит данных (D0-D7), бит чётности и один стоповый бит (всегда "1"). Бит чётности равен "1", если в байте данных чётное количество бит, иначе "0".

При нажатии на клавишу клавиатура передает скан-код этой клавиши, состоящий из одного или нескольких байт, а при отпускании – сначала префикс 0F0h, а потом скан-код отпущенной клавиши. С точки зрения клавиатуры, все клавиши, включая системные (типа Caps Lock, Pause, Control и др.), ничем не различаются. Каждая клавиша имеет только один скан-код, поэтому режимы типа Caps Lock, Num Lock, русских букв и другие обрабатываются программно уже в компьютере. Таблицу скан-кодов можно посмотреть на рис. 2, а пример передачи данных при нажатии клавиши "D" (или, если хотите, - "d", "В" или "в") на рис.3. Режим автоповтора заключается в том, что если клавиша не отпущена, через определенные интервалы времени клавиатура повторно посылает скан-код нажатой клавиши.

Частота следования импульсов на линии Clk по разным источникам находится в пределах 10-30 кГц. Однако реально, на мой взгляд, этот диапазон намного шире. При экспериментах с передачей данных все отлично работало даже при 6 кГц. В моей "настоящей" клавиатуре частота clk была около 11,5 кГц. Также абсолютно не критично время между 2 посылками скан-кодов и на практике его можно взять где-то в районе 10 Гц (передача 10 скан-кодов в секунду). Однако слишком сильно уменьшать время не следует, так как компьютер может не успеть обработать нажатия клавиш и будет издавать динамиком писк переполнения буфера (наверняка вы все его слышали, например, если на подвисшем компе долго жать клавиши).

С теорией покончено, перейдем к практике. Схему девайса можно увидеть на рисунке 4. Т.к. протокол обмена не критичен к точным временнЫм интервалам, можно обойтись без кварца, использовав внутренний генератор и освободив 2 ноги контроллера для других нужд. Перемычки JP1-JP3 нужны для внутрисхемного программирования. При программировании их надо снять, освободив тем самым разъем ICSP для подключения программатора. В гнездо XS1 типа "мама" подключается "настоящая" клавиатура, а XS2 - "папа", втыкается в компьютер (я взял кабель от ненужной клавиатуры).

В первом возвращаемом retlw значении (len) задается количество символов (букв) в фразе + 1. Далее идут скан-коды символов (букв), составляющих фразу. Определить какой скан-код надо вписать, можно так. Если буква русская, смотрим на клавишу "настоящей" клавиатуры, где она находится и запоминаем английскую букву, которая нарисована на этой же клавише. Далее определяем скан-код клавиши по рис.2 и вписываем его в подпрограмму. Длина одной фразы не может быть больше 250 символов. К тому же надо учитывать, что объем памяти, отведенный под все фразы, составляет чуть меньше 1К. Также следует проверить после компиляции (в сгенерённом листинге), что ни одна подпрограмма не попала на границу страниц программной памяти (адреса кратные 256) и не находится на разных страницах. В принципе, в исходнике я эту ситуацию разрулил директивами org, но иметь это в виду не помешает. Также нельзя использовать знаки, скан-коды которых состоят из более чем одного байта (например, "/" на дополнительной клавиатуре). Список фраз в моем исходнике и их соответствие кнопкам падонкафской клавиатуры приведен в таблице.Key Фраза
01 абасрацца
02 абассацца
03 аффтар
04 выпей йаду
05 пеши исчо
06 убей сибя ап стену
07 спасиба падрачил
08 ахуеуйть дайте две
09 аццкий сотона
10 беспесды
11 ф дисятке
12 жывотное
13 жжош сцуко
14 ф топку
15 ф газенваген
16 зачот
17 низачот
18 ниибёт
19 ниибаццо
20 кросафчег
21 ниасилил патамушта многабукафф
22 отжыг
23 пелотка
24 пацтулом
25 пацталом
26 упалпацтол
27 валялсо пацтулом
28 ржунимагу
29 парвало моск нах
30 слиф зощитан
31 тема сисег раскрыта
32 тема сисег нираскрыта
33 ужоснах
34 фигасе
35 плюс пицот
36 криатифф
37 учи олбанский
38 риальный падонаг
39 йа креведко



Как писалось выше, каждая клавиша имеет только один скан-код, поэтому изменение регистра букв происходит путем посылки скан-кода клавиши "Shift". Например, [Shift] первая буква фразы [F0h] [Shift] остальные буквы фразы. Или [Shift] все буквы фразы [F0h] [Shift]. При этом надо учитывать состояние Caps Lock на "настоящей" клавиатуре. Если он включен, эффект от Shift''''а будет как раз обратный. Гляньте табличку возможных вариантов написания фразы в зависимости от состояния Caps Lock.HL1 на клаве падонка Caps Lock выключен Caps Lock включен
не светится пример ПРИМЕР
красный Пример пРИМЕР
зелёный ПРИМЕР пример



Использование Shift для изменения регистра букв накладывает еще одну особенность на подбор фразы. Если используются не буквенные клавиши, а цифры или клавиши со знаками препинания или скобками, то при нажатом Shift''''е они изменят значение на другое. Например цифра 5 после посылки скан-кода [Shift] становится знаком "%". Поэтому такие символы лучше не использовать или смириться с тем, что при некоторых режимах они будут отображаться по другому.

Клавиатура падонка тестировалась на различных компьютерах, начиная с Pentium IV и AMD AthlonXP 2600+, до довольно древних PIII и нотика Compaq Armada 1500c, и ни на одном из них не было выявлено каких-либо проблем с работой девайса. Однако вполне может случиться, что на каком-нибудь компе она не заработает. Скорее всего дело будет во временнЫх интервалах между посылками скан-кодов. В исходнике есть несколько подпрограмм для генерации различных задержек. Изменяя их в разумных пределах, скорее всего можно будет добиться нормальной работы девайса. Итак, перечислю их в порядке важности (начинать подбор рекомендую с первой):

• delay_key_out - длительность между отсылкой скан-кодов
• delay_F0 - длительность между отсылкой префикса F0h и скан-кода
• delay_kbclk - задаёт длительность 1/2 периода clk

И напоследок, раскрою тайный смысл двух ячеек EEPROM. Первая имеет адрес 01 и там записана переменная, отвечающая за добавление пробела в начало и/или в конец фразы. Если бит 0 равен "1", то пробел добавляется в начале фразы. Если бит 1 равен "1", то пробел добавляется в конце фразы. Если какой-нибудь из этих битов равен "0", то пробел не добавляется в соответствующей позиции. Ячейка по адресу 03 отвечает за начальную инициализацию кнопки "Mode". Если там записан 0 - при включении устанавливается режим маленьких букв, 1 - режим "первая большая, остальные маленькие" и 3 - режим больших букв. Если записано любое другое число, оно приравнивается к 0. Изменить эти ячейки можно или в исходнике с последующей перекомпиляцией, или прямо в программе-прошивальщике в области данных EEPROM (например, см. рисунок 6 для WinPic800).
Рис. 6. Изменение ячеек EEPROM в программе WinPic800



При прошивке контроллера никаких фьюзов вручную выставлять не надо, все нужные данные находятся внутри HEX-файла. Достаточно просто открыть HEX и сразу запустить программирование. А тем, кто решит повторить сей девайс - удачной сборки и эксплуатации... Да, и не забывайте перед использованием клавиатуры падонка переключаться на русский язык.
Голосуем ребзя на форуме регистрация не нужна !

ПРоголосовать за девайс
    #2   пожаловаться [Believe in TP] @ 02.09.09 22:53 [пожаловаться]   
Shocked
    #3   notactic @ 02.09.09 22:53 [пожаловаться]   
Shocked
    #4   fixser @ 02.09.09 22:54 [пожаловаться]   
Shocked
    #5   poshel_nahuy_FAki @ 02.09.09 22:54 [пожаловаться]   
Shocked
ботан-задрот детектед
    #6   No name 364[О_О] @ 02.09.09 22:54 [пожаловаться]   
Shocked
    #7   allinthemusik @ 02.09.09 22:56 [пожаловаться]   
Shocked Shocked Shocked
    #8   Добрый cartman [не банить] @ 02.09.09 23:03 [пожаловаться]   
ниасилил.
    #9   PametdzOr @ 02.09.09 23:04 [пожаловаться]   
Shocked
ОФТАР ТЫ ПАМЁТ Evil or Very Mad Evil or Very Mad Evil or Very Mad
    #10   glzor @ 02.09.09 23:06 [пожаловаться]   
СКОКА БУКАФФФФ Shocked Shocked Shocked Shocked Shocked Shocked Shocked
    #11   зотка @ 02.09.09 23:06 [пожаловаться]   
01 абасрацца
02 абассацца

Surprised Surprised Surprised
    #12   PODLIVA @ 02.09.09 23:08 [пожаловаться]   
Shocked Shocked
    #13   fee @ 02.09.09 23:13 [пожаловаться]   
чё Shocked
    #14   хожу_в_кружок_книголюбов[come back] @ 03.09.09 07:39 [пожаловаться]   
чо ху1ня ?
вместо русской раскладки ,теперь будет абасраца ?
Shocked Surprised Shocked
    #16   s7alk. 364 @ 03.09.09 08:30 [пожаловаться]   
Surprised
    #17   V451L1Y K. @ 03.09.09 08:39 [пожаловаться]   
Shocked Shocked Shocked
    #18   ShadowFr @ 03.09.09 08:41 [пожаловаться]   
Вот это копипаст Shocked

    Ответить
Very Happy Smile Sad Surprised Shocked Confused Cool Laughing Mad Razz Embarassed Crying or Very sad Evil or Very Mad Twisted Evil Rolling Eyes Wink Exclamation Question Idea Arrow

Новая тема
Подписаться

    Партнеры


Турниры ESL


    Нас можно найти тут:
vkontakte ProPlay.ru - Официальная группа
mirc Наш канал в IRC
Facebook Мы в Facebook
Twitter Мы в Twitter

    Будущие турниры

Добавить турнир



    Последние дневники
Казино вавада онлайн (2)
Online casino (4)
НУЖЕН СОВЕТ БРАБЛЕЯ (16)
СМОКЕРПУП (0)
мои соски упруги, а ваши ... (3)
Записки без смысла [5] (16)
Ф (1)

    Случайные галереи
voVer: 140 банок

Hokc: опана!

BeN1ce-Today I will be defiant: дотер)

dratata: пошутил


    Ищем авторов!

ProPlay.ru ищет новых авторов. Прочитайте "Памятку для авторов" и, если заинтересовались, пишите нам editor@proplay.ru


    Реклама
Split/Second patch, save Америкэн Макги: Алиса, дополнение для Stronghold 2, дополнение для World of Warcraft



Rambler's Top100
Яндекс цитирования Rambler's Top100

Copyright © 2006-2011 www.proplay.ru. Все права защищены.
Полное или частичное использование материалов сайта www.proplay.ru возможно только с письменного разрешения редакции.