telegamochka: (Default)
telegamochka ([personal profile] telegamochka) wrote2010-02-09 02:00 pm

Знакомство с Arduino, часть 2. Морзе-клавиатура: альфа-версия

Даже на базе простейшего - лампочка с кнопкой - скетча можно собрать вполне самостоятельное устройство. Думаете, речь пойдет о настольной лампе? Нет. Попробуем собрать простейший вариант аккордной клавиатуры.


Аккордная клавиатура - это...

Re: Гениально!

[identity profile] zzfi.livejournal.com 2010-02-09 01:51 pm (UTC)(link)
Замечательно!

Всё таки ты добилась работы! Но почему же такая простая вещь как кодировка не вышла? ;)

Re: Гениально!

[identity profile] telegamochka.livejournal.com 2010-02-09 02:07 pm (UTC)(link)
А зачем что-то делать с кодировкой? "Победить" ее несложно - вместо кириллических букв прописываем их коды в нужной кодировке (интересно, в какой именно кодировке выводит символы написанный на Java COM-монитор, запущенный под Линуксом - неужели CP1251? :) ). Просто девайс делается не для печати в этом самом мониторе, а для работы или с самописным драйвером (которому юникод предпочтительней), или (лучше - но с этим пока не разбиралась) с каким-нибудь стандартным драйвером bt-клавиатуры. Если, конечно, они бывают стандартные.

Re: Гениально!

[identity profile] zzfi.livejournal.com 2010-02-09 03:50 pm (UTC)(link)
с каким-нибудь стандартным драйвером bt-клавиатуры. Если, конечно, они бывают стандартные. - конечно, есть же профиль клавиатуры :)

только девайсы типа клавиатура не посылают символы, они посылают коды, а их уже транслирует драйвер kbd или xkb .

Вот например коды в псевдокоды:

< TAB> = 23;
< AD01> = 24;
< AD02> = 25;

А затем:

key < AD01> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
symbols[Group1]= [ q, Q, at, Greek_OMEGA ],
symbols[Group2]= [ Cyrillic_ya, Cyrillic_YA ]
};

где-то так

А java по умолчанию в utf-16 - это хуже чем CP1251 :)))

пс - ой ковычки !!!

Re: Гениально!

[identity profile] telegamochka.livejournal.com 2010-02-09 03:54 pm (UTC)(link)
Спасибо :) Ты случайно не в курсе, как заставить подключенный к USB ардуино заставить прикинуться USB-клавиатурой? Чтобы ОС воспринимала его как клаву.

Re: Гениально!

[identity profile] zzfi.livejournal.com 2010-02-09 04:11 pm (UTC)(link)
Честно говоря я не делал такое, но что из этого:
http://www.usb.org/developers/defined_class/#BaseClass03h

03h Interface Human Interface Device (HID) Keyboard, mouse, joystick



У меня Logitech USB Multimedia Keyboard:

Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard


Re: Гениально!

[identity profile] zzfi.livejournal.com 2010-02-09 04:18 pm (UTC)(link)
Да, кстати :) Куда проще точки и тире вводить разными кнопками.

Ты не поверишь! но именно так и устроен ключ у радистов :))))) - там пластинка болтается между двумя контактами - влево - вправо => точка тире, ее и качают двумя пальцами

Re: Гениально!

[identity profile] telegamochka.livejournal.com 2010-02-10 09:14 am (UTC)(link)
Примерно так я и хочу поступить :)