Вложений: 13
Управление рулевыми кнопками при помощи Carduino.
Софт написан для Arduino v.7
Выкладываю программу для управления компьютером рулевыми кнопками. Можно сделать резистивную клавиатуру и тоже ее использовать совмесно с Arduino. Программа легко одним нажатием настраивается на любые комбинации клавиш , также настраивается на расширенные мультимедийные клавиши(проверил лично) . Тому у кого нет мультимедийных клавиш на клавиатуре могут прописать в ручную в файле config.txt, например регулировка громкости в виндовс использует сканкод мультимедийных клавиши (уменьшить это код -174, увеличить это код-175)
Список горячих клавиш для Centrafuse
Сначала настраиваем на рулевые кнопки горячие клавиши запустив файл KeyConfig.exe, нажимать клавиши на клавиатуре нужно последовательно и по очереди. Набрав нужную комбинацию нажмите кнопку на руле и потом кнопку Добавить. Таким образом можно добавлять до 100 комбинаций и больше. После того как вы назначили все нужные вам кнопки. Нажмите кнопку Сохранить и выйдите из программы.
Теперь ставим в автозагрузку программу HotKey.exe и пользуемся.
Код для Arduino Nano v.7 работающий с одним нажатием:
PHP код:
//http://compcar.ru
#define PIN 5 //номер аналогового порта
#define LIMIT 5 //предел погрешности сопротивления
byte bytes[2];
int res_dt1, res_d;
unsigned long math_time,old_time,real_time;
void setup()
{
Serial.begin(115200); // настроить скорость com порта
}
void loop()
{
res_d = analogRead(PIN); // прочитать данные АЦП
delay(30);
res_dt1 = analogRead(PIN); // прочитать данные АЦП
old_time = millis();
math_time = 0;
while(math_time < 300 && (res_dt1 > res_d-LIMIT && res_dt1 < res_d+LIMIT ))
{
real_time = millis(); //получить реальное время
math_time = real_time - old_time; //считаем длительность нажатия
res_dt1 = analogRead(PIN); // прочитать данные АЦП
}
if( math_time > 50) //если нет дребезга то короткое нажатие
{
bytes[0] = res_d & 255; // преобразовать в 2-байта
bytes[1] = (res_d & 768) >> 8;
Serial.write( bytes,2); // отправить прочитаное значение компьютеру
}
}
Код для Arduino, работает с длинным и коротким нажатием.
PHP код:
//http://compcar.ru
#define PIN 5 //номер аналогового порта
#define LIMIT 6 //предел погрешности сопротивления
byte bytes[2];
int res_dt1;
byte idx=0;
unsigned long math_time,old_time,real_time;
void setup()
{
Serial.begin(115200); // настроить скорость com порта
}
void loop()
{
old_time = real_time;
math_time = 0;
res_dt1 = analogRead(PIN); // прочитать данные АЦП
while(math_time < 500 && analogRead(PIN)>res_dt1-LIMIT && analogRead(PIN) < res_dt1+LIMIT && res_dt1 != 1023)
{
real_time = millis(); //получить реальное время
math_time = real_time - old_time; //считаем длительность паузы
}
if(math_time > 30 && res_dt1 != 1023) //если нет дребезга
{
if (idx==1 && math_time < 500){ res_dt1 = 1023; idx=0; }
else if(math_time > 499){ res_dt1 |= 1024; idx=1; }
bytes[0] = res_dt1 & 255; // преобразовать в 2-байта
bytes[1] = (res_dt1 & 1792) >> 8;
Serial.write( bytes,2); // отправить прочитаное значение компьютеру
} else idx=0;
}
Re: Управление рулевыми кнопками при помощи Carduino.
А как подключить кнопки с руля к Arduino?
Re: Управление рулевыми кнопками при помощи Carduino.
Прочти первый пост внимательней , там написано.
Re: Управление рулевыми кнопками при помощи Carduino.
на autohotkey будет ли подерживатся?
Re: Управление рулевыми кнопками при помощи Carduino.
Я с autohotkey не разбирался , а для чего если прога есть настраиваешь свои клавиши и все
Re: Управление рулевыми кнопками при помощи Carduino.
Мне надо что бы она работала с окнами приложения, например если запущено окно приложения и оно не активно, делала его активным и нажимала в нём нужную кнопку.
Re: Управление рулевыми кнопками при помощи Carduino.
Откуда программе знать какому приложению ты посылаешь нажатия?
Для этого нужно переписывать программу.
Re: Управление рулевыми кнопками при помощи Carduino.
ну вот если бы она была совместима с автохоткей то тогда бы можно было научить. Мб есть вариант прикрутить его к драйверу джойстика?
Re: Управление рулевыми кнопками при помощи Carduino.
А что имеется ввиду про совместимость с автохоткей ?
Опиши задачу .
Re: Управление рулевыми кнопками при помощи Carduino.
Цитата:
Сообщение от
Chip
А что имеется ввиду про совместимость с автохоткей ?
Опиши задачу .
Под совместимостью я подразумевают что бы можно было данный девайс индефицировать в скрипте autohotkeya, получать от него координаты, имя устройства и т.д. то что понадобится, а далее прикручивать скриптовым языком к чему либо. Например как дела обстоят с микрухой от джойстика, когда она подсоединена к усб и настроена. По этому линку лежат 2 скрипта для автохоткей, первый это для настройки кнопок и индификации, а второй для узнавания координат по осям. Вот это я имел ввиду есть ли возможно как-то прикрутить данный девайс к драйверу джойстика, или каким нибудь другим способом что бы оно распознавалось автохоткеим.