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

> 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   Нет. Для теста: #include <Mouse.h> void s...   26.11.2020, 13:04
Crocotea   --lua local com = 8 -- Номер порта local command...   26.11.2020, 13:23
cirus   На сколько перемещает? --lua local com = 8 -- Номе...   26.11.2020, 13:32
Crocotea   В параметрах мыши убрать галку 'Включить повы...   26.11.2020, 14:24
Fors1k   В параметрах мыши убрать галку 'Включить повы...   23.12.2020, 2:28
DarkMaster   Можешь дать некоторую табличку перемещений? Перем...   26.11.2020, 23:40
cirus   При включённой галке 'Включить повышенную то...   27.11.2020, 2:58
DarkMaster   Забавно. Т.е. получается в винде макс скорость пе...   27.11.2020, 3:29
cirus   Не знаю, на тесты пока нет времени. Чуть позже, ...   27.11.2020, 3:54
cirus   В архиве скетч и модуль lua. Исправлено export_ar...   27.11.2020, 4:42
Crocotea   В архиве скетч и модуль lua. не отпускает клав...   27.11.2020, 15:19
Crocotea   сегодня постараюсь сделать полный тест всех функц...   27.11.2020, 11:46
cirus   Нет. Можно добавить свою функцию. --lua local hw ...   27.11.2020, 12:52
Crocotea   Нет. Можно добавить свою функцию. --lua local hw ...   6.12.2020, 16:54
cirus   Увеличить паузу между нажатием и отпускание кнопо...   27.11.2020, 15:27
Crocotea   Увеличить паузу между нажатием и отпускание кнопо...   27.11.2020, 15:28
cirus   Исправил. Исправил drag. Убрал паузу при чтении и...   28.11.2020, 3:17
Cockney   Исправил. Исправил drag. Убрал паузу при чтении и...   28.11.2020, 18:00
cirus   Исправил ошибки. #include <Mouse.h> #inclu...   28.11.2020, 20:03
Crocotea   Исправил ошибки. [spoiler=Скетч][code]#include ...   29.11.2020, 21:20
cirus   Crocotea, проверьте этот код: --lua local ffi = re...   29.11.2020, 23:12
Crocotea   Crocotea, проверьте этот код: [spoiler=Узнать ном...   30.11.2020, 0:41
DarkMaster   А поменять?)   30.11.2020, 0:31
cirus   Вообще-то это скрипт луа, а не скетч.   30.11.2020, 0:53
Crocotea   Вообще-то это скрипт луа, а не скетч. оуу, так ч...   30.11.2020, 1:39
cirus   Это нужный порт?   30.11.2020, 1:44
Crocotea   Это нужный порт? да СОМ8   30.11.2020, 2:52
cirus   Добавил функцию в модуль. Теперь можно не указыв...   30.11.2020, 3:10
Crocotea   Добавил функцию в модуль. Теперь можно не указы...   30.11.2020, 22:16
cirus   Убрал не нужные паузы из скетча. При переполнени...   1.12.2020, 13:17
cirus   Перенесено в пост №2 https://forum.uokit.com/index...   6.12.2020, 1:53
DarkMaster   cirus, у тебя второй пост в теме. Это очень хороши...   6.12.2020, 8:42
cirus   Перенёс. Тему можно почистить.   6.12.2020, 11:41
cirus   Для этого есть функция text().   6.12.2020, 16:59
cirus   Пробуйте. Можно запускать несколько скриптов. Не...   7.12.2020, 13:13
Crocotea   Пробуйте. Можно запускать несколько скриптов. Не...   7.12.2020, 17:14
cirus   Допустим, скрипт1 отправляет команду ардуино, теп...   8.12.2020, 3:29
cirus   Перенесено в пост №2.   11.12.2020, 3:50
trico   с arduino UNO получится? и поможет ли это в борьбе...   20.12.2020, 3:36
DarkMaster   Потихоньку переезжаем сюда https://forum.uokit.com...   20.12.2020, 5:18
cirus   Нет. Нужна плата с микроконтроллером ATmega32u4, ...   20.12.2020, 9:34
DarkMaster   А можно мне пояснить в чем разница между контролле...   20.12.2020, 10:50
cirus   Micro и Leonardo определяются как USB устройство.   20.12.2020, 17:08
DarkMaster   Так а определение разве не зависит от прошивки? О...   21.12.2020, 1:59
cirus   От прошивки зависит только то, что будет выполнят...   21.12.2020, 2:11
DarkMaster   Да, но добавляя заголовок клавиатуры мы получаем ...   21.12.2020, 3:26
Cockney   Правильно ли я понимаю, что грубо говоря есть 2 ...   21.12.2020, 11:49
cirus   Если нет мыши, то заголовочный файл никак не помо...   21.12.2020, 3:45
DarkMaster   Пока не появилась твоя версия с мышой в заголовке...   21.12.2020, 4:57
ya_ne_pil   Очень жаль что тема почти умерла но по ней я смог ...   30.9.2022, 20:53
Madeus   Актуальная тема по Arduino   30.9.2022, 22:15
ya_ne_pil   Актуальная тема по Arduino Спасибо! Пропусти...   30.9.2022, 23:19
kdv   Доброе утро, приобрёл этот дивайс и хотел попробов...   11.3.2023, 10:06
cirus   В вашем скрипте нет функций для нажатий через арду...   11.3.2023, 11:34
kdv   Да тут еше хуже, все норм а теперь вылазиет это со...   11.3.2023, 13:32
cirus   Всё что нужно, включая скетч и примеры использован...   11.3.2023, 13:49
kdv   Всё что нужно, включая скетч и примеры использова...   11.3.2023, 14:06
cirus   Перезагрузка пк решает многие проблемы. Также на а...   11.3.2023, 14:42
2 страниц V < 1 2


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

 

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