Добрый день.
Хочу представить вам аппаратный кликер на базе UOpilot.
Для начала вам необходима будет плата Arduino micro (Arduino Leonardo) обязательно с чипом
Atmega 32u4. Другие не подойдут, так как не определяются системой как HID устройство, и придется долго настраивать аппаратную и программную составляющую.
Можете выбрать следующие:
(IMG:https://i.ibb.co/5GRGCDW/2020-03-07-18-38-55.png)
(IMG:https://i.ibb.co/P1DgmDt/2020-03-07-18-40-05.png)
Как только вы заполучили свою новую плату, скачиваем и устанавливаем последнюю версию Arduino IDE с офф. сайта Arduino.cc
(IMG:https://i.ibb.co/HVM0nBK/2020-03-07-18-37-38.png)
Пробуем подключить, она должна у вас определится в устройствах как Mikro или Leonardo.
(IMG:https://i.ibb.co/SRnMV1S/2020-03-07-18-44-57.png)
Если не появляется, тогда устанавливаем драйвера, для не оригинальных плат с алиэкспресс нужен спец драйвер CH340 (ch341ser), пробуйте с разных сайтов, даже с одинаковым названием, они почему-то разные.
Вот тут можно посмотреть драйверЗапоминаем СОМ порт!
Открываем Arduino IDE
Настраиваем нашу плату:
(IMG:https://i.ibb.co/4dj9RvK/2020-03-07-18-47-26.png)
(IMG:https://i.ibb.co/YbXd4MS/2020-03-07-18-48-38.png)
Закидываем скретч отсюда:
https://forum.uokit.com/index.php?s=&sh...st&p=436373устаревший скетч с ошибкой. Используйте скетч из ссылки выше.
Код
#include <Keyboard.h>
int i = 0;
int trigerKey = 0;
int lengthStr = 0;
int key[20];
int tmDelayValue;
String tmDelayStr;
void setup() {
Serial.begin(9600);
Keyboard.begin();
}
void loop() {
// Собираем информацию из порта
while (Serial.available()) {
key[i++] = Serial.read();
delay(5);
}
// Триггер, что данные пришли
if (i != 0 && lengthStr == 0){
lengthStr = i;
i = 0;
}
if (lengthStr != 0){
for (i = 0; i <= lengthStr; i++){
delay(5);
//Находим задержку с которой необходимо нажимать кнопки
if (trigerKey == 0){
if (key[i] == 124){
tmDelayValue = tmDelayStr.toInt();
trigerKey = 1;
i++;
}
else {
tmDelayStr += char (key[i]);
}
}
//Находим и нажимаем спец кнопки если необходимо
if (trigerKey == 1){
if (key[i] == 94){Keyboard.press(KEY_LEFT_CTRL);} //94 - символ "^"
if (key[i] == 64){Keyboard.press(KEY_LEFT_ALT);} //64 - символ "@"
if (key[i] == 126){Keyboard.press(KEY_LEFT_SHIFT);} //126 - символ "~"
if (key[i] == 124){trigerKey = 2; i++;} //124 - символ "|"
}
//Нажимаем по очереди остальные кнопки с задержкой
if (trigerKey == 2){
delay(tmDelayValue);
Keyboard.print(char (key[i]));
}
}
// Сбрасываем все
Keyboard.releaseAll();
i = 0;
trigerKey = 0;
lengthStr = 0;
tmDelayStr = "";
}
}
заливаем его в плату.
(IMG:https://i.ibb.co/W50GRnL/2020-03-07-18-50-19.png)
Должно написать «Загрузка завершена»
Теперь переходим в Пилот
Добавляем функцию
Код
--lua
local function sendKey (symbol)
file = io.open("COM7","w") --меняем только номер COM порта, остальное не трогаем
file:write(symbol)
file:close()
end
Пользоваться так:
sendKey ("1000|^|axv") пишем в кавычках1. До первой вертикальной черты это задержка между каждым нажатием кнопок в мс.
2. После первой черты и до второй это спец символы (~@^, такие как настроены в Пилоте, другие не используйте так как ничего все равно работать не будет), если символы не нужны просто удалите их,
2 вертикальные черты обязательны!!!3. Набор символов которые необходимо нажать (каждая кнопка будет нажиматься через заданный интервал),
русские символы не работают!!!PS в данном примере CTRL+a, CTRL+x, CTRL+v, это чтобы вы могли проверить правильно ли работает или нет.
Сообщение отредактировал DarkMaster - 9.12.2020, 15:34