Страница 1 из 2
Эмуляция нажатия клавиш клавиатуры по команде с COM порта
Добавлено: Ср авг 01, 2012 22:53:49
DerMeister
Здравствуйте, уважаемые!
Возникла необходимость нажимать клавиши клавы по команде с COM порта.
Т.е. например контроллер отсылает в комп по USART код буквы, которую надо нажать, а прога на компе жмет эту клавишу. За раз необходимо жать до 3х букв. Всего будет использоваться не более 16и этих самых букв(т.е. не все кнопки, что на клаве есть, а только 16).
Воооот.... С контроллером я думаю справлюсь как-нибудь. А вот на стороне компа... Я программировать вообще не умею.
Вопрос: на сколько сложно написать такую прогу и не сможет ли кто-либо из уважаемых Котов этим заняться. Если, конечно, это не очень сложно.
И сразу - Спасибо за ответы!
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Ср авг 01, 2012 23:18:35
vovksextra
DerMeister писал(а):Здравствуйте, уважаемые!
Возникла необходимость нажимать клавиши клавы по команде с COM порта.
Т.е. например контроллер отсылает в комп по USART код буквы, которую надо нажать, а прога на компе жмет эту клавишу. За раз необходимо жать до 3х букв. Всего будет использоваться не более 16и этих самых букв(т.е. не все кнопки, что на клаве есть, а только 16).
Воооот.... С контроллером я думаю справлюсь как-нибудь. А вот на стороне компа... Я программировать вообще не умею.
Вопрос: на сколько сложно написать такую прогу и не сможет ли кто-либо из уважаемых Котов этим заняться. Если, конечно, это не очень сложно.
И сразу - Спасибо за ответы!
Со стороны компа это делается не так уж и тяжело. Пишем небольшую утилиту, которая прячется в трее (самый простой вариант) и прослушиваем нужный нам порт. При поступлении данных на порт их "разбираем" и вызывает соответствующее сообщение ОС (в поисковом сервисе набираем "Как программно нажать кнопку") .
Это не так уж и сложно при наличии толкового техзадания, но в любом случае займет личное время, причем не такое уж и маленькое. Думаю что из "котов" этим просто так заниматься не будет никто.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Ср авг 01, 2012 23:20:19
Мурик
DerMeister писал(а):Вопрос: на сколько сложно написать такую прогу
Не сказал бы что очень сложно.
DerMeister писал(а):не сможет ли кто-либо из уважаемых Котов этим заняться.
Путь это и не очень сложно, но у всех есть свои дела и нужно как-то простимулировать....
Могу пока что дать направление.
Работа с COM портом.
Эмуляция нажатий клавиш клавиатуры.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Ср авг 01, 2012 23:21:18
vovksextra
не успел )
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Ср авг 01, 2012 23:34:16
DerMeister
Со стимуляцией я все понимаю. Но так-как это будет открытый девайс, который смогут собрать все кому он будет интересен (после сборки я его опубликую), то из личного кормана стимулировать не буду. Да и нечем, честно говоря... Просто думал, может кто из, так сказать, патриотических побуждений, на благо радиолюбителей

Я конечно попытаюсь почитать предложеный материал. Но, мне кажется, это как пытаться сочинить стих на совершенно незнакомом языке - займет ОЧЕНЬ много времени, и, если и получится, то корявей не придумаешь... Надеюсь вы меня понимаете.
И тем не менее огромное спасибо за ответы и за ссылки. Попробую углубиться таки.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Ср авг 01, 2012 23:36:26
Flasher
Устройство готово, собрано и проверено.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Ср авг 01, 2012 23:38:02
vovksextra
DerMeister писал(а):Попробую углубиться таки.
Выбора то нету. Если не знаешь что принимать на комп, как будешь знать что туда передавать? Элементарный протокол то нужно придумать.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Ср авг 01, 2012 23:40:56
Flasher
ТС, напишите для каких целей нужно.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Ср авг 01, 2012 23:51:08
DerMeister
vovksextra писал(а):DerMeister писал(а):Попробую углубиться таки.
Выбора то нету. Если не знаешь что принимать на комп, как будешь знать что туда передавать? Элементарный протокол то нужно придумать.
Ну придумать-то как раз не самое сложное, вот реализовать...
На самом деле конечно может показаться, что бредятина, но...
Музыканты меня поймут! Идея - сделать электронную ударную установку, за 500р - для тех кто любит барабаны, но не имеет возможности купить или сделать полноценную. Таких как я...

Играл я раньше ведь. А ностальгия знаете ли... Вот так все печально. Мне кажется не я один такой помещаный.
Аппаратная чать уже готова, дело осталось за софтом.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Чт авг 02, 2012 00:51:39
Goldsmith
DerMeister писал(а):Музыканты меня поймут! Идея - сделать электронную ударную установку
Наверное, все-таки не все поймут. Вот лично мне совершенно непонятно, зачем электронной ударной установке "нажимать клавиши клавы по команде с COM порта" вместо того, чтобы отправлять стандартные сообщения MIDI? Тем более что в этом случае установку можно будет подключать не только к компьютеру, но и к любому тон-генератору, а для музыкантов это куда интереснее.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Чт авг 02, 2012 06:10:15
DerMeister
Где-то Вы наверное и правы, но не все ли равно как будет извлекаться звук из компьютера, если при этом все работает как надо? Тут дело только в способе реализации. Я понимаю что через USART - это конечно как-то не кошерно в данном случае, но главное - работает.
Ну и слабоват я пока, честно говоря, чтобы реализовать MIDI протокол на контроллере. Я ведь еще только учусь

