Свежие обсуждения
Компьютеры

Эмуляция клавиатуры компьютера микроконтроллером?

1 2 6

AHTOXA: Можете сами проверить

А на чём Вы проверяете?
Можете сбросить мне "проверялку"?

P.S.
Хм... Только что попробовал нажать сразу кучу кнопок и отпустить - на экране появилось много пачек импульсов. Но только при отпускании!
Может, как уже упоминалось rfc, в случае большого числа одновременно нажатых клавиш, при отпускании их, в комп передётся последовательность всех кодов этих клавиш?

 

DWD: А на чём Вы проверяете?

Как на чём? На клавиатуре, на той же, с которой набираю это сообщение
Раз буквы появляются на экране, значит клавиатура их выдаёт, логично?

DWD: Может, как уже упоминалось rfc, в случае большого числа одновременно нажатых клавиш, при отпускании их, в комп передётся последовательность всех кодов этих клавиш?

Клавиатура передаёт код при нажатии и при отпускании каждой клавиши. Остальное не её дело.

 

AHTOXA: Как на чём? На клавиатуре


Действительно. Как всё просто...

 

Ещё надо учесть, что на AT клавиатурах данные передаются в обе стороны: индикаторы состояния (NumLock и т.д.) включаются программно из компьютера, в отличие от старых клавиатур XT. Ограничение на число одновременно нажатых клавиш скорее всего аппаратное, ведь кнопки опрашиваются динамически и при определённых комбинациях нажатых клавишь обнаружить нажатие других клавишь будет невозможно.

 

Нет, число нажимаемых клавиш ограничено программно виндой. В других ОС по-другому. При нажатии клавиши клавиатура начинает периодически отсылать её код в машину (так. наз. автоповтор). При нажатии ещё одной - повторяет уже её код и так далее. Не повторяется только клавиша ПАУЗА. При отпускании клавиши однократно передаётся её же код, но с установленным старшим битом в последнем байте.
Протокол работы клавиатуры у меня где-то был, если хотите, посмотрю. Хотя и в интернете думаю не сложно найти.

Для передачи состояния датчиков может быть лучше организовать кодовые посылки - сколько датчиков, столько бит в посылке. Использовать можно И2Ц (PS/2 клавиатура и мышь), ШИМ, асинхронную передачу (последнюю просто организовать на микроЭВМ с асинхронным приёмопередатчиком на борту, подключенную к соответствующему порту ПК). С последовательным портом по-моему возникнет меньше всего проблем при написании программной части.

 

У себя на производстве успено пользуем вот что:
http://www.rudshel.ru/production/digital_io_and_interface_boards/digital_io.pci/...

Ну это, конечно, ежели контора платит, а то 4700 руб как-то накладноссс, для дома-для семьи.

Дрова под ХР работают, но входы-выходы у нее слааааабые, так что буферизировать приходится.
"Какчество" изготовления - "Российское", но гарантийный ремонт без вопросов.

 

никак не пойму, зачем подключать датчики к ключам и эмулировать кнопки клавиатуры???
возьми мк с нужным количеством портов и подключи его по рс232 или усб через хид

http://www.obdev.at/products/avrusb/hidkeys.html
http://obdev.at/products/avrusb/index.html

 

djelektronik: никак не пойму, зачем подключать датчики к ключам и эмулировать кнопки клавиатуры???
+1. Достаточно после МК поставить любой преобразователь (типа MAX232 - от 4 грн) или даже на транзисторе....

DWD: Видел готовые модули - платка,
я видел у киевских поставщиков за 100+ грн. Они на базе FT232. Есть аналогичные и для LPT.
Для себя я решил - СОМ кабель тоже неплохо смотрится

 

Vov4ik: Нет, число нажимаемых клавиш ограничено программно виндой.
Увы, но с этими ограничениями я сталкивался, ещё тогда, когда о винде никто не слышал. Году в 92-м теперь уже прошлого века писал свой обработчик прерывания клавиатуры для плавного управления курсором в графическом режиме (мышей тогда ещё не водилось). Там всё работало на уровне портов и ни BIOS ни DOS накладывать свои ограничения никак не могли.

Сергей К: Для себя я решил - СОМ кабель тоже неплохо смотрится
Тут, к сожалению, тоже есть проблема, на современных материнских платах некоторые производители уже не ставят ни COM ни LPT портов.

 

djelektronik: djelektronik
12 июля, 12:47
никак не пойму, зачем подключать датчики к ключам и эмулировать кнопки клавиатуры???
возьми мк с нужным количеством портов и подключи его по рс232 или усб через хид

http://www.obdev.at/products/avrusb/hidkeys.html

У этого проекта кривая реализация USB протокола - некорректно работает под 95-98-МЕ-2000 токма под ХР работоспособно. А код этот куча нороду куда только не пихает , но в проблеме не разобрались.