Клавиатура OTG

ua4lcn
Offline
Зарегистрирован: 27.02.2016

Имеются: клавиатура OTG и обычная клавиатура с разъемом PS/2. Протоколы этих клавиатур я так понимаю - одинаковые. С планшетом и компом работают. Попытался считать с клавиатуры OTG коды нажатия клавишь- не считываются.В чем подвох?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

ua4lcn пишет:

Имеются: клавиатура OTG...

Это сильно ! 5 балов !

подвох в том, что не понятно куда и как подключено, и каким кодом это считывается.

ua4lcn
Offline
Зарегистрирован: 27.02.2016

// Arduino PS/2 keyboard подключаем PS_2 клавиатуру.
//https://www.youtube.com/watch?v=Nq4cjaDft5A&feature=youtu.be
/*

Как подключить PS/2 клавиатуру к микроконтроллеру?.
Arduino подключаем PS_2 клавиатуру PS/2 keyboard.
PS/2 keyboard connector (MINI-DIN6).
   Реагируем на клавишу 1 и 2 1-это 69, 2-это 72.
   
Arduino, подключаем DATA к 2-ому пину, CLK/CLOCK подключим к 3-ему пину.

•GND подключаем к GND Arduino UNO.
•Vcc подключим к 5V Arduino UNO.
•DATA подключим 2-pin Arduino UNO.
•CLK/CLOCK подключим к 3-pin Arduino UNO.

uint8_t то же самое, что и байт. : тип целого числа без знака длиной 8 бит.
Любые переменные, которые изменяются внутри функции обработчика должны быть объявлены как volatile.
FALLING - прерывание сработает, когда состояние вывода изменится с высокого уровня на низкий.
Сканкоды в шестнадцатеричном формате.
Считывание скан-кода клавиши клавиатуры.
 */
volatile uint8_t q = 1, w;
void setup() {
Serial.begin(57600);
pinMode(13, OUTPUT); 
attachInterrupt(1, ps2Keyboard, FALLING);
} 
void loop() {
  delay(1000);
  q = 1; w = 0;
} 
void ps2Keyboard(){ 
if (q > 1 && q < 11)w |= digitalRead(2) << q - 2; 
if (++q > 11) { Serial.println(w, HEX); 
if (w == 0x69)digitalWrite(13, HIGH);//если 0x01 - F9
if (w == 0x72)digitalWrite(13, LOW); //если 0x09 - F10
q = 1; 
w = 0; 
} 
} 
//

Код считываю с помощью Arduino UNO. Клавиатуру ps/2 читает без проблем , а эту не читает https://ru.aliexpress.com/item/Black-Mini-Wired-Keyboard-General-Wired-K...

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

и не будет т.к. это обыкновенная USB клава требующая на другом конце драйвера.

ua4lcn
Offline
Зарегистрирован: 27.02.2016

xDriver пишет:

и не будет т.к. это обыкновенная USB клава требующая на другом конце драйвера.

 

Т.е. клавиатура OTG (та что по ссылке выше) действительно устанавливается только с дровами. И соответственно не заработает с этим кодом. Так ведь?

Обычные PS/2 работают на ура.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Да, в андройде или виндах работать будет т.к. там HID дрова для клавы есть по умолчанию.

У вас не будет, т.к. протокол PS2 разительно отличается от USB.

ua4lcn
Offline
Зарегистрирован: 27.02.2016

xDriver пишет:

Да, в андройде или виндах работать будет т.к. там HID дрова для клавы есть по умолчанию.

У вас не будет, т.к. протокол PS2 разительно отличается от USB.

Спасибо за помощь, а так хотелось прикрутить эту маленькую клаву к микроконтроллеру.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

раньше были переходники USB->PS2

как сейчас с ними дела не знаю, погуглите

но в силу специфичности разъема на вашей клаве будете долго искать или надо прикладывать руки и перпаивать на обычный USB-A.

успехов!

ua4lcn
Offline
Зарегистрирован: 27.02.2016

xDriver пишет:

раньше были переходники USB->PS2

Этот переходник имеет в своем составе четыре провода.Переходник ничего не преобразовывает. Там +5 v,gnd, data+,data-.

 

BRUTUS
Offline
Зарегистрирован: 13.05.2016

в том то и дело, что нужен USB в PS/2 конвертер а не переходник. В обратном виде - куча, и недорогих. А переходников раньше была куча, потому что  промежуточное время (перехода клав/мышей с PS/2 на USB) клавы-мыши понимали оба интерфейса (то есть куда их всунули), и дело решалось простым переходником.
P.S. Вы поработали с библиотекой PS/2, уж больше чем я о ней знаете уже, а подскажите плиз! Что она понимает клаву PS/2 это само собой разумеется, а как насчёт посылать коды клавиш (эмулировать клаву)? Умеет библиотека? То есть я хочу "врезаться" в кабель ps/2, разорвав его двумя МК (планирую попробовать передать PS/2 по радио)

ua4lcn
Offline
Зарегистрирован: 27.02.2016

У меня тоже такая задачв-эмулировать работу клавиатуры.посредством кнопок и микроконтроллера. Но пока не получается.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
ua4lcn
Offline
Зарегистрирован: 27.02.2016

смотреть то можно,только получится HID клавиатура.А необходима эмуляция обычной (ps/2)  клавиатуры.