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

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

Daniel 12.01.2015 11:40

Подключать 5В нужно на VCC, предварительно J1 спаять между собой.

gooffich 16.01.2015 12:18

ПОМОГИТЕ НАПИСАТЬ СКЕТЧ ДЛЯ LEONARDO
 
Приобрёл новую плату Leonardo. измерил показание кнопок:

Громкость + 393

громкость - 296

трек + 121

трек - 166

плей.пауза 32

моде 86

помогите написать скетч. если есть такая возможность, чтоб работала экранная клавиатура.

Chubaka885 16.01.2015 15:51

Цитата:

Сообщение от gooffich (Сообщение 317587)
Приобрёл новую плату Leonardo. измерил показание кнопок:

Громкость + 393

громкость - 296

трек + 121

трек - 166

плей.пауза 32

моде 86

помогите написать скетч. если есть такая возможность, чтоб работала экранная клавиатура.

Эту тему пошерстить не судьба?
Ну всего же 30 страниц. Тридцаааать. Не триста же....

gooffich 16.01.2015 16:00

Цитата:

Сообщение от Chubaka885 (Сообщение 317596)
Эту тему пошерстить не судьба?
Ну всего же 30 страниц. Тридцаааать. Не триста же....

пробовал. не получается.

Chubaka885 16.01.2015 16:08

Цитата:

Сообщение от gooffich (Сообщение 317597)
пробовал. не получается.

Не получается что?, прочитать тему и найти готовый скетч.
Что касается того что бы работала экранная клавиатура, то это не зависит от скетча. Читайте эту тему

gooffich 16.01.2015 16:41

Цитата:

Сообщение от Chubaka885 (Сообщение 317598)
Не получается что?, прочитать тему и найти готовый скетч.
Что касается того что бы работала экранная клавиатура, то это не зависит от скетча. Читайте эту тему

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

Chubaka885 16.01.2015 19:19

Цитата:

Сообщение от gooffich (Сообщение 317601)
Скетчи разные пробовал. у меня при подключении ардуино к пк или планшету начинаются переполох. либо звук вкл,выкл. какие приложения открыты воспр. остан. громкость бегает туда сюда и многое бругое.
Да, что выбирать перед заливкой скетча фаил-параметры-....?

Попробуйте залить этот скетч.
Перед заливкой поменяйте файлы как написано в том сообщении, поменяйте номер аналогового пина на свой, и подставьте свои значения кнопок.
В параметрах менять нечего не надо, главное чтобы в сервис -> плата - было выбранно Arduino Leonardo и в сервис -> последовательный порт -был выбран номер порта вашей леонардо.
Для заливки скетча используйте ПО Arduino 1.0.4-r2 или Arduino 1.0.5-r2 в более высоких версиях замена файлов невозможна, там необходимо вносить изменения в сам файл.

А "переполох" у вас скорей всего из за неправильного подключения резистивной кнопки!

gooffich 18.01.2015 17:40

Цитата:

Сообщение от Chubaka885 (Сообщение 317621)
Попробуйте залить этот скетч.
Перед заливкой поменяйте файлы как написано в том сообщении, поменяйте номер аналогового пина на свой, и подставьте свои значения кнопок.
В параметрах менять нечего не надо, главное чтобы в сервис -> плата - было выбранно Arduino Leonardo и в сервис -> последовательный порт -был выбран номер порта вашей леонардо.
Для заливки скетча используйте ПО Arduino 1.0.4-r2 или Arduino 1.0.5-r2 в более высоких версиях замена файлов невозможна, там необходимо вносить изменения в сам файл.

А "переполох" у вас скорей всего из за неправильного подключения резистивной кнопки!

Спасибо! Это скедч подкорректировал, почти подошёл. Единственный минус - как мне сделать чтоб пауза\плей была на другой кнопке а не на кнопке моде при удержании? скетч прилагаю

int analogPin=0; //пин для подключения кнопок
int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки

//********************** Громкость ************************************

if(data>=1023 && flag == 0) // все кнопки отпущены
{
eventTime=millis();
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=884 && data<=904 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=884 && data<=904 && flag == 5 || data>=210 && data<=230 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.increase(); // действие после удержание кнопки, Увеличить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=824 && data<=844 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=824 && data<=844 && flag == 6 || data>=457 && data<=477 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.decrease(); // действие после удержание кнопки, Уменьшить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Play/pause ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=462 && data<=482) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 1;
}

if(data>=1023 && flag == 1 && pauseMillis == 0) // действие после короткого нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=1023 && flag == 1 && pauseMillis != 0) // действие после короткого повторного нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=1023) // && flag == 7 && data>=950)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>500 && data>=567 && data<=587 && flag == 1) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.play_pause(); // действие после удержание кнопки, воспроизведение / пауза
flag = 0;
delay(10);
Remote.clear();
}
//********************** Next и Fast Forward ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=572 && data<=582) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 2;
}

