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

> 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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
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
Crocotea   Есть 1 важное наблюдение запустил на ноуте то же с...   24.11.2020, 17:28
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 >


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

 

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