Здравствуйте, гость ( Вход | Регистрация )

> Pilot + Arduino (Hardware clicker)
yamenko
сообщение 7.3.2020, 19:21
Сообщение #1


***

Novice
Сообщений: 79
Регистрация: 19.8.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 16.974
Возраст: 29



Добрый день.
Хочу представить вам аппаратный кликер на базе 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Crocotea
сообщение 24.11.2020, 17:28
Сообщение #2


***

Novice
Сообщений: 51
Регистрация: 30.10.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.787



Есть 1 важное наблюдение
запустил на ноуте то же самое.
После компиляции скетча Cockney вар4 идет стабильная работа. Далее после компиляции скетча cirus идет стабильная работа. При откате скетча обратно на Cockney вар4 наблюдается та же проблема. Далее возвращаем скетч cirus и опять работа идет стабильно. По сути после скетча cirus не работают остальные. Также меняются порты, т.е Cockney вар4 на компьютере идет как СОМ5, а cirus почему-то меняется на СОМ8.
Скетч Cockney вар4 вписывает символ sendKey("s") далее начинается спам. Такое чувство что скетч cirus частично остается в памяти или еще где-то. То есть скетч Cockney вар4 меняет свои параметры нажатий частично
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
yamenko   Pilot + Arduino (Hardware clicker)   7.3.2020, 19:21
cirus   Arduino позволяет эмулировать нажатия клавиш кл...   8.3.2020, 11:50
yamenko   С этой штукой будет нажимать клавиши в обход game...   8.3.2020, 19:26
AK_sata   Прива вопрос по поводу этого Как только вы заполуч...   30.8.2020, 20:13
cirus   Перейти по ссылке https://www.arduino.cc/en/Main/...   30.8.2020, 22:02
DarkMaster   yamenko, памятник вам надо.   19.9.2020, 5:24
Crocotea   Купил приблуду, но клики не проходили Благодаря Da...   10.11.2020, 15:32
DarkMaster   Ирония в том, что код оказался изначально рабочим...   10.11.2020, 15:34
Crocotea   при запуске скрипта пилота, после нескольких запус...   10.11.2020, 15:48
Crocotea   Эх тема совсем никому не интересна(( Подскажите пж...   16.11.2020, 9:35
DarkMaster   интересна, но у меня есть дела и помимо нее. В час...   16.11.2020, 10:24
Cockney   Накидал вариант. Насколько рабочий не знаю, не мог...   16.11.2020, 11:48
Crocotea   Накидал вариант. Насколько рабочий не знаю, не мо...   17.11.2020, 15:04
Cockney   Так результат по парсингу Пишет ошибку в строчке ...   17.11.2020, 15:14
Crocotea   поправил Так попробовал и записал видосик Sfd3U...   17.11.2020, 17:36
DarkMaster   Cockney, не будет ли правильным использовать какой...   16.11.2020, 15:53
Cockney   Да можно все, разумеется. У меня нет ни устройства...   16.11.2020, 16:20
Cockney   Очередная правка, выношу код сюда, ибо старый пост...   17.11.2020, 18:37
Crocotea   Очередная правка, выношу код сюда, ибо старый пос...   17.11.2020, 18:45
Cockney   #include <Keyboard.h> #include <stdl...   18.11.2020, 12:50
Crocotea   [spoiler=Версия №4] [code] #include <Keyboard...   18.11.2020, 17:30
DarkMaster   Предлагаю в: --lua local function sendKey (sym...   18.11.2020, 18:15
Cockney   Оно и сейчас себя ожидаемо ведет. Мы прочитали пер...   18.11.2020, 18:35
DarkMaster   Оно просто в буффер накидывает быстрее, чем ты счи...   18.11.2020, 18:56
Cockney   Я вроде примерно тоже самое и описал. Мои соображе...   18.11.2020, 19:15
DarkMaster   Ну дык и я о том же. Едиственное экран на всяких с...   18.11.2020, 19:21
Crocotea   sendKey ("1||4") wait(100)...   18.11.2020, 21:24
DarkMaster   ибо луа   18.11.2020, 21:45
Crocotea   Подскажите, при параллельном запуске 2 скриптов во...   19.11.2020, 0:50
DarkMaster   Скан коды клавиш для этого нужно смотреть. Ну и д...   19.11.2020, 2:29
Crocotea   Скан коды клавиш для этого нужно смотреть. Ну и д...   21.11.2020, 4:23
DarkMaster   sendKey ("100||"..string.char (0x1)) ка...   21.11.2020, 4:39
Crocotea   sendKey ("100||"..string.char (0x1)) ка...   21.11.2020, 5:18
Cockney   Вообще не точно.... Теперь задержка указывается по...   22.11.2020, 2:18
DarkMaster   Ну и предвосхищая возможные вопросы/проблемы реком...   22.11.2020, 4:17
cirus   Неплохо бы проверять открылся ли порт, если не отк...   22.11.2020, 4:34
Crocotea   Неплохо бы проверять открылся ли порт, если не от...   22.11.2020, 12:40
DarkMaster   Тогда надо и возвращать ошибку и мониторить возвр...   22.11.2020, 4:37
cirus   На плате лампочки мигают когда что-то приходит в ...   22.11.2020, 4:46
Cockney   что именно не так работает ?   22.11.2020, 13:31
Crocotea   что именно не так работает ? Стоит вопрос как н...   22.11.2020, 13:53
DarkMaster   https://github.com/arduino-libraries/Keyboa.../src...   22.11.2020, 15:07
cirus   Архив распаковать, файл Arduino.lua положить в пап...   22.11.2020, 18:37
Crocotea   Архив распаковать, файл Arduino.lua положить в па...   22.11.2020, 23:44
Cockney   Архив распаковать, файл Arduino.lua положить в па...   23.11.2020, 0:11
Cockney   Архив распаковать, файл Arduino.lua положить в па...   25.11.2020, 18:50
DarkMaster   Так а с чего оно писать будет? Это ескейп, которы...   22.11.2020, 23:49
Crocotea   Так а с чего оно писать будет? Это ескейп, которы...   22.11.2020, 23:51
cirus   В архиве скетч, его вообще-то загрузить надо в ус...   22.11.2020, 23:53
Crocotea   В архиве скетч, его вообще-то загрузить надо в ус...   22.11.2020, 23:58
DarkMaster   cirus, теперь еще и с мышью. Круть. К нижеследующе...   23.11.2020, 1:09
cirus   Ну да, куда ещё-то. И загрузить в устройство. Da...   23.11.2020, 1:17
Crocotea   Ну да, куда ещё-то. И загрузить в устройство. Da...   23.11.2020, 14:07
DarkMaster   Хз. Как по мне смысла нет. Ничего вычислительно н...   23.11.2020, 2:00
cirus   key('S') напишет большую букву. Если над...   23.11.2020, 14:45
Crocotea   key('S') напишет большую букву. Если над...   23.11.2020, 15:21
DarkMaster   а text не работает что ли? Не выдержала душа) Убр...   23.11.2020, 17:55
DarkMaster   Обновлен Arduino.lua   23.11.2020, 18:39
DarkMaster   на чьем скетче? любом скетче [youtube]j1_IcoJG8...   23.11.2020, 20:28
Crocotea   на чьем скетче? любом скетче j1_IcoJG8vQ Достаточ...   23.11.2020, 20:55
Crocotea   Столкнулся с проблемой. При загрузке ЛЮБОГО парсин...   23.11.2020, 20:41
DarkMaster   какой именно скетч и какой именно arduino.lua? так...   23.11.2020, 21:31
Crocotea   какой именно скетч и какой именно arduino.lua? та...   23.11.2020, 22:56
DarkMaster   вы противоречите сами себе. Пожалуйста, подробне...   23.11.2020, 23:08
Crocotea   вы противоречите сами себе. Пожалуйста, подробнее...   23.11.2020, 23:09
DarkMaster   у меня блочатся внешние элементы. могу лишь догад...   23.11.2020, 23:15
Crocotea   у меня блочатся внешние элементы. могу лишь догад...   23.11.2020, 23:19
Crocotea   часть иероглифов, которые спамятся при старте П. ...   23.11.2020, 23:44
DarkMaster   Порт не спутали? Может нумерация изменилась. Текст...   23.11.2020, 23:52
Crocotea   Порт не спутали? Может нумерация изменилась. Текс...   24.11.2020, 0:05
DarkMaster   попробуй в чистом luajit, не в пилоте. можно взять...   24.11.2020, 0:09
cirus   Отправить команду в порт, с пилота или любой друг...   24.11.2020, 2:00
Crocotea   Отправить команду в порт, с пилота или любой друг...   24.11.2020, 12:35
DarkMaster   вау. а считать ответ кмд может?   24.11.2020, 2:35
cirus   Наверное может, не знаю.   24.11.2020, 11:27
cirus   Значит не в пилоте проблема. Причину спама не зна...   24.11.2020, 12:47
Crocotea   так же происходят перемещение и нажатия клавиш мыш...   24.11.2020, 13:51
cirus   Загрузите этот скетч: [code]#include <Keyboar...   24.11.2020, 14:22
Crocotea   Загрузите этот скетч: [spoiler=Скетч][code]#inclu...   24.11.2020, 17:17
DarkMaster   Господа, а меня тут мысль, так сказать посетила......   24.11.2020, 15:13
cirus   Порты могут меняться при загрузке скетча, почему ...   25.11.2020, 2:12
DarkMaster   Потому что это юсб и ком порты там виртуальные. В...   25.11.2020, 2:34
Cockney   В последней версии такого нет.   25.11.2020, 3:09
DarkMaster   Действительно... Crocotea, а нафига старую верси...   25.11.2020, 6:17
Crocotea   Действительно... Crocotea, а нафига старую версию ...   25.11.2020, 15:20
cirus   В ней надо небольшие правки вносить, т. к. остала...   25.11.2020, 15:09
DarkMaster   все обращения через hw. какую ошибку?   25.11.2020, 17:14
Crocotea   все обращения через hw. какую ошибку? 17:23...   25.11.2020, 17:24
DarkMaster   чего? файл arduino точно мой и на месте лежит? та...   25.11.2020, 18:23
Crocotea   чего? файл arduino точно мой и на месте лежит? та...   25.11.2020, 18:47
DarkMaster   Crocotea, Поправил. https://forum.uokit.com/index....   25.11.2020, 20:21
Cockney   Cockney, откуда этот кусок кода? скетч cirus. ...   25.11.2020, 21:31
Crocotea   Crocotea, Поправил. https://forum.uokit.com/index...   25.11.2020, 22:51
DarkMaster   Текст ошибки. Не может быть той же - там в этой с...   25.11.2020, 23:01
Crocotea   Текст ошибки. Не может быть той же - там в этой с...   25.11.2020, 23:07
DarkMaster   все через hw. hw.com = 8 hw.set_delay_key = 20 hw....   26.11.2020, 0:01
cirus   Пример использования: [code]--lua local hw = req...   26.11.2020, 2:15
Crocotea   Пример использования: [code]--lua local hw = re...   26.11.2020, 12:13
DarkMaster   я еще могу понять чем тебе не угодили _return и _e...   26.11.2020, 5:50
2 страниц V  1 2 >


Ответить в эту темуОткрыть новую тему
15 чел. читают эту тему (гостей: 15, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 3.9.2025, 10:32
Designed by Nickostyle