converter ps2 to usb

четверг, 5 мая 2016 г.

USB клавиатура из обычной PS2 (ps/2 to usb converter).

Теперь давайте рассмотрим скетч для Ардуино работающего с клавиатурой:
#include «PS2KeyAdvanced.h»

#define DATAPIN 7
#define IRQPIN 3

byte keys[1000];//convert ps2 to usb hid keyboard

void setup()
<
for(byte i = 0;i <
keys[i] = 0;
>
keyboard.begin( DATAPIN, IRQPIN );
Serial.begin( 9600 );

//2ps to usb hid
keys[65]=0x4;//A
keys[66]=0x5;//B
keys[67]=0x6;//C
keys[68]=0x7;//D
keys[69]=0x8;//E
keys[70]=0x9;//F
keys[71]=0xa;//G
keys[72]=0xb;//H
keys[73]=0xc;//I
keys[74]=0xd;//J
keys[75]=0xe;//K
keys[76]=0xf;//L
keys[77]=0x10;//M
keys[78]=0x11;//N
keys[79]=0x12;//O
keys[80]=0x13;//P
keys[81]=0x14;//Q
keys[82]=0x15;//R
keys[83]=0x16;//S
keys[84]=0x17;//T
keys[85]=0x18;//U
keys[86]=0x19;//V
keys[87]=0x1a;//W
keys[88]=0x1b;//X
keys[89]=0x1c;//Y
keys[90]=0x1d;//Z
keys[49]=0x1e;//1 !
keys[50]=0x1f;//2 @
keys[51]=0x20;//3 #
keys[52]=0x21;//4 $
keys[53]=0x22;//5 %
keys[54]=0x23;//6 ^
keys[55]=0x24;//7 &
keys[56]=0x25;//8 *
keys[57]=0x26;//9 (
keys[48]=0x27;//0 )
keys[0x1e]=0x28;//Enter
keys[0x1b]=0x29;//Escape
keys[0x1c]=0x2a;//BackSpace
keys[0x1d]=0x2b;//Tab
keys[0x1f]=0x2c;//Space
keys[0x16]=0x4f;//Right Arrow
keys[0x15]=0x50;//Left Arrow
keys[0x18]=0x51;//Down Arrow
keys[0x17]=0x52;//Up Arrow
keys[0x9]=0xe4;//Right ctrl
keys[0x8]=0xe0;//Left ctrl
keys[0x7]=0xe5;//Right shift
keys[0x6]=0xe1;//Left shift
keys[0xb]=0xe6;//Right alt
keys[0xa]=0xe2;//Left alt
keys[0x61]=0x3a;//f1
keys[0x62]=0x3b;//f2
keys[0x63]=0x3c;//f3
keys[0x64]=0x3d;//f4
keys[0x65]=0x3e;//f5
keys[0x66]=0x3f;//f6
keys[0x67]=0x40;//f7
keys[0x68]=0x41;//f8
keys[0x69]=0x42;//f9
keys[0x6a]=0x43;//f10
keys[0x6b]=0x44;//f11
keys[0x6c]=0x45;//f12
keys[0x3c]=0x2d;//-_
keys[0x5f]=0x2e;//+=
keys[0x5d]=0x2f;// <[
keys[0x5e]=0x30;//>]
keys[0x5c]=0x31;//|
keys[0x5b]=0x33;//:;
keys[0x3a]=0x34;//»‘
keys[0x3b]=0x36;// .
keys[0x3e]=0x38;//?/
keys[0x4]=0x46;//Print Screen
keys[0x40]=0x35;//`ё
keys[0x19]=0x49;//insert
keys[0x11]=0x4a;//Home
keys[0x13]=0x4b;//Page Up
keys[0x1a]=0x4c;//Delete
keys[0x12]=0x4d;//End
keys[0x14]=0x4e;//Page Down
keys[0x3]=0x39;//Caps Lock
keys[0x2]=0x41;//Scroll Lock
keys[0x1]=0x41;//Num Lock
>

Скетч получился довольно длинный т.к. для преобразования кодов клавиш с клавиатуры в коды для отправки по USB используется массив «keys». Это обычный массив который используется необычным способом а точнее как ассоциативный массив и из за этого он избыточен и занимает много места в и без того забитой памяти микроконтроллера но зато дальше можно написать только одну строку не длинного текста для преобразования кодов что очень удобно. В условии в основном цикле проверяется «не отпущена ли кнопка». В данный массив записаны не все коды клавиш, в скетче много «магических чисел» и вообще он далеко не идеален и клавиатура в конце концов не сможет делать всё что могла бы обычная usb клавиатура но данный скетч в открытом доступе и его может исправить и дополнить любой желающий который также может выложить свой скетч в открытый доступ поэтому давайте перейдём с следующему скетчу:

void setup() <
Serial.begin(9600);

TIMSK &= !(1 cli();
usbDeviceDisconnect();
delayMs(250);
usbDeviceConnect();
sei();
>

void loop()
<
UsbKeyboard.update();

if (Serial.available() > 0)
<
UsbKeyboard.sendKeyStroke(Serial.read());
>
>

// helper method for V-USB library
void delayMs(unsigned int ms)
<
for( int i=0; i <
delayMicroseconds(1000);
>
>

Этот скетч короче но совсем не проще. В главной функции настройка прерываний и всего остального, в основном цикле обязательная функция UsbKeyboard.update() которая должна вызываться не реже чем 20 раз в секунду (иначе всё работать не будет), поэтому микроконтроллер с v-usb сильно грузить не рекомендуется но, к счастью для нас (и для этого микроконтроллера), другую серьёзную задачу выполняет другой микроконтроллер который находится в другой Ардуине. После того как по UARTу принимается байт он сразу же отправляется по USB в компьютер и всё это происходит быстрее чем за 50мс судя по тому что всё работает (см. видео ниже). Т.к. данная библиотека реализует класс HID то на компьютер к которому будет подключён данный адаптер с клавиатурой не надо устанавливать никаких драйверов всё должно заработать и на Windows и на Linux. Я же делал данный переходник (адаптер) для Raspberry pi 3 с операционной системой Raspbain и клавиатура с ними работала замечательно (см. видео ниже), с Windows 7 были некоторые проблемы т.к. она решила что нужен драйвер к неизвестному устройству, решила его найти и установить но после того как не получилось вывелось сообщение об этом и дальше клавиатурой можно было спокойно пользоваться. Теперь можно посмотреть видео с испытаниями и некоторой другой полезной информацией:

Очередь просмотра

Очередь

  • Удалить все
  • Отключить

YouTube Premium

Хотите сохраните это видео?

  • Пожаловаться

Пожаловаться на видео?

Выполните вход, чтобы сообщить о неприемлемом контенте.

Понравилось?

Не понравилось?

PS2 To Usb Keyboard

USB to PS2 Converter Cable Connect for Keyboard Mouse:

How to convert keyboard PS2 to USB

In this video I will show you How To Convert PS2 Keyboard To USB Keyboard..[PS2 To USB]..Simple Process. Easy Way..We can easily convert any ps2 keyboard to usb keyboard at home and use them without any ps2 to usb converter. The simple process for ps2 to usb. So friends if you want to know how to convert ps2 keyboard to usb keyboard at your home then watch the video and follow my instruction and ps2 keyboard to usb wiring diagram properly to make a usb keyboard to ps2 keyboard at your home. Thanks.

If you like the video then subscribe our channel and give likes ,comments and please share

We always need your support Please don’t forget to give likes and comments and share the video if you like Your likes and comments are very valuable for us Thanks For Watching ✅LIKE ✅SHARE ✅ COMMENTS✅ SUBSCRIBE

Save converter ps2 to usb to get e-mail alerts and updates on your eBay Feed.

Unfollow converter ps2 to usb to stop getting updates on your eBay Feed.

You’ll receive email and Feed alerts when new items arrive.

Оцените статью