PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Резистивные кнопки (http://pccar.ru/forumdisplay.php?f=165)
-   -   Крутилка громкости Arduino HID (http://pccar.ru/showthread.php?t=20222)

putok 02.01.2014 20:42

Крутилка громкости Arduino HID
 
Вложений: 2
Так как регулировать громкость в машине с экрана тача это тот еще ад решил сделать крутилку. Случайно наткнулся на библиотеку MouseKeyboard и решил что это идеально мне подходит =) купил плату Leonardo. Суть такова, берем фубар, ему назначаем хот кеи на уменьшение звука и увеличение, а также на паузу ( в данном случае это сочетание CTRL + SHIFT + Q, A, P ) и эмулируем их. Как видно кнопок можно прикручивать огромную кучу =)

скетч
PHP код:

unsigned long currentTime;
unsigned long loopTime;
const 
int pin_enc_A 2;       
const 
int pin_enc_B 3;    
const 
int pin_pause 4;    
unsigned char encoder_A;
unsigned char encoder_B;
unsigned char encoder_A_prev=0;
unsigned char pause;

void setup() {
  
pinMode(pin_enc_AINPUT_PULLUP); // encoder 1
  
pinMode(pin_enc_BINPUT_PULLUP); // encoder 2
  
pinMode(pin_pauseINPUT_PULLUP); // encoder pause
  
currentTime millis();
  
loopTime currentTime
  
Keyboard.begin();
}
 
void loop() {
  
currentTime millis();
  if(
currentTime >= (loopTime 5)){ // проверяем каждые 5мс (200 Гц)
    
encoder_A digitalRead(pin_enc_A);     // считываем состояние выхода А энкодера 
    
encoder_B digitalRead(pin_enc_B);     // считываем состояние выхода А энкодера    
    
if((!encoder_A) && (encoder_A_prev)){    // если состояние изменилось с положительного к нулю
      
if(encoder_B
       {
        
// выход В в полож. сост., значит вращение по часовой стрелке
         
Keyboard.press(KEY_LEFT_CTRL);
         
Keyboard.press(KEY_LEFT_SHIFT);
         
Keyboard.press('q');
         
delay(50);   
         
Keyboard.releaseAll();     
       }   
      else {
         
Keyboard.press(KEY_LEFT_CTRL);
         
Keyboard.press(KEY_LEFT_SHIFT);
         
Keyboard.press('a');
         
delay(50);   
         
Keyboard.releaseAll();          
      }   
    }   
    
encoder_A_prev encoder_A;     // сохраняем значение А для следующего цикла 
    
    
    
if ( !digitalRead(pin_pause) )   {
       
pause=1;           
     }
     else {
      if ( 
pause ) {          
       
Keyboard.press(KEY_LEFT_CTRL);
       
Keyboard.press(KEY_LEFT_SHIFT);
       
Keyboard.press('p');
       
delay(50);   
       
Keyboard.releaseAll(); 
       
pause=0;
      }          
     }

    
loopTime currentTime;
  }                         



Sanekk63 18.09.2015 23:35

Подойдёт ли данный скетч для ардуино про микро?

~aviator~ 18.09.2015 23:41

Такую крутилку сделал на старой мышке с мех. Энкодером
Мне кажется все проще ничего писать не нужно, перепаял и все

Sanekk63 19.09.2015 07:51

Впоследствии хочу рулевые кнопки подключить к ардуино

Vlad-bodryi 19.09.2015 08:31

если незнаешь программирование, а судя по этим вопросам ты его не знаешь, купи готовый от YAM1966. цена хоть сейчас и знатная, но она этого стоит, там как в вашем любимом лозунге-заманухи "ALL INCLUSIVE". поверь, потратишь больше...

Sanekk63 19.09.2015 08:44

Купить оно всегда проще и быстрее, но хочется сделать самому. Энкодер есть такой как на фото в этом посте, ардуино про микро. Судя по тому что комп определяет его как ардуино Леонардо, скетч должен подойти.

lti1 19.09.2015 10:01

Sanekk63, если энкодер для регулировки громкости, вот готовый скетч http://pccar.ru/showthread.php?p=333525#post333525, не забудьте поменять файлы USBAPI.h, HID.cpp http://pccar.ru/showpost.php?p=277286&postcount=182 при этом версия ПО Arduino Software IDE должна быть 1.0.5.

Sanekk63 19.09.2015 10:44

Цитата:

Сообщение от lti1 (Сообщение 338498)
Sanekk63, если энкодер для регулировки громкости, вот готовый скетч http://pccar.ru/showthread.php?p=333525#post333525, не забудьте поменять файлы USBAPI.h, HID.cpp http://pccar.ru/showpost.php?p=277286&postcount=182 при этом версия ПО Arduino Software IDE должна быть 1.0.5.

Большое спасибо! Да, энкодер для регулирования громкости, ещё хочу кнопки на руле подцепить. Но для начала хотя бы энкодер.

lti1 19.09.2015 11:20

Цитата:

Сообщение от Sanekk63 (Сообщение 338499)
Большое спасибо! Да, энкодер для регулирования громкости, ещё хочу кнопки на руле подцепить. Но для начала хотя бы энкодер.

Вот объединенный скетч со скетчем из этого поста, но я его работоспособность не проверял.

Sanekk63 19.09.2015 11:22

Ок. Спасибо! Сейчас буду пробовать первый скетч пока ребенок спит))


Часовой пояс GMT +4, время: 13:52.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot