Показано с 361 по 370 из 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 
Просмотров:	19681 
Размер:	3.8 Кб 
ID:	5794   Нажмите на изображение для увеличения. 

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

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

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

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

Ваши права

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