PDA

Просмотр полной версии : Крутилка громкости Arduino HID


putok
02.01.2014, 20:42
Так как регулировать громкость в машине с экрана тача это тот еще ад решил сделать крутилку. Случайно наткнулся на библиотеку MouseKeyboard (http://arduino.cc/en/Reference/MouseKeyboard) и решил что это идеально мне подходит =) купил плату Leonardo. Суть такова, берем фубар, ему назначаем хот кеи на уменьшение звука и увеличение, а также на паузу ( в данном случае это сочетание CTRL + SHIFT + Q, A, P ) и эмулируем их. Как видно кнопок можно прикручивать огромную кучу =)

скетч
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_A, INPUT_PULLUP); // encoder 1
pinMode(pin_enc_B, INPUT_PULLUP); // encoder 2
pinMode(pin_pause, INPUT_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;
}
}



http://www.youtube.com/watch?v=CvOjKG2mDAo&feature=youtu.be

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
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
Большое спасибо! Да, энкодер для регулирования громкости, ещё хочу кнопки на руле подцепить. Но для начала хотя бы энкодер.Вот объединенный скетч (https://www.dropbox.com/s/rqsbb4xn1l6fbz3/%D0%AD%D0%BD%D0%BA%D0%BE%D0%B4%D0%B5%D1%80%20%D0%B 8%20%D1%80%D0%B5%D0%B7%D0%B8%D1%81%D1%82%D0%B8%D0% B2%D0%BD%D1%8B%D0%B5%20%D0%BA%D0%BD%D0%BE%D0%BF%D0 %BA%D0%B8.txt?dl=0) со скетчем из этого поста (http://pccar.ru/showthread.php?p=319975#post319975), но я его работоспособность не проверял.

Sanekk63
19.09.2015, 11:22
Ок. Спасибо! Сейчас буду пробовать первый скетч пока ребенок спит))

Sanekk63
19.09.2015, 11:38
Загрузил скетч пока только для энкодера, на компе ползунок громкости начал дергаться, при вращении регулятора ничего не происходит. может подключил не так? Есть схема подключения для этого скетча?

Sanekk63
19.09.2015, 11:44
Залил скетч только для энкодера, ползунок громкости дергается, но на вращение не реагирует. Может подключил не так? Есть ли схема подключения?

lti1
19.09.2015, 11:51
Загрузил скетч пока только для энкодера, на компе ползунок громкости начал дергаться, при вращении регулятора ничего не происходит. может подключил не так? Есть схема подключения для этого скетча?Схема подключения, возможно понадобится поменять местами D8 и D9, если будет отрабатывать не в ту сторону.

Sanekk63
19.09.2015, 11:53
Схема подключения, возможно понадобится поменять местами D8 и D9, если будет отрабатывать не в ту сторону.

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

lti1
19.09.2015, 12:40
Ну собственно так и подключил, странно что тогда не так.
Монитор порта тоже ничего не показывает
D8 и D9 подтяните к +5v.
В мониторе ни чего и не должно быть.

Sanekk63
19.09.2015, 12:44
Вот такую схему нашел, причем скетч ваш. http://www.drive2.ru/c/2308877/

Собрал по этой схеме. И о чудо! Заработало! Спасибо вам большое за помощь!

Vlad-bodryi
19.09.2015, 20:09
Купить оно всегда проще и быстрее, но хочется сделать самому. Энкодер есть такой как на фото в этом посте, ардуино про микро.

дело не в этом совсем... оно в середине уже наберётся целый ком хотелок, но это уже непросто реализовать незная программирования, пока ты будешь всё это отрабатывать, сменишь авто, а оно попадётся какое-нибудь хитрое с шинами(типа "КАН") - вот тут ты уже не сможешь отказаться хотя бы от той-же громкости!

но та приблуда на самом деле не такая уж и простая, она выполняет многофункциональное устройство которое заменит много блоков в автомобильном компьютере, включая управление питанием и регулировка подсветки матрицы, программатор и т.д.

"бобуинкой" хорошо играться решая простые задачи, например она у меня управляет в машине питанием(стеклоподъёмники, салонный свет(включая яркость)) и некоторые другие функции от ЦЗ на ключе, дома управление светом, включая яркость и ДУ. это всё простой и не сложной логикой программирования.

Sanekk63
21.09.2015, 07:25
Спасибо Влад за совет, та приблуда действительно крутая. Но это пока не мой уровень, как вы правильно заметили, нужно начинать с малого. Поэтому я хочу вникнуть в то как работает ардуино и как пишутся скетчи. С программированием действительно не знаком, образование другого профиля. Начну с азов, и надеюсь на помощь людей, Вас в том числе.

Vlad-bodryi
21.09.2015, 20:35
Вас в том числе.

тут-то как раз и загвоздка...

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

а машинное дело - сплошная антисанитария! к тому же опасная и денежная...

но вам видней, поэтому вам и чпокаться:rofl:. у меня уже за тройку лет столько бабла и нервов ушло...:blink2:

Sanekk63
21.09.2015, 21:55
Значит будем чпокаться��

svskrm
14.12.2015, 22:53
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.

помогите с 2-мя вопросами:
1. с эти скетчем если кручу энкодер (вправо или влево) проскакивает импульс в другу сторону. т.е. если кручу в сторону увеличения 3-4 щелчка проскакивает 1 импульс на уменьшение
2. ̶п̶р̶и̶ ̶п̶о̶д̶к̶л̶ю̶ч̶е̶н̶н̶о̶м̶ ̶л̶е̶о̶н̶а̶р̶д̶о̶ ̶н̶е̶ ̶р̶а̶б̶о̶т̶а̶е̶т̶ ̶в̶в̶о̶д̶ ̶с̶ ̶э̶к̶р̶а̶н̶н̶о̶й̶ ̶к̶л̶а̶в̶и̶а̶т̶у̶р̶ы̶.̶ ̶э̶т̶о̶ ̶к̶а̶к̶-̶н̶и̶б̶у̶д̶ь̶ ̶р̶е̶ш̶а̶е̶т̶с̶я̶?̶ решено (http://pccar.ru/showpost.php?p=251483&postcount=113)

JamesDoe
22.12.2015, 20:01
Извините за оффтоп. Не подcкажете, где такой регулятор можно купить готовый? На Алиэкспресс есть ровно один за 21 доллар, но он уж очень массивный.

Serjik87
23.12.2015, 12:49
Извините за оффтоп. Не полдкажете, где такой регулятор можно купить готовый? На Алиэкспресс есть ровно один за 21 доллар, но он уж очень массивный.

а что отталкиваем в нем, размеры?

JamesDoe
23.12.2015, 20:13
Да, размер великоват. И дороговато. Ещё и отзывов ноль. Если ничего лучше не найдётся, прийдётся его брать, конечно.

Vladget
23.12.2015, 21:19
Извините за оффтоп. Не полдкажете, где такой регулятор можно купить готовый? На Алиэкспресс есть ровно один за 21 доллар, но он уж очень массивный.

Ну ты бы хоть ссылку выложил на это огромный Энкодер ну вот тебе на эбеи маленький http://www.ebay.com/itm/12mm-Rotary-Encoder-Switch-Flat-Top-Knob-NEW-/331737463356?hash=item4d3d17fa3c:g:tacAAOSwsFpWSUM H вот на али http://ru.aliexpress.com/wholesale?shipCountry=ru&shipFromCountry=&shipCompanies=&SearchText=%D1%8D%D0%BD%D0%BA%D0%BE%D0%B4%D0%B5%D1 %80&exception=&minPrice=&maxPrice=&isFreeShip=n&isFavorite=n&isRtl=yes&isOnSale=n&isBigSale=n&similar_style=n&similar_style_id=&CatId=0&initiative_id=SB_20151223091810&isAffiliate=y&needQuery=y&isOnlyAffiliate=y

JamesDoe
24.12.2015, 00:09
Ну ты бы хоть ссылку выложил на это огромный Энкодер ну вот тебе на эбеи маленький http://www.ebay.com/itm/12mm-Rotary-Encoder-Switch-Flat-Top-Knob-NEW-/331737463356?hash=item4d3d17fa3c:g:tacAAOSwsFpWSUM H вот на али http://ru.aliexpress.com/wholesale?shipCountry=ru&shipFromCountry=&shipCompanies=&SearchText=%D1%8D%D0%BD%D0%BA%D0%BE%D0%B4%D0%B5%D1 %80&exception=&minPrice=&maxPrice=&isFreeShip=n&isFavorite=n&isRtl=yes&isOnSale=n&isBigSale=n&similar_style=n&similar_style_id=&CatId=0&initiative_id=SB_20151223091810&isAffiliate=y&needQuery=y&isOnlyAffiliate=y
Так это ж просто энкодеры, это и у нас на рынке продаётся. Мне нужно готовое устройство. Вот (http://www.aliexpress.com/item/PC-USB-Wire-Controller-USB-Volume-Control-Knobs-Audio-Controller-for-Adjusting-Volume-of-Computer-Laptop/32547387959.html) единственное, что я нашёл.

marton2k
21.09.2017, 14:44
Вот объединенный скетч (https://www.dropbox.com/s/rqsbb4xn1l6fbz3/%D0%AD%D0%BD%D0%BA%D0%BE%D0%B4%D0%B5%D1%80%20%D0%B 8%20%D1%80%D0%B5%D0%B7%D0%B8%D1%81%D1%82%D0%B8%D0% B2%D0%BD%D1%8B%D0%B5%20%D0%BA%D0%BD%D0%BE%D0%BF%D0 %BA%D0%B8.txt?dl=0) со скетчем из этого поста (http://pccar.ru/showthread.php?p=319975#post319975), но я его работоспособность не проверял.

А не подскажите можно подправить объединенный скетч так, чтобы регулировка была не по 4 шага, а по 1? А то на андроиде совсем не хорошо выходит(( Через Xposed не варинт, там какие то пляски на Marshmallow

lti1
21.09.2017, 15:36
А не подскажите можно подправить объединенный скетч так, чтобы регулировка была не по 4 шага, а по 1? А то на андроиде совсем не хорошо выходит(( Через Xposed не варинт, там какие то пляски на Marshmallowhttp://pccar.ru/showthread.php?p=333525#post333525
// конденсаторы на землю желательно.

marton2k
21.09.2017, 17:12
http://pccar.ru/showthread.php?p=333525#post333525
// конденсаторы на землю желательно.

Все собрано по схеме и работает четко, только прибавляет или убавляет по 4 единицы шкалы громкости, что в винде, что в андроиде