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

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

tto4ka 02.06.2015 03:59

Цитата:

Сообщение от Rage2 (Сообщение 329630)
По юсб никак не видится, только зарядка.
По BT видится как колавиатура, профиль HID

Еще нем есть переключатель сбоку...режим Game\Key

Относительно горизонтальной ориентации брелка.
режим Game
Стик (4-е направления)
ВВЕРХ KEYCODE_DPAD_UP
ВНИЗ KEYCODE_DPAD_DOWN
ЛЕВО KEYCODE_DPAD_LEFT
ПРАВО KEYCODE_DPAD_RIGHT

Кнопки
X- KEYCODE_BUTTON_A
A- KEYCODE_BUTTON_B
iOS- KEYCODE_BUTTON_X
треугольник - KEYCODE_BUTTON_Y
start -KEYCODE_BUTTON_START

режим Key
Стик (4-е направления)
ВВЕРХ KEYCODE_MEDIA_NEXT
ВНИЗ KEYCODE_MEDIA_PREVIOS
ЛЕВО KEYCODE_MEDIA_FAST_FORWARD
ПРАВО KEYCODE_MEDIA_REWIND

Кнопки
X- KEYCODE_VOLUME_DOWN
A- KEYCODE_ENTER
iOS- KEYCODE_VOLUME_UP
треугольник - KEYCODE_BACK
start -KEYCODE_MEDIA_PLAY_PAUSE

Самый главный вопрос забыл спросить, в машине вообще юзабельно? Удобно в смысле? :)

Rage2 02.06.2015 10:53

Цитата:

Сообщение от tto4ka (Сообщение 329635)
Самый главный вопрос забыл спросить, в машине вообще юзабельно? Удобно в смысле? :)

В том виде какой он есть, я думаю что не особо.

tto4ka 02.06.2015 15:23

Все вопрос решен :) Напшел iDrive :))))
Небольшое зондирование почвы на тему iDrive принесло следующие результаты, есть 2 пути:
1. Вскрыть джойстик и припаять Arduino к узлам джойстика (метод Chubaka885)
2. Джойстик работает по CAN поэтому можно сделать обвязку на двух микросхемах MCP2515 и TJA1055 причем обе микросхемы не дорогие порядка 50-100р за штуку и дальше уже в Arduino Micro, есть даже схема шилда, причем через CAN в принципе наверно правильнее так как сразу весь функционал и подсветка :), только вот производственных мощностей нету чтобы плату вытравить....

Bormental 07.06.2015 17:07

Всем добра. Подскажите в скетче Iti выдает ошибку
Remote.increase(); - желтым выделяет и пишет
remote as not declared in this scope
чего делать??

Chubaka885 07.06.2015 19:10

Цитата:

Сообщение от Bormental (Сообщение 330139)
Всем добра. Подскажите в скетче Iti выдает ошибку
Remote.increase(); - желтым выделяет и пишет
remote as not declared in this scope
чего делать??

Библиотеку надо заменить. Всё же написано.

Цитата:

Для начала меняем в папке \arduino-1.0.5\hardware\arduino\cores\arduino два файла USBAPI.h, HID.cpp на те, что во вложении этого сообщения, при этом версия ПО Arduino Software IDE должна быть 1.0.5, скачать setup exe, скачать zip.

Bormental 07.06.2015 21:42

Я конечно же поменял все библиотеки, поэтому и написал сюда, что выскакивает такая строка

Chubaka885 08.06.2015 07:11

Цитата:

Сообщение от Bormental (Сообщение 330167)
Я конечно же поменял все библиотеки, поэтому и написал сюда, что выскакивает такая строка

Версия ПО?

komers 13.06.2015 01:49

Цитата:

Сообщение от tto4ka (Сообщение 329690)
Все вопрос решен :) Напшел iDrive :))))

Если не секрет, за сколько вы его приобрели?

Ajlewka 13.06.2015 16:52

Вопрос по теме - на столе все работает, только переношу в машину, начинается очень большой разброс по значениям. Если на столе 1-3, то в машине доходит до 80-100. Питается от НСД. я так понял это в ней дело. Вообще, есть разница в подтяжке? у меня сейчас сделано в состоянии покоя подтяжка на 5в. Что изменится если переделать на землю?

armlive 13.06.2015 19:51

На 2 пина
 
Может кому пригодится, кашкаводам точно!
Бывает такое, что кнопки сидят не в одной группе, а в несколько. Вот и на кашкае шесть кнопок, но две группы и естественно два провода, да ещё и сопротивления одинаковые. Раньше соединял их резистором и сводил в один.... работает. Но все же дребезг, разница в значениях иногда приводила к непредсказуемым действиям.
И вот моя наконец дошло))):pleasantry:
Надеюсь многим поможет, работает теперь просто идеально работает.
Немного переделанный код с поста lti1

