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

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Устройства ввода > Резистивные кнопки

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2014, 20:42   #1
putok
Новый Пользователь
 
Регистрация: 05.04.2010
Регион: 54
Сообщений: 7
putok is on a distinguished road
По умолчанию Крутилка громкости Arduino HID

Так как регулировать громкость в машине с экрана тача это тот еще ад решил сделать крутилку. Случайно наткнулся на библиотеку 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;
  }                         

Миниатюры
Нажмите на изображение для увеличения
Название: DSCF0144.jpg
Просмотров: 1644
Размер:	123.4 Кб
ID:	34187   Нажмите на изображение для увеличения
Название: DSCF0145.jpg
Просмотров: 1514
Размер:	113.1 Кб
ID:	34188  
putok вне форума   Ответить с цитированием
Старый 18.09.2015, 23:35   #2
Sanekk63
Новый Пользователь
 
Регистрация: 06.05.2015
Возраст: 41
Город: Чапаевск
Регион: 63, 163
Машина: KIA Sorento
Сообщений: 13
Sanekk63 is on a distinguished road
По умолчанию

Подойдёт ли данный скетч для ардуино про микро?
Sanekk63 вне форума   Ответить с цитированием
Старый 18.09.2015, 23:41   #3
~aviator~
Старший Пользователь
 
Регистрация: 02.04.2010
Возраст: 41
Город: Минск
Регион: Беларусь
Машина: Honda Accord 2.0 DOHC
Сообщений: 660
~aviator~ is on a distinguished road
По умолчанию

Такую крутилку сделал на старой мышке с мех. Энкодером
Мне кажется все проще ничего писать не нужно, перепаял и все
~aviator~ вне форума   Ответить с цитированием
Старый 19.09.2015, 07:51   #4
Sanekk63
Новый Пользователь
 
Регистрация: 06.05.2015
Возраст: 41
Город: Чапаевск
Регион: 63, 163
Машина: KIA Sorento
Сообщений: 13
Sanekk63 is on a distinguished road
По умолчанию

Впоследствии хочу рулевые кнопки подключить к ардуино
Sanekk63 вне форума   Ответить с цитированием
Старый 19.09.2015, 08:31   #5
Vlad-bodryi
Гуру
 
Регистрация: 23.12.2012
Возраст: 43
Город: Самара
Регион: 63, 163
Машина: Forester
Сообщений: 1,166
Vlad-bodryi is a jewel in the roughVlad-bodryi is a jewel in the roughVlad-bodryi is a jewel in the roughVlad-bodryi is a jewel in the rough
По умолчанию

если незнаешь программирование, а судя по этим вопросам ты его не знаешь, купи готовый от YAM1966. цена хоть сейчас и знатная, но она этого стоит, там как в вашем любимом лозунге-заманухи "ALL INCLUSIVE". поверь, потратишь больше...
Vlad-bodryi вне форума   Ответить с цитированием
Старый 19.09.2015, 08:44   #6
Sanekk63
Новый Пользователь
 
Регистрация: 06.05.2015
Возраст: 41
Город: Чапаевск
Регион: 63, 163
Машина: KIA Sorento
Сообщений: 13
Sanekk63 is on a distinguished road
По умолчанию

Купить оно всегда проще и быстрее, но хочется сделать самому. Энкодер есть такой как на фото в этом посте, ардуино про микро. Судя по тому что комп определяет его как ардуино Леонардо, скетч должен подойти.
Sanekk63 вне форума   Ответить с цитированием
Старый 19.09.2015, 10:01   #7
lti1
Старший Пользователь
 
Аватар для lti1
 
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
lti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond repute
По умолчанию

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, 10:44   #8
Sanekk63
Новый Пользователь
 
Регистрация: 06.05.2015
Возраст: 41
Город: Чапаевск
Регион: 63, 163
Машина: KIA Sorento
Сообщений: 13
Sanekk63 is on a distinguished road
По умолчанию

Цитата:
Сообщение от lti1 Посмотреть сообщение
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, 11:20   #9
lti1
Старший Пользователь
 
Аватар для lti1
 
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
lti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Sanekk63 Посмотреть сообщение
Большое спасибо! Да, энкодер для регулирования громкости, ещё хочу кнопки на руле подцепить. Но для начала хотя бы энкодер.
Вот объединенный скетч со скетчем из этого поста, но я его работоспособность не проверял.
lti1 вне форума   Ответить с цитированием
Старый 19.09.2015, 11:22   #10
Sanekk63
Новый Пользователь
 
Регистрация: 06.05.2015
Возраст: 41
Город: Чапаевск
Регион: 63, 163
Машина: KIA Sorento
Сообщений: 13
Sanekk63 is on a distinguished road
По умолчанию

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


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

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



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


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