if(data>=1023 && flag == 2) // действие после короткого нажатия кнопки, Next
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=572 && data<=582 && flag == 2 || data>=0 && data<=10 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.forward(); // действие после удержание кнопки, Fast Forward
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=671 && data<=691) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 4;
}

if(data>=1023 && flag == 4) // действие после короткого нажатия кнопки, Previous
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=671 && data<=691 && flag == 4 || data>=74 && data<=94 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.rewind(); // действие после удержание кнопки, Rewind
flag = 3;
Remote.clear();
delay(100);
}

if(data>=1023 && flag == 3 || data>=950 && flag == 5 || data>=950 && flag == 6) // действие после отпускания кнопки
{
flag = 0;
}
}

lti1 18.01.2015 23:49

Цитата:

Сообщение от gooffich (Сообщение 317824)
Единственный минус - как мне сделать чтоб пауза\плей была на другой кнопке а не на кнопке моде при удержании?

То есть, что бы AltTab и Play/pause были на разных кнопках и действовали при коротком нажатии? Если да, то так:
PHP код:

int analogPin=0//пин для подключения кнопок
int data;
unsigned long flag 0;
unsigned long eventTime 0;
unsigned long pauseMillis 0;

void setup()
{
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки

//********************** Громкость ************************************

if(data>=1023 && flag == 0// все кнопки отпущены
{
eventTime=millis();
}

if(
millis()-eventTime>10 && millis()-eventTime<499 && data>=884 && data<=904 && flag == 0// короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)

Remote.increase();
flag 5;
delay(10);
Remote.clear();
}

if(
millis()-eventTime>500 && data>=884 && data<=904 && flag == || data>=210 && data<=230 && flag == 3// удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)

Remote.increase(); // действие после удержание кнопки, Увеличить громкость каждые 0,1 секунды
flag 3;
Remote.clear();
delay(100);
}

if(
millis()-eventTime>10 && millis()-eventTime<499 && data>=824 && data<=844 && flag == 0// короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)

Remote.decrease();
flag 6;
delay(10);
Remote.clear();
}

if(
millis()-eventTime>500 && data>=824 && data<=844 && flag == || data>=457 && data<=477 && flag == 3// удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)

Remote.decrease(); // действие после удержание кнопки, Уменьшить громкость каждые 0,1 секунды
flag 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Ещё что то ************************************ 

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=462 && data<=482// короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)

flag 1;
}

if(
data>=1023 && flag == && pauseMillis == 0// действие после короткого нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag 0;
pauseMillis millis();
}

if(
data>=1023 && flag == && pauseMillis != 0// действие после короткого повторного нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag 0;
pauseMillis millis();
}

if(
pauseMillis && millis()-pauseMillis >= 800 && data>=1023// && flag == 7 && data>=950)
{
flag 0;
pauseMillis 0;
Keyboard.releaseAll();
}

if(
millis()-eventTime>500 && data>=567 && data<=587 && flag == 1// удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)

//Remote.play_pause(); // действие после удержание кнопки, Ещё что то
flag 0;
//delay(10);
//Remote.clear();
}
//********************** Next и Fast Forward ************************************ 

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=572 && data<=582// короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)

flag 2;
}

if(
data>=1023 && flag == 2// действие после короткого нажатия кнопки, Next
{
Remote.next();
flag 0;
delay(10);
Remote.clear();
}

if(
millis()-eventTime>500 && data>=572 && data<=582 && flag == || data>=&& data<=10 && flag == 3// удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)

Remote.forward(); // действие после удержание кнопки, Fast Forward
flag 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************ 

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=671 && data<=691// короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)

flag 4;
}

if(
data>=1023 && flag == 4// действие после короткого нажатия кнопки, Previous
{
Remote.previous();
flag 0;
delay(10);
Remote.clear();
}

if(
millis()-eventTime>500 && data>=671 && data<=691 && flag == || data>=74 && data<=94 && flag == 3// удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)

Remote.rewind(); // действие после удержание кнопки, Rewind
flag 3;
Remote.clear();
delay(100);
}

//********************** Play/pause + Ещё что то ************************************ 

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=111 && data<=111// короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)

flag 7;
}

if(
data>=1023 && flag == 7// действие после короткого нажатия кнопки, воспроизведение / пауза
{
Remote.play_pause(); 
flag 0;
delay(10);
Remote.clear();
}

if(
millis()-eventTime>500 && data>=111 && data<=111 && flag == 7// удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)

//Remote.play_pause(); // действие после удержание кнопки, Ещё что то
flag 0;
//delay(10);
//Remote.clear();
}

if(
data>=1023 && flag == || data>=1023 && flag == || data>=1023 && flag == 6// действие после отпускания кнопки
{
flag 0;



Измените data<=111 на Ваши значения.

gooffich 19.01.2015 12:23

Спасибо огромное!Теперь как часики.


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

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