Страница 1 из 57 12345671151 ... ПоследняяПоследняя
Показано с 1 по 10 из 561
  1. #1
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Управление рулевыми кнопками при помощи 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;  
    } 
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	scrn.png 
Просмотров:	19682 
Размер:	3.8 Кб 
ID:	5794   Нажмите на изображение для увеличения. 

Название:	NANO_button.png 
Просмотров:	4663 
Размер:	24.5 Кб 
ID:	7937  
    Последний раз редактировалось Chip; 16.03.2017 в 01:34.

  2. #2
    Пользователь
    Регистрация
    17.03.2009
    Возраст
    41
    Сообщений
    45
    Вес репутации
    225

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    А как подключить кнопки с руля к Arduino?

  3. #3
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Прочти первый пост внимательней , там написано.

  4. #4
    Пользователь
    Регистрация
    21.04.2009
    Сообщений
    92
    Вес репутации
    235

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    на autohotkey будет ли подерживатся?

  5. #5
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Я с autohotkey не разбирался , а для чего если прога есть настраиваешь свои клавиши и все

  6. #6
    Пользователь
    Регистрация
    21.04.2009
    Сообщений
    92
    Вес репутации
    235

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Мне надо что бы она работала с окнами приложения, например если запущено окно приложения и оно не активно, делала его активным и нажимала в нём нужную кнопку.

  7. #7
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Откуда программе знать какому приложению ты посылаешь нажатия?
    Для этого нужно переписывать программу.

  8. #8
    Пользователь
    Регистрация
    21.04.2009
    Сообщений
    92
    Вес репутации
    235

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    ну вот если бы она была совместима с автохоткей то тогда бы можно было научить. Мб есть вариант прикрутить его к драйверу джойстика?

  9. #9
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    А что имеется ввиду про совместимость с автохоткей ?
    Опиши задачу .

  10. #10
    Пользователь
    Регистрация
    21.04.2009
    Сообщений
    92
    Вес репутации
    235

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Chip Посмотреть сообщение
    А что имеется ввиду про совместимость с автохоткей ?
    Опиши задачу .
    Под совместимостью я подразумевают что бы можно было данный девайс индефицировать в скрипте autohotkeya, получать от него координаты, имя устройства и т.д. то что понадобится, а далее прикручивать скриптовым языком к чему либо. Например как дела обстоят с микрухой от джойстика, когда она подсоединена к усб и настроена. По этому линку лежат 2 скрипта для автохоткей, первый это для настройки кнопок и индификации, а второй для узнавания координат по осям. Вот это я имел ввиду есть ли возможно как-то прикрутить данный девайс к драйверу джойстика, или каким нибудь другим способом что бы оно распознавалось автохоткеим.

Страница 1 из 57 12345671151 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •