USB-HID.rar Папка с ардуино иде в которую включены нужные библиотеки и папка с проектом - пример с этого сайта. Проверено на Windows XP - плату выбирал Arduino Nano. Компиляция проходит успешно.
Вот у меня есть Arduino Nano. Что мне нужно для того чтобы вся эта схема работала, а во вторых, как физически это выглядит. Я также подключаться через microUSB должен? Или мне наужен USB-USB, к которому я буду паяться? Мне бы посмотреть как это на практике это выглядит. Также вы написали, что можно подать на vcc 3.3v, но я не нашел vcc на NANO. Он там вообще есть? И если есть, то я бы хотел попросить схему. Заранее спасибо!
Micro USB подключать только для заливеи скетча. Я отрезал от USB удокнителякусок кабеля с "папой" и подпаивал к ардуино согласно схемы. После заливки скетча через микроUSB девайс отключаем от микроUSB и втыкаем обрезок провода с "папой USB" в "маму USB на компьютере". И еще, для работы USB необходимо напряжение 3,6в. У меня при стабилитронах 3.3в. ничего не работало.
У наготове vaccine микроконтроллера соеденено с пинком +5в. Также у нано есть пин "vn" на который можно подавать напряжение от 6 до 9(12) вольт. На платком нанки стоит линейный пркобразователь напряжения который из 6...9(12)в делает 5в. И они же, эти 5в появятся на пинка +5в. Вообще для питания микроконтроолера от 3.3(3.6)в необходим и кварц меньшей частоты. Почитайте даташит на микроконтроллеры.
Хорошо, про подключение usb я понял. А вот насчёт питания не очень. Могу ли я питать ардуинку от литиионного аккума на 3.7в? И если да, то на какой пин мне подавать сигнал? Или может вообще можно от ПК питать через microUSB?
Питать можно от USB ПК, в этом случае красный провод подключаеш к +5в, черный к GND. Но логические уровни общения ардуинки с USB портом нужно привести к уровню 3.6в с помощью стабилитронов. Можно и от лития питать. В этом случае тоже + подавать на пин "+5в". НО в этом случае ардуинка должна работать на более низкой частоте. Вообще есть версии ардуино про мини с питанием от 3.3в. там и частота кварца ниже. Но производительности врятли хватит. Купите лучше другой контроллер с аппаратной поддержкой USB например ардуино леонардо или другую на базе микроконтроллера ATmega32u4. В данном примере куча подводных камней. Здесь критично напряжение которое стабилизируют стабилитроны, напряжение самого USB порта на компьютере. Вы как новичок просто убьете в пустую кучу времени.
Просто в том и смысл, чтобы не покупать леонардо. Но тем не менее, я все понял. Я вчера очень сильно тупил, только сейчас уже все дошло. Огромное спасибо!
Резисторы думаю подойдут. У меня не заработало со стабилитронами на 3.3в. Но даже взяв пачку на 3.6в и заменив у 6их разбросаны был от 2.9 до 3.5в. Очень сложно было из кучи подобрать чтоб 3.5в были. На этих кое как заработало. Любой забыл может компенсировать эти разбросы. У меня например хорошо работало если вставлял в USB монитора, а он как забыл уже работал и наоборот, когда вставлял в саму материнку(3.3в стабилитроны были) то с материнкой глючило. Я до сих пор не собрал полностью рабочую схему. Еще заметил что на виндовс 10 работает стабильнее чем на виндовс хp.
Несколько вариантов:
1.Подобрать стабилитроны максимально близкие к 3.6в.
2.Подключить через USB HUB.
3.Попробовать отдельное питание на ардуину, возможно нет 5-ти вольт в USB(необходимы замеры).
4.Попробовать подключить в виндовс 10.
5.Попробовать как можно подробнее описывать свои действия когда задаешь вопрос.
Все собрал, работает, но только от материнки. Но есть проблема. При приближении пальца к кнопке, клавиша на компьютере зажимается, а когда отдаляю отжимается. С чем это связано? Может слабый резистор для кнопки? (220 Ом)
1. Самопроизвольное срабатывание пина происходит когда на нем не явный логический уровень(нога висит в воздухе).
2. 220 Ом это крайне мало, это для светодиодов. Для кнопки от 1 КОм до 20 КОм.
3. Можно подключить подтягивающий резистор встроенный в саму ардуино, помоему команда INPUT_PULLUP вместо INPUT при объявлении пина как вход.
4. С такими вопросами в другую тему.
Блин, винда не может определить устройство. То есть подключаю, появляется уведомлении о том, что устройство не определено, и драйвера не ставятся по причине "Отказ". Что делать?
Это эмуляция клавиатуры PS/2 ? По крайней мере можно ли эмулировать хотя бы несколько клавиш(ну насколько хватает ног у Arduino )? Или это как обычные HID (уже современные) коавиатуры?
jeka_tm, когда дрова инитятся в функции *begin то как-бы передёргивается USB, что позволяет винде корректно определить устройство в нужный момент времени. Если тупо притянуть резистором к питанию, то возможно система не будет видеть usb-девайc после каких нибудь простоев МК или компьютера . Например после перезагрузки или спячки. Но это просто догадки, я никогда не пробывал отрубать программную подтяжку.
У меня заработало, точнее комп увидел клаву, энкодер захотел прописать в коде, но тут ошибки посыпались, меня конфликт векторов прерываний похоже с библиотекой Encoder.h
WInterrupts.c.o (symbol from plugin): In function `attachInterrupt':
02
03
(.text+0x0): multiple definition of `__vector_1'
04
05
libraries\TrinketHidCombo_MEGA328\usbdrvasm_includer.S.o:C:\YandexDisk\arduino-1.8.1\libraries\TrinketHidCombo_MEGA328\usbdrv/usbdrvasm16.inc:35: first defined here
06
07
C:\Users\Set\AppData\Local\Temp\ccNtjLBD.ltrans0.ltrans.o: In function `__vector_1':
08
09
C:\Users\Set\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\cores\arduino/WInterrupts.c:309: multiple definition of `__vector_1'
10
11
libraries\TrinketHidCombo_MEGA328\usbdrvasm_includer.S.o:C:\YandexDisk\arduino-1.8.1\libraries\TrinketHidCombo_MEGA328\usbdrv/usbdrvasm16.inc:35: first defined here
vvgnovanet, естессно, и не должно работать. Вы вставляете дефайны не понимая синтаксиса аргументов функции. Там же написано всё, void pressKey(uint8_t modifiers, uint8_t keycode1); Стало быть строчка должна быть (KEYCODE_MOD_LEFT_SHIFT, KEYCODE_LEFT_ALT).
Залил if (keydata == 0xF609FF00) {
TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_LEFT_ALT);
TrinketHidCombo.pressKey(0, 0);
TrinketHidCombo.h читал, всяко разно делал не работает.
Спаял сей девайс для хранения паролей и управления плеером (tsop4838 под контроллером)
Всё работает уже полгода, а вот сегодня захотел дополнить ещё одной функцией и не получается ))))
Вот строчка TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_CONTROL, KEYCODE_LEFT_ALT, KEYCODE_T);
CTRL+ALT+T должна открывать терминал (linux) тоже не работает, получается только CTRL + T ( открывает новый документ в текстовом редакторе)KEYCODE_LEFT_ALT пропускается. ХЗ Получается ALT не нажиматся.
Вобщем переделал переключение раскладки на CTRL + Z всё работает с SHIFT+ALT Ни как )))
работать не должна, т.к. тут два модификатора подряд, а функция не умеет их обрабатывать. В таких случаях суммируется вес каждого модификатора, смотрим в доку:
Я думаю питания будет достаточно от управляемого уст-ва по USB. Минимальность размеров будет ограничена самой клавиатурой. Делал себе подобную штуку, реализовал меню выводом в любое текстовое поле на экране управляемого устройства. Пока паролей мало, все управление происходит 1 кнопкой. Есть варианты поставить малкнький олед дисплей для меню и управление энкодером. Где вы прживаете, и какие сроки исполнения? На данный момент нет необходимых компонентов для сборки.
Подскажите сложно ли сделать гаджет на базе ардуины который вставляется в разрыв клавиатуры USB принимает все нажатия и передает их на ПК ?
Можно сниффить USB шину, и когда будет получен нужный код "напечатать" пароль. Я делал нечто близкое.
Вообще современные программные менеджеры паролей довольно удобные. Связываться с какими-то аппаратными USB-решениями нет никакой надобности, не считая единичных случаев, например на предприятиях, где запрещено устанавливать свои программы.
Щяс скину архив с ардуиной и библами.
88,4 Мбайта
USB-HID.rar Папка с ардуино иде в которую включены нужные библиотеки и папка с проектом - пример с этого сайта. Проверено на Windows XP - плату выбирал Arduino Nano. Компиляция проходит успешно.
Большое спасибо! Всё заработало.
Здравствуйте! Хочу использовать вашу библиотеку для Arduino Nano. Но я так и не понял, как нужно подключиться к USB, чтобы все это работало?
А схема в шапке не помогает? Что именно не понятно?
Вот у меня есть Arduino Nano. Что мне нужно для того чтобы вся эта схема работала, а во вторых, как физически это выглядит. Я также подключаться через microUSB должен? Или мне наужен USB-USB, к которому я буду паяться? Мне бы посмотреть как это на практике это выглядит. Также вы написали, что можно подать на vcc 3.3v, но я не нашел vcc на NANO. Он там вообще есть? И если есть, то я бы хотел попросить схему. Заранее спасибо!
Micro USB подключать только для заливеи скетча. Я отрезал от USB удокнителякусок кабеля с "папой" и подпаивал к ардуино согласно схемы. После заливки скетча через микроUSB девайс отключаем от микроUSB и втыкаем обрезок провода с "папой USB" в "маму USB на компьютере". И еще, для работы USB необходимо напряжение 3,6в. У меня при стабилитронах 3.3в. ничего не работало.
У наготове vaccine микроконтроллера соеденено с пинком +5в. Также у нано есть пин "vn" на который можно подавать напряжение от 6 до 9(12) вольт. На платком нанки стоит линейный пркобразователь напряжения который из 6...9(12)в делает 5в. И они же, эти 5в появятся на пинка +5в. Вообще для питания микроконтроолера от 3.3(3.6)в необходим и кварц меньшей частоты. Почитайте даташит на микроконтроллеры.
Хорошо, про подключение usb я понял. А вот насчёт питания не очень. Могу ли я питать ардуинку от литиионного аккума на 3.7в? И если да, то на какой пин мне подавать сигнал? Или может вообще можно от ПК питать через microUSB?
Питать можно от USB ПК, в этом случае красный провод подключаеш к +5в, черный к GND. Но логические уровни общения ардуинки с USB портом нужно привести к уровню 3.6в с помощью стабилитронов. Можно и от лития питать. В этом случае тоже + подавать на пин "+5в". НО в этом случае ардуинка должна работать на более низкой частоте. Вообще есть версии ардуино про мини с питанием от 3.3в. там и частота кварца ниже. Но производительности врятли хватит. Купите лучше другой контроллер с аппаратной поддержкой USB например ардуино леонардо или другую на базе микроконтроллера ATmega32u4. В данном примере куча подводных камней. Здесь критично напряжение которое стабилизируют стабилитроны, напряжение самого USB порта на компьютере. Вы как новичок просто убьете в пустую кучу времени.
Просто в том и смысл, чтобы не покупать леонардо. Но тем не менее, я все понял. Я вчера очень сильно тупил, только сейчас уже все дошло. Огромное спасибо!
Ещё хочу уточнить. VCC пин, на ардуино нано, в схеме каким пином заменяется? Я так понял, что на +5v Питаюсь от через microUSB.
Вы правильно поняли.
Вообще не было стабилитронов на 3.6v, были на 3.3 и 3.9. взял 3.3. Также резисторы не на 68, а на 75 ом. Подойдут?
Резисторы думаю подойдут. У меня не заработало со стабилитронами на 3.3в. Но даже взяв пачку на 3.6в и заменив у 6их разбросаны был от 2.9 до 3.5в. Очень сложно было из кучи подобрать чтоб 3.5в были. На этих кое как заработало. Любой забыл может компенсировать эти разбросы. У меня например хорошо работало если вставлял в USB монитора, а он как забыл уже работал и наоборот, когда вставлял в саму материнку(3.3в стабилитроны были) то с материнкой глючило. Я до сих пор не собрал полностью рабочую схему. Еще заметил что на виндовс 10 работает стабильнее чем на виндовс хp.
*замерив у них.
https://imgur.com/a/MQWXssh
Что делать, если не определяет устройство?
Проблема решена методом перевтыка
Несколько вариантов:
1.Подобрать стабилитроны максимально близкие к 3.6в.
2.Подключить через USB HUB.
3.Попробовать отдельное питание на ардуину, возможно нет 5-ти вольт в USB(необходимы замеры).
4.Попробовать подключить в виндовс 10.
5.Попробовать как можно подробнее описывать свои действия когда задаешь вопрос.
Все собрал, работает, но только от материнки. Но есть проблема. При приближении пальца к кнопке, клавиша на компьютере зажимается, а когда отдаляю отжимается. С чем это связано? Может слабый резистор для кнопки? (220 Ом)
1. Самопроизвольное срабатывание пина происходит когда на нем не явный логический уровень(нога висит в воздухе).
2. 220 Ом это крайне мало, это для светодиодов. Для кнопки от 1 КОм до 20 КОм.
3. Можно подключить подтягивающий резистор встроенный в саму ардуино, помоему команда INPUT_PULLUP вместо INPUT при объявлении пина как вход.
4. С такими вопросами в другую тему.
Блин, винда не может определить устройство. То есть подключаю, появляется уведомлении о том, что устройство не определено, и драйвера не ставятся по причине "Отказ". Что делать?
Это эмуляция клавиатуры PS/2 ? По крайней мере можно ли эмулировать хотя бы несколько клавиш(ну насколько хватает ног у Arduino )? Или это как обычные HID (уже современные) коавиатуры?
USB вам ничего не говорит? Шапку тяжело почитать?
Приходят флудят... зла не хватает.
Привет. Буду использовать библиотеку, но вопрос по:
а тажке в usbconfig
01
/* ----------------------- Optional Hardware Config ------------------------ */
02
03
#define USB_CFG_PULLUP_IOPORTNAME D
04
/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
05
* V+, you can connect and disconnect the device from firmware by calling
06
* the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
07
* This constant defines the port on which the pullup resistor is connected.
08
*/
09
#define USB_CFG_PULLUP_BIT 5
10
/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
11
* above) where the 1.5k pullup resistor is connected. See description
12
* above for details.
13
*/
Что это дает? Если не использовать подает сигнал на комп что клавиатура отключена?
Я просто уже спаял плату по примеру Vusb с резистром 1.5К и только сегодня нашел вашу либу. Есть ли смысл переделывать?
jeka_tm, когда дрова инитятся в функции *begin то как-бы передёргивается USB, что позволяет винде корректно определить устройство в нужный момент времени. Если тупо притянуть резистором к питанию, то возможно система не будет видеть usb-девайc после каких нибудь простоев МК или компьютера . Например после перезагрузки или спячки. Но это просто догадки, я никогда не пробывал отрубать программную подтяжку.
Спасибо. Пробую будут проблемы добавлю
У меня заработало, точнее комп увидел клаву, энкодер захотел прописать в коде, но тут ошибки посыпались, меня конфликт векторов прерываний похоже с библиотекой Encoder.h
01
WInterrupts.c.o (symbol from plugin): In function `attachInterrupt':
02
03
(.text+0x0): multiple definition of `__vector_1'
04
05
libraries\TrinketHidCombo_MEGA328\usbdrvasm_includer.S.o:C:\YandexDisk\arduino-1.8.1\libraries\TrinketHidCombo_MEGA328\usbdrv/usbdrvasm16.inc:35: first defined here
06
07
C:\Users\Set\AppData\Local\Temp\ccNtjLBD.ltrans0.ltrans.o: In function `__vector_1':
08
09
C:\Users\Set\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\cores\arduino/WInterrupts.c:309: multiple definition of `__vector_1'
10
11
libraries\TrinketHidCombo_MEGA328\usbdrvasm_includer.S.o:C:\YandexDisk\arduino-1.8.1\libraries\TrinketHidCombo_MEGA328\usbdrv/usbdrvasm16.inc:35: first defined here
12
13
collect2.exe: error: ld returned 1 exit status
14
15
exit status 1
16
Ошибка компиляции для платы Arduino/Genuino Uno.
Вот думаю попробовать твой код отсюда
Или может посоветуешь безконфликтный код энкодера
Все получилось как хотелось: управление громкостью, Mute, а также включение колонок
01
#include "TrinketHidCombo.h"
02
03
#define button 7 // кнопка энкодера
04
#define led 11 // подсветка
05
#define power_pin 10 // выход на реле
06
volatile
int
enc = 0;
07
byte
pwm = 128;
08
09
unsigned
long
time = 0;
10
bool
button_flag = 0;
11
bool
mute_flag = 0;
12
bool
power_flag = 0;
13
#define time_mute 150
14
#define time_power 2000
15
16
void
setup
() {
17
pinMode(3, INPUT);
// USB d- (белый) PORT D4 задан в usbconfig.h
18
pinMode(2, INPUT);
// USB d+ (зелёный) PORT D2 задан в usbconfig.h
19
pinMode (4, OUTPUT);
//программное включение юсб порта PORT D5 задан в usbconfig.h. Я не использую
20
TrinketHidCombo.begin();
// start the USB device engine and enumerate
21
PCICR = 1 << PCIE2;
//разрешить пренрывание
22
PCMSK2 = 1 << PCINT21;
//выбрать вход на котором сработает прерывание // энкодер на 5 и 6 пинах
23
24
pinMode(led, OUTPUT);
25
pinMode(button, INPUT);
26
pinMode(power_pin, OUTPUT);
27
analogWrite(led, 100);
28
digitalWrite(power_pin, power_flag);
29
}
30
31
void
loop
() {
32
TrinketHidCombo.poll();
// функция должна выполняется не реже 1 раза в 10мс !!!
33
if
(power_flag) {
34
if
(enc == -2) {
35
TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_DOWN);
36
enc = 0;
37
}
38
if
(enc == 2) {
39
TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_UP);
40
enc = 0;
41
}
42
}
43
else
enc = 0;
44
if
(!digitalRead(7) && !button_flag) {
// Если нажата кнопка, но до этого не нажата
45
button_flag = 1;
46
time = millis();
47
}
48
if
(digitalRead(7) && button_flag) {
// Если кнопку отпустили
49
button_flag = 0;
50
}
51
if
(button_flag && (millis() - time) > time_mute) {
//если кнопка была нажата и время прошло больше чем для mute
52
mute_flag = 1;
53
}
54
55
if
(!button_flag && mute_flag) {
// если кнпоку отпустили, но флаг mute уже изменился
56
if
(power_flag && (millis() - time) < time_power) {
57
mute_flag = 0;
58
TrinketHidCombo.pressMultimediaKey(MMKEY_MUTE);
59
}
60
if
((millis() - time) > time_power) {
61
mute_flag = 0;
62
power_flag = !power_flag;
63
digitalWrite(power_pin, power_flag);
64
}
65
}
66
}
67
68
69
70
//=============================================Обработка энкодера
71
ISR (PCINT2_vect) {
72
((PIND & 0x20) >> 4)^((PIND & 0x40) >> 5) ? enc++ : enc--;
73
}
dimax, возникла потребность в одновременном нажатии двух кнопок одновременно (нужно поменять раскладку клавиатуры) ну вообщем код
if (keydata == 0xF609FF00) {
TrinketHidCombo.pressKey(0, KEYCODE_LEFT_SHIFT, KEYCODE_LEFT_ALT);
TrinketHidCombo.pressKey(0, 0);
}
не работает. Что можно сделать ?7
vvgnovanet, использовать дефайн клавиши-модификатора. Подробности в TrinketHidCombo.h
TrinketHidCombo.pressKey(0, KEYCODE_MOD_LEFT_SHIFT, KEYCODE_MOD_LEFT_ALT);
Тоже не работает
vvgnovanet, естессно, и не должно работать. Вы вставляете дефайны не понимая синтаксиса аргументов функции. Там же написано всё, void pressKey(uint8_t modifiers, uint8_t keycode1); Стало быть строчка должна быть (KEYCODE_MOD_LEFT_SHIFT, KEYCODE_LEFT_ALT).
Залил if (keydata == 0xF609FF00) {
TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_LEFT_ALT);
TrinketHidCombo.pressKey(0, 0);
TrinketHidCombo.h читал, всяко разно делал не работает.
Спаял сей девайс для хранения паролей и управления плеером (tsop4838 под контроллером)
Всё работает уже полгода, а вот сегодня захотел дополнить ещё одной функцией и не получается ))))
Вот строчка TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_CONTROL, KEYCODE_LEFT_ALT, KEYCODE_T);
CTRL+ALT+T должна открывать терминал (linux) тоже не работает, получается только CTRL + T ( открывает новый документ в текстовом редакторе)KEYCODE_LEFT_ALT пропускается. ХЗ Получается ALT не нажиматся.
Вобщем переделал переключение раскладки на CTRL + Z всё работает с SHIFT+ALT Ни как )))
TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_CONTROL, KEYCODE_Z);
vvgnovanet, строчки
1
TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_LEFT_ALT);
2
TrinketHidCombo.pressKey(0, 0);
Точно должны работать, ищите косяк в чём-то ещё.
А вот строчка
1
TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_CONTROL, KEYCODE_LEFT_ALT, KEYCODE_T);
работать не должна, т.к. тут два модификатора подряд, а функция не умеет их обрабатывать. В таких случаях суммируется вес каждого модификатора, смотрим в доку:
#define KEYCODE_MOD_LEFT_CONTROL 0x01
#define KEYCODE_MOD_LEFT_ALT 0x04
и пишем так:
1
TrinketHidCombo.pressKey(0x5, KEYCODE_R);
2
TrinketHidCombo.pressKey(0,0);
Вуаля.
dimax, огромное спасибо. Будем искать.
Не знаю на что подумать но TrinketHidCombo.pressKey(KEYCODE_MOD_LEFT_SHIFT, KEYCODE_LEFT_ALT);
Так и не работает.
Зато сработал код
TrinketHidCombo.pressKey(0x6, 0);
#define KEYCODE_MOD_LEFT_SHIFT 0x02
+
#define KEYCODE_MOD_LEFT_ALT 0x04
dimax, огромное спасибо ещё раз, про сложение модификаторов не знал )))
Я тоже хочу подобный гаджет - "гаджет быстрого ввода пароля".
Может кто-то из умельцев за деньги реализует мой проект?
Я написал ТЗ тут.
http://bit.ly/2XoDfMG
Я думаю питания будет достаточно от управляемого уст-ва по USB. Минимальность размеров будет ограничена самой клавиатурой. Делал себе подобную штуку, реализовал меню выводом в любое текстовое поле на экране управляемого устройства. Пока паролей мало, все управление происходит 1 кнопкой. Есть варианты поставить малкнький олед дисплей для меню и управление энкодером. Где вы прживаете, и какие сроки исполнения? На данный момент нет необходимых компонентов для сборки.
JuraPal, я использую вот такой пульт
самодельный Digispark + tsop4838 на скриншоте выше.
Данное устройство работает даже на смартфонах с поддержкой OTG.
Прикольно. У меня такие пульты где то валяются.
И как это у вас работает ?
Как Вы в пульт записыватете пароли ? Как их передаете на ПК по USB ?
Подскажите сложно ли сделать гаджет на базе ардуины который вставляется в разрыв клавиатуры USB принимает все нажатия и передает их на ПК ?
В пульт ничего не записывается.
В принципе нужны 3 вещи - данный пульт Digispark tsop4838
tsop4838 припаивается к Digispark вот так
и туда прошивается программа которая и будет отслеживать сигналы с пульта
Работает всё по образу беспроводной клавиатуры.
Если руки у Вас дойдут до сборки, то скечем поделиться могу.
Digispark прошивается тем же Arduino IDE
Как запихать скетч в Digispark - инструкций полно на просторах интернета.
Если руки у Вас дойдут до сборки, то скечем поделиться могу.
Скинь пожалуйста сюда, в форум, я думаю многим будет интересно.
Ссылочка на архив https://yadi.sk/d/xX1VWHbvgAVBUw
Там вложена библиотека TrinketHidCombo
**************** в скетче нужно заменить на пароли
ну и по остальному там можно разобраться и самому.
Ps: и не забываем сказать спасибо dimax !!
Скетч использует 5494 байт (91%) памяти устройства. Всего доступно 6012 байт.
Глобальные переменные используют 130 байт динамической памяти.
JuraPal, всё верно поняли. + там я ещё управляю просмотром видео ,музыка, перемотка, громкость (работает и на youtube) меняется раскладка клавиатуры
Там под себя можно всё изменить.
Подскажите сложно ли сделать гаджет на базе ардуины который вставляется в разрыв клавиатуры USB принимает все нажатия и передает их на ПК ?
Можно сниффить USB шину, и когда будет получен нужный код "напечатать" пароль. Я делал нечто близкое.
Вообще современные программные менеджеры паролей довольно удобные. Связываться с какими-то аппаратными USB-решениями нет никакой надобности, не считая единичных случаев, например на предприятиях, где запрещено устанавливать свои программы.
518 байт остаеться (6012 - 5494 )
Маловато даже на хранение паролей.
если на пароль 20 байт в среднем (номер пароля и пароль на 8 символов по 2 байта)
т.е. всего получиться записать 25 паролей кроме тех которые уже в скейче просипаны.
dimax, можете считать меня параноиком но доверять свои пароли современным програмным менеджерам я как-то не хочу. ))
Да и предприятие у нас действительно ещё то ))