Для двух проводных кнопок!

Код:

//****************** Здесь необходимо указать свои значения ***************

int analogPin=0; // пин для подключения кнопок A0
int analogPin1=1; // пин для подключения кнопок A1

int release_button = 1023; // значение при отпущенных кнопках
int button_release_range = 20; // диапазон значения + - при отпущенных кнопках
int button_range = 10; // диапазон значения нажатых кнопок + -
int time_holding = 500; // время для удержания кнопок в миллисекундах
int time_tinkling = 10; // время исключающее дребезг контактов в миллисекундах
int vol_up = 345; // значение кнопки увеличить громкость
int vol_down = 165; // значение кнопки уменьшить громкость data1
int alt_tab = 0; // значение кнопки которая будет работать как Alt + Tab
int next = 100; // значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании
int previous = 30; // значение кнопки которая будет работать как Previous при коротком нажатии и Rewind при удержании data1
int play_pause = 0; // значение кнопки которая будет работать как Play/Pause при коротком нажатии и Mute при удержании data1

//**************************************************************************

int data; 
int data1;
unsigned long flag = 0; 
unsigned long eventTime = 0; 
unsigned long pauseMillis = 0;

void setup() 

Keyboard.begin(); 


void loop() 

data=analogRead(analogPin);
data1=analogRead(analogPin1);
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 0) 

 eventTime=millis(); 


if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 0) 

eventTime=millis(); 


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

if(millis()-time_tinkling && millis()-eventTime= vol_up - button_range && data <= vol_up + button_range && flag == 0)

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


if(millis()-eventTime>time_holding && data >= vol_up - button_range && data <= vol_up + button_range && flag == 5 || data >= vol_up - button_range && data <= vol_up + button_range && flag && flag == 3) 

Remote.increase();
flag = 3; 
Remote.clear(); 
delay(100); 


if(millis()-time_tinkling && millis()-eventTime= vol_down - button_range && data1 <= vol_down + button_range && flag == 0) 

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


if(millis()-eventTime>time_holding && data1 >= vol_down - button_range && data1 <= vol_down + button_range && flag == 6 || data1 >= vol_down - button_range && data1 <= vol_down + button_range && flag == 3) 

Remote.decrease(); 
flag = 3; 
Remote.clear(); 
delay(100); 


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

if(millis()-time_tinkling && millis()-eventTime= alt_tab - button_range && data <= alt_tab + button_range) 

flag = 1; 


if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis == 0) 

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>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis != 0) 

Keyboard.press(KEY_TAB); 
Keyboard.release(KEY_TAB); 
flag = 0; 
pauseMillis = millis(); 


if(pauseMillis && millis()-pauseMillis >= 1500 && data>=release_button - button_release_range && data<=release_button + button_release_range) 

flag = 0; 
pauseMillis = 0; 
Keyboard.releaseAll(); 


if(millis()-eventTime>time_holding && data >= alt_tab - button_range && data <= alt_tab + button_range && flag == 1) 

flag = 0; 

//********************** Next и Fast Forward ************************************ 

if(millis()-time_tinkling && millis()-eventTime= next - button_range && data <= next + button_range) 

flag = 2; 


if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 2) 

Remote.next(); 
flag = 0; 
delay(10); 
Remote.clear(); 


if(millis()-eventTime>time_holding && data >= next - button_range && data <= next + button_range && flag == 2 || data >= next - button_range && data <= next + button_range && flag == 3) 

Remote.forward(); 
flag = 3; 
Remote.clear(); 
delay(100); 

//********************** Previous и Rewind ************************************ 

if(millis()-time_tinkling && millis()-eventTime= previous - button_range && data1 <= previous + button_range) 

flag = 4; 


if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 4) 

Remote.previous(); 
flag = 0; 
delay(10); 
Remote.clear(); 


if(millis()-eventTime>time_holding && data1 >= previous - button_range && data1 <= previous + button_range && flag == 4 || data1 >= previous - button_range && data1 <= previous + button_range && flag == 3) 

Remote.rewind();
flag = 3; 
Remote.clear(); 
delay(100); 


//********************** Play/pause + Mute ************************************ 

if(millis()-time_tinkling && millis()-eventTime= play_pause - button_range && data1 <= play_pause + button_range) 

flag = 7; 


if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 7) 

Remote.play_pause(); 
flag = 0; 
delay(10); 
Remote.clear(); 


if(millis()-eventTime>time_holding && data1 >= play_pause - button_range && data1 <= play_pause + button_range && flag == 7) 

Remote.mute();
flag = 0;
delay(10);
Remote.clear(); 
}
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6) 

if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 3 || data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 5 || data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 6) 

flag = 0; 
}
}

Да и пора бы уже шапку для темы сделать


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

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