Всему свое время...
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Чт авг 02, 2012 08:37:05
Goldsmith
DerMeister писал(а):Где-то Вы наверное и правы, но не все ли равно как будет извлекаться звук из компьютера, если при этом все работает как надо?
Кому как. Лично мне не все равно по нескольким причинам.
Во-первых, настоящий "живой" барабанщик не замыкает контакты "вкл-выкл". Он орудует палочками, которыми может ударить сильнее/слабее, дальше/ближе от центра и т.д. Сообщение MIDI не просто отражает факт, что был извлечен такой-то звук. В нем есть как минимум еще параметр силы удара. Поэтому можно улучшить конструкцию, измеряя амплитуду сигнала с датчиков. Если к тому же датчиков более одного, можно еще и имитировать эффекты, например, постукивание по ободку или вблизи него.
Во-вторых, установку с выходом MIDI можно будет подключить не только к компьютеру, но и напрямую к тон-генератору, например, в синтезаторе (если, конечно, клавишник играет не на компьютерной клавиатуре тоже).
В-третьих, события MIDI можно использовать для ввода в секвенсор, редактировать их разными Сонарами и подобными студиями.
DerMeister писал(а):Ну и слабоват я пока, честно говоря, чтобы реализовать MIDI протокол на контроллере. Я ведь еще только учусь

Всему свое время...
Так я именно потому и завел этот разговор, что реализовать MIDI весьма просто. С физической точки зрения это обычная токовая петля с оптической развязкой. Обойдется всего в один транзисторный оптрон. С канальной - обычный UART, только на нестандартной (с точки зрения связистов, конечно) скорости. Сам протокол тоже весьма прост - сообщение состоит из нескольких байт.
Реализовать довольно просто, а результат будет куда интереснее.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Чт авг 02, 2012 09:46:40
Flasher
ТС, укажи с какими программами будет работать устройство и загляни в личные сообщения.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Чт авг 02, 2012 18:05:34
DerMeister
Goldsmith, Я с вами конечно во многом согласен. MIDI есть MIDI, а я тут, как говориться изобретаю велосипед. Но...
Во-первых: для меня это все-таки сложновато пока, я подчеркиваю - пока. Все-таки это только моя третья в жизни программа для МК. При том, что я до этого в глаза не видел языки программирования.
Во-вторых: в конце концов MIDI - это уже давно все придумано. А то что хочу я - это придумал я. И пускай это будет все через одно место, но оно будет и будет работать. Для начинающего радиолюбителя ведь не важно красиво он собрал свой первый мультивибратор или нет. Главное что он взял и заработал - сколько радости тогда! Так же и в программировании - красота обязательно придет с опытом. И стыдно мне будет за такие ударные

Но это будет тогда, когда я буду понимать больше и уметь больше.
Но ваш совет относительно MIDI я учел и обязательно займусь этим вопросом. Надо ведь совершенствоваться, не все же каменным топором дрова рубить.
Спасибо Вам, что подтолкнули в этом направлении. Буду по-маленьку думать.

Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Пт авг 03, 2012 09:30:47
aleksandr-zh
DerMeister писал(а):необходимость нажимать клавиши клавы по команде с COM порта.
Т.е. например контроллер отсылает в комп по USART код буквы, которую надо нажать, а прога на компе жмет эту клавишу. З
сделать эммуляцию клавиатуры PS\2 и воткнуть её напрямую
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Пт авг 03, 2012 10:31:32
DerMeister
aleksandr-zh писал(а):DerMeister писал(а):необходимость нажимать клавиши клавы по команде с COM порта.
Т.е. например контроллер отсылает в комп по USART код буквы, которую надо нажать, а прога на компе жмет эту клавишу. З
сделать эммуляцию клавиатуры PS\2 и воткнуть её напрямую
Нет, все понятно, но что конкретно.....
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Пт авг 03, 2012 12:25:31
Мурик
Я так понимаю что через COM порт нужно передавать данные о MIDI.
Программа должна извлекать звуки в зависимости от данных?
Тогда за основу можно взять прогу из вложения. если в ней выбрать "48 : Timpani" то будут барабаны.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Пт авг 03, 2012 12:32:19
DerMeister
Мурик писал(а):Я так понимаю что через COM порт нужно передавать данные о MIDI.
Программа должна извлекать звуки в зависимости от данных?
Тогда за основу можно взять прогу из вложения. если в ней выбрать "48 : Timpani" то будут барабаны.
Нет. Спасибо, но прога должна нажимать на кнопки клавиатуры программно в зависимости от того, что пришло по UARTту.
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Пт авг 03, 2012 13:31:26
sherr
Вот такую программу не пробовали COM2KBD ---
http://www.bilkur.com/download.htm?
Re: Эмуляция нажатия клавиш клавиатуры по команде с COM порт
Добавлено: Пт авг 03, 2012 14:18:14
DerMeister
Вот оно! Кажись оно!
Простите, но ввиду моей неграмотности по этому поводу: как этой програмке надо посылать данные? Ей надо слать скан-код клавиши нажатие которой она должна сэмулировать?